From: Richard Levitte Date: Sun, 30 Aug 2020 09:46:45 +0000 (+0200) Subject: EC: Remove one error record that shadows another X-Git-Tag: openssl-3.0.0-alpha7~392 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=5045abb2e92f9370b05f5e9c6f116fb01bf9e4fe;p=thirdparty%2Fopenssl.git EC: Remove one error record that shadows another In EC_GROUP_new_from_params(), ERR_R_EC_LIB was reported if group_new_from_name() returned NULL. However, this shadows a possible EC_R_INVALID_CURVE, making that harder to detect, which happens to be important to do in test/evp_test.c. This also extends key_unsupported() in test/evp_test.c to check for this error alongside the check for EC_R_UNKNOWN_GROUP. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/12587) --- diff --git a/crypto/ec/ec_lib.c b/crypto/ec/ec_lib.c index d9298f62d0a..d7752e953f6 100644 --- a/crypto/ec/ec_lib.c +++ b/crypto/ec/ec_lib.c @@ -1552,8 +1552,6 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[], group = group_new_from_name(ptmp, libctx, propq); if (group != NULL) EC_GROUP_set_asn1_flag(group, encoding_flag); - else - ECerr(0, ERR_R_EC_LIB); return group; } bnctx = BN_CTX_new_ex(libctx); diff --git a/test/evp_test.c b/test/evp_test.c index d5ec08c469e..52e1dd2e51b 100644 --- a/test/evp_test.c +++ b/test/evp_test.c @@ -3268,7 +3268,8 @@ static int key_unsupported(void) * disabled). */ if (ERR_GET_LIB(err) == ERR_LIB_EC - && ERR_GET_REASON(err) == EC_R_UNKNOWN_GROUP) { + && (ERR_GET_REASON(err) == EC_R_UNKNOWN_GROUP + || ERR_GET_REASON(err) == EC_R_INVALID_CURVE)) { ERR_clear_error(); return 1; }