X-Git-Url: https://git.tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fopenssl%2Fecdsagen.c;h=e818ff1175590c5211163a32c2391f4a8a5e0973;hb=a7458f6dfd86dd345b43690ef977dc034f550e68;hp=1affce05333f98e59395d84eefeabfc83e12d824;hpb=22d804d4467cfe9f3926ab6d37b69c3760395b6c;p=tinc diff --git a/src/openssl/ecdsagen.c b/src/openssl/ecdsagen.c index 1affce05..e818ff11 100644 --- a/src/openssl/ecdsagen.c +++ b/src/openssl/ecdsagen.c @@ -30,18 +30,24 @@ typedef EC_KEY ecdsa_t; #include "../utils.h" #include "../xalloc.h" +#include "brainpool.h" + // Generate ECDSA key ecdsa_t *ecdsa_generate(void) { - ecdsa_t *ecdsa = EC_KEY_new_by_curve_name(NID_secp521r1); + ecdsa_t *ecdsa = EC_KEY_new(); + if(!ecdsa) { + fprintf(stderr, "Allocating EC key failed: %s", ERR_error_string(ERR_get_error(), NULL)); + return NULL; + } - if(!ecdsa || !EC_KEY_generate_key(ecdsa)) { + if(!EC_KEY_set_group(ecdsa, brainpoolp512r1) || !EC_KEY_generate_key(ecdsa)) { fprintf(stderr, "Generating EC key failed: %s", ERR_error_string(ERR_get_error(), NULL)); ecdsa_free(ecdsa); - return false; + return NULL; } - EC_KEY_set_asn1_flag(ecdsa, OPENSSL_EC_NAMED_CURVE); + EC_KEY_set_asn1_flag(ecdsa, 0); EC_KEY_set_conv_form(ecdsa, POINT_CONVERSION_COMPRESSED); return ecdsa;