diff options
author | jsing <> | 2021-06-29 19:36:14 +0000 |
---|---|---|
committer | jsing <> | 2021-06-29 19:36:14 +0000 |
commit | 6232f801a4c72cd960dca5f1378d66fe713b6f0c (patch) | |
tree | 02a4455bea5704a29e06d35a80fbde49dc9b5d35 /src | |
parent | 55dedc1f6860ad63e772dc15b0e2ee0a480651f1 (diff) | |
download | openbsd-6232f801a4c72cd960dca5f1378d66fe713b6f0c.tar.gz openbsd-6232f801a4c72cd960dca5f1378d66fe713b6f0c.tar.bz2 openbsd-6232f801a4c72cd960dca5f1378d66fe713b6f0c.zip |
Pull up and dedup the TLS version check in ssl_sigalg_pkey_ok().
Suggested by tb@
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libssl/ssl_sigalgs.c | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/lib/libssl/ssl_sigalgs.c b/src/lib/libssl/ssl_sigalgs.c index 619ba57f0d..765f39d4a9 100644 --- a/src/lib/libssl/ssl_sigalgs.c +++ b/src/lib/libssl/ssl_sigalgs.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_sigalgs.c,v 1.36 2021/06/29 19:33:46 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_sigalgs.c,v 1.37 2021/06/29 19:36:14 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2018-2020 Bob Beck <beck@openbsd.org> | 3 | * Copyright (c) 2018-2020 Bob Beck <beck@openbsd.org> |
4 | * Copyright (c) 2021 Joel Sing <jsing@openbsd.org> | 4 | * Copyright (c) 2021 Joel Sing <jsing@openbsd.org> |
@@ -277,15 +277,16 @@ ssl_sigalg_pkey_ok(SSL *s, const struct ssl_sigalg *sigalg, EVP_PKEY *pkey) | |||
277 | return 0; | 277 | return 0; |
278 | } | 278 | } |
279 | 279 | ||
280 | if (S3I(s)->hs.negotiated_tls_version < TLS1_3_VERSION) | ||
281 | return 1; | ||
282 | |||
280 | /* RSA cannot be used without PSS in TLSv1.3. */ | 283 | /* RSA cannot be used without PSS in TLSv1.3. */ |
281 | if (S3I(s)->hs.negotiated_tls_version >= TLS1_3_VERSION && | 284 | if (sigalg->key_type == EVP_PKEY_RSA && |
282 | sigalg->key_type == EVP_PKEY_RSA && | ||
283 | (sigalg->flags & SIGALG_FLAG_RSA_PSS) == 0) | 285 | (sigalg->flags & SIGALG_FLAG_RSA_PSS) == 0) |
284 | return 0; | 286 | return 0; |
285 | 287 | ||
286 | /* Ensure that curve matches for EC keys. */ | 288 | /* Ensure that curve matches for EC keys. */ |
287 | if (S3I(s)->hs.negotiated_tls_version >= TLS1_3_VERSION && | 289 | if (pkey->type == EVP_PKEY_EC) { |
288 | pkey->type == EVP_PKEY_EC) { | ||
289 | if (sigalg->curve_nid == 0) | 290 | if (sigalg->curve_nid == 0) |
290 | return 0; | 291 | return 0; |
291 | if (EC_GROUP_get_curve_name(EC_KEY_get0_group( | 292 | if (EC_GROUP_get_curve_name(EC_KEY_get0_group( |