X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;ds=sidebyside;f=src%2Fopenssl%2Fecdsa.c;h=43464d8835b60c9c37280c682b14e2696965d5f3;hb=30ef2a981e1d62692b3a2363e0b3a0e8711d9604;hp=a4f0f30d259b68355d94d9920d0416249df3c2ea;hpb=027228debee2ea6f31cd176e456c13d626380066;p=tinc diff --git a/src/openssl/ecdsa.c b/src/openssl/ecdsa.c index a4f0f30d..43464d88 100644 --- a/src/openssl/ecdsa.c +++ b/src/openssl/ecdsa.c @@ -26,8 +26,8 @@ #include "ecdsa.h" #include "utils.h" -// Set ECDSA keys - +// Get and set ECDSA keys +// bool ecdsa_set_base64_public_key(ecdsa_t *ecdsa, const char *p) { *ecdsa = EC_KEY_new_by_curve_name(NID_secp521r1); @@ -44,6 +44,18 @@ bool ecdsa_set_base64_public_key(ecdsa_t *ecdsa, const char *p) { return true; } +char *ecdsa_get_base64_public_key(ecdsa_t *ecdsa) { + unsigned char *pubkey = NULL; + int len = i2o_ECPublicKey(*ecdsa, &pubkey); + + char *base64 = malloc(len * 4 / 3 + 5); + b64encode(pubkey, base64, len); + + free(pubkey); + + return base64; +} + // Read PEM ECDSA keys bool ecdsa_read_pem_public_key(ecdsa_t *ecdsa, FILE *fp) {