From: Richard Levitte Date: Wed, 27 Jan 2021 13:55:28 +0000 (+0100) Subject: EC: Reverse the default asn1_flag in a new EC_GROUP X-Git-Tag: openssl-3.0.0-alpha12~147 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=9db6af922c48c5cab5398ef9f37e425e382f9440;p=thirdparty%2Fopenssl.git EC: Reverse the default asn1_flag in a new EC_GROUP The default was OPENSSL_EC_NAMED_CURVE, but that's not true until a curve name has been set, so we change the initial value to OPENSSL_EC_EXPLICIT_CURVE and let EC_GROUP_set_curve_name() change it to OPENSSL_EC_NAMED_CURVE. Submitted by Matt Caswell Reviewed-by: Dmitry Belyavskiy (Merged from https://github.com/openssl/openssl/pull/13973) --- diff --git a/crypto/ec/ec_lib.c b/crypto/ec/ec_lib.c index 325e11f9f13..71cb45ca199 100644 --- a/crypto/ec/ec_lib.c +++ b/crypto/ec/ec_lib.c @@ -63,7 +63,7 @@ EC_GROUP *ec_group_new_ex(OSSL_LIB_CTX *libctx, const char *propq, if (ret->cofactor == NULL) goto err; } - ret->asn1_flag = OPENSSL_EC_NAMED_CURVE; + ret->asn1_flag = OPENSSL_EC_EXPLICIT_CURVE; ret->asn1_form = POINT_CONVERSION_UNCOMPRESSED; if (!meth->group_init(ret)) goto err; @@ -481,6 +481,10 @@ const BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group) void EC_GROUP_set_curve_name(EC_GROUP *group, int nid) { group->curve_name = nid; + group->asn1_flag = + (nid != NID_undef) + ? OPENSSL_EC_NAMED_CURVE + : OPENSSL_EC_EXPLICIT_CURVE; } int EC_GROUP_get_curve_name(const EC_GROUP *group)