X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=ssl%2Ft1_lib.c;h=4f28818c33bb7fa780f6ba7afb0868ce581765ee;hp=0a39b9755a5cfc52a888ab0c7637e98e2e56056d;hb=6ffeb269a325febb6f48130ad2178d6dfb893bd4;hpb=a163e60d950f5cbfa56778a10cc34c95681861f1;ds=sidebyside diff --git a/ssl/t1_lib.c b/ssl/t1_lib.c index 0a39b9755a..4f28818c33 100644 --- a/ssl/t1_lib.c +++ b/ssl/t1_lib.c @@ -1447,6 +1447,12 @@ static int tls12_sigalg_allowed(SSL *s, int op, const SIGALG_LOOKUP *lu) /* DSA is not allowed in TLS 1.3 */ if (SSL_IS_TLS13(s) && lu->sig == EVP_PKEY_DSA) return 0; + /* TODO(OpenSSL1.2) fully axe DSA/etc. in ClientHello per TLS 1.3 spec */ + if (!s->server && !SSL_IS_DTLS(s) && s->s3->tmp.min_ver >= TLS1_3_VERSION + && (lu->sig == EVP_PKEY_DSA || lu->hash_idx == SSL_MD_SHA1_IDX + || lu->hash_idx == SSL_MD_MD5_IDX + || lu->hash_idx == SSL_MD_SHA224_IDX)) + return 0; /* See if public key algorithm allowed */ if (tls12_get_pkey_idx(lu->sig) == -1) return 0;