22d461
diff -up openssl-3.0.1/crypto/ec/ec_asn1.c.disable_explicit_ec openssl-3.0.1/crypto/ec/ec_asn1.c
22d461
--- openssl-3.0.1/crypto/ec/ec_asn1.c.disable_explicit_ec	2022-03-22 13:10:45.718077845 +0100
22d461
+++ openssl-3.0.1/crypto/ec/ec_asn1.c	2022-03-22 13:12:46.626599016 +0100
22d461
@@ -895,6 +895,12 @@ EC_GROUP *d2i_ECPKParameters(EC_GROUP **
22d461
     if (params->type == ECPKPARAMETERS_TYPE_EXPLICIT)
22d461
         group->decoded_from_explicit_params = 1;
f57b16
 
22d461
+    if (EC_GROUP_check_named_curve(group, 0, NULL) == NID_undef) {
22d461
+        EC_GROUP_free(group);
22d461
+        ECPKPARAMETERS_free(params);
22d461
+        return NULL;
22d461
+    }
22d461
+
22d461
     if (a) {
22d461
         EC_GROUP_free(*a);
22d461
         *a = group;
22d461
@@ -954,6 +959,11 @@ EC_KEY *d2i_ECPrivateKey(EC_KEY **a, con
22d461
         goto err;
f57b16
     }
f57b16
 
22d461
+    if (EC_GROUP_check_named_curve(ret->group, 0, NULL) == NID_undef) {
22d461
+        ERR_raise(ERR_LIB_EC, EC_R_UNKNOWN_GROUP);
22d461
+        goto err;
f57b16
+    }
22d461
+
22d461
     ret->version = priv_key->version;
f57b16
 
22d461
     if (priv_key->privateKey) {
22d461
diff -up openssl-3.0.1/test/endecode_test.c.disable_explicit_ec openssl-3.0.1/test/endecode_test.c
22d461
--- openssl-3.0.1/test/endecode_test.c.disable_explicit_ec	2022-03-21 16:55:46.005558779 +0100
22d461
+++ openssl-3.0.1/test/endecode_test.c	2022-03-21 16:56:12.636792762 +0100
22d461
@@ -57,7 +57,7 @@ static BN_CTX *bnctx = NULL;
22d461
 static OSSL_PARAM_BLD *bld_prime_nc = NULL;
22d461
 static OSSL_PARAM_BLD *bld_prime = NULL;
22d461
 static OSSL_PARAM *ec_explicit_prime_params_nc = NULL;
22d461
-static OSSL_PARAM *ec_explicit_prime_params_explicit = NULL;
22d461
+/*static OSSL_PARAM *ec_explicit_prime_params_explicit = NULL;*/
f57b16
 
22d461
 # ifndef OPENSSL_NO_EC2M
22d461
 static OSSL_PARAM_BLD *bld_tri_nc = NULL;
22d461
@@ -990,9 +990,9 @@ IMPLEMENT_TEST_SUITE_LEGACY(EC, "EC")
22d461
 DOMAIN_KEYS(ECExplicitPrimeNamedCurve);
1ac26c
 IMPLEMENT_TEST_SUITE(ECExplicitPrimeNamedCurve, "EC", 1)
22d461
 IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitPrimeNamedCurve, "EC")
22d461
-DOMAIN_KEYS(ECExplicitPrime2G);
1ac26c
-IMPLEMENT_TEST_SUITE(ECExplicitPrime2G, "EC", 0)
22d461
-IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitPrime2G, "EC")
22d461
+/*DOMAIN_KEYS(ECExplicitPrime2G);*/
1ac26c
+/*IMPLEMENT_TEST_SUITE(ECExplicitPrime2G, "EC", 0)*/
22d461
+/*IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitPrime2G, "EC")*/
22d461
 # ifndef OPENSSL_NO_EC2M
22d461
 DOMAIN_KEYS(ECExplicitTriNamedCurve);
1ac26c
 IMPLEMENT_TEST_SUITE(ECExplicitTriNamedCurve, "EC", 1)
22d461
@@ -1318,7 +1318,7 @@ int setup_tests(void)
22d461
         || !create_ec_explicit_prime_params_namedcurve(bld_prime_nc)
22d461
         || !create_ec_explicit_prime_params(bld_prime)
22d461
         || !TEST_ptr(ec_explicit_prime_params_nc = OSSL_PARAM_BLD_to_param(bld_prime_nc))
22d461
-        || !TEST_ptr(ec_explicit_prime_params_explicit = OSSL_PARAM_BLD_to_param(bld_prime))
22d461
+/*        || !TEST_ptr(ec_explicit_prime_params_explicit = OSSL_PARAM_BLD_to_param(bld_prime))*/
22d461
 # ifndef OPENSSL_NO_EC2M
22d461
         || !TEST_ptr(bld_tri_nc = OSSL_PARAM_BLD_new())
22d461
         || !TEST_ptr(bld_tri = OSSL_PARAM_BLD_new())
22d461
@@ -1346,7 +1346,7 @@ int setup_tests(void)
22d461
     TEST_info("Generating EC keys...");
22d461
     MAKE_DOMAIN_KEYS(EC, "EC", EC_params);
22d461
     MAKE_DOMAIN_KEYS(ECExplicitPrimeNamedCurve, "EC", ec_explicit_prime_params_nc);
22d461
-    MAKE_DOMAIN_KEYS(ECExplicitPrime2G, "EC", ec_explicit_prime_params_explicit);
22d461
+/*    MAKE_DOMAIN_KEYS(ECExplicitPrime2G, "EC", ec_explicit_prime_params_explicit);*/
22d461
 # ifndef OPENSSL_NO_EC2M
22d461
     MAKE_DOMAIN_KEYS(ECExplicitTriNamedCurve, "EC", ec_explicit_tri_params_nc);
22d461
     MAKE_DOMAIN_KEYS(ECExplicitTri2G, "EC", ec_explicit_tri_params_explicit);
22d461
@@ -1389,8 +1389,8 @@ int setup_tests(void)
22d461
         ADD_TEST_SUITE_LEGACY(EC);
22d461
         ADD_TEST_SUITE(ECExplicitPrimeNamedCurve);
22d461
         ADD_TEST_SUITE_LEGACY(ECExplicitPrimeNamedCurve);
22d461
-        ADD_TEST_SUITE(ECExplicitPrime2G);
22d461
-        ADD_TEST_SUITE_LEGACY(ECExplicitPrime2G);
22d461
+/*        ADD_TEST_SUITE(ECExplicitPrime2G);*/
22d461
+/*        ADD_TEST_SUITE_LEGACY(ECExplicitPrime2G);*/
22d461
 # ifndef OPENSSL_NO_EC2M
22d461
         ADD_TEST_SUITE(ECExplicitTriNamedCurve);
22d461
         ADD_TEST_SUITE_LEGACY(ECExplicitTriNamedCurve);
22d461
@@ -1427,7 +1427,7 @@ void cleanup_tests(void)
22d461
 {
22d461
 #ifndef OPENSSL_NO_EC
22d461
     OSSL_PARAM_free(ec_explicit_prime_params_nc);
22d461
-    OSSL_PARAM_free(ec_explicit_prime_params_explicit);
22d461
+/*    OSSL_PARAM_free(ec_explicit_prime_params_explicit);*/
22d461
     OSSL_PARAM_BLD_free(bld_prime_nc);
22d461
     OSSL_PARAM_BLD_free(bld_prime);
22d461
 # ifndef OPENSSL_NO_EC2M
22d461
@@ -1449,7 +1449,7 @@ void cleanup_tests(void)
22d461
 #ifndef OPENSSL_NO_EC
22d461
     FREE_DOMAIN_KEYS(EC);
22d461
     FREE_DOMAIN_KEYS(ECExplicitPrimeNamedCurve);
22d461
-    FREE_DOMAIN_KEYS(ECExplicitPrime2G);
22d461
+/*    FREE_DOMAIN_KEYS(ECExplicitPrime2G);*/
22d461
 # ifndef OPENSSL_NO_EC2M
22d461
     FREE_DOMAIN_KEYS(ECExplicitTriNamedCurve);
22d461
     FREE_DOMAIN_KEYS(ECExplicitTri2G);
22d461
diff -up openssl-3.0.1/test/recipes/30-test_evp_data/evppkey_ecdsa.txt.disable_explicit_ec openssl-3.0.1/test/recipes/30-test_evp_data/evppkey_ecdsa.txt
22d461
--- openssl-3.0.1/test/recipes/30-test_evp_data/evppkey_ecdsa.txt.disable_explicit_ec	2022-03-25 11:20:50.920949208 +0100
22d461
+++ openssl-3.0.1/test/recipes/30-test_evp_data/evppkey_ecdsa.txt	2022-03-25 11:21:13.177147598 +0100
22d461
@@ -121,18 +121,6 @@ AAAA//////////+85vqtpxeehPO5ysL8YyVRAgEB
22d461
 3ev1gTwRBduzqqlwd54AUSgI+pjttW8zrWNitO8H1sf59MPWOESKxNtZ1+Nl
22d461
 -----END PRIVATE KEY-----
f57b16
 
22d461
-PrivateKey = EC_EXPLICIT
22d461
------BEGIN PRIVATE KEY-----
22d461
-MIIBeQIBADCCAQMGByqGSM49AgEwgfcCAQEwLAYHKoZIzj0BAQIhAP////8AAAAB
22d461
-AAAAAAAAAAAAAAAA////////////////MFsEIP////8AAAABAAAAAAAAAAAAAAAA
22d461
-///////////////8BCBaxjXYqjqT57PrvVV2mIa8ZR0GsMxTsPY7zjw+J9JgSwMV
22d461
-AMSdNgiG5wSTamZ44ROdJreBn36QBEEE5JcIvn36opqjEm/k59Al40rBAxWM2TPG
22d461
-l0L13Je51zHpfXQ9Z2o7IQicMXP4wSfJ0qCgg2bgydqoxlYrlLGuVQIhAP////8A
22d461
-AAAA//////////+85vqtpxeehPO5ysL8YyVRAgEBBG0wawIBAQQgec92jwduadCk
22d461
-OjoNRI+YT5Be5TkzZXzYCyTLkMOikDmhRANCAATtECEhQbLEaiUj/Wu0qjcr81lL
22d461
-46dx5zYgArz/iaSNJ3W80oO+F7v04jlQ7wxQzg96R0bwKiMeq5CcW9ZFt6xg
22d461
------END PRIVATE KEY-----
22d461
-
22d461
 PrivateKey = B-163
22d461
 -----BEGIN PRIVATE KEY-----
22d461
 MGMCAQAwEAYHKoZIzj0CAQYFK4EEAA8ETDBKAgEBBBUDnQW0mLiHVha/jqFznX/K