[openssl-commits] [openssl] master update

Matt Caswell matt at openssl.org
Mon Mar 5 11:48:15 UTC 2018


The branch master has been updated
       via  c04c60217ab748effc5a07bf098abda2045c927b (commit)
       via  fe93b010e78ab60bc222cf4cbbf3cdfcbecffd91 (commit)
       via  0e1d6ecf37ea33ad963249cdb5efebeb04299033 (commit)
      from  24c346086d9e1ad5aef1afac8145b32638f3d17c (commit)


- Log -----------------------------------------------------------------
commit c04c60217ab748effc5a07bf098abda2045c927b
Author: Matt Caswell <matt at openssl.org>
Date:   Tue Feb 27 17:40:15 2018 +0000

    Update CHANGES for X448/Ed448 support in libssl
    
    Reviewed-by: Rich Salz <rsalz at openssl.org>
    Reviewed-by: Kurt Roeckx <kurt at roeckx.be>
    (Merged from https://github.com/openssl/openssl/pull/5470)

commit fe93b010e78ab60bc222cf4cbbf3cdfcbecffd91
Author: Matt Caswell <matt at openssl.org>
Date:   Tue Feb 27 13:02:00 2018 +0000

    Update tests for TLS Ed448
    
    Reviewed-by: Rich Salz <rsalz at openssl.org>
    Reviewed-by: Kurt Roeckx <kurt at roeckx.be>
    (Merged from https://github.com/openssl/openssl/pull/5470)

commit 0e1d6ecf37ea33ad963249cdb5efebeb04299033
Author: Matt Caswell <matt at openssl.org>
Date:   Tue Feb 27 10:12:02 2018 +0000

    Add X448/Ed448 support to libssl
    
    Reviewed-by: Rich Salz <rsalz at openssl.org>
    Reviewed-by: Kurt Roeckx <kurt at roeckx.be>
    (Merged from https://github.com/openssl/openssl/pull/5470)

-----------------------------------------------------------------------

Summary of changes:
 CHANGES                               |    4 +-
 apps/s_cb.c                           |    3 +
 ssl/ssl_cert_table.h                  |    3 +-
 ssl/ssl_lib.c                         |    6 +
 ssl/ssl_locl.h                        |    4 +-
 ssl/t1_lib.c                          |   10 +-
 ssl/t1_trce.c                         |    2 +
 test/certs/client-ed448-cert.pem      |   15 +
 test/certs/client-ed448-key.pem       |    4 +
 test/certs/mkcert.sh                  |    1 +
 test/certs/server-ed448-cert.pem      |   14 +
 test/certs/server-ed448-key.pem       |    4 +
 test/clienthellotest.c                |   15 +-
 test/ecdsatest.c                      |    2 +-
 test/ectest.c                         |    6 -
 test/ossl_shim/ossl_shim.cc           |    2 +-
 test/ssl-tests/14-curves.conf         |   31 +-
 test/ssl-tests/14-curves.conf.in      |    2 +-
 test/ssl-tests/20-cert-select.conf    | 1006 ++++++++++++++++++++-------------
 test/ssl-tests/20-cert-select.conf.in |  126 ++++-
 test/ssl_cert_table_internal_test.c   |    2 +
 21 files changed, 855 insertions(+), 407 deletions(-)
 create mode 100644 test/certs/client-ed448-cert.pem
 create mode 100644 test/certs/client-ed448-key.pem
 create mode 100644 test/certs/server-ed448-cert.pem
 create mode 100644 test/certs/server-ed448-key.pem

diff --git a/CHANGES b/CHANGES
index 415260f..5e5abb9 100644
--- a/CHANGES
+++ b/CHANGES
@@ -9,8 +9,8 @@
 
  Changes between 1.1.0g and 1.1.1 [xx XXX xxxx]
 
-  *) Added support for X448 and Ed448. Currently this is only supported in
-     libcrypto (not libssl). Heavily based on original work by Mike Hamburg.
+  *) Added support for X448 and Ed448. Heavily based on original work by
+     Mike Hamburg.
      [Matt Caswell]
 
   *) Extend OSSL_STORE with capabilities to search and to narrow the set of
diff --git a/apps/s_cb.c b/apps/s_cb.c
index 2303109..ae15f55 100644
--- a/apps/s_cb.c
+++ b/apps/s_cb.c
@@ -231,6 +231,9 @@ static const char *get_sigtype(int nid)
      case NID_ED25519:
         return "Ed25519";
 
+     case NID_ED448:
+        return "Ed448";
+
     default:
         return NULL;
     }
diff --git a/ssl/ssl_cert_table.h b/ssl/ssl_cert_table.h
index fd6a1ad..1376441 100644
--- a/ssl/ssl_cert_table.h
+++ b/ssl/ssl_cert_table.h
@@ -18,5 +18,6 @@ static const SSL_CERT_LOOKUP ssl_cert_info [] = {
     {NID_id_GostR3410_2001, SSL_aGOST01}, /* SSL_PKEY_GOST01 */
     {NID_id_GostR3410_2012_256, SSL_aGOST12}, /* SSL_PKEY_GOST12_256 */
     {NID_id_GostR3410_2012_512, SSL_aGOST12}, /* SSL_PKEY_GOST12_512 */
-    {EVP_PKEY_ED25519, SSL_aECDSA} /* SSL_PKEY_ED25519 */
+    {EVP_PKEY_ED25519, SSL_aECDSA}, /* SSL_PKEY_ED25519 */
+    {EVP_PKEY_ED448, SSL_aECDSA} /* SSL_PKEY_ED448 */
 };
diff --git a/ssl/ssl_lib.c b/ssl/ssl_lib.c
index 8804c52..accef0c 100644
--- a/ssl/ssl_lib.c
+++ b/ssl/ssl_lib.c
@@ -3258,6 +3258,12 @@ void ssl_set_masks(SSL *s)
             && pvalid[SSL_PKEY_ED25519] & CERT_PKEY_EXPLICIT_SIGN
             && TLS1_get_version(s) == TLS1_2_VERSION)
             mask_a |= SSL_aECDSA;
+
+    /* Allow Ed448 for TLS 1.2 if peer supports it */
+    if (!(mask_a & SSL_aECDSA) && ssl_has_cert(s, SSL_PKEY_ED448)
+            && pvalid[SSL_PKEY_ED448] & CERT_PKEY_EXPLICIT_SIGN
+            && TLS1_get_version(s) == TLS1_2_VERSION)
+            mask_a |= SSL_aECDSA;
 #endif
 
 #ifndef OPENSSL_NO_EC
diff --git a/ssl/ssl_locl.h b/ssl/ssl_locl.h
index 0dd2a7b..f179efa 100644
--- a/ssl/ssl_locl.h
+++ b/ssl/ssl_locl.h
@@ -381,7 +381,8 @@
 # define SSL_PKEY_GOST12_256     5
 # define SSL_PKEY_GOST12_512     6
 # define SSL_PKEY_ED25519        7
-# define SSL_PKEY_NUM            8
+# define SSL_PKEY_ED448          8
+# define SSL_PKEY_NUM            9
 /*
  * Pseudo-constant. GOST cipher suites can use different certs for 1
  * SSL_CIPHER. So let's see which one we have in fact.
@@ -1962,6 +1963,7 @@ typedef enum downgrade_en {
 #define TLSEXT_SIGALG_gostr34102001_gostr3411                   0xeded
 
 #define TLSEXT_SIGALG_ed25519                                   0x0807
+#define TLSEXT_SIGALG_ed448                                     0x0808
 
 /* Known PSK key exchange modes */
 #define TLSEXT_KEX_MODE_KE                                      0x00
diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c
index 57f9559..8b0d9aa 100644
--- a/ssl/t1_lib.c
+++ b/ssl/t1_lib.c
@@ -165,6 +165,7 @@ static const TLS_GROUP_INFO nid_list[] = {
     {NID_brainpoolP384r1, 192, TLS_CURVE_PRIME}, /* brainpoolP384r1 (27) */
     {NID_brainpoolP512r1, 256, TLS_CURVE_PRIME}, /* brainpool512r1 (28) */
     {EVP_PKEY_X25519, 128, TLS_CURVE_CUSTOM}, /* X25519 (29) */
+    {EVP_PKEY_X448, 224, TLS_CURVE_CUSTOM}, /* X448 (30) */
 };
 
 static const unsigned char ecformats_default[] = {
@@ -177,6 +178,7 @@ static const unsigned char ecformats_default[] = {
 static const uint16_t eccurves_default[] = {
     29,                      /* X25519 (29) */
     23,                      /* secp256r1 (23) */
+    30,                      /* X448 (30) */
     25,                      /* secp521r1 (25) */
     24,                      /* secp384r1 (24) */
 };
@@ -622,6 +624,7 @@ static const uint16_t tls12_sigalgs[] = {
     TLSEXT_SIGALG_ecdsa_secp384r1_sha384,
     TLSEXT_SIGALG_ecdsa_secp521r1_sha512,
     TLSEXT_SIGALG_ed25519,
+    TLSEXT_SIGALG_ed448,
 #endif
 
     TLSEXT_SIGALG_rsa_pss_pss_sha256,
@@ -672,6 +675,9 @@ static const SIGALG_LOOKUP sigalg_lookup_tbl[] = {
     {"ed25519", TLSEXT_SIGALG_ed25519,
      NID_undef, -1, EVP_PKEY_ED25519, SSL_PKEY_ED25519,
      NID_undef, NID_undef},
+    {"ed448", TLSEXT_SIGALG_ed448,
+     NID_undef, -1, EVP_PKEY_ED448, SSL_PKEY_ED448,
+     NID_undef, NID_undef},
     {NULL, TLSEXT_SIGALG_ecdsa_sha224,
      NID_sha224, SSL_MD_SHA224_IDX, EVP_PKEY_EC, SSL_PKEY_ECC,
      NID_ecdsa_with_SHA224, NID_undef},
@@ -764,7 +770,8 @@ static const uint16_t tls_default_sigalg[] = {
     TLSEXT_SIGALG_gostr34102001_gostr3411, /* SSL_PKEY_GOST01 */
     TLSEXT_SIGALG_gostr34102012_256_gostr34112012_256, /* SSL_PKEY_GOST12_256 */
     TLSEXT_SIGALG_gostr34102012_512_gostr34112012_512, /* SSL_PKEY_GOST12_512 */
-    0 /* SSL_PKEY_ED25519 */
+    0, /* SSL_PKEY_ED25519 */
+    0, /* SSL_PKEY_ED448 */
 };
 
 /* Lookup TLS signature algorithm */
@@ -2180,6 +2187,7 @@ void tls1_set_cert_validity(SSL *s)
     tls1_check_chain(s, NULL, NULL, NULL, SSL_PKEY_GOST12_256);
     tls1_check_chain(s, NULL, NULL, NULL, SSL_PKEY_GOST12_512);
     tls1_check_chain(s, NULL, NULL, NULL, SSL_PKEY_ED25519);
+    tls1_check_chain(s, NULL, NULL, NULL, SSL_PKEY_ED448);
 }
 
 /* User level utility function to check a chain is suitable */
diff --git a/ssl/t1_trce.c b/ssl/t1_trce.c
index fa975be..ba52258 100644
--- a/ssl/t1_trce.c
+++ b/ssl/t1_trce.c
@@ -515,6 +515,7 @@ static const ssl_trace_tbl ssl_groups_tbl[] = {
     {27, "brainpoolP384r1"},
     {28, "brainpoolP512r1"},
     {29, "ecdh_x25519"},
+    {30, "ecdh_x448"},
     {256, "ffdhe2048"},
     {257, "ffdhe3072"},
     {258, "ffdhe4096"},
@@ -544,6 +545,7 @@ static const ssl_trace_tbl ssl_sigalg_tbl[] = {
     {TLSEXT_SIGALG_ecdsa_secp521r1_sha512, "ecdsa_secp521r1_sha512"},
     {TLSEXT_SIGALG_ecdsa_sha224, "ecdsa_sha224"},
     {TLSEXT_SIGALG_ed25519, "ed25519"},
+    {TLSEXT_SIGALG_ed448, "ed448"},
     {TLSEXT_SIGALG_ecdsa_sha1, "ecdsa_sha1"},
     {TLSEXT_SIGALG_rsa_pss_rsae_sha256, "rsa_pss_rsae_sha256"},
     {TLSEXT_SIGALG_rsa_pss_rsae_sha384, "rsa_pss_rsae_sha384"},
diff --git a/test/certs/client-ed448-cert.pem b/test/certs/client-ed448-cert.pem
new file mode 100644
index 0000000..3d6d5e8
--- /dev/null
+++ b/test/certs/client-ed448-cert.pem
@@ -0,0 +1,15 @@
+-----BEGIN CERTIFICATE-----
+MIICQDCCASigAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE4MDIyNzE3MTAxN1oYDzIxMTgwMjI4MTcxMDE3WjAXMRUwEwYDVQQD
+DAxDbGllbnQtRWQ0NDgwQzAFBgMrZXEDOgB4bFbdmw9IviAHXKt/2/hRDaiEr6JH
+bsLr3IPNQq3XIYxYh4AIPx3YffYW3xukHDGWTQ50dptQiwCjezB5MB0GA1UdDgQW
+BBTEno3ezhmTYZzGdD65nVRMp3f2hzAfBgNVHSMEGDAWgBSO9SWvHptrhD18gJrJ
+U5xNcvejUjAJBgNVHRMEAjAAMBMGA1UdJQQMMAoGCCsGAQUFBwMCMBcGA1UdEQQQ
+MA6CDENsaWVudC1FZDQ0ODANBgkqhkiG9w0BAQsFAAOCAQEAP2/y30iko57i8lUY
+ju9Vb4V0TCATKa+HNnzHG1jyWAgiWpPtHe269Cnb8AvdwWKVeppKkG6LeWHo3btP
+LOd8xEFhnklM4rPkxMYMCQ0lcw2xagbw3CW12mLs15N3QCjxSnA/kuuftzor9fRl
+gzazVh4Kf/jXtlRyBI6R4+bXSGgKhIipdBF5xWmTPvZBViWKxgysQuP1bNzw9AC4
+QMGm4ApOVuY9iE8dPYKgJUVGWc3d9l23fkd422kEgz5euK66HovjYaBj0S0kZhEZ
+tWUCRTcv4k40ke2jr8/Zm3Ugab09XWU2T98k/OvXu+Y0AlLMZp2ehC6wXObprEXv
+dY5URg==
+-----END CERTIFICATE-----
diff --git a/test/certs/client-ed448-key.pem b/test/certs/client-ed448-key.pem
new file mode 100644
index 0000000..ab4d7ff
--- /dev/null
+++ b/test/certs/client-ed448-key.pem
@@ -0,0 +1,4 @@
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOWmRn7GCRupyB1q/qQZ+h1lEt+TGtZSNJ5U+Saa+X+hk
+gWpeKJP9MTpw7kdMAeAhb6XlhCANH2zV9A==
+-----END PRIVATE KEY-----
diff --git a/test/certs/mkcert.sh b/test/certs/mkcert.sh
index 7048f27..1d4b503 100755
--- a/test/certs/mkcert.sh
+++ b/test/certs/mkcert.sh
@@ -55,6 +55,7 @@ key() {
                args=("${args[@]}" -pkeyopt ec_param_enc:named_curve);;
         dsa)  args=(-paramfile "$bits");;
         ed25519)  ;;
+        ed448)  ;;
         *) printf "Unsupported key algorithm: %s\n" "$alg" >&2; return 1;;
         esac
         stderr_onerror \
diff --git a/test/certs/server-ed448-cert.pem b/test/certs/server-ed448-cert.pem
new file mode 100644
index 0000000..740f275
--- /dev/null
+++ b/test/certs/server-ed448-cert.pem
@@ -0,0 +1,14 @@
+-----BEGIN CERTIFICATE-----
+MIICHTCCAQWgAwIBAgIBAjANBgkqhkiG9w0BAQsFADASMRAwDgYDVQQDDAdSb290
+IENBMCAXDTE4MDIyNzE1MDcxM1oYDzIxMTgwMjI4MTUwNzEzWjAQMQ4wDAYDVQQD
+DAVFZDQ0ODBDMAUGAytlcQM6ABBicYlhG1s3AoG5BFmY3r50lJzjQoER4zwuieEe
+QTvKxLEV06vGh79UWO6yQ5FxqmxvM1F/Xw7RAKNfMF0wHQYDVR0OBBYEFAwa1L4m
+3pwA8+IEJ7K/4izrjJIHMB8GA1UdIwQYMBaAFHB/Lq6DaFmYBCMqzes+F80k3QFJ
+MAkGA1UdEwQCMAAwEAYDVR0RBAkwB4IFRWQ0NDgwDQYJKoZIhvcNAQELBQADggEB
+AAugH2aE6VvArnOVjKBtalqtHlx+NCC3+S65sdWc9A9sNgI1ZiN7dn76TKn5d0T7
+NqV8nY1rwQg6WPGrCD6Eh63qhotytqYIxltppb4MOUJcz/Zf0ZwhB5bUfwNB//Ih
+5aZT86FpXVuyMnwUTWPcISJqpZiBv95yzZFMpniHFvecvV445ly4TFW5y6VURh40
+Tg4tMgjPTE7ADw+dX4FvnTWY3blxT1GzGxGvqWW4HgP8dOETnjmAwCzN0nUVmH9s
+7ybHORcSljcpe0XH6L/K7mbI+r8mVLsAoIzUeDwUdKKJZ2uGEtdhQDmJBp4EjOXE
+3qIn3wEQQ6ax4NIwkZihdLI=
+-----END CERTIFICATE-----
diff --git a/test/certs/server-ed448-key.pem b/test/certs/server-ed448-key.pem
new file mode 100644
index 0000000..25a750f
--- /dev/null
+++ b/test/certs/server-ed448-key.pem
@@ -0,0 +1,4 @@
+-----BEGIN PRIVATE KEY-----
+MEcCAQAwBQYDK2VxBDsEOTiHqANC9pFHbs8VAeqZ52cwKi0jPTSM5GjsKW4vbgG6
+BMFSdURqGj2FD02H7xsyrR20pIXI1GbE+A==
+-----END PRIVATE KEY-----
diff --git a/test/clienthellotest.c b/test/clienthellotest.c
index 4f6bd40..5cff519 100644
--- a/test/clienthellotest.c
+++ b/test/clienthellotest.c
@@ -111,12 +111,19 @@ static int test_client_hello(int currtest)
          * F5_WORKAROUND_MIN_MSG_LEN bytes long - meaning padding will be
          * needed.
          */
-        if (currtest == TEST_ADD_PADDING
-                && (!TEST_false(SSL_CTX_set_alpn_protos(ctx,
+        if (currtest == TEST_ADD_PADDING) {
+             if (!TEST_false(SSL_CTX_set_alpn_protos(ctx,
                                     (unsigned char *)alpn_prots,
-                                    sizeof(alpn_prots) - 1))))
+                                    sizeof(alpn_prots) - 1)))
+                goto end;
+        /*
+         * Otherwise we need to make sure we have a small enough message to
+         * not need padding.
+         */
+        } else if (!TEST_true(SSL_CTX_set_cipher_list(ctx,
+                              "AES128-SHA:TLS13-AES-128-GCM-SHA256"))) {
             goto end;
-
+        }
         break;
 
     default:
diff --git a/test/ecdsatest.c b/test/ecdsatest.c
index e53afdf..6a15b3a 100644
--- a/test/ecdsatest.c
+++ b/test/ecdsatest.c
@@ -239,7 +239,7 @@ static int test_builtin(void)
         unsigned char dirt, offset;
 
         nid = curves[n].nid;
-        if (nid == NID_ipsec4 || nid == NID_X25519)
+        if (nid == NID_ipsec4)
             continue;
         /* create new ecdsa key (== EC_KEY) */
         if (!TEST_ptr(eckey = EC_KEY_new())
diff --git a/test/ectest.c b/test/ectest.c
index 9341752..e49920c 100644
--- a/test/ectest.c
+++ b/test/ectest.c
@@ -1152,12 +1152,6 @@ static int internal_curve_test_method(int n)
     int r, nid = curves[n].nid;
     EC_GROUP *group;
 
-    /*
-     * Skip for X25519 because low level operations such as EC_POINT_mul()
-     * are not supported for this curve
-     */
-    if (nid == NID_X25519)
-        return 1;
     if (!TEST_ptr(group = EC_GROUP_new_by_curve_name(nid))) {
         TEST_info("Curve %s failed\n", OBJ_nid2sn(nid));
         return 0;
diff --git a/test/ossl_shim/ossl_shim.cc b/test/ossl_shim/ossl_shim.cc
index 5ef195c..fd6fa06 100644
--- a/test/ossl_shim/ossl_shim.cc
+++ b/test/ossl_shim/ossl_shim.cc
@@ -968,7 +968,7 @@ static bool DoExchange(bssl::UniquePtr<SSL_SESSION> *out_session,
   }
   if (config->enable_all_curves) {
     static const int kAllCurves[] = {
-      NID_X9_62_prime256v1, NID_secp384r1, NID_secp521r1, NID_X25519,
+      NID_X25519, NID_X9_62_prime256v1, NID_X448, NID_secp521r1, NID_secp384r1
     };
     if (!SSL_set1_curves(ssl.get(), kAllCurves,
                          OPENSSL_ARRAY_SIZE(kAllCurves))) {
diff --git a/test/ssl-tests/14-curves.conf b/test/ssl-tests/14-curves.conf
index ab04c2e..f76f08f 100644
--- a/test/ssl-tests/14-curves.conf
+++ b/test/ssl-tests/14-curves.conf
@@ -1,6 +1,6 @@
 # Generated with generate_ssl_tests.pl
 
-num_tests = 29
+num_tests = 30
 
 test-0 = 0-curve-sect163k1
 test-1 = 1-curve-sect163r1
@@ -31,6 +31,7 @@ test-25 = 25-curve-brainpoolP256r1
 test-26 = 26-curve-brainpoolP384r1
 test-27 = 27-curve-brainpoolP512r1
 test-28 = 28-curve-X25519
+test-29 = 29-curve-X448
 # ===========================================================
 
 [0-curve-sect163k1]
@@ -843,3 +844,31 @@ ExpectedResult = Success
 ExpectedTmpKeyType = X25519
 
 
+# ===========================================================
+
+[29-curve-X448]
+ssl_conf = 29-curve-X448-ssl
+
+[29-curve-X448-ssl]
+server = 29-curve-X448-server
+client = 29-curve-X448-client
+
+[29-curve-X448-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+Curves = X448
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[29-curve-X448-client]
+CipherString = ECDHE
+Curves = X448
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-29]
+ExpectedResult = Success
+ExpectedTmpKeyType = X448
+
+
diff --git a/test/ssl-tests/14-curves.conf.in b/test/ssl-tests/14-curves.conf.in
index 9f6e433..2f8077c 100644
--- a/test/ssl-tests/14-curves.conf.in
+++ b/test/ssl-tests/14-curves.conf.in
@@ -17,7 +17,7 @@ my @curves = ("sect163k1", "sect163r1", "sect163r2", "sect193r1",
               "secp160r2", "secp192k1", "prime192v1", "secp224k1",
               "secp224r1", "secp256k1", "prime256v1", "secp384r1",
               "secp521r1", "brainpoolP256r1", "brainpoolP384r1",
-              "brainpoolP512r1", "X25519");
+              "brainpoolP512r1", "X25519", "X448");
 
 our @tests = ();
 
diff --git a/test/ssl-tests/20-cert-select.conf b/test/ssl-tests/20-cert-select.conf
index 609e216..1f415bf 100644
--- a/test/ssl-tests/20-cert-select.conf
+++ b/test/ssl-tests/20-cert-select.conf
@@ -1,46 +1,52 @@
 # Generated with generate_ssl_tests.pl
 
-num_tests = 39
+num_tests = 45
 
 test-0 = 0-ECDSA CipherString Selection
 test-1 = 1-Ed25519 CipherString and Signature Algorithm Selection
-test-2 = 2-RSA CipherString Selection
-test-3 = 3-RSA-PSS Certificate CipherString Selection
-test-4 = 4-P-256 CipherString and Signature Algorithm Selection
-test-5 = 5-Ed25519 CipherString and Curves Selection
-test-6 = 6-ECDSA CipherString Selection, no ECDSA certificate
-test-7 = 7-ECDSA Signature Algorithm Selection
-test-8 = 8-ECDSA Signature Algorithm Selection SHA384
-test-9 = 9-ECDSA Signature Algorithm Selection SHA1
-test-10 = 10-ECDSA Signature Algorithm Selection compressed point
-test-11 = 11-ECDSA Signature Algorithm Selection, no ECDSA certificate
-test-12 = 12-RSA Signature Algorithm Selection
-test-13 = 13-RSA-PSS Signature Algorithm Selection
-test-14 = 14-RSA-PSS Certificate Legacy Signature Algorithm Selection
-test-15 = 15-RSA-PSS Certificate Unified Signature Algorithm Selection
-test-16 = 16-Only RSA-PSS Certificate
-test-17 = 17-RSA-PSS Certificate, no PSS signature algorithms
-test-18 = 18-Suite B P-256 Hash Algorithm Selection
-test-19 = 19-Suite B P-384 Hash Algorithm Selection
-test-20 = 20-TLS 1.2 Ed25519 Client Auth
-test-21 = 21-Only RSA-PSS Certificate, TLS v1.1
-test-22 = 22-TLS 1.3 ECDSA Signature Algorithm Selection
-test-23 = 23-TLS 1.3 ECDSA Signature Algorithm Selection compressed point
-test-24 = 24-TLS 1.3 ECDSA Signature Algorithm Selection SHA1
-test-25 = 25-TLS 1.3 ECDSA Signature Algorithm Selection with PSS
-test-26 = 26-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS
-test-27 = 27-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate
-test-28 = 28-TLS 1.3 RSA Signature Algorithm Selection, no PSS
-test-29 = 29-TLS 1.3 RSA-PSS Signature Algorithm Selection
-test-30 = 30-TLS 1.3 Ed25519 Signature Algorithm Selection
-test-31 = 31-TLS 1.3 Ed25519 CipherString and Groups Selection
-test-32 = 32-TLS 1.3 RSA Client Auth Signature Algorithm Selection
-test-33 = 33-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names
-test-34 = 34-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection
-test-35 = 35-TLS 1.3 Ed25519 Client Auth
-test-36 = 36-TLS 1.2 DSA Certificate Test
-test-37 = 37-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms
-test-38 = 38-TLS 1.3 DSA Certificate Test
+test-2 = 2-Ed448 CipherString and Signature Algorithm Selection
+test-3 = 3-RSA CipherString Selection
+test-4 = 4-RSA-PSS Certificate CipherString Selection
+test-5 = 5-P-256 CipherString and Signature Algorithm Selection
+test-6 = 6-Ed25519 CipherString and Curves Selection
+test-7 = 7-Ed448 CipherString and Curves Selection
+test-8 = 8-ECDSA CipherString Selection, no ECDSA certificate
+test-9 = 9-ECDSA Signature Algorithm Selection
+test-10 = 10-ECDSA Signature Algorithm Selection SHA384
+test-11 = 11-ECDSA Signature Algorithm Selection SHA1
+test-12 = 12-ECDSA Signature Algorithm Selection compressed point
+test-13 = 13-ECDSA Signature Algorithm Selection, no ECDSA certificate
+test-14 = 14-RSA Signature Algorithm Selection
+test-15 = 15-RSA-PSS Signature Algorithm Selection
+test-16 = 16-RSA-PSS Certificate Legacy Signature Algorithm Selection
+test-17 = 17-RSA-PSS Certificate Unified Signature Algorithm Selection
+test-18 = 18-Only RSA-PSS Certificate
+test-19 = 19-RSA-PSS Certificate, no PSS signature algorithms
+test-20 = 20-Suite B P-256 Hash Algorithm Selection
+test-21 = 21-Suite B P-384 Hash Algorithm Selection
+test-22 = 22-TLS 1.2 Ed25519 Client Auth
+test-23 = 23-TLS 1.2 Ed448 Client Auth
+test-24 = 24-Only RSA-PSS Certificate, TLS v1.1
+test-25 = 25-TLS 1.3 ECDSA Signature Algorithm Selection
+test-26 = 26-TLS 1.3 ECDSA Signature Algorithm Selection compressed point
+test-27 = 27-TLS 1.3 ECDSA Signature Algorithm Selection SHA1
+test-28 = 28-TLS 1.3 ECDSA Signature Algorithm Selection with PSS
+test-29 = 29-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS
+test-30 = 30-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate
+test-31 = 31-TLS 1.3 RSA Signature Algorithm Selection, no PSS
+test-32 = 32-TLS 1.3 RSA-PSS Signature Algorithm Selection
+test-33 = 33-TLS 1.3 Ed25519 Signature Algorithm Selection
+test-34 = 34-TLS 1.3 Ed448 Signature Algorithm Selection
+test-35 = 35-TLS 1.3 Ed25519 CipherString and Groups Selection
+test-36 = 36-TLS 1.3 Ed448 CipherString and Groups Selection
+test-37 = 37-TLS 1.3 RSA Client Auth Signature Algorithm Selection
+test-38 = 38-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names
+test-39 = 39-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection
+test-40 = 40-TLS 1.3 Ed25519 Client Auth
+test-41 = 41-TLS 1.3 Ed448 Client Auth
+test-42 = 42-TLS 1.2 DSA Certificate Test
+test-43 = 43-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms
+test-44 = 44-TLS 1.3 DSA Certificate Test
 # ===========================================================
 
 [0-ECDSA CipherString Selection]
@@ -55,8 +61,10 @@ Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
@@ -88,8 +96,10 @@ Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
@@ -110,63 +120,103 @@ ExpectedServerSignType = Ed25519
 
 # ===========================================================
 
-[2-RSA CipherString Selection]
-ssl_conf = 2-RSA CipherString Selection-ssl
+[2-Ed448 CipherString and Signature Algorithm Selection]
+ssl_conf = 2-Ed448 CipherString and Signature Algorithm Selection-ssl
 
-[2-RSA CipherString Selection-ssl]
-server = 2-RSA CipherString Selection-server
-client = 2-RSA CipherString Selection-client
+[2-Ed448 CipherString and Signature Algorithm Selection-ssl]
+server = 2-Ed448 CipherString and Signature Algorithm Selection-server
+client = 2-Ed448 CipherString and Signature Algorithm Selection-client
 
-[2-RSA CipherString Selection-server]
+[2-Ed448 CipherString and Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[2-RSA CipherString Selection-client]
-CipherString = aRSA
+[2-Ed448 CipherString and Signature Algorithm Selection-client]
+CipherString = aECDSA
 MaxProtocol = TLSv1.2
+RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+SignatureAlgorithms = ed448:ECDSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
 [test-2]
 ExpectedResult = Success
+ExpectedServerCANames = empty
+ExpectedServerCertType = Ed448
+ExpectedServerSignType = Ed448
+
+
+# ===========================================================
+
+[3-RSA CipherString Selection]
+ssl_conf = 3-RSA CipherString Selection-ssl
+
+[3-RSA CipherString Selection-ssl]
+server = 3-RSA CipherString Selection-server
+client = 3-RSA CipherString Selection-client
+
+[3-RSA CipherString Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[3-RSA CipherString Selection-client]
+CipherString = aRSA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-3]
+ExpectedResult = Success
 ExpectedServerCertType = RSA
 ExpectedServerSignType = RSA-PSS
 
 
 # ===========================================================
 
-[3-RSA-PSS Certificate CipherString Selection]
-ssl_conf = 3-RSA-PSS Certificate CipherString Selection-ssl
+[4-RSA-PSS Certificate CipherString Selection]
+ssl_conf = 4-RSA-PSS Certificate CipherString Selection-ssl
 
-[3-RSA-PSS Certificate CipherString Selection-ssl]
-server = 3-RSA-PSS Certificate CipherString Selection-server
-client = 3-RSA-PSS Certificate CipherString Selection-client
+[4-RSA-PSS Certificate CipherString Selection-ssl]
+server = 4-RSA-PSS Certificate CipherString Selection-server
+client = 4-RSA-PSS Certificate CipherString Selection-client
 
-[3-RSA-PSS Certificate CipherString Selection-server]
+[4-RSA-PSS Certificate CipherString Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PSS.Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
 PSS.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[3-RSA-PSS Certificate CipherString Selection-client]
+[4-RSA-PSS Certificate CipherString Selection-client]
 CipherString = aRSA
 MaxProtocol = TLSv1.2
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-3]
+[test-4]
 ExpectedResult = Success
 ExpectedServerCertType = RSA-PSS
 ExpectedServerSignType = RSA-PSS
@@ -174,31 +224,33 @@ ExpectedServerSignType = RSA-PSS
 
 # ===========================================================
 
-[4-P-256 CipherString and Signature Algorithm Selection]
-ssl_conf = 4-P-256 CipherString and Signature Algorithm Selection-ssl
+[5-P-256 CipherString and Signature Algorithm Selection]
+ssl_conf = 5-P-256 CipherString and Signature Algorithm Selection-ssl
 
-[4-P-256 CipherString and Signature Algorithm Selection-ssl]
-server = 4-P-256 CipherString and Signature Algorithm Selection-server
-client = 4-P-256 CipherString and Signature Algorithm Selection-client
+[5-P-256 CipherString and Signature Algorithm Selection-ssl]
+server = 5-P-256 CipherString and Signature Algorithm Selection-server
+client = 5-P-256 CipherString and Signature Algorithm Selection-client
 
-[4-P-256 CipherString and Signature Algorithm Selection-server]
+[5-P-256 CipherString and Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[4-P-256 CipherString and Signature Algorithm Selection-client]
+[5-P-256 CipherString and Signature Algorithm Selection-client]
 CipherString = aECDSA
 MaxProtocol = TLSv1.2
 SignatureAlgorithms = ECDSA+SHA256:ed25519
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-4]
+[test-5]
 ExpectedResult = Success
 ExpectedServerCertType = P-256
 ExpectedServerSignHash = SHA256
@@ -207,24 +259,26 @@ ExpectedServerSignType = EC
 
 # ===========================================================
 
-[5-Ed25519 CipherString and Curves Selection]
-ssl_conf = 5-Ed25519 CipherString and Curves Selection-ssl
+[6-Ed25519 CipherString and Curves Selection]
+ssl_conf = 6-Ed25519 CipherString and Curves Selection-ssl
 
-[5-Ed25519 CipherString and Curves Selection-ssl]
-server = 5-Ed25519 CipherString and Curves Selection-server
-client = 5-Ed25519 CipherString and Curves Selection-client
+[6-Ed25519 CipherString and Curves Selection-ssl]
+server = 6-Ed25519 CipherString and Curves Selection-server
+client = 6-Ed25519 CipherString and Curves Selection-client
 
-[5-Ed25519 CipherString and Curves Selection-server]
+[6-Ed25519 CipherString and Curves Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[5-Ed25519 CipherString and Curves Selection-client]
+[6-Ed25519 CipherString and Curves Selection-client]
 CipherString = aECDSA
 Curves = X25519
 MaxProtocol = TLSv1.2
@@ -232,7 +286,7 @@ SignatureAlgorithms = ECDSA+SHA256:ed25519
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-5]
+[test-6]
 ExpectedResult = Success
 ExpectedServerCertType = Ed25519
 ExpectedServerSignType = Ed25519
@@ -240,55 +294,92 @@ ExpectedServerSignType = Ed25519
 
 # ===========================================================
 
-[6-ECDSA CipherString Selection, no ECDSA certificate]
-ssl_conf = 6-ECDSA CipherString Selection, no ECDSA certificate-ssl
+[7-Ed448 CipherString and Curves Selection]
+ssl_conf = 7-Ed448 CipherString and Curves Selection-ssl
 
-[6-ECDSA CipherString Selection, no ECDSA certificate-ssl]
-server = 6-ECDSA CipherString Selection, no ECDSA certificate-server
-client = 6-ECDSA CipherString Selection, no ECDSA certificate-client
+[7-Ed448 CipherString and Curves Selection-ssl]
+server = 7-Ed448 CipherString and Curves Selection-server
+client = 7-Ed448 CipherString and Curves Selection-client
 
-[6-ECDSA CipherString Selection, no ECDSA certificate-server]
+[7-Ed448 CipherString and Curves Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[6-ECDSA CipherString Selection, no ECDSA certificate-client]
+[7-Ed448 CipherString and Curves Selection-client]
 CipherString = aECDSA
+Curves = X448
 MaxProtocol = TLSv1.2
+SignatureAlgorithms = ECDSA+SHA256:ed448
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-6]
+[test-7]
+ExpectedResult = Success
+ExpectedServerCertType = Ed448
+ExpectedServerSignType = Ed448
+
+
+# ===========================================================
+
+[8-ECDSA CipherString Selection, no ECDSA certificate]
+ssl_conf = 8-ECDSA CipherString Selection, no ECDSA certificate-ssl
+
+[8-ECDSA CipherString Selection, no ECDSA certificate-ssl]
+server = 8-ECDSA CipherString Selection, no ECDSA certificate-server
+client = 8-ECDSA CipherString Selection, no ECDSA certificate-client
+
+[8-ECDSA CipherString Selection, no ECDSA certificate-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+MaxProtocol = TLSv1.2
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[8-ECDSA CipherString Selection, no ECDSA certificate-client]
+CipherString = aECDSA
+MaxProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-8]
 ExpectedResult = ServerFail
 
 
 # ===========================================================
 
-[7-ECDSA Signature Algorithm Selection]
-ssl_conf = 7-ECDSA Signature Algorithm Selection-ssl
+[9-ECDSA Signature Algorithm Selection]
+ssl_conf = 9-ECDSA Signature Algorithm Selection-ssl
 
-[7-ECDSA Signature Algorithm Selection-ssl]
-server = 7-ECDSA Signature Algorithm Selection-server
-client = 7-ECDSA Signature Algorithm Selection-client
+[9-ECDSA Signature Algorithm Selection-ssl]
+server = 9-ECDSA Signature Algorithm Selection-server
+client = 9-ECDSA Signature Algorithm Selection-client
 
-[7-ECDSA Signature Algorithm Selection-server]
+[9-ECDSA Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[7-ECDSA Signature Algorithm Selection-client]
+[9-ECDSA Signature Algorithm Selection-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-7]
+[test-9]
 ExpectedResult = Success
 ExpectedServerCertType = P-256
 ExpectedServerSignHash = SHA256
@@ -297,30 +388,32 @@ ExpectedServerSignType = EC
 
 # ===========================================================
 
-[8-ECDSA Signature Algorithm Selection SHA384]
-ssl_conf = 8-ECDSA Signature Algorithm Selection SHA384-ssl
+[10-ECDSA Signature Algorithm Selection SHA384]
+ssl_conf = 10-ECDSA Signature Algorithm Selection SHA384-ssl
 
-[8-ECDSA Signature Algorithm Selection SHA384-ssl]
-server = 8-ECDSA Signature Algorithm Selection SHA384-server
-client = 8-ECDSA Signature Algorithm Selection SHA384-client
+[10-ECDSA Signature Algorithm Selection SHA384-ssl]
+server = 10-ECDSA Signature Algorithm Selection SHA384-server
+client = 10-ECDSA Signature Algorithm Selection SHA384-client
 
-[8-ECDSA Signature Algorithm Selection SHA384-server]
+[10-ECDSA Signature Algorithm Selection SHA384-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[8-ECDSA Signature Algorithm Selection SHA384-client]
+[10-ECDSA Signature Algorithm Selection SHA384-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA384
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-8]
+[test-10]
 ExpectedResult = Success
 ExpectedServerCertType = P-256
 ExpectedServerSignHash = SHA384
@@ -329,30 +422,32 @@ ExpectedServerSignType = EC
 
 # ===========================================================
 
-[9-ECDSA Signature Algorithm Selection SHA1]
-ssl_conf = 9-ECDSA Signature Algorithm Selection SHA1-ssl
+[11-ECDSA Signature Algorithm Selection SHA1]
+ssl_conf = 11-ECDSA Signature Algorithm Selection SHA1-ssl
 
-[9-ECDSA Signature Algorithm Selection SHA1-ssl]
-server = 9-ECDSA Signature Algorithm Selection SHA1-server
-client = 9-ECDSA Signature Algorithm Selection SHA1-client
+[11-ECDSA Signature Algorithm Selection SHA1-ssl]
+server = 11-ECDSA Signature Algorithm Selection SHA1-server
+client = 11-ECDSA Signature Algorithm Selection SHA1-client
 
-[9-ECDSA Signature Algorithm Selection SHA1-server]
+[11-ECDSA Signature Algorithm Selection SHA1-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[9-ECDSA Signature Algorithm Selection SHA1-client]
+[11-ECDSA Signature Algorithm Selection SHA1-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA1
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-9]
+[test-11]
 ExpectedResult = Success
 ExpectedServerCertType = P-256
 ExpectedServerSignHash = SHA1
@@ -361,14 +456,14 @@ ExpectedServerSignType = EC
 
 # ===========================================================
 
-[10-ECDSA Signature Algorithm Selection compressed point]
-ssl_conf = 10-ECDSA Signature Algorithm Selection compressed point-ssl
+[12-ECDSA Signature Algorithm Selection compressed point]
+ssl_conf = 12-ECDSA Signature Algorithm Selection compressed point-ssl
 
-[10-ECDSA Signature Algorithm Selection compressed point-ssl]
-server = 10-ECDSA Signature Algorithm Selection compressed point-server
-client = 10-ECDSA Signature Algorithm Selection compressed point-client
+[12-ECDSA Signature Algorithm Selection compressed point-ssl]
+server = 12-ECDSA Signature Algorithm Selection compressed point-server
+client = 12-ECDSA Signature Algorithm Selection compressed point-client
 
-[10-ECDSA Signature Algorithm Selection compressed point-server]
+[12-ECDSA Signature Algorithm Selection compressed point-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-cecdsa-cert.pem
@@ -376,13 +471,13 @@ ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-cecdsa-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[10-ECDSA Signature Algorithm Selection compressed point-client]
+[12-ECDSA Signature Algorithm Selection compressed point-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-10]
+[test-12]
 ExpectedResult = Success
 ExpectedServerCertType = P-256
 ExpectedServerSignHash = SHA256
@@ -391,55 +486,57 @@ ExpectedServerSignType = EC
 
 # ===========================================================
 
-[11-ECDSA Signature Algorithm Selection, no ECDSA certificate]
-ssl_conf = 11-ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl
+[13-ECDSA Signature Algorithm Selection, no ECDSA certificate]
+ssl_conf = 13-ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl
 
-[11-ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl]
-server = 11-ECDSA Signature Algorithm Selection, no ECDSA certificate-server
-client = 11-ECDSA Signature Algorithm Selection, no ECDSA certificate-client
+[13-ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl]
+server = 13-ECDSA Signature Algorithm Selection, no ECDSA certificate-server
+client = 13-ECDSA Signature Algorithm Selection, no ECDSA certificate-client
 
-[11-ECDSA Signature Algorithm Selection, no ECDSA certificate-server]
+[13-ECDSA Signature Algorithm Selection, no ECDSA certificate-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[11-ECDSA Signature Algorithm Selection, no ECDSA certificate-client]
+[13-ECDSA Signature Algorithm Selection, no ECDSA certificate-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-11]
+[test-13]
 ExpectedResult = ServerFail
 
 
 # ===========================================================
 
-[12-RSA Signature Algorithm Selection]
-ssl_conf = 12-RSA Signature Algorithm Selection-ssl
+[14-RSA Signature Algorithm Selection]
+ssl_conf = 14-RSA Signature Algorithm Selection-ssl
 
-[12-RSA Signature Algorithm Selection-ssl]
-server = 12-RSA Signature Algorithm Selection-server
-client = 12-RSA Signature Algorithm Selection-client
+[14-RSA Signature Algorithm Selection-ssl]
+server = 14-RSA Signature Algorithm Selection-server
+client = 14-RSA Signature Algorithm Selection-client
 
-[12-RSA Signature Algorithm Selection-server]
+[14-RSA Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[12-RSA Signature Algorithm Selection-client]
+[14-RSA Signature Algorithm Selection-client]
 CipherString = DEFAULT
 SignatureAlgorithms = RSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-12]
+[test-14]
 ExpectedResult = Success
 ExpectedServerCertType = RSA
 ExpectedServerSignHash = SHA256
@@ -448,30 +545,32 @@ ExpectedServerSignType = RSA
 
 # ===========================================================
 
-[13-RSA-PSS Signature Algorithm Selection]
-ssl_conf = 13-RSA-PSS Signature Algorithm Selection-ssl
+[15-RSA-PSS Signature Algorithm Selection]
+ssl_conf = 15-RSA-PSS Signature Algorithm Selection-ssl
 
-[13-RSA-PSS Signature Algorithm Selection-ssl]
-server = 13-RSA-PSS Signature Algorithm Selection-server
-client = 13-RSA-PSS Signature Algorithm Selection-client
+[15-RSA-PSS Signature Algorithm Selection-ssl]
+server = 15-RSA-PSS Signature Algorithm Selection-server
+client = 15-RSA-PSS Signature Algorithm Selection-client
 
-[13-RSA-PSS Signature Algorithm Selection-server]
+[15-RSA-PSS Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[13-RSA-PSS Signature Algorithm Selection-client]
+[15-RSA-PSS Signature Algorithm Selection-client]
 CipherString = DEFAULT
 SignatureAlgorithms = RSA-PSS+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-13]
+[test-15]
 ExpectedResult = Success
 ExpectedServerCertType = RSA
 ExpectedServerSignHash = SHA256
@@ -480,32 +579,34 @@ ExpectedServerSignType = RSA-PSS
 
 # ===========================================================
 
-[14-RSA-PSS Certificate Legacy Signature Algorithm Selection]
-ssl_conf = 14-RSA-PSS Certificate Legacy Signature Algorithm Selection-ssl
+[16-RSA-PSS Certificate Legacy Signature Algorithm Selection]
+ssl_conf = 16-RSA-PSS Certificate Legacy Signature Algorithm Selection-ssl
 
-[14-RSA-PSS Certificate Legacy Signature Algorithm Selection-ssl]
-server = 14-RSA-PSS Certificate Legacy Signature Algorithm Selection-server
-client = 14-RSA-PSS Certificate Legacy Signature Algorithm Selection-client
+[16-RSA-PSS Certificate Legacy Signature Algorithm Selection-ssl]
+server = 16-RSA-PSS Certificate Legacy Signature Algorithm Selection-server
+client = 16-RSA-PSS Certificate Legacy Signature Algorithm Selection-client
 
-[14-RSA-PSS Certificate Legacy Signature Algorithm Selection-server]
+[16-RSA-PSS Certificate Legacy Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PSS.Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
 PSS.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[14-RSA-PSS Certificate Legacy Signature Algorithm Selection-client]
+[16-RSA-PSS Certificate Legacy Signature Algorithm Selection-client]
 CipherString = DEFAULT
 SignatureAlgorithms = RSA-PSS+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-14]
+[test-16]
 ExpectedResult = Success
 ExpectedServerCertType = RSA
 ExpectedServerSignHash = SHA256
@@ -514,32 +615,34 @@ ExpectedServerSignType = RSA-PSS
 
 # ===========================================================
 
-[15-RSA-PSS Certificate Unified Signature Algorithm Selection]
-ssl_conf = 15-RSA-PSS Certificate Unified Signature Algorithm Selection-ssl
+[17-RSA-PSS Certificate Unified Signature Algorithm Selection]
+ssl_conf = 17-RSA-PSS Certificate Unified Signature Algorithm Selection-ssl
 
-[15-RSA-PSS Certificate Unified Signature Algorithm Selection-ssl]
-server = 15-RSA-PSS Certificate Unified Signature Algorithm Selection-server
-client = 15-RSA-PSS Certificate Unified Signature Algorithm Selection-client
+[17-RSA-PSS Certificate Unified Signature Algorithm Selection-ssl]
+server = 17-RSA-PSS Certificate Unified Signature Algorithm Selection-server
+client = 17-RSA-PSS Certificate Unified Signature Algorithm Selection-client
 
-[15-RSA-PSS Certificate Unified Signature Algorithm Selection-server]
+[17-RSA-PSS Certificate Unified Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.2
 PSS.Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
 PSS.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[15-RSA-PSS Certificate Unified Signature Algorithm Selection-client]
+[17-RSA-PSS Certificate Unified Signature Algorithm Selection-client]
 CipherString = DEFAULT
 SignatureAlgorithms = rsa_pss_pss_sha256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-15]
+[test-17]
 ExpectedResult = Success
 ExpectedServerCertType = RSA-PSS
 ExpectedServerSignHash = SHA256
@@ -548,24 +651,24 @@ ExpectedServerSignType = RSA-PSS
 
 # ===========================================================
 
-[16-Only RSA-PSS Certificate]
-ssl_conf = 16-Only RSA-PSS Certificate-ssl
+[18-Only RSA-PSS Certificate]
+ssl_conf = 18-Only RSA-PSS Certificate-ssl
 
-[16-Only RSA-PSS Certificate-ssl]
-server = 16-Only RSA-PSS Certificate-server
-client = 16-Only RSA-PSS Certificate-client
+[18-Only RSA-PSS Certificate-ssl]
+server = 18-Only RSA-PSS Certificate-server
+client = 18-Only RSA-PSS Certificate-client
 
-[16-Only RSA-PSS Certificate-server]
+[18-Only RSA-PSS Certificate-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
 CipherString = DEFAULT
 PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
 
-[16-Only RSA-PSS Certificate-client]
+[18-Only RSA-PSS Certificate-client]
 CipherString = DEFAULT
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-16]
+[test-18]
 ExpectedResult = Success
 ExpectedServerCertType = RSA-PSS
 ExpectedServerSignHash = SHA256
@@ -574,38 +677,38 @@ ExpectedServerSignType = RSA-PSS
 
 # ===========================================================
 
-[17-RSA-PSS Certificate, no PSS signature algorithms]
-ssl_conf = 17-RSA-PSS Certificate, no PSS signature algorithms-ssl
+[19-RSA-PSS Certificate, no PSS signature algorithms]
+ssl_conf = 19-RSA-PSS Certificate, no PSS signature algorithms-ssl
 
-[17-RSA-PSS Certificate, no PSS signature algorithms-ssl]
-server = 17-RSA-PSS Certificate, no PSS signature algorithms-server
-client = 17-RSA-PSS Certificate, no PSS signature algorithms-client
+[19-RSA-PSS Certificate, no PSS signature algorithms-ssl]
+server = 19-RSA-PSS Certificate, no PSS signature algorithms-server
+client = 19-RSA-PSS Certificate, no PSS signature algorithms-client
 
-[17-RSA-PSS Certificate, no PSS signature algorithms-server]
+[19-RSA-PSS Certificate, no PSS signature algorithms-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
 CipherString = DEFAULT
 PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
 
-[17-RSA-PSS Certificate, no PSS signature algorithms-client]
+[19-RSA-PSS Certificate, no PSS signature algorithms-client]
 CipherString = DEFAULT
 SignatureAlgorithms = RSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-17]
+[test-19]
 ExpectedResult = ServerFail
 
 
 # ===========================================================
 
-[18-Suite B P-256 Hash Algorithm Selection]
-ssl_conf = 18-Suite B P-256 Hash Algorithm Selection-ssl
+[20-Suite B P-256 Hash Algorithm Selection]
+ssl_conf = 20-Suite B P-256 Hash Algorithm Selection-ssl
 
-[18-Suite B P-256 Hash Algorithm Selection-ssl]
-server = 18-Suite B P-256 Hash Algorithm Selection-server
-client = 18-Suite B P-256 Hash Algorithm Selection-client
+[20-Suite B P-256 Hash Algorithm Selection-ssl]
+server = 20-Suite B P-256 Hash Algorithm Selection-server
+client = 20-Suite B P-256 Hash Algorithm Selection-client
 
-[18-Suite B P-256 Hash Algorithm Selection-server]
+[20-Suite B P-256 Hash Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = SUITEB128
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/p256-server-cert.pem
@@ -613,13 +716,13 @@ ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/p256-server-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[18-Suite B P-256 Hash Algorithm Selection-client]
+[20-Suite B P-256 Hash Algorithm Selection-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA384:ECDSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/p384-root.pem
 VerifyMode = Peer
 
-[test-18]
+[test-20]
 ExpectedResult = Success
 ExpectedServerCertType = P-256
 ExpectedServerSignHash = SHA256
@@ -628,14 +731,14 @@ ExpectedServerSignType = EC
 
 # ===========================================================
 
-[19-Suite B P-384 Hash Algorithm Selection]
-ssl_conf = 19-Suite B P-384 Hash Algorithm Selection-ssl
+[21-Suite B P-384 Hash Algorithm Selection]
+ssl_conf = 21-Suite B P-384 Hash Algorithm Selection-ssl
 
-[19-Suite B P-384 Hash Algorithm Selection-ssl]
-server = 19-Suite B P-384 Hash Algorithm Selection-server
-client = 19-Suite B P-384 Hash Algorithm Selection-client
+[21-Suite B P-384 Hash Algorithm Selection-ssl]
+server = 21-Suite B P-384 Hash Algorithm Selection-server
+client = 21-Suite B P-384 Hash Algorithm Selection-client
 
-[19-Suite B P-384 Hash Algorithm Selection-server]
+[21-Suite B P-384 Hash Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = SUITEB128
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/p384-server-cert.pem
@@ -643,13 +746,13 @@ ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/p384-server-key.pem
 MaxProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[19-Suite B P-384 Hash Algorithm Selection-client]
+[21-Suite B P-384 Hash Algorithm Selection-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA256:ECDSA+SHA384
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/p384-root.pem
 VerifyMode = Peer
 
-[test-19]
+[test-21]
 ExpectedResult = Success
 ExpectedServerCertType = P-384
 ExpectedServerSignHash = SHA384
@@ -658,30 +761,30 @@ ExpectedServerSignType = EC
 
 # ===========================================================
 
-[20-TLS 1.2 Ed25519 Client Auth]
-ssl_conf = 20-TLS 1.2 Ed25519 Client Auth-ssl
+[22-TLS 1.2 Ed25519 Client Auth]
+ssl_conf = 22-TLS 1.2 Ed25519 Client Auth-ssl
 
-[20-TLS 1.2 Ed25519 Client Auth-ssl]
-server = 20-TLS 1.2 Ed25519 Client Auth-server
-client = 20-TLS 1.2 Ed25519 Client Auth-client
+[22-TLS 1.2 Ed25519 Client Auth-ssl]
+server = 22-TLS 1.2 Ed25519 Client Auth-server
+client = 22-TLS 1.2 Ed25519 Client Auth-client
 
-[20-TLS 1.2 Ed25519 Client Auth-server]
+[22-TLS 1.2 Ed25519 Client Auth-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
 VerifyMode = Require
 
-[20-TLS 1.2 Ed25519 Client Auth-client]
+[22-TLS 1.2 Ed25519 Client Auth-client]
 CipherString = DEFAULT
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/client-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/client-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/client-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/client-ed25519-key.pem
 MaxProtocol = TLSv1.2
 MinProtocol = TLSv1.2
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-20]
+[test-22]
 ExpectedClientCertType = Ed25519
 ExpectedClientSignType = Ed25519
 ExpectedResult = Success
@@ -689,55 +792,88 @@ ExpectedResult = Success
 
 # ===========================================================
 
-[21-Only RSA-PSS Certificate, TLS v1.1]
-ssl_conf = 21-Only RSA-PSS Certificate, TLS v1.1-ssl
+[23-TLS 1.2 Ed448 Client Auth]
+ssl_conf = 23-TLS 1.2 Ed448 Client Auth-ssl
+
+[23-TLS 1.2 Ed448 Client Auth-ssl]
+server = 23-TLS 1.2 Ed448 Client Auth-server
+client = 23-TLS 1.2 Ed448 Client Auth-client
+
+[23-TLS 1.2 Ed448 Client Auth-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[23-TLS 1.2 Ed448 Client Auth-client]
+CipherString = DEFAULT
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/client-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/client-ed448-key.pem
+MaxProtocol = TLSv1.2
+MinProtocol = TLSv1.2
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-23]
+ExpectedClientCertType = Ed448
+ExpectedClientSignType = Ed448
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[24-Only RSA-PSS Certificate, TLS v1.1]
+ssl_conf = 24-Only RSA-PSS Certificate, TLS v1.1-ssl
 
-[21-Only RSA-PSS Certificate, TLS v1.1-ssl]
-server = 21-Only RSA-PSS Certificate, TLS v1.1-server
-client = 21-Only RSA-PSS Certificate, TLS v1.1-client
+[24-Only RSA-PSS Certificate, TLS v1.1-ssl]
+server = 24-Only RSA-PSS Certificate, TLS v1.1-server
+client = 24-Only RSA-PSS Certificate, TLS v1.1-client
 
-[21-Only RSA-PSS Certificate, TLS v1.1-server]
+[24-Only RSA-PSS Certificate, TLS v1.1-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/server-pss-cert.pem
 CipherString = DEFAULT
 PrivateKey = ${ENV::TEST_CERTS_DIR}/server-pss-key.pem
 
-[21-Only RSA-PSS Certificate, TLS v1.1-client]
+[24-Only RSA-PSS Certificate, TLS v1.1-client]
 CipherString = DEFAULT
 MaxProtocol = TLSv1.1
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-21]
+[test-24]
 ExpectedResult = ServerFail
 
 
 # ===========================================================
 
-[22-TLS 1.3 ECDSA Signature Algorithm Selection]
-ssl_conf = 22-TLS 1.3 ECDSA Signature Algorithm Selection-ssl
+[25-TLS 1.3 ECDSA Signature Algorithm Selection]
+ssl_conf = 25-TLS 1.3 ECDSA Signature Algorithm Selection-ssl
 
-[22-TLS 1.3 ECDSA Signature Algorithm Selection-ssl]
-server = 22-TLS 1.3 ECDSA Signature Algorithm Selection-server
-client = 22-TLS 1.3 ECDSA Signature Algorithm Selection-client
+[25-TLS 1.3 ECDSA Signature Algorithm Selection-ssl]
+server = 25-TLS 1.3 ECDSA Signature Algorithm Selection-server
+client = 25-TLS 1.3 ECDSA Signature Algorithm Selection-client
 
-[22-TLS 1.3 ECDSA Signature Algorithm Selection-server]
+[25-TLS 1.3 ECDSA Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.3
 MinProtocol = TLSv1.3
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[22-TLS 1.3 ECDSA Signature Algorithm Selection-client]
+[25-TLS 1.3 ECDSA Signature Algorithm Selection-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-22]
+[test-25]
 ExpectedResult = Success
 ExpectedServerCANames = empty
 ExpectedServerCertType = P-256
@@ -747,14 +883,14 @@ ExpectedServerSignType = EC
 
 # ===========================================================
 
-[23-TLS 1.3 ECDSA Signature Algorithm Selection compressed point]
-ssl_conf = 23-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-ssl
+[26-TLS 1.3 ECDSA Signature Algorithm Selection compressed point]
+ssl_conf = 26-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-ssl
 
-[23-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-ssl]
-server = 23-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-server
-client = 23-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-client
+[26-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-ssl]
+server = 26-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-server
+client = 26-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-client
 
-[23-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-server]
+[26-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-cecdsa-cert.pem
@@ -763,74 +899,78 @@ MaxProtocol = TLSv1.3
 MinProtocol = TLSv1.3
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[23-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-client]
+[26-TLS 1.3 ECDSA Signature Algorithm Selection compressed point-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-23]
+[test-26]
 ExpectedResult = ServerFail
 
 
 # ===========================================================
 
-[24-TLS 1.3 ECDSA Signature Algorithm Selection SHA1]
-ssl_conf = 24-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-ssl
+[27-TLS 1.3 ECDSA Signature Algorithm Selection SHA1]
+ssl_conf = 27-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-ssl
 
-[24-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-ssl]
-server = 24-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-server
-client = 24-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-client
+[27-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-ssl]
+server = 27-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-server
+client = 27-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-client
 
-[24-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-server]
+[27-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.3
 MinProtocol = TLSv1.3
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[24-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-client]
+[27-TLS 1.3 ECDSA Signature Algorithm Selection SHA1-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA1
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-24]
+[test-27]
 ExpectedResult = ServerFail
 
 
 # ===========================================================
 
-[25-TLS 1.3 ECDSA Signature Algorithm Selection with PSS]
-ssl_conf = 25-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-ssl
+[28-TLS 1.3 ECDSA Signature Algorithm Selection with PSS]
+ssl_conf = 28-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-ssl
 
-[25-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-ssl]
-server = 25-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-server
-client = 25-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-client
+[28-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-ssl]
+server = 28-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-server
+client = 28-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-client
 
-[25-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-server]
+[28-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.3
 MinProtocol = TLSv1.3
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[25-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-client]
+[28-TLS 1.3 ECDSA Signature Algorithm Selection with PSS-client]
 CipherString = DEFAULT
 RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
 SignatureAlgorithms = ECDSA+SHA256:RSA-PSS+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-25]
+[test-28]
 ExpectedResult = Success
 ExpectedServerCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
 ExpectedServerCertType = P-256
@@ -840,31 +980,33 @@ ExpectedServerSignType = EC
 
 # ===========================================================
 
-[26-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS]
-ssl_conf = 26-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-ssl
+[29-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS]
+ssl_conf = 29-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-ssl
 
-[26-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-ssl]
-server = 26-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-server
-client = 26-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-client
+[29-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-ssl]
+server = 29-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-server
+client = 29-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-client
 
-[26-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-server]
+[29-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.3
 MinProtocol = TLSv1.3
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[26-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-client]
+[29-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA384:RSA-PSS+SHA384
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-26]
+[test-29]
 ExpectedResult = Success
 ExpectedServerCertType = RSA
 ExpectedServerSignHash = SHA384
@@ -873,87 +1015,91 @@ ExpectedServerSignType = RSA-PSS
 
 # ===========================================================
 
-[27-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate]
-ssl_conf = 27-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl
+[30-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate]
+ssl_conf = 30-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl
 
-[27-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl]
-server = 27-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-server
-client = 27-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-client
+[30-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl]
+server = 30-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-server
+client = 30-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-client
 
-[27-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-server]
+[30-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 MaxProtocol = TLSv1.3
 MinProtocol = TLSv1.3
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[27-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-client]
+[30-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ECDSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-27]
+[test-30]
 ExpectedResult = ServerFail
 
 
 # ===========================================================
 
-[28-TLS 1.3 RSA Signature Algorithm Selection, no PSS]
-ssl_conf = 28-TLS 1.3 RSA Signature Algorithm Selection, no PSS-ssl
+[31-TLS 1.3 RSA Signature Algorithm Selection, no PSS]
+ssl_conf = 31-TLS 1.3 RSA Signature Algorithm Selection, no PSS-ssl
 
-[28-TLS 1.3 RSA Signature Algorithm Selection, no PSS-ssl]
-server = 28-TLS 1.3 RSA Signature Algorithm Selection, no PSS-server
-client = 28-TLS 1.3 RSA Signature Algorithm Selection, no PSS-client
+[31-TLS 1.3 RSA Signature Algorithm Selection, no PSS-ssl]
+server = 31-TLS 1.3 RSA Signature Algorithm Selection, no PSS-server
+client = 31-TLS 1.3 RSA Signature Algorithm Selection, no PSS-client
 
-[28-TLS 1.3 RSA Signature Algorithm Selection, no PSS-server]
+[31-TLS 1.3 RSA Signature Algorithm Selection, no PSS-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.3
 MinProtocol = TLSv1.3
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[28-TLS 1.3 RSA Signature Algorithm Selection, no PSS-client]
+[31-TLS 1.3 RSA Signature Algorithm Selection, no PSS-client]
 CipherString = DEFAULT
 SignatureAlgorithms = RSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-28]
+[test-31]
 ExpectedResult = ServerFail
 
 
 # ===========================================================
 
-[29-TLS 1.3 RSA-PSS Signature Algorithm Selection]
-ssl_conf = 29-TLS 1.3 RSA-PSS Signature Algorithm Selection-ssl
+[32-TLS 1.3 RSA-PSS Signature Algorithm Selection]
+ssl_conf = 32-TLS 1.3 RSA-PSS Signature Algorithm Selection-ssl
 
-[29-TLS 1.3 RSA-PSS Signature Algorithm Selection-ssl]
-server = 29-TLS 1.3 RSA-PSS Signature Algorithm Selection-server
-client = 29-TLS 1.3 RSA-PSS Signature Algorithm Selection-client
+[32-TLS 1.3 RSA-PSS Signature Algorithm Selection-ssl]
+server = 32-TLS 1.3 RSA-PSS Signature Algorithm Selection-server
+client = 32-TLS 1.3 RSA-PSS Signature Algorithm Selection-client
 
-[29-TLS 1.3 RSA-PSS Signature Algorithm Selection-server]
+[32-TLS 1.3 RSA-PSS Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.3
 MinProtocol = TLSv1.3
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[29-TLS 1.3 RSA-PSS Signature Algorithm Selection-client]
+[32-TLS 1.3 RSA-PSS Signature Algorithm Selection-client]
 CipherString = DEFAULT
 SignatureAlgorithms = RSA-PSS+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-29]
+[test-32]
 ExpectedResult = Success
 ExpectedServerCertType = RSA
 ExpectedServerSignHash = SHA256
@@ -962,31 +1108,33 @@ ExpectedServerSignType = RSA-PSS
 
 # ===========================================================
 
-[30-TLS 1.3 Ed25519 Signature Algorithm Selection]
-ssl_conf = 30-TLS 1.3 Ed25519 Signature Algorithm Selection-ssl
+[33-TLS 1.3 Ed25519 Signature Algorithm Selection]
+ssl_conf = 33-TLS 1.3 Ed25519 Signature Algorithm Selection-ssl
 
-[30-TLS 1.3 Ed25519 Signature Algorithm Selection-ssl]
-server = 30-TLS 1.3 Ed25519 Signature Algorithm Selection-server
-client = 30-TLS 1.3 Ed25519 Signature Algorithm Selection-client
+[33-TLS 1.3 Ed25519 Signature Algorithm Selection-ssl]
+server = 33-TLS 1.3 Ed25519 Signature Algorithm Selection-server
+client = 33-TLS 1.3 Ed25519 Signature Algorithm Selection-client
 
-[30-TLS 1.3 Ed25519 Signature Algorithm Selection-server]
+[33-TLS 1.3 Ed25519 Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.3
 MinProtocol = TLSv1.3
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[30-TLS 1.3 Ed25519 Signature Algorithm Selection-client]
+[33-TLS 1.3 Ed25519 Signature Algorithm Selection-client]
 CipherString = DEFAULT
 SignatureAlgorithms = ed25519
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-30]
+[test-33]
 ExpectedResult = Success
 ExpectedServerCertType = Ed25519
 ExpectedServerSignType = Ed25519
@@ -994,32 +1142,68 @@ ExpectedServerSignType = Ed25519
 
 # ===========================================================
 
-[31-TLS 1.3 Ed25519 CipherString and Groups Selection]
-ssl_conf = 31-TLS 1.3 Ed25519 CipherString and Groups Selection-ssl
+[34-TLS 1.3 Ed448 Signature Algorithm Selection]
+ssl_conf = 34-TLS 1.3 Ed448 Signature Algorithm Selection-ssl
 
-[31-TLS 1.3 Ed25519 CipherString and Groups Selection-ssl]
-server = 31-TLS 1.3 Ed25519 CipherString and Groups Selection-server
-client = 31-TLS 1.3 Ed25519 CipherString and Groups Selection-client
+[34-TLS 1.3 Ed448 Signature Algorithm Selection-ssl]
+server = 34-TLS 1.3 Ed448 Signature Algorithm Selection-server
+client = 34-TLS 1.3 Ed448 Signature Algorithm Selection-client
 
-[31-TLS 1.3 Ed25519 CipherString and Groups Selection-server]
+[34-TLS 1.3 Ed448 Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
-EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
-EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
 MaxProtocol = TLSv1.3
 MinProtocol = TLSv1.3
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[31-TLS 1.3 Ed25519 CipherString and Groups Selection-client]
+[34-TLS 1.3 Ed448 Signature Algorithm Selection-client]
+CipherString = DEFAULT
+SignatureAlgorithms = ed448
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-34]
+ExpectedResult = Success
+ExpectedServerCertType = Ed448
+ExpectedServerSignType = Ed448
+
+
+# ===========================================================
+
+[35-TLS 1.3 Ed25519 CipherString and Groups Selection]
+ssl_conf = 35-TLS 1.3 Ed25519 CipherString and Groups Selection-ssl
+
+[35-TLS 1.3 Ed25519 CipherString and Groups Selection-ssl]
+server = 35-TLS 1.3 Ed25519 CipherString and Groups Selection-server
+client = 35-TLS 1.3 Ed25519 CipherString and Groups Selection-client
+
+[35-TLS 1.3 Ed25519 CipherString and Groups Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[35-TLS 1.3 Ed25519 CipherString and Groups Selection-client]
 CipherString = DEFAULT
 Groups = X25519
 SignatureAlgorithms = ECDSA+SHA256:ed25519
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-31]
+[test-35]
 ExpectedResult = Success
 ExpectedServerCertType = P-256
 ExpectedServerSignType = EC
@@ -1027,14 +1211,49 @@ ExpectedServerSignType = EC
 
 # ===========================================================
 
-[32-TLS 1.3 RSA Client Auth Signature Algorithm Selection]
-ssl_conf = 32-TLS 1.3 RSA Client Auth Signature Algorithm Selection-ssl
+[36-TLS 1.3 Ed448 CipherString and Groups Selection]
+ssl_conf = 36-TLS 1.3 Ed448 CipherString and Groups Selection-ssl
 
-[32-TLS 1.3 RSA Client Auth Signature Algorithm Selection-ssl]
-server = 32-TLS 1.3 RSA Client Auth Signature Algorithm Selection-server
-client = 32-TLS 1.3 RSA Client Auth Signature Algorithm Selection-client
+[36-TLS 1.3 Ed448 CipherString and Groups Selection-ssl]
+server = 36-TLS 1.3 Ed448 CipherString and Groups Selection-server
+client = 36-TLS 1.3 Ed448 CipherString and Groups Selection-client
 
-[32-TLS 1.3 RSA Client Auth Signature Algorithm Selection-server]
+[36-TLS 1.3 Ed448 CipherString and Groups Selection-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem
+ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ecdsa-key.pem
+Ed25519.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed25519-cert.pem
+Ed25519.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed25519-key.pem
+Ed448.Certificate = ${ENV::TEST_CERTS_DIR}/server-ed448-cert.pem
+Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+
+[36-TLS 1.3 Ed448 CipherString and Groups Selection-client]
+CipherString = DEFAULT
+Groups = X448
+SignatureAlgorithms = ECDSA+SHA256:ed448
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-36]
+ExpectedResult = Success
+ExpectedServerCertType = P-256
+ExpectedServerSignType = EC
+
+
+# ===========================================================
+
+[37-TLS 1.3 RSA Client Auth Signature Algorithm Selection]
+ssl_conf = 37-TLS 1.3 RSA Client Auth Signature Algorithm Selection-ssl
+
+[37-TLS 1.3 RSA Client Auth Signature Algorithm Selection-ssl]
+server = 37-TLS 1.3 RSA Client Auth Signature Algorithm Selection-server
+client = 37-TLS 1.3 RSA Client Auth Signature Algorithm Selection-client
+
+[37-TLS 1.3 RSA Client Auth Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ClientSignatureAlgorithms = PSS+SHA256
@@ -1042,7 +1261,7 @@ PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
 VerifyMode = Require
 
-[32-TLS 1.3 RSA Client Auth Signature Algorithm Selection-client]
+[37-TLS 1.3 RSA Client Auth Signature Algorithm Selection-client]
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-client-chain.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-key.pem
@@ -1053,7 +1272,7 @@ RSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-32]
+[test-37]
 ExpectedClientCANames = empty
 ExpectedClientCertType = RSA
 ExpectedClientSignHash = SHA256
@@ -1063,14 +1282,14 @@ ExpectedResult = Success
 
 # ===========================================================
 
-[33-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names]
-ssl_conf = 33-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-ssl
+[38-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names]
+ssl_conf = 38-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-ssl
 
-[33-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-ssl]
-server = 33-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-server
-client = 33-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-client
+[38-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-ssl]
+server = 38-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-server
+client = 38-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-client
 
-[33-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-server]
+[38-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ClientSignatureAlgorithms = PSS+SHA256
@@ -1079,7 +1298,7 @@ RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
 VerifyMode = Require
 
-[33-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-client]
+[38-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names-client]
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-client-chain.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-key.pem
@@ -1090,7 +1309,7 @@ RSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-33]
+[test-38]
 ExpectedClientCANames = ${ENV::TEST_CERTS_DIR}/root-cert.pem
 ExpectedClientCertType = RSA
 ExpectedClientSignHash = SHA256
@@ -1100,14 +1319,14 @@ ExpectedResult = Success
 
 # ===========================================================
 
-[34-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection]
-ssl_conf = 34-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-ssl
+[39-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection]
+ssl_conf = 39-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-ssl
 
-[34-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-ssl]
-server = 34-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-server
-client = 34-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-client
+[39-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-ssl]
+server = 39-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-server
+client = 39-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-client
 
-[34-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-server]
+[39-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ClientSignatureAlgorithms = ECDSA+SHA256
@@ -1115,7 +1334,7 @@ PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
 VerifyMode = Require
 
-[34-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-client]
+[39-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection-client]
 CipherString = DEFAULT
 ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-client-chain.pem
 ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-ecdsa-key.pem
@@ -1126,7 +1345,7 @@ RSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/ee-key.pem
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-34]
+[test-39]
 ExpectedClientCertType = P-256
 ExpectedClientSignHash = SHA256
 ExpectedClientSignType = EC
@@ -1135,21 +1354,21 @@ ExpectedResult = Success
 
 # ===========================================================
 
-[35-TLS 1.3 Ed25519 Client Auth]
-ssl_conf = 35-TLS 1.3 Ed25519 Client Auth-ssl
+[40-TLS 1.3 Ed25519 Client Auth]
+ssl_conf = 40-TLS 1.3 Ed25519 Client Auth-ssl
 
-[35-TLS 1.3 Ed25519 Client Auth-ssl]
-server = 35-TLS 1.3 Ed25519 Client Auth-server
-client = 35-TLS 1.3 Ed25519 Client Auth-client
+[40-TLS 1.3 Ed25519 Client Auth-ssl]
+server = 40-TLS 1.3 Ed25519 Client Auth-server
+client = 40-TLS 1.3 Ed25519 Client Auth-client
 
-[35-TLS 1.3 Ed25519 Client Auth-server]
+[40-TLS 1.3 Ed25519 Client Auth-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
 VerifyMode = Require
 
-[35-TLS 1.3 Ed25519 Client Auth-client]
+[40-TLS 1.3 Ed25519 Client Auth-client]
 CipherString = DEFAULT
 EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/client-ed25519-cert.pem
 EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/client-ed25519-key.pem
@@ -1158,7 +1377,7 @@ MinProtocol = TLSv1.3
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-35]
+[test-40]
 ExpectedClientCertType = Ed25519
 ExpectedClientSignType = Ed25519
 ExpectedResult = Success
@@ -1166,14 +1385,45 @@ ExpectedResult = Success
 
 # ===========================================================
 
-[36-TLS 1.2 DSA Certificate Test]
-ssl_conf = 36-TLS 1.2 DSA Certificate Test-ssl
+[41-TLS 1.3 Ed448 Client Auth]
+ssl_conf = 41-TLS 1.3 Ed448 Client Auth-ssl
+
+[41-TLS 1.3 Ed448 Client Auth-ssl]
+server = 41-TLS 1.3 Ed448 Client Auth-server
+client = 41-TLS 1.3 Ed448 Client Auth-client
+
+[41-TLS 1.3 Ed448 Client Auth-server]
+Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
+CipherString = DEFAULT
+PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
+VerifyMode = Require
+
+[41-TLS 1.3 Ed448 Client Auth-client]
+CipherString = DEFAULT
+EdDSA.Certificate = ${ENV::TEST_CERTS_DIR}/client-ed448-cert.pem
+EdDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/client-ed448-key.pem
+MaxProtocol = TLSv1.3
+MinProtocol = TLSv1.3
+VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
+VerifyMode = Peer
+
+[test-41]
+ExpectedClientCertType = Ed448
+ExpectedClientSignType = Ed448
+ExpectedResult = Success
+
+
+# ===========================================================
+
+[42-TLS 1.2 DSA Certificate Test]
+ssl_conf = 42-TLS 1.2 DSA Certificate Test-ssl
 
-[36-TLS 1.2 DSA Certificate Test-ssl]
-server = 36-TLS 1.2 DSA Certificate Test-server
-client = 36-TLS 1.2 DSA Certificate Test-client
+[42-TLS 1.2 DSA Certificate Test-ssl]
+server = 42-TLS 1.2 DSA Certificate Test-server
+client = 42-TLS 1.2 DSA Certificate Test-client
 
-[36-TLS 1.2 DSA Certificate Test-server]
+[42-TLS 1.2 DSA Certificate Test-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = ALL
 DHParameters = ${ENV::TEST_CERTS_DIR}/dhp2048.pem
@@ -1183,26 +1433,26 @@ MaxProtocol = TLSv1.2
 MinProtocol = TLSv1.2
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[36-TLS 1.2 DSA Certificate Test-client]
+[42-TLS 1.2 DSA Certificate Test-client]
 CipherString = ALL
 SignatureAlgorithms = DSA+SHA256:DSA+SHA1
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-36]
+[test-42]
 ExpectedResult = Success
 
 
 # ===========================================================
 
-[37-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms]
-ssl_conf = 37-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-ssl
+[43-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms]
+ssl_conf = 43-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-ssl
 
-[37-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-ssl]
-server = 37-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-server
-client = 37-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-client
+[43-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-ssl]
+server = 43-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-server
+client = 43-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-client
 
-[37-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-server]
+[43-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = DEFAULT
 ClientSignatureAlgorithms = ECDSA+SHA1:DSA+SHA256:RSA+SHA256
@@ -1210,25 +1460,25 @@ PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem
 VerifyMode = Request
 
-[37-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-client]
+[43-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms-client]
 CipherString = DEFAULT
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-37]
+[test-43]
 ExpectedResult = ServerFail
 
 
 # ===========================================================
 
-[38-TLS 1.3 DSA Certificate Test]
-ssl_conf = 38-TLS 1.3 DSA Certificate Test-ssl
+[44-TLS 1.3 DSA Certificate Test]
+ssl_conf = 44-TLS 1.3 DSA Certificate Test-ssl
 
-[38-TLS 1.3 DSA Certificate Test-ssl]
-server = 38-TLS 1.3 DSA Certificate Test-server
-client = 38-TLS 1.3 DSA Certificate Test-client
+[44-TLS 1.3 DSA Certificate Test-ssl]
+server = 44-TLS 1.3 DSA Certificate Test-server
+client = 44-TLS 1.3 DSA Certificate Test-client
 
-[38-TLS 1.3 DSA Certificate Test-server]
+[44-TLS 1.3 DSA Certificate Test-server]
 Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem
 CipherString = ALL
 DSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-dsa-cert.pem
@@ -1237,13 +1487,13 @@ MaxProtocol = TLSv1.3
 MinProtocol = TLSv1.3
 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem
 
-[38-TLS 1.3 DSA Certificate Test-client]
+[44-TLS 1.3 DSA Certificate Test-client]
 CipherString = ALL
 SignatureAlgorithms = DSA+SHA1:DSA+SHA256:ECDSA+SHA256
 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem
 VerifyMode = Peer
 
-[test-38]
+[test-44]
 ExpectedResult = ServerFail
 
 
diff --git a/test/ssl-tests/20-cert-select.conf.in b/test/ssl-tests/20-cert-select.conf.in
index ff77f6b..c6589c7 100644
--- a/test/ssl-tests/20-cert-select.conf.in
+++ b/test/ssl-tests/20-cert-select.conf.in
@@ -12,8 +12,10 @@ use OpenSSL::Test::Utils;
 my $server = {
     "ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
     "ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
-    "EdDSA.Certificate" => test_pem("server-ed25519-cert.pem"),
-    "EdDSA.PrivateKey" => test_pem("server-ed25519-key.pem"),
+    "Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
+    "Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
+    "Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
+    "Ed448.PrivateKey" => test_pem("server-ed448-key.pem"),
     "MaxProtocol" => "TLSv1.2"
 };
 
@@ -22,8 +24,10 @@ my $server_pss = {
     "PSS.PrivateKey" => test_pem("server-pss-key.pem"),
     "ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
     "ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
-    "EdDSA.Certificate" => test_pem("server-ed25519-cert.pem"),
-    "EdDSA.PrivateKey" => test_pem("server-ed25519-key.pem"),
+    "Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
+    "Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
+    "Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
+    "Ed448.PrivateKey" => test_pem("server-ed448-key.pem"),
     "MaxProtocol" => "TLSv1.2"
 };
 
@@ -67,6 +71,23 @@ our @tests = (
         },
     },
     {
+        name => "Ed448 CipherString and Signature Algorithm Selection",
+        server => $server,
+        client => {
+            "CipherString" => "aECDSA",
+            "MaxProtocol" => "TLSv1.2",
+            "SignatureAlgorithms" => "ed448:ECDSA+SHA256",
+            "RequestCAFile" => test_pem("root-cert.pem"),
+        },
+        test   => {
+            "ExpectedServerCertType" =>, "Ed448",
+            "ExpectedServerSignType" =>, "Ed448",
+            # Note: certificate_authorities not sent for TLS < 1.3
+            "ExpectedServerCANames" =>, "empty",
+            "ExpectedResult" => "Success"
+        },
+    },
+    {
         name => "RSA CipherString Selection",
         server => $server,
         client => {
@@ -125,6 +146,23 @@ our @tests = (
         },
     },
     {
+        name => "Ed448 CipherString and Curves Selection",
+        server => $server,
+        client => {
+            "CipherString" => "aECDSA",
+            "MaxProtocol" => "TLSv1.2",
+            "SignatureAlgorithms" => "ECDSA+SHA256:ed448",
+            # Excluding P-256 from the supported curves list means server
+            # certificate should be Ed25519 and not P-256
+            "Curves" => "X448"
+        },
+        test   => {
+            "ExpectedServerCertType" =>, "Ed448",
+            "ExpectedServerSignType" =>, "Ed448",
+            "ExpectedResult" => "Success"
+        },
+    },
+    {
         name => "ECDSA CipherString Selection, no ECDSA certificate",
         server => {
             "MaxProtocol" => "TLSv1.2"
@@ -323,8 +361,8 @@ our @tests = (
             "VerifyMode" => "Require"
         },
         client => {
-            "EdDSA.Certificate" => test_pem("client-ed25519-cert.pem"),
-            "EdDSA.PrivateKey" => test_pem("client-ed25519-key.pem"),
+            "Ed25519.Certificate" => test_pem("client-ed25519-cert.pem"),
+            "Ed25519.PrivateKey" => test_pem("client-ed25519-key.pem"),
             "MinProtocol" => "TLSv1.2",
             "MaxProtocol" => "TLSv1.2"
         },
@@ -334,6 +372,24 @@ our @tests = (
             "ExpectedResult" => "Success"
         },
     },
+    {
+        name => "TLS 1.2 Ed448 Client Auth",
+        server => {
+            "VerifyCAFile" => test_pem("root-cert.pem"),
+            "VerifyMode" => "Require"
+        },
+        client => {
+            "Ed448.Certificate" => test_pem("client-ed448-cert.pem"),
+            "Ed448.PrivateKey" => test_pem("client-ed448-key.pem"),
+            "MinProtocol" => "TLSv1.2",
+            "MaxProtocol" => "TLSv1.2"
+        },
+        test   => {
+            "ExpectedClientCertType" => "Ed448",
+            "ExpectedClientSignType" => "Ed448",
+            "ExpectedResult" => "Success"
+        },
+    },
 );
 
 my @tests_tls_1_1 = (
@@ -354,8 +410,10 @@ push @tests, @tests_tls_1_1 unless disabled("tls1_1");
 my $server_tls_1_3 = {
     "ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
     "ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
-    "EdDSA.Certificate" => test_pem("server-ed25519-cert.pem"),
-    "EdDSA.PrivateKey" => test_pem("server-ed25519-key.pem"),
+    "Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
+    "Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
+    "Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
+    "Ed448.PrivateKey" => test_pem("server-ed448-key.pem"),
     "MinProtocol" => "TLSv1.3",
     "MaxProtocol" => "TLSv1.3"
 };
@@ -365,8 +423,10 @@ my $server_tls_1_3_pss = {
     "PSS.PrivateKey" => test_pem("server-pss-key.pem"),
     "ECDSA.Certificate" => test_pem("server-ecdsa-cert.pem"),
     "ECDSA.PrivateKey" => test_pem("server-ecdsa-key.pem"),
-    "EdDSA.Certificate" => test_pem("server-ed25519-cert.pem"),
-    "EdDSA.PrivateKey" => test_pem("server-ed25519-key.pem"),
+    "Ed25519.Certificate" => test_pem("server-ed25519-cert.pem"),
+    "Ed25519.PrivateKey" => test_pem("server-ed25519-key.pem"),
+    "Ed448.Certificate" => test_pem("server-ed448-cert.pem"),
+    "Ed448.PrivateKey" => test_pem("server-ed449-key.pem"),
     "MinProtocol" => "TLSv1.3",
     "MaxProtocol" => "TLSv1.3"
 };
@@ -497,6 +557,18 @@ my @tests_tls_1_3 = (
         },
     },
     {
+        name => "TLS 1.3 Ed448 Signature Algorithm Selection",
+        server => $server_tls_1_3,
+        client => {
+            "SignatureAlgorithms" => "ed448",
+        },
+        test   => {
+            "ExpectedServerCertType" => "Ed448",
+            "ExpectedServerSignType" => "Ed448",
+            "ExpectedResult" => "Success"
+        },
+    },
+    {
         name => "TLS 1.3 Ed25519 CipherString and Groups Selection",
         server => $server_tls_1_3,
         client => {
@@ -513,6 +585,22 @@ my @tests_tls_1_3 = (
         },
     },
     {
+        name => "TLS 1.3 Ed448 CipherString and Groups Selection",
+        server => $server_tls_1_3,
+        client => {
+            "SignatureAlgorithms" => "ECDSA+SHA256:ed448",
+            # Excluding P-256 from the supported groups list should
+            # mean server still uses a P-256 certificate because supported
+            # groups is not used in signature selection for TLS 1.3
+            "Groups" => "X448"
+        },
+        test   => {
+            "ExpectedServerCertType" =>, "P-256",
+            "ExpectedServerSignType" =>, "EC",
+            "ExpectedResult" => "Success"
+        },
+    },
+    {
         name => "TLS 1.3 RSA Client Auth Signature Algorithm Selection",
         server => {
             "ClientSignatureAlgorithms" => "PSS+SHA256",
@@ -578,6 +666,24 @@ my @tests_tls_1_3 = (
             "ExpectedResult" => "Success"
         },
     },
+    {
+        name => "TLS 1.3 Ed448 Client Auth",
+        server => {
+            "VerifyCAFile" => test_pem("root-cert.pem"),
+            "VerifyMode" => "Require"
+        },
+        client => {
+            "EdDSA.Certificate" => test_pem("client-ed448-cert.pem"),
+            "EdDSA.PrivateKey" => test_pem("client-ed448-key.pem"),
+            "MinProtocol" => "TLSv1.3",
+            "MaxProtocol" => "TLSv1.3"
+        },
+        test   => {
+            "ExpectedClientCertType" => "Ed448",
+            "ExpectedClientSignType" => "Ed448",
+            "ExpectedResult" => "Success"
+        },
+    },
 );
 
 push @tests, @tests_tls_1_3 unless disabled("tls1_3");
diff --git a/test/ssl_cert_table_internal_test.c b/test/ssl_cert_table_internal_test.c
index b298cfe..5adcb8d 100644
--- a/test/ssl_cert_table_internal_test.c
+++ b/test/ssl_cert_table_internal_test.c
@@ -70,6 +70,8 @@ static int test_ssl_cert_table(void)
         return 0;
     if (!test_cert_table(EVP_PKEY_ED25519, SSL_aECDSA, SSL_PKEY_ED25519))
         return 0;
+    if (!test_cert_table(EVP_PKEY_ED448, SSL_aECDSA, SSL_PKEY_ED448))
+        return 0;
 
     return 1;
 }


More information about the openssl-commits mailing list