diff options
-rw-r--r-- | ssl/ssl_locl.h | 2 | ||||
-rw-r--r-- | ssl/statem/statem_clnt.c | 3 | ||||
-rw-r--r-- | ssl/t1_lib.c | 24 | ||||
-rw-r--r-- | test/ssl-tests/20-cert-select.conf | 859 | ||||
-rw-r--r-- | test/ssl-tests/20-cert-select.conf.in | 44 |
5 files changed, 524 insertions, 408 deletions
diff --git a/ssl/ssl_locl.h b/ssl/ssl_locl.h index eae578818c..1c3ee354ec 100644 --- a/ssl/ssl_locl.h +++ b/ssl/ssl_locl.h @@ -2453,7 +2453,7 @@ SSL_COMP *ssl3_comp_find(STACK_OF(SSL_COMP) *sk, int n); # ifndef OPENSSL_NO_EC __owur const TLS_GROUP_INFO *tls1_group_id_lookup(uint16_t curve_id); -__owur int tls1_check_group_id(SSL *s, uint16_t group_id); +__owur int tls1_check_group_id(SSL *s, uint16_t group_id, int check_own_curves); __owur uint16_t tls1_shared_group(SSL *s, int nmatch); __owur int tls1_set_groups(uint16_t **pext, size_t *pextlen, int *curves, size_t ncurves); diff --git a/ssl/statem/statem_clnt.c b/ssl/statem/statem_clnt.c index e940fc8e98..29db4bc3f2 100644 --- a/ssl/statem/statem_clnt.c +++ b/ssl/statem/statem_clnt.c @@ -2192,7 +2192,8 @@ static int tls_process_ske_ecdhe(SSL *s, PACKET *pkt, EVP_PKEY **pkey) * Check curve is named curve type and one of our preferences, if not * server has sent an invalid curve. */ - if (curve_type != NAMED_CURVE_TYPE || !tls1_check_group_id(s, curve_id)) { + if (curve_type != NAMED_CURVE_TYPE + || !tls1_check_group_id(s, curve_id, 1)) { SSLfatal(s, SSL_AD_ILLEGAL_PARAMETER, SSL_F_TLS_PROCESS_SKE_ECDHE, SSL_R_WRONG_CURVE); return 0; diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c index 174d7de3ce..cf5f783c5f 100644 --- a/ssl/t1_lib.c +++ b/ssl/t1_lib.c @@ -467,7 +467,7 @@ static int tls1_check_pkey_comp(SSL *s, EVP_PKEY *pkey) } /* Check a group id matches preferences */ -int tls1_check_group_id(SSL *s, uint16_t group_id) +int tls1_check_group_id(SSL *s, uint16_t group_id, int check_own_groups) { const uint16_t *groups; size_t groups_len; @@ -491,10 +491,12 @@ int tls1_check_group_id(SSL *s, uint16_t group_id) } } - /* Check group is one of our preferences */ - tls1_get_supported_groups(s, &groups, &groups_len); - if (!tls1_in_list(group_id, groups, groups_len)) - return 0; + if (check_own_groups) { + /* Check group is one of our preferences */ + tls1_get_supported_groups(s, &groups, &groups_len); + if (!tls1_in_list(group_id, groups, groups_len)) + return 0; + } if (!tls_curve_allowed(s, group_id, SSL_SECOP_CURVE_CHECK)) return 0; @@ -554,7 +556,11 @@ static int tls1_check_cert_param(SSL *s, X509 *x, int check_ee_md) if (!tls1_check_pkey_comp(s, pkey)) return 0; group_id = tls1_get_group_id(pkey); - if (!tls1_check_group_id(s, group_id)) + /* + * For a server we allow the certificate to not be in our list of supported + * groups. + */ + if (!tls1_check_group_id(s, group_id, !s->server)) return 0; /* * Special case for suite B. We *MUST* sign using SHA256+P-256 or @@ -601,9 +607,9 @@ int tls1_check_ec_tmp_key(SSL *s, unsigned long cid) * curves permitted. */ if (cid == TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256) - return tls1_check_group_id(s, TLSEXT_curve_P_256); + return tls1_check_group_id(s, TLSEXT_curve_P_256, 1); if (cid == TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384) - return tls1_check_group_id(s, TLSEXT_curve_P_384); + return tls1_check_group_id(s, TLSEXT_curve_P_384, 1); return 0; } @@ -979,7 +985,7 @@ int tls12_check_peer_sigalg(SSL *s, uint16_t sig, EVP_PKEY *pkey) } if (!SSL_IS_TLS13(s)) { /* Check curve matches extensions */ - if (!tls1_check_group_id(s, tls1_get_group_id(pkey))) { + if (!tls1_check_group_id(s, tls1_get_group_id(pkey), 1)) { SSLfatal(s, SSL_AD_ILLEGAL_PARAMETER, SSL_F_TLS12_CHECK_PEER_SIGALG, SSL_R_WRONG_CURVE); return 0; diff --git a/test/ssl-tests/20-cert-select.conf b/test/ssl-tests/20-cert-select.conf index 1f415bfe72..26da1c027e 100644 --- a/test/ssl-tests/20-cert-select.conf +++ b/test/ssl-tests/20-cert-select.conf @@ -1,52 +1,54 @@ # Generated with generate_ssl_tests.pl -num_tests = 45 +num_tests = 47 test-0 = 0-ECDSA CipherString Selection -test-1 = 1-Ed25519 CipherString and Signature Algorithm Selection -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 +test-1 = 1-ECDSA CipherString Selection +test-2 = 2-ECDSA CipherString Selection +test-3 = 3-Ed25519 CipherString and Signature Algorithm Selection +test-4 = 4-Ed448 CipherString and Signature Algorithm Selection +test-5 = 5-RSA CipherString Selection +test-6 = 6-RSA-PSS Certificate CipherString Selection +test-7 = 7-P-256 CipherString and Signature Algorithm Selection +test-8 = 8-Ed25519 CipherString and Curves Selection +test-9 = 9-Ed448 CipherString and Curves Selection +test-10 = 10-ECDSA CipherString Selection, no ECDSA certificate +test-11 = 11-ECDSA Signature Algorithm Selection +test-12 = 12-ECDSA Signature Algorithm Selection SHA384 +test-13 = 13-ECDSA Signature Algorithm Selection SHA1 +test-14 = 14-ECDSA Signature Algorithm Selection compressed point +test-15 = 15-ECDSA Signature Algorithm Selection, no ECDSA certificate +test-16 = 16-RSA Signature Algorithm Selection +test-17 = 17-RSA-PSS Signature Algorithm Selection +test-18 = 18-RSA-PSS Certificate Legacy Signature Algorithm Selection +test-19 = 19-RSA-PSS Certificate Unified Signature Algorithm Selection +test-20 = 20-Only RSA-PSS Certificate +test-21 = 21-RSA-PSS Certificate, no PSS signature algorithms +test-22 = 22-Suite B P-256 Hash Algorithm Selection +test-23 = 23-Suite B P-384 Hash Algorithm Selection +test-24 = 24-TLS 1.2 Ed25519 Client Auth +test-25 = 25-TLS 1.2 Ed448 Client Auth +test-26 = 26-Only RSA-PSS Certificate, TLS v1.1 +test-27 = 27-TLS 1.3 ECDSA Signature Algorithm Selection +test-28 = 28-TLS 1.3 ECDSA Signature Algorithm Selection compressed point +test-29 = 29-TLS 1.3 ECDSA Signature Algorithm Selection SHA1 +test-30 = 30-TLS 1.3 ECDSA Signature Algorithm Selection with PSS +test-31 = 31-TLS 1.3 RSA Signature Algorithm Selection SHA384 with PSS +test-32 = 32-TLS 1.3 ECDSA Signature Algorithm Selection, no ECDSA certificate +test-33 = 33-TLS 1.3 RSA Signature Algorithm Selection, no PSS +test-34 = 34-TLS 1.3 RSA-PSS Signature Algorithm Selection +test-35 = 35-TLS 1.3 Ed25519 Signature Algorithm Selection +test-36 = 36-TLS 1.3 Ed448 Signature Algorithm Selection +test-37 = 37-TLS 1.3 Ed25519 CipherString and Groups Selection +test-38 = 38-TLS 1.3 Ed448 CipherString and Groups Selection +test-39 = 39-TLS 1.3 RSA Client Auth Signature Algorithm Selection +test-40 = 40-TLS 1.3 RSA Client Auth Signature Algorithm Selection non-empty CA Names +test-41 = 41-TLS 1.3 ECDSA Client Auth Signature Algorithm Selection +test-42 = 42-TLS 1.3 Ed25519 Client Auth +test-43 = 43-TLS 1.3 Ed448 Client Auth +test-44 = 44-TLS 1.2 DSA Certificate Test +test-45 = 45-TLS 1.3 Client Auth No TLS 1.3 Signature Algorithms +test-46 = 46-TLS 1.3 DSA Certificate Test # =========================================================== [0-ECDSA CipherString Selection] @@ -84,14 +86,77 @@ ExpectedServerSignType = EC # =========================================================== -[1-Ed25519 CipherString and Signature Algorithm Selection] -ssl_conf = 1-Ed25519 CipherString and Signature Algorithm Selection-ssl +[1-ECDSA CipherString Selection] +ssl_conf = 1-ECDSA CipherString Selection-ssl -[1-Ed25519 CipherString and Signature Algorithm Selection-ssl] -server = 1-Ed25519 CipherString and Signature Algorithm Selection-server -client = 1-Ed25519 CipherString and Signature Algorithm Selection-client +[1-ECDSA CipherString Selection-ssl] +server = 1-ECDSA CipherString Selection-server +client = 1-ECDSA CipherString Selection-client -[1-Ed25519 CipherString and Signature Algorithm Selection-server] +[1-ECDSA 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 +Groups = P-384 +MaxProtocol = TLSv1.2 +PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem + +[1-ECDSA CipherString Selection-client] +CipherString = aECDSA +Groups = P-256:P-384 +MaxProtocol = TLSv1.2 +RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem +VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem +VerifyMode = Peer + +[test-1] +ExpectedResult = Success +ExpectedServerCANames = empty +ExpectedServerCertType = P-256 +ExpectedServerSignType = EC + + +# =========================================================== + +[2-ECDSA CipherString Selection] +ssl_conf = 2-ECDSA CipherString Selection-ssl + +[2-ECDSA CipherString Selection-ssl] +server = 2-ECDSA CipherString Selection-server +client = 2-ECDSA CipherString Selection-client + +[2-ECDSA 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 +Groups = P-256:P-384 +MaxProtocol = TLSv1.2 +PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem + +[2-ECDSA CipherString Selection-client] +CipherString = aECDSA +Groups = P-384 +MaxProtocol = TLSv1.2 +RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem +VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem +VerifyMode = Peer + +[test-2] +ExpectedResult = ServerFail + + +# =========================================================== + +[3-Ed25519 CipherString and Signature Algorithm Selection] +ssl_conf = 3-Ed25519 CipherString and Signature Algorithm Selection-ssl + +[3-Ed25519 CipherString and Signature Algorithm Selection-ssl] +server = 3-Ed25519 CipherString and Signature Algorithm Selection-server +client = 3-Ed25519 CipherString and Signature Algorithm Selection-client + +[3-Ed25519 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 @@ -103,7 +168,7 @@ Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem MaxProtocol = TLSv1.2 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem -[1-Ed25519 CipherString and Signature Algorithm Selection-client] +[3-Ed25519 CipherString and Signature Algorithm Selection-client] CipherString = aECDSA MaxProtocol = TLSv1.2 RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem @@ -111,7 +176,7 @@ SignatureAlgorithms = ed25519:ECDSA+SHA256 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-1] +[test-3] ExpectedResult = Success ExpectedServerCANames = empty ExpectedServerCertType = Ed25519 @@ -120,14 +185,14 @@ ExpectedServerSignType = Ed25519 # =========================================================== -[2-Ed448 CipherString and Signature Algorithm Selection] -ssl_conf = 2-Ed448 CipherString and Signature Algorithm Selection-ssl +[4-Ed448 CipherString and Signature Algorithm Selection] +ssl_conf = 4-Ed448 CipherString and Signature Algorithm Selection-ssl -[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 +[4-Ed448 CipherString and Signature Algorithm Selection-ssl] +server = 4-Ed448 CipherString and Signature Algorithm Selection-server +client = 4-Ed448 CipherString and Signature Algorithm Selection-client -[2-Ed448 CipherString and Signature Algorithm Selection-server] +[4-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 @@ -139,7 +204,7 @@ Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem MaxProtocol = TLSv1.2 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem -[2-Ed448 CipherString and Signature Algorithm Selection-client] +[4-Ed448 CipherString and Signature Algorithm Selection-client] CipherString = aECDSA MaxProtocol = TLSv1.2 RequestCAFile = ${ENV::TEST_CERTS_DIR}/root-cert.pem @@ -147,7 +212,7 @@ SignatureAlgorithms = ed448:ECDSA+SHA256 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-2] +[test-4] ExpectedResult = Success ExpectedServerCANames = empty ExpectedServerCertType = Ed448 @@ -156,14 +221,14 @@ ExpectedServerSignType = Ed448 # =========================================================== -[3-RSA CipherString Selection] -ssl_conf = 3-RSA CipherString Selection-ssl +[5-RSA CipherString Selection] +ssl_conf = 5-RSA CipherString Selection-ssl -[3-RSA CipherString Selection-ssl] -server = 3-RSA CipherString Selection-server -client = 3-RSA CipherString Selection-client +[5-RSA CipherString Selection-ssl] +server = 5-RSA CipherString Selection-server +client = 5-RSA CipherString Selection-client -[3-RSA CipherString Selection-server] +[5-RSA CipherString Selection-server] Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem CipherString = DEFAULT ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem @@ -175,13 +240,13 @@ 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] +[5-RSA CipherString Selection-client] CipherString = aRSA MaxProtocol = TLSv1.2 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-3] +[test-5] ExpectedResult = Success ExpectedServerCertType = RSA ExpectedServerSignType = RSA-PSS @@ -189,14 +254,14 @@ ExpectedServerSignType = RSA-PSS # =========================================================== -[4-RSA-PSS Certificate CipherString Selection] -ssl_conf = 4-RSA-PSS Certificate CipherString Selection-ssl +[6-RSA-PSS Certificate CipherString Selection] +ssl_conf = 6-RSA-PSS Certificate CipherString Selection-ssl -[4-RSA-PSS Certificate CipherString Selection-ssl] -server = 4-RSA-PSS Certificate CipherString Selection-server -client = 4-RSA-PSS Certificate CipherString Selection-client +[6-RSA-PSS Certificate CipherString Selection-ssl] +server = 6-RSA-PSS Certificate CipherString Selection-server +client = 6-RSA-PSS Certificate CipherString Selection-client -[4-RSA-PSS Certificate CipherString Selection-server] +[6-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 @@ -210,13 +275,13 @@ 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 -[4-RSA-PSS Certificate CipherString Selection-client] +[6-RSA-PSS Certificate CipherString Selection-client] CipherString = aRSA MaxProtocol = TLSv1.2 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-4] +[test-6] ExpectedResult = Success ExpectedServerCertType = RSA-PSS ExpectedServerSignType = RSA-PSS @@ -224,14 +289,14 @@ ExpectedServerSignType = RSA-PSS # =========================================================== -[5-P-256 CipherString and Signature Algorithm Selection] -ssl_conf = 5-P-256 CipherString and Signature Algorithm Selection-ssl +[7-P-256 CipherString and Signature Algorithm Selection] +ssl_conf = 7-P-256 CipherString and Signature Algorithm Selection-ssl -[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 +[7-P-256 CipherString and Signature Algorithm Selection-ssl] +server = 7-P-256 CipherString and Signature Algorithm Selection-server +client = 7-P-256 CipherString and Signature Algorithm Selection-client -[5-P-256 CipherString and Signature Algorithm Selection-server] +[7-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 @@ -243,14 +308,14 @@ Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem MaxProtocol = TLSv1.2 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem -[5-P-256 CipherString and Signature Algorithm Selection-client] +[7-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-5] +[test-7] ExpectedResult = Success ExpectedServerCertType = P-256 ExpectedServerSignHash = SHA256 @@ -259,14 +324,14 @@ ExpectedServerSignType = EC # =========================================================== -[6-Ed25519 CipherString and Curves Selection] -ssl_conf = 6-Ed25519 CipherString and Curves Selection-ssl +[8-Ed25519 CipherString and Curves Selection] +ssl_conf = 8-Ed25519 CipherString and Curves Selection-ssl -[6-Ed25519 CipherString and Curves Selection-ssl] -server = 6-Ed25519 CipherString and Curves Selection-server -client = 6-Ed25519 CipherString and Curves Selection-client +[8-Ed25519 CipherString and Curves Selection-ssl] +server = 8-Ed25519 CipherString and Curves Selection-server +client = 8-Ed25519 CipherString and Curves Selection-client -[6-Ed25519 CipherString and Curves Selection-server] +[8-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 @@ -278,7 +343,7 @@ Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem MaxProtocol = TLSv1.2 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem -[6-Ed25519 CipherString and Curves Selection-client] +[8-Ed25519 CipherString and Curves Selection-client] CipherString = aECDSA Curves = X25519 MaxProtocol = TLSv1.2 @@ -286,7 +351,7 @@ SignatureAlgorithms = ECDSA+SHA256:ed25519 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-6] +[test-8] ExpectedResult = Success ExpectedServerCertType = Ed25519 ExpectedServerSignType = Ed25519 @@ -294,14 +359,14 @@ ExpectedServerSignType = Ed25519 # =========================================================== -[7-Ed448 CipherString and Curves Selection] -ssl_conf = 7-Ed448 CipherString and Curves Selection-ssl +[9-Ed448 CipherString and Curves Selection] +ssl_conf = 9-Ed448 CipherString and Curves Selection-ssl -[7-Ed448 CipherString and Curves Selection-ssl] -server = 7-Ed448 CipherString and Curves Selection-server -client = 7-Ed448 CipherString and Curves Selection-client +[9-Ed448 CipherString and Curves Selection-ssl] +server = 9-Ed448 CipherString and Curves Selection-server +client = 9-Ed448 CipherString and Curves Selection-client -[7-Ed448 CipherString and Curves Selection-server] +[9-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 @@ -313,7 +378,7 @@ Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem MaxProtocol = TLSv1.2 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem -[7-Ed448 CipherString and Curves Selection-client] +[9-Ed448 CipherString and Curves Selection-client] CipherString = aECDSA Curves = X448 MaxProtocol = TLSv1.2 @@ -321,7 +386,7 @@ SignatureAlgorithms = ECDSA+SHA256:ed448 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-7] +[test-9] ExpectedResult = Success ExpectedServerCertType = Ed448 ExpectedServerSignType = Ed448 @@ -329,39 +394,39 @@ ExpectedServerSignType = Ed448 # =========================================================== -[8-ECDSA CipherString Selection, no ECDSA certificate] -ssl_conf = 8-ECDSA CipherString Selection, no ECDSA certificate-ssl +[10-ECDSA CipherString Selection, no ECDSA certificate] +ssl_conf = 10-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 +[10-ECDSA CipherString Selection, no ECDSA certificate-ssl] +server = 10-ECDSA CipherString Selection, no ECDSA certificate-server +client = 10-ECDSA CipherString Selection, no ECDSA certificate-client -[8-ECDSA CipherString Selection, no ECDSA certificate-server] +[10-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] +[10-ECDSA CipherString Selection, no ECDSA certificate-client] CipherString = aECDSA MaxProtocol = TLSv1.2 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-8] +[test-10] ExpectedResult = ServerFail # =========================================================== -[9-ECDSA Signature Algorithm Selection] -ssl_conf = 9-ECDSA Signature Algorithm Selection-ssl +[11-ECDSA Signature Algorithm Selection] +ssl_conf = 11-ECDSA Signature Algorithm Selection-ssl -[9-ECDSA Signature Algorithm Selection-ssl] -server = 9-ECDSA Signature Algorithm Selection-server -client = 9-ECDSA Signature Algorithm Selection-client +[11-ECDSA Signature Algorithm Selection-ssl] +server = 11-ECDSA Signature Algorithm Selection-server +client = 11-ECDSA Signature Algorithm Selection-client -[9-ECDSA Signature Algorithm Selection-server] +[11-ECDSA Signature Algorithm Selection-server] Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem CipherString = DEFAULT ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem @@ -373,13 +438,13 @@ 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-client] +[11-ECDSA Signature Algorithm Selection-client] CipherString = DEFAULT SignatureAlgorithms = ECDSA+SHA256 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-9] +[test-11] ExpectedResult = Success ExpectedServerCertType = P-256 ExpectedServerSignHash = SHA256 @@ -388,14 +453,14 @@ ExpectedServerSignType = EC # =========================================================== -[10-ECDSA Signature Algorithm Selection SHA384] -ssl_conf = 10-ECDSA Signature Algorithm Selection SHA384-ssl +[12-ECDSA Signature Algorithm Selection SHA384] +ssl_conf = 12-ECDSA Signature Algorithm Selection SHA384-ssl -[10-ECDSA Signature Algorithm Selection SHA384-ssl] -server = 10-ECDSA Signature Algorithm Selection SHA384-server -client = 10-ECDSA Signature Algorithm Selection SHA384-client +[12-ECDSA Signature Algorithm Selection SHA384-ssl] +server = 12-ECDSA Signature Algorithm Selection SHA384-server +client = 12-ECDSA Signature Algorithm Selection SHA384-client -[10-ECDSA Signature Algorithm Selection SHA384-server] +[12-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 @@ -407,13 +472,13 @@ Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem MaxProtocol = TLSv1.2 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem -[10-ECDSA Signature Algorithm Selection SHA384-client] +[12-ECDSA Signature Algorithm Selection SHA384-client] CipherString = DEFAULT SignatureAlgorithms = ECDSA+SHA384 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-10] +[test-12] ExpectedResult = Success ExpectedServerCertType = P-256 ExpectedServerSignHash = SHA384 @@ -422,14 +487,14 @@ ExpectedServerSignType = EC # =========================================================== -[11-ECDSA Signature Algorithm Selection SHA1] -ssl_conf = 11-ECDSA Signature Algorithm Selection SHA1-ssl +[13-ECDSA Signature Algorithm Selection SHA1] +ssl_conf = 13-ECDSA Signature Algorithm Selection SHA1-ssl -[11-ECDSA Signature Algorithm Selection SHA1-ssl] -server = 11-ECDSA Signature Algorithm Selection SHA1-server -client = 11-ECDSA Signature Algorithm Selection SHA1-client +[13-ECDSA Signature Algorithm Selection SHA1-ssl] +server = 13-ECDSA Signature Algorithm Selection SHA1-server +client = 13-ECDSA Signature Algorithm Selection SHA1-client -[11-ECDSA Signature Algorithm Selection SHA1-server] +[13-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 @@ -441,13 +506,13 @@ Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem MaxProtocol = TLSv1.2 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem -[11-ECDSA Signature Algorithm Selection SHA1-client] +[13-ECDSA Signature Algorithm Selection SHA1-client] CipherString = DEFAULT SignatureAlgorithms = ECDSA+SHA1 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-11] +[test-13] ExpectedResult = Success ExpectedServerCertType = P-256 ExpectedServerSignHash = SHA1 @@ -456,14 +521,14 @@ ExpectedServerSignType = EC # =========================================================== -[12-ECDSA Signature Algorithm Selection compressed point] -ssl_conf = 12-ECDSA Signature Algorithm Selection compressed point-ssl +[14-ECDSA Signature Algorithm Selection compressed point] +ssl_conf = 14-ECDSA Signature Algorithm Selection compressed point-ssl -[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 +[14-ECDSA Signature Algorithm Selection compressed point-ssl] +server = 14-ECDSA Signature Algorithm Selection compressed point-server +client = 14-ECDSA Signature Algorithm Selection compressed point-client -[12-ECDSA Signature Algorithm Selection compressed point-server] +[14-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 @@ -471,13 +536,13 @@ ECDSA.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-cecdsa-key.pem MaxProtocol = TLSv1.2 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem -[12-ECDSA Signature Algorithm Selection compressed point-client] +[14-ECDSA Signature Algorithm Selection compressed point-client] CipherString = DEFAULT SignatureAlgorithms = ECDSA+SHA256 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-12] +[test-14] ExpectedResult = Success ExpectedServerCertType = P-256 ExpectedServerSignHash = SHA256 @@ -486,39 +551,39 @@ ExpectedServerSignType = EC # =========================================================== -[13-ECDSA Signature Algorithm Selection, no ECDSA certificate] -ssl_conf = 13-ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl +[15-ECDSA Signature Algorithm Selection, no ECDSA certificate] +ssl_conf = 15-ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl -[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 +[15-ECDSA Signature Algorithm Selection, no ECDSA certificate-ssl] +server = 15-ECDSA Signature Algorithm Selection, no ECDSA certificate-server +client = 15-ECDSA Signature Algorithm Selection, no ECDSA certificate-client -[13-ECDSA Signature Algorithm Selection, no ECDSA certificate-server] +[15-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 -[13-ECDSA Signature Algorithm Selection, no ECDSA certificate-client] +[15-ECDSA Signature Algorithm Selection, no ECDSA certificate-client] CipherString = DEFAULT SignatureAlgorithms = ECDSA+SHA256 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-13] +[test-15] ExpectedResult = ServerFail # =========================================================== -[14-RSA Signature Algorithm Selection] -ssl_conf = 14-RSA Signature Algorithm Selection-ssl +[16-RSA Signature Algorithm Selection] +ssl_conf = 16-RSA Signature Algorithm Selection-ssl -[14-RSA Signature Algorithm Selection-ssl] -server = 14-RSA Signature Algorithm Selection-server -client = 14-RSA Signature Algorithm Selection-client +[16-RSA Signature Algorithm Selection-ssl] +server = 16-RSA Signature Algorithm Selection-server +client = 16-RSA Signature Algorithm Selection-client -[14-RSA Signature Algorithm Selection-server] +[16-RSA Signature Algorithm Selection-server] Certificate = ${ENV::TEST_CERTS_DIR}/servercert.pem CipherString = DEFAULT ECDSA.Certificate = ${ENV::TEST_CERTS_DIR}/server-ecdsa-cert.pem @@ -530,13 +595,13 @@ Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem MaxProtocol = TLSv1.2 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem -[14-RSA Signature Algorithm Selection-client] +[16-RSA Signature Algorithm Selection-client] CipherString = DEFAULT SignatureAlgorithms = RSA+SHA256 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-14] +[test-16] ExpectedResult = Success ExpectedServerCertType = RSA ExpectedServerSignHash = SHA256 @@ -545,14 +610,14 @@ ExpectedServerSignType = RSA # =========================================================== -[15-RSA-PSS Signature Algorithm Selection] -ssl_conf = 15-RSA-PSS Signature Algorithm Selection-ssl +[17-RSA-PSS Signature Algorithm Selection] +ssl_conf = 17-RSA-PSS Signature Algorithm Selection-ssl -[15-RSA-PSS Signature Algorithm Selection-ssl] -server = 15-RSA-PSS Signature Algorithm Selection-server -client = 15-RSA-PSS Signature Algorithm Selection-client +[17-RSA-PSS Signature Algorithm Selection-ssl] +server = 17-RSA-PSS Signature Algorithm Selection-server +client = 17-RSA-PSS Signature Algorithm Selection-client -[15-RSA-PSS Signature Algorithm Selection-server] +[17-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 @@ -564,13 +629,13 @@ Ed448.PrivateKey = ${ENV::TEST_CERTS_DIR}/server-ed448-key.pem MaxProtocol = TLSv1.2 PrivateKey = ${ENV::TEST_CERTS_DIR}/serverkey.pem -[15-RSA-PSS Signature Algorithm Selection-client] +[17-RSA-PSS Signature Algorithm Selection-client] CipherString = DEFAULT SignatureAlgorithms = RSA-PSS+SHA256 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-15] +[test-17] ExpectedResult = Success ExpectedServerCertType = RSA ExpectedServerSignHash = SHA256 @@ -579,14 +644,14 @@ ExpectedServerSignType = RSA-PSS # =========================================================== -[16-RSA-PSS Certificate Legacy Signature Algorithm Selection] -ssl_conf = 16-RSA-PSS Certificate Legacy Signature Algorithm Selection-ssl +[18-RSA-PSS Certificate Legacy Signature Algorithm Selection] +ssl_conf = 18-RSA-PSS Certificate Legacy Signature Algorithm Selection-ssl -[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 +[18-RSA-PSS Certificate Legacy Signature Algorithm Selection-ssl] +server = 18-RSA-PSS Certificate Legacy Signature Algorithm Selection-server +client = 18-RSA-PSS Certificate Legacy Signature Algorithm Selection-client -[16-RSA-PSS Certificate Legacy Signature Algorithm Selection-server] +[18-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 @@ -600,13 +665,13 @@ 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 -[16-RSA-PSS Certificate Legacy Signature Algorithm Selection-client] +[18-RSA-PSS Certificate Legacy Signature Algorithm Selection-client] CipherString = DEFAULT SignatureAlgorithms = RSA-PSS+SHA256 VerifyCAFile = ${ENV::TEST_CERTS_DIR}/rootcert.pem VerifyMode = Peer -[test-16] +[test-18] ExpectedResult = Success ExpectedServerCertType = RSA ExpectedServerSignHash = SHA256 @@ -615,14 +680,14 @@ ExpectedServerSignType = RSA-PSS # =========================================================== -[17-RSA-PSS Certificate Unified Signature Algorithm Selection] -ssl_conf = 17-RSA-PSS Certificate Unified Signature Algorithm Selection-ssl +[19-RSA-PSS Certificate Unified Signature Algorithm Selection] +ssl_conf = 19-RSA-PSS Certificate Unified Signature Algorithm Selection-ssl -[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 +[19-RSA-PSS Certificate Unified Signature Algorithm Selection-ssl] +server = 19-RSA-PSS Certificate Unified Signature Algorithm Selection-server +client = 19-RSA-PSS Certificate Unified Signature Algorithm Selection-client -[17-RSA-PSS Certificate Unified Signature Algorithm Selection-server] +[19-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 @@ -636,13 +701,13 @@ 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 -[17-RSA-PSS Certificate Unified Signature Algorithm Selection-client] +[19-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-17] +[test-19] ExpectedResult = Success ExpectedServerCertType = RSA-PSS |