diff options
author | jsing <> | 2021-06-29 19:31:16 +0000 |
---|---|---|
committer | jsing <> | 2021-06-29 19:31:16 +0000 |
commit | d0f4c6c8d88f67e8c5b9cfc675014a2842294d70 (patch) | |
tree | e36c2a84830261004e85932b8c126629ad157155 /src | |
parent | 8d59110527cec018fea3a4d0ac7b9798140cd735 (diff) | |
download | openbsd-d0f4c6c8d88f67e8c5b9cfc675014a2842294d70.tar.gz openbsd-d0f4c6c8d88f67e8c5b9cfc675014a2842294d70.tar.bz2 openbsd-d0f4c6c8d88f67e8c5b9cfc675014a2842294d70.zip |
Use appropriate TLS version when building client sigalg extensions.
Only use the minimum TLS version to when building a signature algorithms
extension for a ClientHello - in all other cases we should be using the
negotiated TLS version.
ok inoguchi@ tb@
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libssl/ssl_tlsext.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/libssl/ssl_tlsext.c b/src/lib/libssl/ssl_tlsext.c index 22932f969d..2eac4947e9 100644 --- a/src/lib/libssl/ssl_tlsext.c +++ b/src/lib/libssl/ssl_tlsext.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: ssl_tlsext.c,v 1.96 2021/06/27 17:59:17 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_tlsext.c,v 1.97 2021/06/29 19:31:16 jsing Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2016, 2017, 2019 Joel Sing <jsing@openbsd.org> |
4 | * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> | 4 | * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> |
@@ -558,11 +558,15 @@ tlsext_sigalgs_client_needs(SSL *s, uint16_t msg_type) | |||
558 | int | 558 | int |
559 | tlsext_sigalgs_client_build(SSL *s, uint16_t msg_type, CBB *cbb) | 559 | tlsext_sigalgs_client_build(SSL *s, uint16_t msg_type, CBB *cbb) |
560 | { | 560 | { |
561 | uint16_t tls_version = S3I(s)->hs.negotiated_tls_version; | ||
561 | CBB sigalgs; | 562 | CBB sigalgs; |
562 | 563 | ||
564 | if (msg_type == SSL_TLSEXT_MSG_CH) | ||
565 | tls_version = S3I(s)->hs.our_min_tls_version; | ||
566 | |||
563 | if (!CBB_add_u16_length_prefixed(cbb, &sigalgs)) | 567 | if (!CBB_add_u16_length_prefixed(cbb, &sigalgs)) |
564 | return 0; | 568 | return 0; |
565 | if (!ssl_sigalgs_build(S3I(s)->hs.our_min_tls_version, &sigalgs)) | 569 | if (!ssl_sigalgs_build(tls_version, &sigalgs)) |
566 | return 0; | 570 | return 0; |
567 | if (!CBB_flush(cbb)) | 571 | if (!CBB_flush(cbb)) |
568 | return 0; | 572 | return 0; |