isaacpittman-hitachi / rpms / openssl

Forked from rpms/openssl 2 years ago
Clone

Blame SOURCES/0014-FIPS-disable-explicit-ec.patch

22d461
diff --git a/crypto/ec/ec_err.c b/crypto/ec/ec_err.c
22d461
index 9dc143c2ac69..4d6f2a76ad20 100644
22d461
--- a/crypto/ec/ec_err.c
22d461
+++ b/crypto/ec/ec_err.c
22d461
@@ -1,6 +1,6 @@
22d461
 /*
22d461
  * Generated by util/mkerr.pl DO NOT EDIT
22d461
- * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
22d461
+ * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
22d461
  *
22d461
  * Licensed under the Apache License 2.0 (the "License").  You may not use
22d461
  * this file except in compliance with the License.  You can obtain a copy
22d461
@@ -35,6 +35,8 @@ static const ERR_STRING_DATA EC_str_reasons[] = {
22d461
     "discriminant is zero"},
22d461
     {ERR_PACK(ERR_LIB_EC, 0, EC_R_EC_GROUP_NEW_BY_NAME_FAILURE),
22d461
     "ec group new by name failure"},
22d461
+    {ERR_PACK(ERR_LIB_EC, 0, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED),
22d461
+    "explicit params not supported"},
22d461
     {ERR_PACK(ERR_LIB_EC, 0, EC_R_FAILED_MAKING_PUBLIC_KEY),
22d461
     "failed making public key"},
22d461
     {ERR_PACK(ERR_LIB_EC, 0, EC_R_FIELD_TOO_LARGE), "field too large"},
22d461
diff --git a/crypto/ec/ec_lib.c b/crypto/ec/ec_lib.c
22d461
index 2aeab7e3b6b5..f686e45f899d 100644
22d461
--- a/crypto/ec/ec_lib.c
22d461
+++ b/crypto/ec/ec_lib.c
22d461
@@ -1387,6 +1387,7 @@ int EC_GROUP_get_pentanomial_basis(const EC_GROUP *group, unsigned int *k1,
22d461
 }
22d461
 #endif
22d461
 
22d461
+#ifndef FIPS_MODULE
22d461
 /*
22d461
  * Check if the explicit parameters group matches any built-in curves.
22d461
  *
22d461
@@ -1424,7 +1425,7 @@ static EC_GROUP *ec_group_explicit_to_named(const EC_GROUP *group,
22d461
          * parameters with one created from a named group.
22d461
          */
22d461
 
22d461
-#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
22d461
+# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128
22d461
         /*
22d461
          * NID_wap_wsg_idm_ecid_wtls12 and NID_secp224r1 are both aliases for
22d461
          * the same curve, we prefer the SECP nid when matching explicit
22d461
@@ -1432,7 +1433,7 @@ static EC_GROUP *ec_group_explicit_to_named(const EC_GROUP *group,
22d461
          */
22d461
         if (curve_name_nid == NID_wap_wsg_idm_ecid_wtls12)
22d461
             curve_name_nid = NID_secp224r1;
22d461
-#endif /* !def(OPENSSL_NO_EC_NISTP_64_GCC_128) */
22d461
+# endif /* !def(OPENSSL_NO_EC_NISTP_64_GCC_128) */
22d461
 
22d461
         ret_group = EC_GROUP_new_by_curve_name_ex(libctx, propq, curve_name_nid);
22d461
         if (ret_group == NULL)
22d461
@@ -1467,6 +1468,7 @@ static EC_GROUP *ec_group_explicit_to_named(const EC_GROUP *group,
22d461
     EC_GROUP_free(ret_group);
22d461
     return NULL;
22d461
 }
22d461
+#endif /* FIPS_MODULE */
22d461
 
22d461
 static EC_GROUP *group_new_from_name(const OSSL_PARAM *p,
22d461
                                      OSSL_LIB_CTX *libctx, const char *propq)
22d461
@@ -1536,9 +1538,13 @@ int ossl_ec_group_set_params(EC_GROUP *group, const OSSL_PARAM params[])
22d461
 EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
22d461
                                    OSSL_LIB_CTX *libctx, const char *propq)
22d461
 {
22d461
-    const OSSL_PARAM *ptmp, *pa, *pb;
22d461
+    const OSSL_PARAM *ptmp;
22d461
+    EC_GROUP *group = NULL;
22d461
+
22d461
+#ifndef FIPS_MODULE
22d461
+    const OSSL_PARAM *pa, *pb;
22d461
     int ok = 0;
22d461
-    EC_GROUP *group = NULL, *named_group = NULL;
22d461
+    EC_GROUP *named_group = NULL;
22d461
     BIGNUM *p = NULL, *a = NULL, *b = NULL, *order = NULL, *cofactor = NULL;
22d461
     EC_POINT *point = NULL;
22d461
     int field_bits = 0;
22d461
@@ -1546,6 +1552,7 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
22d461
     BN_CTX *bnctx = NULL;
22d461
     const unsigned char *buf = NULL;
22d461
     int encoding_flag = -1;
22d461
+#endif
22d461
 
22d461
     /* This is the simple named group case */
22d461
     ptmp = OSSL_PARAM_locate_const(params, OSSL_PKEY_PARAM_GROUP_NAME);
22d461
@@ -1559,6 +1566,10 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
22d461
         }
22d461
         return group;
22d461
     }
22d461
+#ifdef FIPS_MODULE
22d461
+    ERR_raise(ERR_LIB_EC, EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED);
22d461
+    return NULL;
22d461
+#else
22d461
     /* If it gets here then we are trying explicit parameters */
22d461
     bnctx = BN_CTX_new_ex(libctx);
22d461
     if (bnctx == NULL) {
22d461
@@ -1623,10 +1634,10 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
22d461
         /* create the EC_GROUP structure */
22d461
         group = EC_GROUP_new_curve_GFp(p, a, b, bnctx);
22d461
     } else {
22d461
-#ifdef OPENSSL_NO_EC2M
22d461
+# ifdef OPENSSL_NO_EC2M
22d461
         ERR_raise(ERR_LIB_EC, EC_R_GF2M_NOT_SUPPORTED);
22d461
         goto err;
22d461
-#else
22d461
+# else
22d461
         /* create the EC_GROUP structure */
22d461
         group = EC_GROUP_new_curve_GF2m(p, a, b, NULL);
22d461
         if (group != NULL) {
22d461
@@ -1636,7 +1647,7 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
22d461
                 goto err;
22d461
             }
22d461
         }
22d461
-#endif /* OPENSSL_NO_EC2M */
22d461
+# endif /* OPENSSL_NO_EC2M */
22d461
     }
22d461
 
22d461
     if (group == NULL) {
22d461
@@ -1733,4 +1744,5 @@ EC_GROUP *EC_GROUP_new_from_params(const OSSL_PARAM params[],
22d461
     BN_CTX_free(bnctx);
22d461
 
22d461
     return group;
22d461
+#endif /* FIPS_MODULE */
22d461
 }
22d461
diff --git a/crypto/err/openssl.txt b/crypto/err/openssl.txt
22d461
index c4a94f955905..41df7127403c 100644
22d461
--- a/crypto/err/openssl.txt
22d461
+++ b/crypto/err/openssl.txt
22d461
@@ -553,6 +553,7 @@ EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING:159:curve does not support signing
22d461
 EC_R_DECODE_ERROR:142:decode error
22d461
 EC_R_DISCRIMINANT_IS_ZERO:118:discriminant is zero
22d461
 EC_R_EC_GROUP_NEW_BY_NAME_FAILURE:119:ec group new by name failure
22d461
+EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED:127:explicit params not supported
22d461
 EC_R_FAILED_MAKING_PUBLIC_KEY:166:failed making public key
22d461
 EC_R_FIELD_TOO_LARGE:143:field too large
22d461
 EC_R_GF2M_NOT_SUPPORTED:147:gf2m not supported
22d461
diff --git a/include/crypto/ecerr.h b/include/crypto/ecerr.h
22d461
index 07b6c7aa62dd..4658ae8fb2cd 100644
22d461
--- a/include/crypto/ecerr.h
22d461
+++ b/include/crypto/ecerr.h
22d461
@@ -1,6 +1,6 @@
22d461
 /*
22d461
  * Generated by util/mkerr.pl DO NOT EDIT
22d461
- * Copyright 2020-2021 The OpenSSL Project Authors. All Rights Reserved.
22d461
+ * Copyright 2020-2022 The OpenSSL Project Authors. All Rights Reserved.
22d461
  *
22d461
  * Licensed under the Apache License 2.0 (the "License").  You may not use
22d461
  * this file except in compliance with the License.  You can obtain a copy
22d461
diff --git a/include/openssl/ecerr.h b/include/openssl/ecerr.h
22d461
index 49088d208b2c..46405ac62d91 100644
22d461
--- a/include/openssl/ecerr.h
22d461
+++ b/include/openssl/ecerr.h
22d461
@@ -1,6 +1,6 @@
22d461
 /*
22d461
  * Generated by util/mkerr.pl DO NOT EDIT
22d461
- * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved.
22d461
+ * Copyright 1995-2022 The OpenSSL Project Authors. All Rights Reserved.
22d461
  *
22d461
  * Licensed under the Apache License 2.0 (the "License").  You may not use
22d461
  * this file except in compliance with the License.  You can obtain a copy
22d461
@@ -35,6 +35,7 @@
22d461
 #  define EC_R_DECODE_ERROR                                142
22d461
 #  define EC_R_DISCRIMINANT_IS_ZERO                        118
22d461
 #  define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE                119
22d461
+#  define EC_R_EXPLICIT_PARAMS_NOT_SUPPORTED               127
22d461
 #  define EC_R_FAILED_MAKING_PUBLIC_KEY                    166
22d461
 #  define EC_R_FIELD_TOO_LARGE                             143
22d461
 #  define EC_R_GF2M_NOT_SUPPORTED                          147
22d461
diff --git a/test/endecode_test.c b/test/endecode_test.c
22d461
index 0c33dff0ee2b..3d78bea50ea3 100644
22d461
--- a/test/endecode_test.c
22d461
+++ b/test/endecode_test.c
22d461
@@ -147,6 +147,7 @@ typedef int (checker)(const char *file, const int line,
22d461
 typedef void (dumper)(const char *label, const void *data, size_t data_len);
22d461
 
22d461
 #define FLAG_DECODE_WITH_TYPE   0x0001
22d461
+#define FLAG_FAIL_IF_FIPS       0x0002
22d461
 
22d461
 static int test_encode_decode(const char *file, const int line,
22d461
                               const char *type, EVP_PKEY *pkey,
22d461
@@ -170,8 +171,19 @@ static int test_encode_decode(const char *file, const int line,
22d461
      * dumping purposes.
22d461
      */
22d461
     if (!TEST_true(encode_cb(file, line, &encoded, &encoded_len, pkey, selection,
22d461
-                             output_type, output_structure, pass, pcipher))
22d461
-        || !TEST_true(check_cb(file, line, type, encoded, encoded_len))
22d461
+                             output_type, output_structure, pass, pcipher)))
22d461
+        goto end;
22d461
+
22d461
+    if ((flags & FLAG_FAIL_IF_FIPS) != 0 && is_fips) {
22d461
+        if (TEST_false(decode_cb(file, line, (void **)&pkey2, encoded,
22d461
+                                  encoded_len, output_type, output_structure,
22d461
+                                  (flags & FLAG_DECODE_WITH_TYPE ? type : NULL),
22d461
+                                  selection, pass)))
22d461
+            ok = 1;
22d461
+        goto end;
22d461
+    }
22d461
+
22d461
+    if (!TEST_true(check_cb(file, line, type, encoded, encoded_len))
22d461
         || !TEST_true(decode_cb(file, line, (void **)&pkey2, encoded, encoded_len,
22d461
                                 output_type, output_structure,
22d461
                                 (flags & FLAG_DECODE_WITH_TYPE ? type : NULL),
22d461
@@ -525,7 +537,7 @@ static int check_unprotected_PKCS8_DER(const char *file, const int line,
22d461
     return ok;
22d461
 }
22d461
 
22d461
-static int test_unprotected_via_DER(const char *type, EVP_PKEY *key)
22d461
+static int test_unprotected_via_DER(const char *type, EVP_PKEY *key, int fips)
22d461
 {
22d461
     return test_encode_decode(__FILE__, __LINE__, type, key,
22d461
                               OSSL_KEYMGMT_SELECT_KEYPAIR
22d461
@@ -533,7 +545,7 @@ static int test_unprotected_via_DER(const char *type, EVP_PKEY *key)
22d461
                               "DER", "PrivateKeyInfo", NULL, NULL,
22d461
                               encode_EVP_PKEY_prov, decode_EVP_PKEY_prov,
22d461
                               test_mem, check_unprotected_PKCS8_DER,
22d461
-                              dump_der, 0);
22d461
+                              dump_der, fips ? 0 : FLAG_FAIL_IF_FIPS);
22d461
 }
22d461
 
22d461
 static int check_unprotected_PKCS8_PEM(const char *file, const int line,
22d461
@@ -547,7 +559,7 @@ static int check_unprotected_PKCS8_PEM(const char *file, const int line,
22d461
                         sizeof(expected_pem_header) - 1);
22d461
 }
22d461
 
22d461
-static int test_unprotected_via_PEM(const char *type, EVP_PKEY *key)
22d461
+static int test_unprotected_via_PEM(const char *type, EVP_PKEY *key, int fips)
22d461
 {
22d461
     return test_encode_decode(__FILE__, __LINE__, type, key,
22d461
                               OSSL_KEYMGMT_SELECT_KEYPAIR
22d461
@@ -555,7 +567,7 @@ static int test_unprotected_via_PEM(const char *type, EVP_PKEY *key)
22d461
                               "PEM", "PrivateKeyInfo", NULL, NULL,
22d461
                               encode_EVP_PKEY_prov, decode_EVP_PKEY_prov,
22d461
                               test_text, check_unprotected_PKCS8_PEM,
22d461
-                              dump_pem, 0);
22d461
+                              dump_pem, fips ? 0 : FLAG_FAIL_IF_FIPS);
22d461
 }
22d461
 
22d461
 #ifndef OPENSSL_NO_KEYPARAMS
22d461
@@ -702,7 +714,7 @@ static int check_protected_PKCS8_DER(const char *file, const int line,
22d461
     return ok;
22d461
 }
22d461
 
22d461
-static int test_protected_via_DER(const char *type, EVP_PKEY *key)
22d461
+static int test_protected_via_DER(const char *type, EVP_PKEY *key, int fips)
22d461
 {
22d461
     return test_encode_decode(__FILE__, __LINE__, type, key,
22d461
                               OSSL_KEYMGMT_SELECT_KEYPAIR
22d461
@@ -711,7 +723,7 @@ static int test_protected_via_DER(const char *type, EVP_PKEY *key)
22d461
                               pass, pass_cipher,
22d461
                               encode_EVP_PKEY_prov, decode_EVP_PKEY_prov,
22d461
                               test_mem, check_protected_PKCS8_DER,
22d461
-                              dump_der, 0);
22d461
+                              dump_der, fips ? 0 : FLAG_FAIL_IF_FIPS);
22d461
 }
22d461
 
22d461
 static int check_protected_PKCS8_PEM(const char *file, const int line,
22d461
@@ -725,7 +737,7 @@ static int check_protected_PKCS8_PEM(const char *file, const int line,
22d461
                         sizeof(expected_pem_header) - 1);
22d461
 }
22d461
 
22d461
-static int test_protected_via_PEM(const char *type, EVP_PKEY *key)
22d461
+static int test_protected_via_PEM(const char *type, EVP_PKEY *key, int fips)
22d461
 {
22d461
     return test_encode_decode(__FILE__, __LINE__, type, key,
22d461
                               OSSL_KEYMGMT_SELECT_KEYPAIR
22d461
@@ -734,7 +746,7 @@ static int test_protected_via_PEM(const char *type, EVP_PKEY *key)
22d461
                               pass, pass_cipher,
22d461
                               encode_EVP_PKEY_prov, decode_EVP_PKEY_prov,
22d461
                               test_text, check_protected_PKCS8_PEM,
22d461
-                              dump_pem, 0);
22d461
+                              dump_pem, fips ? 0 : FLAG_FAIL_IF_FIPS);
22d461
 }
22d461
 
22d461
 static int check_protected_legacy_PEM(const char *file, const int line,
22d461
@@ -795,14 +807,15 @@ static int check_public_DER(const char *file, const int line,
22d461
     return ok;
22d461
 }
22d461
 
22d461
-static int test_public_via_DER(const char *type, EVP_PKEY *key)
22d461
+static int test_public_via_DER(const char *type, EVP_PKEY *key, int fips)
22d461
 {
22d461
     return test_encode_decode(__FILE__, __LINE__, type, key,
22d461
                               OSSL_KEYMGMT_SELECT_PUBLIC_KEY
22d461
                               | OSSL_KEYMGMT_SELECT_ALL_PARAMETERS,
22d461
                               "DER", "SubjectPublicKeyInfo", NULL, NULL,
22d461
                               encode_EVP_PKEY_prov, decode_EVP_PKEY_prov,
22d461
-                              test_mem, check_public_DER, dump_der, 0);
22d461
+                              test_mem, check_public_DER, dump_der,
22d461
+                              fips ? 0 : FLAG_FAIL_IF_FIPS);
22d461
 }
22d461
 
22d461
 static int check_public_PEM(const char *file, const int line,
22d461
@@ -816,14 +829,15 @@ static int check_public_PEM(const char *file, const int line,
22d461
                      sizeof(expected_pem_header) - 1);
22d461
 }
22d461
 
22d461
-static int test_public_via_PEM(const char *type, EVP_PKEY *key)
22d461
+static int test_public_via_PEM(const char *type, EVP_PKEY *key, int fips)
22d461
 {
22d461
     return test_encode_decode(__FILE__, __LINE__, type, key,
22d461
                               OSSL_KEYMGMT_SELECT_PUBLIC_KEY
22d461
                               | OSSL_KEYMGMT_SELECT_ALL_PARAMETERS,
22d461
                               "PEM", "SubjectPublicKeyInfo", NULL, NULL,
22d461
                               encode_EVP_PKEY_prov, decode_EVP_PKEY_prov,
22d461
-                              test_text, check_public_PEM, dump_pem, 0);
22d461
+                              test_text, check_public_PEM, dump_pem,
22d461
+                              fips ? 0 : FLAG_FAIL_IF_FIPS);
22d461
 }
22d461
 
22d461
 static int check_public_MSBLOB(const char *file, const int line,
22d461
@@ -868,30 +882,30 @@ static int test_public_via_MSBLOB(const char *type, EVP_PKEY *key)
22d461
     EVP_PKEY_free(template_##KEYTYPE);                                  \
22d461
     EVP_PKEY_free(key_##KEYTYPE)
22d461
 
22d461
-#define IMPLEMENT_TEST_SUITE(KEYTYPE, KEYTYPEstr)                       \
22d461
+#define IMPLEMENT_TEST_SUITE(KEYTYPE, KEYTYPEstr, fips)                 \
22d461
     static int test_unprotected_##KEYTYPE##_via_DER(void)               \
22d461
     {                                                                   \
22d461
-        return test_unprotected_via_DER(KEYTYPEstr, key_##KEYTYPE);     \
22d461
+        return test_unprotected_via_DER(KEYTYPEstr, key_##KEYTYPE, fips); \
22d461
     }                                                                   \
22d461
     static int test_unprotected_##KEYTYPE##_via_PEM(void)               \
22d461
     {                                                                   \
22d461
-        return test_unprotected_via_PEM(KEYTYPEstr, key_##KEYTYPE);     \
22d461
+        return test_unprotected_via_PEM(KEYTYPEstr, key_##KEYTYPE, fips); \
22d461
     }                                                                   \
22d461
     static int test_protected_##KEYTYPE##_via_DER(void)                 \
22d461
     {                                                                   \
22d461
-        return test_protected_via_DER(KEYTYPEstr, key_##KEYTYPE);       \
22d461
+        return test_protected_via_DER(KEYTYPEstr, key_##KEYTYPE, fips); \
22d461
     }                                                                   \
22d461
     static int test_protected_##KEYTYPE##_via_PEM(void)                 \
22d461
     {                                                                   \
22d461
-        return test_protected_via_PEM(KEYTYPEstr, key_##KEYTYPE);       \
22d461
+        return test_protected_via_PEM(KEYTYPEstr, key_##KEYTYPE, fips); \
22d461
     }                                                                   \
22d461
     static int test_public_##KEYTYPE##_via_DER(void)                    \
22d461
     {                                                                   \
22d461
-        return test_public_via_DER(KEYTYPEstr, key_##KEYTYPE);          \
22d461
+        return test_public_via_DER(KEYTYPEstr, key_##KEYTYPE, fips);    \
22d461
     }                                                                   \
22d461
     static int test_public_##KEYTYPE##_via_PEM(void)                    \
22d461
     {                                                                   \
22d461
-        return test_public_via_PEM(KEYTYPEstr, key_##KEYTYPE);          \
22d461
+        return test_public_via_PEM(KEYTYPEstr, key_##KEYTYPE, fips);    \
22d461
     }
22d461
 
22d461
 #define ADD_TEST_SUITE(KEYTYPE)                                 \
22d461
@@ -965,10 +979,10 @@ static int test_public_via_MSBLOB(const char *type, EVP_PKEY *key)
22d461
 
22d461
 #ifndef OPENSSL_NO_DH
22d461
 DOMAIN_KEYS(DH);
22d461
-IMPLEMENT_TEST_SUITE(DH, "DH")
22d461
+IMPLEMENT_TEST_SUITE(DH, "DH", 1)
22d461
 IMPLEMENT_TEST_SUITE_PARAMS(DH, "DH")
22d461
 DOMAIN_KEYS(DHX);
22d461
-IMPLEMENT_TEST_SUITE(DHX, "X9.42 DH")
22d461
+IMPLEMENT_TEST_SUITE(DHX, "X9.42 DH", 1)
22d461
 IMPLEMENT_TEST_SUITE_PARAMS(DHX, "X9.42 DH")
22d461
 /*
22d461
  * DH has no support for PEM_write_bio_PrivateKey_traditional(),
22d461
@@ -977,7 +991,7 @@ IMPLEMENT_TEST_SUITE_PARAMS(DHX, "X9.42 DH")
22d461
 #endif
22d461
 #ifndef OPENSSL_NO_DSA
22d461
 DOMAIN_KEYS(DSA);
22d461
-IMPLEMENT_TEST_SUITE(DSA, "DSA")
22d461
+IMPLEMENT_TEST_SUITE(DSA, "DSA", 1)
22d461
 IMPLEMENT_TEST_SUITE_PARAMS(DSA, "DSA")
22d461
 IMPLEMENT_TEST_SUITE_LEGACY(DSA, "DSA")
22d461
 IMPLEMENT_TEST_SUITE_MSBLOB(DSA, "DSA")
22d461
@@ -988,41 +1002,41 @@ IMPLEMENT_TEST_SUITE_PROTECTED_PVK(DSA, "DSA")
22d461
 #endif
22d461
 #ifndef OPENSSL_NO_EC
22d461
 DOMAIN_KEYS(EC);
22d461
-IMPLEMENT_TEST_SUITE(EC, "EC")
22d461
+IMPLEMENT_TEST_SUITE(EC, "EC", 1)
22d461
 IMPLEMENT_TEST_SUITE_PARAMS(EC, "EC")
22d461
 IMPLEMENT_TEST_SUITE_LEGACY(EC, "EC")
22d461
 DOMAIN_KEYS(ECExplicitPrimeNamedCurve);
22d461
-IMPLEMENT_TEST_SUITE(ECExplicitPrimeNamedCurve, "EC")
22d461
+IMPLEMENT_TEST_SUITE(ECExplicitPrimeNamedCurve, "EC", 1)
22d461
 IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitPrimeNamedCurve, "EC")
22d461
 /*DOMAIN_KEYS(ECExplicitPrime2G);*/
22d461
-/*IMPLEMENT_TEST_SUITE(ECExplicitPrime2G, "EC")*/
22d461
+/*IMPLEMENT_TEST_SUITE(ECExplicitPrime2G, "EC", 0)*/
22d461
 /*IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitPrime2G, "EC")*/
22d461
 # ifndef OPENSSL_NO_EC2M
22d461
 DOMAIN_KEYS(ECExplicitTriNamedCurve);
22d461
-IMPLEMENT_TEST_SUITE(ECExplicitTriNamedCurve, "EC")
22d461
+IMPLEMENT_TEST_SUITE(ECExplicitTriNamedCurve, "EC", 1)
22d461
 IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitTriNamedCurve, "EC")
22d461
 DOMAIN_KEYS(ECExplicitTri2G);
22d461
-IMPLEMENT_TEST_SUITE(ECExplicitTri2G, "EC")
22d461
+IMPLEMENT_TEST_SUITE(ECExplicitTri2G, "EC", 0)
22d461
 IMPLEMENT_TEST_SUITE_LEGACY(ECExplicitTri2G, "EC")
22d461
 # endif
22d461
 KEYS(ED25519);
22d461
-IMPLEMENT_TEST_SUITE(ED25519, "ED25519")
22d461
+IMPLEMENT_TEST_SUITE(ED25519, "ED25519", 1)
22d461
 KEYS(ED448);
22d461
-IMPLEMENT_TEST_SUITE(ED448, "ED448")
22d461
+IMPLEMENT_TEST_SUITE(ED448, "ED448", 1)
22d461
 KEYS(X25519);
22d461
-IMPLEMENT_TEST_SUITE(X25519, "X25519")
22d461
+IMPLEMENT_TEST_SUITE(X25519, "X25519", 1)
22d461
 KEYS(X448);
22d461
-IMPLEMENT_TEST_SUITE(X448, "X448")
22d461
+IMPLEMENT_TEST_SUITE(X448, "X448", 1)
22d461
 /*
22d461
  * ED25519, ED448, X25519 and X448 have no support for
22d461
  * PEM_write_bio_PrivateKey_traditional(), so no legacy tests.
22d461
  */
22d461
 #endif
22d461
 KEYS(RSA);
22d461
-IMPLEMENT_TEST_SUITE(RSA, "RSA")
22d461
+IMPLEMENT_TEST_SUITE(RSA, "RSA", 1)
22d461
 IMPLEMENT_TEST_SUITE_LEGACY(RSA, "RSA")
22d461
 KEYS(RSA_PSS);
22d461
-IMPLEMENT_TEST_SUITE(RSA_PSS, "RSA-PSS")
22d461
+IMPLEMENT_TEST_SUITE(RSA_PSS, "RSA-PSS", 1)
22d461
 /*
22d461
  * RSA-PSS has no support for PEM_write_bio_PrivateKey_traditional(),
22d461
  * so no legacy tests.