X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;ds=sidebyside;f=src%2Fed25519%2Fecdsa.c;h=7cab5f2a46f7476f15e439da805832ae9b9fc93b;hb=fa05f996c5500c056a36c1d43e33a407f876643c;hp=ec53c070f67f792838e45c5cd1549c89193ae2b7;hpb=6086a7fc1ecdf197d3937cec5f291b83c5d68454;p=meshlink diff --git a/src/ed25519/ecdsa.c b/src/ed25519/ecdsa.c index ec53c070..7cab5f2a 100644 --- a/src/ed25519/ecdsa.c +++ b/src/ed25519/ecdsa.c @@ -54,6 +54,12 @@ ecdsa_t *ecdsa_set_base64_public_key(const char *p) { return ecdsa; } +ecdsa_t *ecdsa_set_public_key(const void *p) { + ecdsa_t *ecdsa = xzalloc(sizeof(*ecdsa)); + memcpy(ecdsa->public, p, sizeof ecdsa->public); + return ecdsa; +} + char *ecdsa_get_base64_public_key(ecdsa_t *ecdsa) { char *base64 = xmalloc(44); b64encode(ecdsa->public, base64, sizeof ecdsa->public); @@ -61,10 +67,24 @@ char *ecdsa_get_base64_public_key(ecdsa_t *ecdsa) { return base64; } +const void *ecdsa_get_public_key(ecdsa_t *ecdsa) { + return ecdsa->public; +} + +ecdsa_t *ecdsa_set_private_key(const void *p) { + ecdsa_t *ecdsa = xzalloc(sizeof(*ecdsa)); + memcpy(ecdsa->private, p, sizeof(*ecdsa)); + return ecdsa; +} + +const void *ecdsa_get_private_key(ecdsa_t *ecdsa) { + return ecdsa->private; +} + // Read PEM ECDSA keys ecdsa_t *ecdsa_read_pem_public_key(FILE *fp) { - ecdsa_t *ecdsa = xzalloc(sizeof * ecdsa); + ecdsa_t *ecdsa = xzalloc(sizeof(*ecdsa)); if(fread(ecdsa->public, sizeof ecdsa->public, 1, fp) == 1) { return ecdsa;