diff options
| author | tb <> | 2026-08-21 17:15:22 +0000 |
|---|---|---|
| committer | tb <> | 2026-08-21 17:15:22 +0000 |
| commit | fcc903ee8faa79f7dedb22f05008724ea327bdba (patch) | |
| tree | d5921661f11d1c73ddb6d9c2302499f7d3466cf1 /src | |
| parent | c59d718905f8bfe12745fa599341256608e132f4 (diff) | |
| download | openbsd-fcc903ee8faa79f7dedb22f05008724ea327bdba.tar.gz openbsd-fcc903ee8faa79f7dedb22f05008724ea327bdba.tar.bz2 openbsd-fcc903ee8faa79f7dedb22f05008724ea327bdba.zip | |
Change RFC references from 8446 to 9846 and adjust section numbers
with/ok kenjiro
Diffstat (limited to 'src')
| -rw-r--r-- | src/lib/libcrypto/rsa/rsa_ameth.c | 4 | ||||
| -rw-r--r-- | src/lib/libssl/man/SSL_get_finished.3 | 6 | ||||
| -rw-r--r-- | src/lib/libssl/man/SSL_read_early_data.3 | 12 | ||||
| -rw-r--r-- | src/lib/libssl/s3_lib.c | 4 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_clnt.c | 4 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_local.h | 4 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_sigalgs.h | 6 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_srvr.c | 4 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_tlsext.c | 34 | ||||
| -rw-r--r-- | src/lib/libssl/ssl_tlsext.h | 4 | ||||
| -rw-r--r-- | src/lib/libssl/tls1.h | 12 | ||||
| -rw-r--r-- | src/lib/libssl/tls13_client.c | 18 | ||||
| -rw-r--r-- | src/lib/libssl/tls13_handshake.c | 4 | ||||
| -rw-r--r-- | src/lib/libssl/tls13_internal.h | 6 | ||||
| -rw-r--r-- | src/lib/libssl/tls13_key_schedule.c | 12 | ||||
| -rw-r--r-- | src/lib/libssl/tls13_lib.c | 16 | ||||
| -rw-r--r-- | src/lib/libssl/tls13_record.h | 6 | ||||
| -rw-r--r-- | src/lib/libssl/tls13_record_layer.c | 24 | ||||
| -rw-r--r-- | src/lib/libssl/tls13_server.c | 16 |
19 files changed, 97 insertions, 99 deletions
diff --git a/src/lib/libcrypto/rsa/rsa_ameth.c b/src/lib/libcrypto/rsa/rsa_ameth.c index aca00a9ec8..9d8e2d2789 100644 --- a/src/lib/libcrypto/rsa/rsa_ameth.c +++ b/src/lib/libcrypto/rsa/rsa_ameth.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: rsa_ameth.c,v 1.65 2026/04/07 13:16:41 tb Exp $ */ | 1 | /* $OpenBSD: rsa_ameth.c,v 1.66 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL | 2 | /* Written by Dr Stephen N Henson (steve@openssl.org) for the OpenSSL |
| 3 | * project 2006. | 3 | * project 2006. |
| 4 | */ | 4 | */ |
| @@ -879,7 +879,7 @@ rsa_pss_signature_info(const X509_ALGOR *alg, int *out_md_nid, | |||
| 879 | goto err; | 879 | goto err; |
| 880 | 880 | ||
| 881 | /* | 881 | /* |
| 882 | * RFC 8446, section 4.2.3 - restricts the digest algorithm: | 882 | * RFC 9846, section 4.3.3 - restricts the digest algorithm: |
| 883 | * - it must be one of SHA256, SHA384, and SHA512; | 883 | * - it must be one of SHA256, SHA384, and SHA512; |
| 884 | * - the same digest must be used in the mask generation function; | 884 | * - the same digest must be used in the mask generation function; |
| 885 | * - the salt length must match the output length of the digest. | 885 | * - the salt length must match the output length of the digest. |
diff --git a/src/lib/libssl/man/SSL_get_finished.3 b/src/lib/libssl/man/SSL_get_finished.3 index 74e398563e..bf3913f7f0 100644 --- a/src/lib/libssl/man/SSL_get_finished.3 +++ b/src/lib/libssl/man/SSL_get_finished.3 | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | .\" $OpenBSD: SSL_get_finished.3,v 1.4 2026/08/21 17:05:01 tb Exp $ | 1 | .\" $OpenBSD: SSL_get_finished.3,v 1.5 2026/08/21 17:15:22 tb Exp $ |
| 2 | .\" | 2 | .\" |
| 3 | .\" Copyright (c) 2020 Theo Buehler <tb@openbsd.org> | 3 | .\" Copyright (c) 2020 Theo Buehler <tb@openbsd.org> |
| 4 | .\" | 4 | .\" |
| @@ -62,8 +62,8 @@ finished message. | |||
| 62 | .Xr SSL_get_session 3 , | 62 | .Xr SSL_get_session 3 , |
| 63 | .Xr SSL_set_session 3 | 63 | .Xr SSL_set_session 3 |
| 64 | .Sh STANDARDS | 64 | .Sh STANDARDS |
| 65 | RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3, | 65 | RFC 9846: The Transport Layer Security (TLS) Protocol Version 1.3, |
| 66 | section 4.4.4: Finished. | 66 | section 4.5.3: Finished. |
| 67 | .Pp | 67 | .Pp |
| 68 | RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2, | 68 | RFC 5246: The Transport Layer Security (TLS) Protocol Version 1.2, |
| 69 | section 7.4.9: Finished. | 69 | section 7.4.9: Finished. |
diff --git a/src/lib/libssl/man/SSL_read_early_data.3 b/src/lib/libssl/man/SSL_read_early_data.3 index d36b1e49f7..5ad0dc1d9d 100644 --- a/src/lib/libssl/man/SSL_read_early_data.3 +++ b/src/lib/libssl/man/SSL_read_early_data.3 | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | .\" $OpenBSD: SSL_read_early_data.3,v 1.5 2025/06/08 22:52:00 schwarze Exp $ | 1 | .\" $OpenBSD: SSL_read_early_data.3,v 1.6 2026/08/21 17:15:22 tb Exp $ |
| 2 | .\" content checked up to: OpenSSL 6328d367 Jul 4 21:58:30 2020 +0200 | 2 | .\" content checked up to: OpenSSL 6328d367 Jul 4 21:58:30 2020 +0200 |
| 3 | .\" | 3 | .\" |
| 4 | .\" Copyright (c) 2020 Ingo Schwarze <schwarze@openbsd.org> | 4 | .\" Copyright (c) 2020 Ingo Schwarze <schwarze@openbsd.org> |
| @@ -15,7 +15,7 @@ | |||
| 15 | .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF | 15 | .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF |
| 16 | .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. | 16 | .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. |
| 17 | .\" | 17 | .\" |
| 18 | .Dd $Mdocdate: June 8 2025 $ | 18 | .Dd $Mdocdate: August 21 2026 $ |
| 19 | .Dt SSL_READ_EARLY_DATA 3 | 19 | .Dt SSL_READ_EARLY_DATA 3 |
| 20 | .Os | 20 | .Os |
| 21 | .Sh NAME | 21 | .Sh NAME |
| @@ -158,15 +158,15 @@ or | |||
| 158 | .Xr SSL_read 3 , | 158 | .Xr SSL_read 3 , |
| 159 | .Xr SSL_write 3 | 159 | .Xr SSL_write 3 |
| 160 | .Sh STANDARDS | 160 | .Sh STANDARDS |
| 161 | RFC 8446: The Transport Layer Security (TLS) Protocol Version 1.3: | 161 | RFC 9846: The Transport Layer Security (TLS) Protocol Version 1.3: |
| 162 | .Bl -tag -width "section 4.2.10" -compact | 162 | .Bl -tag -width "section 4.3.10" -compact |
| 163 | .It Section 2.3 | 163 | .It Section 2.3 |
| 164 | 0-RTT data | 164 | 0-RTT data |
| 165 | .It Section 4.2.10 | 165 | .It Section 4.3.10 |
| 166 | Early Data Indication | 166 | Early Data Indication |
| 167 | .It Section 8 | 167 | .It Section 8 |
| 168 | 0-RTT and Anti-Replay | 168 | 0-RTT and Anti-Replay |
| 169 | .It Appendix E.5 | 169 | .It Appendix F.5 |
| 170 | Replay Attacks on 0-RTT | 170 | Replay Attacks on 0-RTT |
| 171 | .El | 171 | .El |
| 172 | .Sh HISTORY | 172 | .Sh HISTORY |
diff --git a/src/lib/libssl/s3_lib.c b/src/lib/libssl/s3_lib.c index 929de03a3d..9a5e8cd2cc 100644 --- a/src/lib/libssl/s3_lib.c +++ b/src/lib/libssl/s3_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: s3_lib.c,v 1.261 2026/07/31 03:59:50 kenjiro Exp $ */ | 1 | /* $OpenBSD: s3_lib.c,v 1.262 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -722,7 +722,7 @@ const SSL_CIPHER ssl3_ciphers[] = { | |||
| 722 | 722 | ||
| 723 | #ifdef LIBRESSL_HAS_TLS1_3 | 723 | #ifdef LIBRESSL_HAS_TLS1_3 |
| 724 | /* | 724 | /* |
| 725 | * TLSv1.3 cipher suites (RFC 8446). | 725 | * TLSv1.3 cipher suites (RFC 9846). |
| 726 | */ | 726 | */ |
| 727 | { | 727 | { |
| 728 | .value = 0x1301, | 728 | .value = 0x1301, |
diff --git a/src/lib/libssl/ssl_clnt.c b/src/lib/libssl/ssl_clnt.c index 4803e35dd2..69221332f5 100644 --- a/src/lib/libssl/ssl_clnt.c +++ b/src/lib/libssl/ssl_clnt.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_clnt.c,v 1.175 2026/07/15 15:00:17 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_clnt.c,v 1.176 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -893,7 +893,7 @@ ssl3_get_server_hello(SSL *s) | |||
| 893 | if (s->s3->hs.our_max_tls_version >= TLS1_2_VERSION && | 893 | if (s->s3->hs.our_max_tls_version >= TLS1_2_VERSION && |
| 894 | s->s3->hs.negotiated_tls_version < s->s3->hs.our_max_tls_version) { | 894 | s->s3->hs.negotiated_tls_version < s->s3->hs.our_max_tls_version) { |
| 895 | /* | 895 | /* |
| 896 | * RFC 8446 section 4.1.3. We must not downgrade if the server | 896 | * RFC 9846 section 4.2.3. We must not downgrade if the server |
| 897 | * random value contains the TLS 1.2 or TLS 1.1 magical value. | 897 | * random value contains the TLS 1.2 or TLS 1.1 magical value. |
| 898 | */ | 898 | */ |
| 899 | if (!CBS_skip(&server_random, | 899 | if (!CBS_skip(&server_random, |
diff --git a/src/lib/libssl/ssl_local.h b/src/lib/libssl/ssl_local.h index 9999d55963..67ca4a5511 100644 --- a/src/lib/libssl/ssl_local.h +++ b/src/lib/libssl/ssl_local.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_local.h,v 1.42 2026/06/08 11:38:04 tb Exp $ */ | 1 | /* $OpenBSD: ssl_local.h,v 1.43 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -428,7 +428,7 @@ struct ssl_session_st { | |||
| 428 | 428 | ||
| 429 | char *tlsext_hostname; | 429 | char *tlsext_hostname; |
| 430 | 430 | ||
| 431 | /* Session resumption - RFC 5077 and RFC 8446. */ | 431 | /* Session resumption - RFC 5077 and RFC 9846. */ |
| 432 | unsigned char *tlsext_tick; /* Session ticket */ | 432 | unsigned char *tlsext_tick; /* Session ticket */ |
| 433 | size_t tlsext_ticklen; /* Session ticket length */ | 433 | size_t tlsext_ticklen; /* Session ticket length */ |
| 434 | uint32_t tlsext_tick_lifetime_hint; /* Session lifetime hint in seconds */ | 434 | uint32_t tlsext_tick_lifetime_hint; /* Session lifetime hint in seconds */ |
diff --git a/src/lib/libssl/ssl_sigalgs.h b/src/lib/libssl/ssl_sigalgs.h index 775842a093..e435ccc287 100644 --- a/src/lib/libssl/ssl_sigalgs.h +++ b/src/lib/libssl/ssl_sigalgs.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_sigalgs.h,v 1.28 2026/05/31 14:34:44 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_sigalgs.h,v 1.29 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018-2019 Bob Beck <beck@openbsd.org> | 3 | * Copyright (c) 2018-2019 Bob Beck <beck@openbsd.org> |
| 4 | * | 4 | * |
| @@ -23,8 +23,8 @@ __BEGIN_HIDDEN_DECLS | |||
| 23 | #define SIGALG_NONE 0x0000 | 23 | #define SIGALG_NONE 0x0000 |
| 24 | 24 | ||
| 25 | /* | 25 | /* |
| 26 | * RFC 8446 Section 4.2.3 | 26 | * RFC 9846 section 4.3.3 |
| 27 | * RFC 5246 Section 7.4.1.4.1 | 27 | * RFC 5246 section 7.4.1.4.1 |
| 28 | */ | 28 | */ |
| 29 | #define SIGALG_RSA_PKCS1_SHA224 0x0301 | 29 | #define SIGALG_RSA_PKCS1_SHA224 0x0301 |
| 30 | #define SIGALG_RSA_PKCS1_SHA256 0x0401 | 30 | #define SIGALG_RSA_PKCS1_SHA256 0x0401 |
diff --git a/src/lib/libssl/ssl_srvr.c b/src/lib/libssl/ssl_srvr.c index 73bdeacce0..43260d8065 100644 --- a/src/lib/libssl/ssl_srvr.c +++ b/src/lib/libssl/ssl_srvr.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_srvr.c,v 1.170 2026/06/06 15:24:26 jsing Exp $ */ | 1 | /* $OpenBSD: ssl_srvr.c,v 1.171 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -1027,7 +1027,7 @@ ssl3_get_client_hello(SSL *s) | |||
| 1027 | if (s->s3->hs.our_max_tls_version >= TLS1_2_VERSION && | 1027 | if (s->s3->hs.our_max_tls_version >= TLS1_2_VERSION && |
| 1028 | s->s3->hs.negotiated_tls_version < s->s3->hs.our_max_tls_version) { | 1028 | s->s3->hs.negotiated_tls_version < s->s3->hs.our_max_tls_version) { |
| 1029 | /* | 1029 | /* |
| 1030 | * RFC 8446 section 4.1.3. If we are downgrading from TLS 1.3 | 1030 | * RFC 9846 section 4.2.3. If we are downgrading from TLS 1.3 |
| 1031 | * we must set the last 8 bytes of the server random to magical | 1031 | * we must set the last 8 bytes of the server random to magical |
| 1032 | * values to indicate we meant to downgrade. For TLS 1.2 it is | 1032 | * values to indicate we meant to downgrade. For TLS 1.2 it is |
| 1033 | * recommended that we do the same. | 1033 | * recommended that we do the same. |
diff --git a/src/lib/libssl/ssl_tlsext.c b/src/lib/libssl/ssl_tlsext.c index 039218e1ef..35e554e292 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.165 2026/08/18 04:40:17 tb Exp $ */ | 1 | /* $OpenBSD: ssl_tlsext.c,v 1.166 2026/08/21 17:15:22 tb 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> |
| @@ -281,10 +281,8 @@ tlsext_supportedgroups_server_process(SSL *s, uint16_t msg_type, CBS *cbs, | |||
| 281 | if (!CBS_get_u16(&grouplist, &groups[i])) | 281 | if (!CBS_get_u16(&grouplist, &groups[i])) |
| 282 | goto err; | 282 | goto err; |
| 283 | /* | 283 | /* |
| 284 | * Do not allow duplicate groups to be sent. This is not | 284 | * RFC 9846 section 4.3.7: The "named_group_list" MUST NOT |
| 285 | * currently specified in RFC 8446 or earlier, but there is no | 285 | * contain any duplicate entries. |
| 286 | * legitimate justification for this to occur in TLS 1.2 or TLS | ||
| 287 | * 1.3. | ||
| 288 | */ | 286 | */ |
| 289 | for (j = 0; j < i; j++) { | 287 | for (j = 0; j < i; j++) { |
| 290 | if (groups[i] == groups[j]) { | 288 | if (groups[i] == groups[j]) { |
| @@ -336,7 +334,7 @@ tlsext_supportedgroups_client_process(SSL *s, uint16_t msg_type, CBS *cbs, | |||
| 336 | return 0; | 334 | return 0; |
| 337 | 335 | ||
| 338 | /* | 336 | /* |
| 339 | * RFC 8446, section 4.2.7: TLSv1.3 servers can send this extension but | 337 | * RFC 9846 section 4.3.7: TLSv1.3 servers can send this extension but |
| 340 | * clients must not act on it during the handshake. This allows servers | 338 | * clients must not act on it during the handshake. This allows servers |
| 341 | * to advertise their preferences for subsequent handshakes. We ignore | 339 | * to advertise their preferences for subsequent handshakes. We ignore |
| 342 | * this complication. | 340 | * this complication. |
| @@ -1064,7 +1062,7 @@ tlsext_ocsp_client_process(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 1064 | if (ssl_effective_tls_version(s) >= TLS1_3_VERSION) { | 1062 | if (ssl_effective_tls_version(s) >= TLS1_3_VERSION) { |
| 1065 | if (msg_type == SSL_TLSEXT_MSG_CR) { | 1063 | if (msg_type == SSL_TLSEXT_MSG_CR) { |
| 1066 | /* | 1064 | /* |
| 1067 | * RFC 8446, 4.4.2.1 - the server may request an OCSP | 1065 | * RFC 9846, 4.5.1.1 - the server may request an OCSP |
| 1068 | * response with an empty status_request. | 1066 | * response with an empty status_request. |
| 1069 | */ | 1067 | */ |
| 1070 | if (CBS_len(cbs) == 0) | 1068 | if (CBS_len(cbs) == 0) |
| @@ -1440,7 +1438,7 @@ tlsext_srtp_client_process(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 1440 | #endif /* OPENSSL_NO_SRTP */ | 1438 | #endif /* OPENSSL_NO_SRTP */ |
| 1441 | 1439 | ||
| 1442 | /* | 1440 | /* |
| 1443 | * TLSv1.3 Key Share - RFC 8446 section 4.2.8. | 1441 | * TLSv1.3 Key Share - RFC 9846 section 4.3.8. |
| 1444 | */ | 1442 | */ |
| 1445 | static int | 1443 | static int |
| 1446 | tlsext_keyshare_client_needs(SSL *s, uint16_t msg_type) | 1444 | tlsext_keyshare_client_needs(SSL *s, uint16_t msg_type) |
| @@ -1508,7 +1506,7 @@ tlsext_keyshare_server_process(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 1508 | CBS client_shares, key_exchange; | 1506 | CBS client_shares, key_exchange; |
| 1509 | 1507 | ||
| 1510 | /* | 1508 | /* |
| 1511 | * RFC 8446 section 4.2.8: | 1509 | * RFC 9846 section 4.3.8: |
| 1512 | * | 1510 | * |
| 1513 | * Each KeyShareEntry value MUST correspond to a group offered in the | 1511 | * Each KeyShareEntry value MUST correspond to a group offered in the |
| 1514 | * "supported_groups" extension and MUST appear in the same order. | 1512 | * "supported_groups" extension and MUST appear in the same order. |
| @@ -1597,7 +1595,7 @@ tlsext_keyshare_server_process(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 1597 | /* | 1595 | /* |
| 1598 | * There are no supported groups that are shared between the | 1596 | * There are no supported groups that are shared between the |
| 1599 | * client and server - this is treated as a handshake failure | 1597 | * client and server - this is treated as a handshake failure |
| 1600 | * or as insufficient security - see RFC 8446 section 4.1.1. | 1598 | * or as insufficient security - see RFC 9846 section 4.2.1. |
| 1601 | */ | 1599 | */ |
| 1602 | *alert = TLS13_ALERT_HANDSHAKE_FAILURE; | 1600 | *alert = TLS13_ALERT_HANDSHAKE_FAILURE; |
| 1603 | return 0; | 1601 | return 0; |
| @@ -1766,7 +1764,7 @@ tlsext_keyshare_client_process(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 1766 | } | 1764 | } |
| 1767 | 1765 | ||
| 1768 | /* | 1766 | /* |
| 1769 | * Supported Versions - RFC 8446 section 4.2.1. | 1767 | * Supported Versions - RFC 9846 section 4.3.1. |
| 1770 | */ | 1768 | */ |
| 1771 | static int | 1769 | static int |
| 1772 | tlsext_versions_client_needs(SSL *s, uint16_t msg_type) | 1770 | tlsext_versions_client_needs(SSL *s, uint16_t msg_type) |
| @@ -1868,7 +1866,7 @@ tlsext_versions_client_process(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 1868 | 1866 | ||
| 1869 | 1867 | ||
| 1870 | /* | 1868 | /* |
| 1871 | * Cookie - RFC 8446 section 4.2.2. | 1869 | * Cookie - RFC 9846 section 4.3.2. |
| 1872 | */ | 1870 | */ |
| 1873 | 1871 | ||
| 1874 | static int | 1872 | static int |
| @@ -1980,7 +1978,7 @@ tlsext_cookie_client_process(SSL *s, uint16_t msg_type, CBS *cbs, int *alert) | |||
| 1980 | } | 1978 | } |
| 1981 | 1979 | ||
| 1982 | /* | 1980 | /* |
| 1983 | * Pre-Shared Key Exchange Modes - RFC 8446, 4.2.9. | 1981 | * Pre-Shared Key Exchange Modes - RFC 9846 section 4.3.9. |
| 1984 | */ | 1982 | */ |
| 1985 | 1983 | ||
| 1986 | static int | 1984 | static int |
| @@ -2050,7 +2048,7 @@ tlsext_psk_kex_modes_client_process(SSL *s, uint16_t msg_type, CBS *cbs, | |||
| 2050 | } | 2048 | } |
| 2051 | 2049 | ||
| 2052 | /* | 2050 | /* |
| 2053 | * Pre-Shared Key Extension - RFC 8446, 4.2.11 | 2051 | * Pre-Shared Key Extension - RFC 9846 section 4.3.11 |
| 2054 | */ | 2052 | */ |
| 2055 | 2053 | ||
| 2056 | static int | 2054 | static int |
| @@ -2484,7 +2482,7 @@ tlsext_randomize_build_order(SSL *s) | |||
| 2484 | return 0; | 2482 | return 0; |
| 2485 | s->tlsext_build_order_len = N_TLS_EXTENSIONS; | 2483 | s->tlsext_build_order_len = N_TLS_EXTENSIONS; |
| 2486 | 2484 | ||
| 2487 | /* RFC 8446, section 4.2 - PSK MUST be the last extension in the CH. */ | 2485 | /* RFC 9846 section 4.3 - PSK MUST be the last extension in the CH. */ |
| 2488 | if ((psk_ext = tls_extension_find(TLSEXT_TYPE_pre_shared_key, | 2486 | if ((psk_ext = tls_extension_find(TLSEXT_TYPE_pre_shared_key, |
| 2489 | NULL)) == NULL) | 2487 | NULL)) == NULL) |
| 2490 | return 0; | 2488 | return 0; |
| @@ -2538,7 +2536,7 @@ tlsext_build(SSL *s, int is_server, uint16_t msg_type, CBB *cbb) | |||
| 2538 | tlsext = s->tlsext_build_order[i]; | 2536 | tlsext = s->tlsext_build_order[i]; |
| 2539 | ext = tlsext_funcs(tlsext, is_server); | 2537 | ext = tlsext_funcs(tlsext, is_server); |
| 2540 | 2538 | ||
| 2541 | /* RFC 8446 Section 4.2 */ | 2539 | /* RFC 9846 section 4.3 */ |
| 2542 | if (tls_version >= TLS1_3_VERSION && | 2540 | if (tls_version >= TLS1_3_VERSION && |
| 2543 | !(tlsext->messages & msg_type)) | 2541 | !(tlsext->messages & msg_type)) |
| 2544 | continue; | 2542 | continue; |
| @@ -2571,7 +2569,7 @@ static int | |||
| 2571 | tlsext_clienthello_hash_extension(SSL *s, uint16_t type, CBS *cbs) | 2569 | tlsext_clienthello_hash_extension(SSL *s, uint16_t type, CBS *cbs) |
| 2572 | { | 2570 | { |
| 2573 | /* | 2571 | /* |
| 2574 | * RFC 8446 4.1.2. For subsequent CH, early data will be removed, | 2572 | * RFC 9846, 4.2.2. For subsequent CH, early data will be removed, |
| 2575 | * cookie may be added, padding may be removed. | 2573 | * cookie may be added, padding may be removed. |
| 2576 | */ | 2574 | */ |
| 2577 | struct tls13_ctx *ctx = s->tls13; | 2575 | struct tls13_ctx *ctx = s->tls13; |
| @@ -2644,7 +2642,7 @@ tlsext_parse(SSL *s, struct tlsext_data *td, int is_server, uint16_t msg_type, | |||
| 2644 | goto err; | 2642 | goto err; |
| 2645 | } | 2643 | } |
| 2646 | 2644 | ||
| 2647 | /* RFC 8446 Section 4.2 */ | 2645 | /* RFC 9846 section 4.3 */ |
| 2648 | if (tls_version >= TLS1_3_VERSION && | 2646 | if (tls_version >= TLS1_3_VERSION && |
| 2649 | !(tlsext->messages & msg_type)) { | 2647 | !(tlsext->messages & msg_type)) { |
| 2650 | alert_desc = SSL_AD_ILLEGAL_PARAMETER; | 2648 | alert_desc = SSL_AD_ILLEGAL_PARAMETER; |
diff --git a/src/lib/libssl/ssl_tlsext.h b/src/lib/libssl/ssl_tlsext.h index 4fd2ec05a0..e1fc2634c2 100644 --- a/src/lib/libssl/ssl_tlsext.h +++ b/src/lib/libssl/ssl_tlsext.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: ssl_tlsext.h,v 1.34 2024/03/26 03:44:11 beck Exp $ */ | 1 | /* $OpenBSD: ssl_tlsext.h,v 1.35 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2016, 2017 Joel Sing <jsing@openbsd.org> |
| 4 | * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> | 4 | * Copyright (c) 2017 Doug Hogan <doug@openbsd.org> |
| @@ -20,7 +20,7 @@ | |||
| 20 | #ifndef HEADER_SSL_TLSEXT_H | 20 | #ifndef HEADER_SSL_TLSEXT_H |
| 21 | #define HEADER_SSL_TLSEXT_H | 21 | #define HEADER_SSL_TLSEXT_H |
| 22 | 22 | ||
| 23 | /* TLSv1.3 - RFC 8446 Section 4.2. */ | 23 | /* TLSv1.3 - RFC 9846 section 4.3. */ |
| 24 | #define SSL_TLSEXT_MSG_CH 0x0001 /* ClientHello */ | 24 | #define SSL_TLSEXT_MSG_CH 0x0001 /* ClientHello */ |
| 25 | #define SSL_TLSEXT_MSG_SH 0x0002 /* ServerHello */ | 25 | #define SSL_TLSEXT_MSG_SH 0x0002 /* ServerHello */ |
| 26 | #define SSL_TLSEXT_MSG_EE 0x0004 /* EncryptedExtension */ | 26 | #define SSL_TLSEXT_MSG_EE 0x0004 /* EncryptedExtension */ |
diff --git a/src/lib/libssl/tls1.h b/src/lib/libssl/tls1.h index 2d5dffc6cf..42451a4214 100644 --- a/src/lib/libssl/tls1.h +++ b/src/lib/libssl/tls1.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls1.h,v 1.61 2025/04/18 07:34:01 tb Exp $ */ | 1 | /* $OpenBSD: tls1.h,v 1.62 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) | 2 | /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com) |
| 3 | * All rights reserved. | 3 | * All rights reserved. |
| 4 | * | 4 | * |
| @@ -240,7 +240,7 @@ extern "C" { | |||
| 240 | /* ExtensionType value from RFC 5054. */ | 240 | /* ExtensionType value from RFC 5054. */ |
| 241 | #define TLSEXT_TYPE_srp 12 | 241 | #define TLSEXT_TYPE_srp 12 |
| 242 | 242 | ||
| 243 | /* ExtensionType value from RFC 5246/RFC 8446. */ | 243 | /* ExtensionType value from RFC 5246/RFC 9846. */ |
| 244 | #define TLSEXT_TYPE_signature_algorithms 13 | 244 | #define TLSEXT_TYPE_signature_algorithms 13 |
| 245 | 245 | ||
| 246 | /* ExtensionType value from RFC 5764. */ | 246 | /* ExtensionType value from RFC 5764. */ |
| @@ -258,7 +258,7 @@ extern "C" { | |||
| 258 | /* ExtensionType value from RFC 4507. */ | 258 | /* ExtensionType value from RFC 4507. */ |
| 259 | #define TLSEXT_TYPE_session_ticket 35 | 259 | #define TLSEXT_TYPE_session_ticket 35 |
| 260 | 260 | ||
| 261 | /* ExtensionType values from RFC 8446 section 4.2 */ | 261 | /* ExtensionType values from RFC 9846 section 4.3 */ |
| 262 | #if defined(LIBRESSL_HAS_TLS1_3) || defined(LIBRESSL_INTERNAL) | 262 | #if defined(LIBRESSL_HAS_TLS1_3) || defined(LIBRESSL_INTERNAL) |
| 263 | #define TLSEXT_TYPE_pre_shared_key 41 | 263 | #define TLSEXT_TYPE_pre_shared_key 41 |
| 264 | #define TLSEXT_TYPE_early_data 42 | 264 | #define TLSEXT_TYPE_early_data 42 |
| @@ -279,7 +279,7 @@ extern "C" { | |||
| 279 | 279 | ||
| 280 | /* | 280 | /* |
| 281 | * TLS 1.3 extension names from OpenSSL, where they decided to use a different | 281 | * TLS 1.3 extension names from OpenSSL, where they decided to use a different |
| 282 | * name from that given in RFC 8446. | 282 | * name from that given in RFC 9846. |
| 283 | */ | 283 | */ |
| 284 | #if defined(LIBRESSL_HAS_TLS1_3) | 284 | #if defined(LIBRESSL_HAS_TLS1_3) |
| 285 | #define TLSEXT_TYPE_psk TLSEXT_TYPE_pre_shared_key | 285 | #define TLSEXT_TYPE_psk TLSEXT_TYPE_pre_shared_key |
| @@ -486,7 +486,7 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) | |||
| 486 | #define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C4 | 486 | #define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C4 |
| 487 | #define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256 0x030000C5 | 487 | #define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256 0x030000C5 |
| 488 | 488 | ||
| 489 | /* TLS 1.3 cipher suites from RFC 8446 appendix B.4. */ | 489 | /* TLS 1.3 cipher suites from RFC 9846 appendix B.4. */ |
| 490 | #if defined(LIBRESSL_HAS_TLS1_3) || defined(LIBRESSL_INTERNAL) | 490 | #if defined(LIBRESSL_HAS_TLS1_3) || defined(LIBRESSL_INTERNAL) |
| 491 | #define TLS1_3_CK_AES_128_GCM_SHA256 0x03001301 | 491 | #define TLS1_3_CK_AES_128_GCM_SHA256 0x03001301 |
| 492 | #define TLS1_3_CK_AES_256_GCM_SHA384 0x03001302 | 492 | #define TLS1_3_CK_AES_256_GCM_SHA384 0x03001302 |
| @@ -725,7 +725,7 @@ SSL_CTX_callback_ctrl(ssl,SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB,(void (*)(void))cb) | |||
| 725 | #define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305" | 725 | #define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305" |
| 726 | #define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305" | 726 | #define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305" |
| 727 | 727 | ||
| 728 | /* TLS 1.3 cipher suites from RFC 8446 appendix B.4. */ | 728 | /* TLS 1.3 cipher suites from RFC 9846 appendix B.4. */ |
| 729 | #if defined(LIBRESSL_HAS_TLS1_3) || defined(LIBRESSL_INTERNAL) | 729 | #if defined(LIBRESSL_HAS_TLS1_3) || defined(LIBRESSL_INTERNAL) |
| 730 | #define TLS1_3_TXT_AES_128_GCM_SHA256 "AEAD-AES128-GCM-SHA256" | 730 | #define TLS1_3_TXT_AES_128_GCM_SHA256 "AEAD-AES128-GCM-SHA256" |
| 731 | #define TLS1_3_TXT_AES_256_GCM_SHA384 "AEAD-AES256-GCM-SHA384" | 731 | #define TLS1_3_TXT_AES_256_GCM_SHA384 "AEAD-AES256-GCM-SHA384" |
diff --git a/src/lib/libssl/tls13_client.c b/src/lib/libssl/tls13_client.c index fec3e825fe..8abfdbdd1f 100644 --- a/src/lib/libssl/tls13_client.c +++ b/src/lib/libssl/tls13_client.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_client.c,v 1.108 2026/06/14 15:51:17 jsing Exp $ */ | 1 | /* $OpenBSD: tls13_client.c,v 1.109 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -73,8 +73,8 @@ tls13_client_init(struct tls13_ctx *ctx) | |||
| 73 | /* | 73 | /* |
| 74 | * The legacy session identifier should either be set to an | 74 | * The legacy session identifier should either be set to an |
| 75 | * unpredictable 32-byte value or zero length... a non-zero length | 75 | * unpredictable 32-byte value or zero length... a non-zero length |
| 76 | * legacy session identifier triggers compatibility mode (see RFC 8446 | 76 | * legacy session identifier triggers compatibility mode (see RFC 9846 |
| 77 | * Appendix D.4). In the pre-TLSv1.3 case a zero length value is used. | 77 | * Appendix E.4). In the pre-TLSv1.3 case a zero length value is used. |
| 78 | */ | 78 | */ |
| 79 | if (ctx->middlebox_compat && | 79 | if (ctx->middlebox_compat && |
| 80 | ctx->hs->our_max_tls_version >= TLS1_3_VERSION) { | 80 | ctx->hs->our_max_tls_version >= TLS1_3_VERSION) { |
| @@ -242,7 +242,7 @@ tls13_server_hello_process(struct tls13_ctx *ctx, CBS *cbs) | |||
| 242 | if (tls13_server_hello_is_legacy(cbs)) { | 242 | if (tls13_server_hello_is_legacy(cbs)) { |
| 243 | if (ctx->hs->our_max_tls_version >= TLS1_3_VERSION) { | 243 | if (ctx->hs->our_max_tls_version >= TLS1_3_VERSION) { |
| 244 | /* | 244 | /* |
| 245 | * RFC 8446 section 4.1.3: we must not downgrade if | 245 | * RFC 9846 section 4.2.3: we must not downgrade if |
| 246 | * the server random value contains the TLS 1.2 or 1.1 | 246 | * the server random value contains the TLS 1.2 or 1.1 |
| 247 | * magical value. | 247 | * magical value. |
| 248 | */ | 248 | */ |
| @@ -285,7 +285,7 @@ tls13_server_hello_process(struct tls13_ctx *ctx, CBS *cbs) | |||
| 285 | /* | 285 | /* |
| 286 | * The supported versions extension indicated 0x0304 or greater. | 286 | * The supported versions extension indicated 0x0304 or greater. |
| 287 | * Ensure that it was 0x0304 and that legacy version is set to 0x0303 | 287 | * Ensure that it was 0x0304 and that legacy version is set to 0x0303 |
| 288 | * (RFC 8446 section 4.2.1). | 288 | * (RFC 9846 section 4.3.1). |
| 289 | */ | 289 | */ |
| 290 | if (ctx->hs->tls13.server_version != TLS1_3_VERSION || | 290 | if (ctx->hs->tls13.server_version != TLS1_3_VERSION || |
| 291 | legacy_version != TLS1_2_VERSION) { | 291 | legacy_version != TLS1_2_VERSION) { |
| @@ -318,7 +318,7 @@ tls13_server_hello_process(struct tls13_ctx *ctx, CBS *cbs) | |||
| 318 | if (!(ctx->handshake_stage.hs_type & WITHOUT_HRR) && !ctx->hs->tls13.hrr) { | 318 | if (!(ctx->handshake_stage.hs_type & WITHOUT_HRR) && !ctx->hs->tls13.hrr) { |
| 319 | /* | 319 | /* |
| 320 | * A ServerHello following a HelloRetryRequest MUST use the same | 320 | * A ServerHello following a HelloRetryRequest MUST use the same |
| 321 | * cipher suite (RFC 8446 section 4.1.4). | 321 | * cipher suite (RFC 9846 section 4.2.4). |
| 322 | */ | 322 | */ |
| 323 | if (ctx->hs->cipher != cipher) { | 323 | if (ctx->hs->cipher != cipher) { |
| 324 | ctx->alert = TLS13_ALERT_ILLEGAL_PARAMETER; | 324 | ctx->alert = TLS13_ALERT_ILLEGAL_PARAMETER; |
| @@ -450,7 +450,7 @@ tls13_client_hello_retry_send(struct tls13_ctx *ctx, CBB *cbb) | |||
| 450 | /* | 450 | /* |
| 451 | * Ensure that the server supported group is one that we listed in our | 451 | * Ensure that the server supported group is one that we listed in our |
| 452 | * supported groups and is not the same as the key share we previously | 452 | * supported groups and is not the same as the key share we previously |
| 453 | * offered. See RFC 8446 section 4.2.8. | 453 | * offered. See RFC 9846 section 4.3.8. |
| 454 | */ | 454 | */ |
| 455 | if (!tls1_check_group(ctx->ssl, ctx->hs->tls13.server_group)) { | 455 | if (!tls1_check_group(ctx->ssl, ctx->hs->tls13.server_group)) { |
| 456 | ctx->alert = TLS13_ALERT_ILLEGAL_PARAMETER; | 456 | ctx->alert = TLS13_ALERT_ILLEGAL_PARAMETER; |
| @@ -855,8 +855,8 @@ tls13_client_select_certificate(struct tls13_ctx *ctx, SSL_CERT_PKEY **out_cpk, | |||
| 855 | *out_sigalg = NULL; | 855 | *out_sigalg = NULL; |
| 856 | 856 | ||
| 857 | /* | 857 | /* |
| 858 | * XXX - RFC 8446, 4.4.2.3: the server can communicate preferences | 858 | * XXX - RFC 9846, 4.5.1.2: the server can communicate preferences |
| 859 | * with the certificate_authorities (4.2.4) and oid_filters (4.2.5) | 859 | * with the certificate_authorities (4.3.4) and oid_filters (4.3.5) |
| 860 | * extensions. We should honor the former and must apply the latter. | 860 | * extensions. We should honor the former and must apply the latter. |
| 861 | */ | 861 | */ |
| 862 | 862 | ||
diff --git a/src/lib/libssl/tls13_handshake.c b/src/lib/libssl/tls13_handshake.c index 0dc2333708..24178a3396 100644 --- a/src/lib/libssl/tls13_handshake.c +++ b/src/lib/libssl/tls13_handshake.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_handshake.c,v 1.73 2024/02/03 19:57:14 tb Exp $ */ | 1 | /* $OpenBSD: tls13_handshake.c,v 1.74 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018-2021 Theo Buehler <tb@openbsd.org> | 3 | * Copyright (c) 2018-2021 Theo Buehler <tb@openbsd.org> |
| 4 | * Copyright (c) 2019 Joel Sing <jsing@openbsd.org> | 4 | * Copyright (c) 2019 Joel Sing <jsing@openbsd.org> |
| @@ -22,7 +22,7 @@ | |||
| 22 | #include "tls13_handshake.h" | 22 | #include "tls13_handshake.h" |
| 23 | #include "tls13_internal.h" | 23 | #include "tls13_internal.h" |
| 24 | 24 | ||
| 25 | /* Based on RFC 8446 and inspired by s2n's TLS 1.2 state machine. */ | 25 | /* Based on RFC 9846 and inspired by s2n's TLS 1.2 state machine. */ |
| 26 | 26 | ||
| 27 | struct tls13_handshake_action { | 27 | struct tls13_handshake_action { |
| 28 | uint8_t handshake_type; | 28 | uint8_t handshake_type; |
diff --git a/src/lib/libssl/tls13_internal.h b/src/lib/libssl/tls13_internal.h index 7a7f8abc63..d3d7ddb9b3 100644 --- a/src/lib/libssl/tls13_internal.h +++ b/src/lib/libssl/tls13_internal.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_internal.h,v 1.105 2025/03/09 15:12:18 tb Exp $ */ | 1 | /* $OpenBSD: tls13_internal.h,v 1.106 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018 Bob Beck <beck@openbsd.org> | 3 | * Copyright (c) 2018 Bob Beck <beck@openbsd.org> |
| 4 | * Copyright (c) 2018 Theo Buehler <tb@openbsd.org> | 4 | * Copyright (c) 2018 Theo Buehler <tb@openbsd.org> |
| @@ -114,7 +114,7 @@ struct tls13_secret { | |||
| 114 | size_t len; | 114 | size_t len; |
| 115 | }; | 115 | }; |
| 116 | 116 | ||
| 117 | /* RFC 8446 Section 7.1 Page 92 */ | 117 | /* RFC 9846 section 7.1 */ |
| 118 | struct tls13_secrets { | 118 | struct tls13_secrets { |
| 119 | const EVP_MD *digest; | 119 | const EVP_MD *digest; |
| 120 | int resumption; | 120 | int resumption; |
| @@ -339,7 +339,7 @@ int tls13_legacy_shutdown(SSL *ssl); | |||
| 339 | int tls13_legacy_servername_process(struct tls13_ctx *ctx, uint8_t *alert); | 339 | int tls13_legacy_servername_process(struct tls13_ctx *ctx, uint8_t *alert); |
| 340 | 340 | ||
| 341 | /* | 341 | /* |
| 342 | * Message Types - RFC 8446, Section B.3. | 342 | * Message Types - RFC 9846 section B.3. |
| 343 | * | 343 | * |
| 344 | * Values listed as "_RESERVED" were used in previous versions of TLS and are | 344 | * Values listed as "_RESERVED" were used in previous versions of TLS and are |
| 345 | * listed here for completeness. TLS 1.3 implementations MUST NOT send them but | 345 | * listed here for completeness. TLS 1.3 implementations MUST NOT send them but |
diff --git a/src/lib/libssl/tls13_key_schedule.c b/src/lib/libssl/tls13_key_schedule.c index 05bcf0f006..01fbe6603e 100644 --- a/src/lib/libssl/tls13_key_schedule.c +++ b/src/lib/libssl/tls13_key_schedule.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_key_schedule.c,v 1.18 2022/11/26 16:08:56 tb Exp $ */ | 1 | /* $OpenBSD: tls13_key_schedule.c,v 1.19 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018, Bob Beck <beck@openbsd.org> | 3 | * Copyright (c) 2018, Bob Beck <beck@openbsd.org> |
| 4 | * | 4 | * |
| @@ -47,7 +47,7 @@ tls13_secret_cleanup(struct tls13_secret *secret) | |||
| 47 | 47 | ||
| 48 | /* | 48 | /* |
| 49 | * Allocate a set of secrets for a key schedule using | 49 | * Allocate a set of secrets for a key schedule using |
| 50 | * a size of hash_length from RFC 8446 section 7.1. | 50 | * a size of hash_length from RFC 9846 section 7.1. |
| 51 | */ | 51 | */ |
| 52 | struct tls13_secrets * | 52 | struct tls13_secrets * |
| 53 | tls13_secrets_create(const EVP_MD *digest, int resumption) | 53 | tls13_secrets_create(const EVP_MD *digest, int resumption) |
| @@ -256,7 +256,7 @@ tls13_derive_early_secrets(struct tls13_secrets *secrets, | |||
| 256 | &secrets->empty_hash)) | 256 | &secrets->empty_hash)) |
| 257 | return 0; | 257 | return 0; |
| 258 | 258 | ||
| 259 | /* RFC 8446 recommends */ | 259 | /* RFC 9846 recommends */ |
| 260 | if (!secrets->insecure) | 260 | if (!secrets->insecure) |
| 261 | explicit_bzero(secrets->extracted_early.data, | 261 | explicit_bzero(secrets->extracted_early.data, |
| 262 | secrets->extracted_early.len); | 262 | secrets->extracted_early.len); |
| @@ -300,7 +300,7 @@ tls13_derive_handshake_secrets(struct tls13_secrets *secrets, | |||
| 300 | &secrets->empty_hash)) | 300 | &secrets->empty_hash)) |
| 301 | return 0; | 301 | return 0; |
| 302 | 302 | ||
| 303 | /* RFC 8446 recommends */ | 303 | /* RFC 9846 recommends */ |
| 304 | if (!secrets->insecure) | 304 | if (!secrets->insecure) |
| 305 | explicit_bzero(secrets->extracted_handshake.data, | 305 | explicit_bzero(secrets->extracted_handshake.data, |
| 306 | secrets->extracted_handshake.len); | 306 | secrets->extracted_handshake.len); |
| @@ -349,7 +349,7 @@ tls13_derive_application_secrets(struct tls13_secrets *secrets, | |||
| 349 | context)) | 349 | context)) |
| 350 | return 0; | 350 | return 0; |
| 351 | 351 | ||
| 352 | /* RFC 8446 recommends */ | 352 | /* RFC 9846 recommends */ |
| 353 | if (!secrets->insecure) | 353 | if (!secrets->insecure) |
| 354 | explicit_bzero(secrets->extracted_master.data, | 354 | explicit_bzero(secrets->extracted_master.data, |
| 355 | secrets->extracted_master.len); | 355 | secrets->extracted_master.len); |
| @@ -400,7 +400,7 @@ tls13_exporter(struct tls13_ctx *ctx, const uint8_t *label, size_t label_len, | |||
| 400 | int ret = 0; | 400 | int ret = 0; |
| 401 | 401 | ||
| 402 | /* | 402 | /* |
| 403 | * RFC 8446 Section 7.5. | 403 | * RFC 9846 section 7.5. |
| 404 | */ | 404 | */ |
| 405 | 405 | ||
| 406 | memset(&context, 0, sizeof(context)); | 406 | memset(&context, 0, sizeof(context)); |
diff --git a/src/lib/libssl/tls13_lib.c b/src/lib/libssl/tls13_lib.c index c3470b2931..f93452402f 100644 --- a/src/lib/libssl/tls13_lib.c +++ b/src/lib/libssl/tls13_lib.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_lib.c,v 1.78 2025/06/07 10:25:12 tb Exp $ */ | 1 | /* $OpenBSD: tls13_lib.c,v 1.79 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> |
| 4 | * Copyright (c) 2019 Bob Beck <beck@openbsd.org> | 4 | * Copyright (c) 2019 Bob Beck <beck@openbsd.org> |
| @@ -25,14 +25,14 @@ | |||
| 25 | #include "tls13_internal.h" | 25 | #include "tls13_internal.h" |
| 26 | 26 | ||
| 27 | /* | 27 | /* |
| 28 | * RFC 8446, section 4.6.1. Servers must not indicate a lifetime longer than | 28 | * RFC 9846 section 4.7.1. Servers must not indicate a lifetime longer than |
| 29 | * 7 days and clients must not cache tickets for longer than 7 days. | 29 | * 7 days and clients must not cache tickets for longer than 7 days. |
| 30 | */ | 30 | */ |
| 31 | 31 | ||
| 32 | #define TLS13_MAX_TICKET_LIFETIME (7 * 24 * 3600) | 32 | #define TLS13_MAX_TICKET_LIFETIME (7 * 24 * 3600) |
| 33 | 33 | ||
| 34 | /* | 34 | /* |
| 35 | * Downgrade sentinels - RFC 8446 section 4.1.3, magic values which must be set | 35 | * Downgrade sentinels - RFC 9846 section 4.2.3, magic values which must be set |
| 36 | * by the server in server random if it is willing to downgrade but supports | 36 | * by the server in server random if it is willing to downgrade but supports |
| 37 | * TLSv1.3 | 37 | * TLSv1.3 |
| 38 | */ | 38 | */ |
| @@ -44,7 +44,7 @@ const uint8_t tls13_downgrade_11[8] = { | |||
| 44 | }; | 44 | }; |
| 45 | 45 | ||
| 46 | /* | 46 | /* |
| 47 | * HelloRetryRequest hash - RFC 8446 section 4.1.3. | 47 | * HelloRetryRequest hash - RFC 9846 section 4.2.3. |
| 48 | */ | 48 | */ |
| 49 | const uint8_t tls13_hello_retry_request_hash[32] = { | 49 | const uint8_t tls13_hello_retry_request_hash[32] = { |
| 50 | 0xcf, 0x21, 0xad, 0x74, 0xe5, 0x9a, 0x61, 0x11, | 50 | 0xcf, 0x21, 0xad, 0x74, 0xe5, 0x9a, 0x61, 0x11, |
| @@ -54,7 +54,7 @@ const uint8_t tls13_hello_retry_request_hash[32] = { | |||
| 54 | }; | 54 | }; |
| 55 | 55 | ||
| 56 | /* | 56 | /* |
| 57 | * Certificate Verify padding - RFC 8446 section 4.4.3. | 57 | * Certificate Verify padding - RFC 9846 section 4.5.2. |
| 58 | */ | 58 | */ |
| 59 | const uint8_t tls13_cert_verify_pad[64] = { | 59 | const uint8_t tls13_cert_verify_pad[64] = { |
| 60 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, | 60 | 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, |
| @@ -156,7 +156,7 @@ tls13_alert_received_cb(uint8_t alert_level, uint8_t alert_desc, void *arg) | |||
| 156 | if (alert_desc == TLS13_ALERT_USER_CANCELED) { | 156 | if (alert_desc == TLS13_ALERT_USER_CANCELED) { |
| 157 | /* | 157 | /* |
| 158 | * We treat this as advisory, since a close_notify alert | 158 | * We treat this as advisory, since a close_notify alert |
| 159 | * SHOULD follow this alert (RFC 8446 section 6.1). | 159 | * MUST follow this alert (RFC 9846 section 6.1). |
| 160 | */ | 160 | */ |
| 161 | return; | 161 | return; |
| 162 | } | 162 | } |
| @@ -369,7 +369,7 @@ tls13_key_update_recv(struct tls13_ctx *ctx, CBS *cbs) | |||
| 369 | return tls13_send_alert(ctx->rl, alert); | 369 | return tls13_send_alert(ctx->rl, alert); |
| 370 | } | 370 | } |
| 371 | 371 | ||
| 372 | /* RFC 8446 section 4.6.1 */ | 372 | /* RFC 9846 section 4.7.1 */ |
| 373 | static ssize_t | 373 | static ssize_t |
| 374 | tls13_new_session_ticket_recv(struct tls13_ctx *ctx, CBS *cbs) | 374 | tls13_new_session_ticket_recv(struct tls13_ctx *ctx, CBS *cbs) |
| 375 | { | 375 | { |
| @@ -628,7 +628,7 @@ tls13_synthetic_handshake_message(struct tls13_ctx *ctx) | |||
| 628 | 628 | ||
| 629 | /* | 629 | /* |
| 630 | * Replace ClientHello with synthetic handshake message - see | 630 | * Replace ClientHello with synthetic handshake message - see |
| 631 | * RFC 8446 section 4.4.1. | 631 | * RFC 9846 section 4.1. |
| 632 | */ | 632 | */ |
| 633 | if (!tls1_transcript_hash_init(s)) | 633 | if (!tls1_transcript_hash_init(s)) |
| 634 | goto err; | 634 | goto err; |
diff --git a/src/lib/libssl/tls13_record.h b/src/lib/libssl/tls13_record.h index 18e4fa1aba..e9bcae6efd 100644 --- a/src/lib/libssl/tls13_record.h +++ b/src/lib/libssl/tls13_record.h | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_record.h,v 1.5 2021/10/23 13:12:14 jsing Exp $ */ | 1 | /* $OpenBSD: tls13_record.h,v 1.6 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2019 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2019 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -23,7 +23,7 @@ | |||
| 23 | __BEGIN_HIDDEN_DECLS | 23 | __BEGIN_HIDDEN_DECLS |
| 24 | 24 | ||
| 25 | /* | 25 | /* |
| 26 | * TLSv1.3 Record Protocol - RFC 8446 section 5. | 26 | * TLSv1.3 Record Protocol - RFC 9846 section 5. |
| 27 | * | 27 | * |
| 28 | * The maximum plaintext is 2^14, however for inner plaintext an additional | 28 | * The maximum plaintext is 2^14, however for inner plaintext an additional |
| 29 | * byte is allowed for the content type. A maximum AEAD overhead of 255-bytes | 29 | * byte is allowed for the content type. A maximum AEAD overhead of 255-bytes |
| @@ -41,7 +41,7 @@ __BEGIN_HIDDEN_DECLS | |||
| 41 | (TLS13_RECORD_HEADER_LEN + TLS13_RECORD_MAX_CIPHERTEXT_LEN) | 41 | (TLS13_RECORD_HEADER_LEN + TLS13_RECORD_MAX_CIPHERTEXT_LEN) |
| 42 | 42 | ||
| 43 | /* | 43 | /* |
| 44 | * TLSv1.3 Per-Record Nonces and Sequence Numbers - RFC 8446 section 5.3. | 44 | * TLSv1.3 Per-Record Nonces and Sequence Numbers - RFC 9846 section 5.3. |
| 45 | */ | 45 | */ |
| 46 | #define TLS13_RECORD_SEQ_NUM_LEN 8 | 46 | #define TLS13_RECORD_SEQ_NUM_LEN 8 |
| 47 | 47 | ||
diff --git a/src/lib/libssl/tls13_record_layer.c b/src/lib/libssl/tls13_record_layer.c index 778356af15..e573b50760 100644 --- a/src/lib/libssl/tls13_record_layer.c +++ b/src/lib/libssl/tls13_record_layer.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_record_layer.c,v 1.75 2026/07/31 03:59:50 kenjiro Exp $ */ | 1 | /* $OpenBSD: tls13_record_layer.c,v 1.76 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2018, 2019 Joel Sing <jsing@openbsd.org> |
| 4 | * | 4 | * |
| @@ -95,7 +95,7 @@ struct tls13_record_layer { | |||
| 95 | uint8_t alert_level; | 95 | uint8_t alert_level; |
| 96 | uint8_t alert_desc; | 96 | uint8_t alert_desc; |
| 97 | 97 | ||
| 98 | /* Pending post-handshake handshake messages (RFC 8446, section 4.6). */ | 98 | /* Pending post-handshake handshake messages (RFC 9846, section 4.7). */ |
| 99 | CBS phh_cbs; | 99 | CBS phh_cbs; |
| 100 | uint8_t *phh_data; | 100 | uint8_t *phh_data; |
| 101 | size_t phh_len; | 101 | size_t phh_len; |
| @@ -200,7 +200,7 @@ tls13_record_layer_inc_seq_num(uint8_t *seq_num) | |||
| 200 | { | 200 | { |
| 201 | int i; | 201 | int i; |
| 202 | 202 | ||
| 203 | /* RFC 8446 section 5.3 - sequence numbers must not wrap. */ | 203 | /* RFC 9846 section 5.3 - sequence numbers must not wrap. */ |
| 204 | if (memcmp(seq_num, tls13_max_seq_num, TLS13_RECORD_SEQ_NUM_LEN) == 0) | 204 | if (memcmp(seq_num, tls13_max_seq_num, TLS13_RECORD_SEQ_NUM_LEN) == 0) |
| 205 | return 0; | 205 | return 0; |
| 206 | 206 | ||
| @@ -222,7 +222,7 @@ tls13_record_layer_update_nonce(struct tls13_secret *nonce, | |||
| 222 | return 0; | 222 | return 0; |
| 223 | 223 | ||
| 224 | /* | 224 | /* |
| 225 | * RFC 8446 section 5.3 - sequence number is zero padded and XOR'd | 225 | * RFC 9846 section 5.3 - sequence number is zero padded and XOR'd |
| 226 | * with the IV to produce a per-record nonce. The IV will also be | 226 | * with the IV to produce a per-record nonce. The IV will also be |
| 227 | * at least 8-bytes in length. | 227 | * at least 8-bytes in length. |
| 228 | */ | 228 | */ |
| @@ -284,7 +284,7 @@ tls13_record_layer_process_alert(struct tls13_record_layer *rl) | |||
| 284 | ssize_t ret = TLS13_IO_FAILURE; | 284 | ssize_t ret = TLS13_IO_FAILURE; |
| 285 | 285 | ||
| 286 | /* | 286 | /* |
| 287 | * RFC 8446 - sections 5.1 and 6. | 287 | * RFC 9846 - sections 5.1 and 6. |
| 288 | * | 288 | * |
| 289 | * A TLSv1.3 alert record can only contain a single alert - this means | 289 | * A TLSv1.3 alert record can only contain a single alert - this means |
| 290 | * that processing the alert must consume all of the record. The alert | 290 | * that processing the alert must consume all of the record. The alert |
| @@ -305,8 +305,8 @@ tls13_record_layer_process_alert(struct tls13_record_layer *rl) | |||
| 305 | tls_content_clear(rl->rcontent); | 305 | tls_content_clear(rl->rcontent); |
| 306 | 306 | ||
| 307 | /* | 307 | /* |
| 308 | * Alert level is ignored for closure alerts (RFC 8446 section 6.1), | 308 | * Alert level is ignored for closure alerts (RFC 9846 section 6.1), |
| 309 | * however for error alerts (RFC 8446 section 6.2), the alert level | 309 | * however for error alerts (RFC 9846 section 6.2), the alert level |
| 310 | * must be specified as fatal. | 310 | * must be specified as fatal. |
| 311 | */ | 311 | */ |
| 312 | if (alert_desc == TLS13_ALERT_CLOSE_NOTIFY) { | 312 | if (alert_desc == TLS13_ALERT_CLOSE_NOTIFY) { |
| @@ -344,7 +344,7 @@ tls13_record_layer_send_alert(struct tls13_record_layer *rl) | |||
| 344 | { | 344 | { |
| 345 | ssize_t ret; | 345 | ssize_t ret; |
| 346 | 346 | ||
| 347 | /* This has to fit into a single record, per RFC 8446 section 5.1. */ | 347 | /* This has to fit into a single record, per RFC 9846 section 5.1. */ |
| 348 | if ((ret = tls13_record_layer_write_record(rl, SSL3_RT_ALERT, | 348 | if ((ret = tls13_record_layer_write_record(rl, SSL3_RT_ALERT, |
| 349 | rl->alert_data, rl->alert_len)) != rl->alert_len) { | 349 | rl->alert_data, rl->alert_len)) != rl->alert_len) { |
| 350 | if (ret == TLS13_IO_EOF) | 350 | if (ret == TLS13_IO_EOF) |
| @@ -604,7 +604,7 @@ tls13_record_layer_open_record_protected(struct tls13_record_layer *rl) | |||
| 604 | break; | 604 | break; |
| 605 | } | 605 | } |
| 606 | if (content_type == 0) { | 606 | if (content_type == 0) { |
| 607 | /* Unexpected message per RFC 8446 section 5.4. */ | 607 | /* Unexpected message per RFC 9846 section 5.4. */ |
| 608 | rl->alert = TLS13_ALERT_UNEXPECTED_MESSAGE; | 608 | rl->alert = TLS13_ALERT_UNEXPECTED_MESSAGE; |
| 609 | goto err; | 609 | goto err; |
| 610 | } | 610 | } |
| @@ -835,7 +835,7 @@ tls13_record_layer_read_record(struct tls13_record_layer *rl) | |||
| 835 | /* | 835 | /* |
| 836 | * In response to a client hello we may receive an alert in a | 836 | * In response to a client hello we may receive an alert in a |
| 837 | * record with a legacy version. Otherwise enforce that the | 837 | * record with a legacy version. Otherwise enforce that the |
| 838 | * legacy record version is 0x0303 per RFC 8446, section 5.1. | 838 | * legacy record version is 0x0303 per RFC 9846, section 5.1. |
| 839 | */ | 839 | */ |
| 840 | if (rl->legacy_version == TLS1_2_VERSION && | 840 | if (rl->legacy_version == TLS1_2_VERSION && |
| 841 | tls13_record_version(rl->rrec) != TLS1_2_VERSION && | 841 | tls13_record_version(rl->rrec) != TLS1_2_VERSION && |
| @@ -846,7 +846,7 @@ tls13_record_layer_read_record(struct tls13_record_layer *rl) | |||
| 846 | * Bag of hacks ahead... after the first ClientHello message has been | 846 | * Bag of hacks ahead... after the first ClientHello message has been |
| 847 | * sent or received and before the peer's Finished message has been | 847 | * sent or received and before the peer's Finished message has been |
| 848 | * received, we may receive an unencrypted ChangeCipherSpec record | 848 | * received, we may receive an unencrypted ChangeCipherSpec record |
| 849 | * (see RFC 8446 section 5 and appendix D.4). This record must be | 849 | * (see RFC 9846 section 5 and appendix E.4). This record must be |
| 850 | * ignored. | 850 | * ignored. |
| 851 | */ | 851 | */ |
| 852 | if (content_type == SSL3_RT_CHANGE_CIPHER_SPEC) { | 852 | if (content_type == SSL3_RT_CHANGE_CIPHER_SPEC) { |
| @@ -881,7 +881,7 @@ tls13_record_layer_read_record(struct tls13_record_layer *rl) | |||
| 881 | /* | 881 | /* |
| 882 | * On receiving a handshake or alert record with empty inner plaintext, | 882 | * On receiving a handshake or alert record with empty inner plaintext, |
| 883 | * we must terminate the connection with an unexpected_message alert. | 883 | * we must terminate the connection with an unexpected_message alert. |
| 884 | * See RFC 8446 section 5.4. | 884 | * See RFC 9846 section 5.4. |
| 885 | */ | 885 | */ |
| 886 | if (tls_content_remaining(rl->rcontent) == 0 && | 886 | if (tls_content_remaining(rl->rcontent) == 0 && |
| 887 | (tls_content_type(rl->rcontent) == SSL3_RT_ALERT || | 887 | (tls_content_type(rl->rcontent) == SSL3_RT_ALERT || |
diff --git a/src/lib/libssl/tls13_server.c b/src/lib/libssl/tls13_server.c index 8ad11c6428..8b0dc8a26b 100644 --- a/src/lib/libssl/tls13_server.c +++ b/src/lib/libssl/tls13_server.c | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | /* $OpenBSD: tls13_server.c,v 1.113 2026/07/31 03:59:50 kenjiro Exp $ */ | 1 | /* $OpenBSD: tls13_server.c,v 1.114 2026/08/21 17:15:22 tb Exp $ */ |
| 2 | /* | 2 | /* |
| 3 | * Copyright (c) 2019, 2020 Joel Sing <jsing@openbsd.org> | 3 | * Copyright (c) 2019, 2020 Joel Sing <jsing@openbsd.org> |
| 4 | * Copyright (c) 2020 Bob Beck <beck@openbsd.org> | 4 | * Copyright (c) 2020 Bob Beck <beck@openbsd.org> |
| @@ -102,13 +102,13 @@ tls13_client_hello_required_extensions(struct tls13_ctx *ctx) | |||
| 102 | SSL *s = ctx->ssl; | 102 | SSL *s = ctx->ssl; |
| 103 | 103 | ||
| 104 | /* | 104 | /* |
| 105 | * RFC 8446, section 9.2. If the ClientHello has supported_versions | 105 | * RFC 9846 section 9.2. If the ClientHello has supported_versions |
| 106 | * containing TLSv1.3, presence or absence of some extensions requires | 106 | * containing TLSv1.3, presence or absence of some extensions requires |
| 107 | * presence or absence of others. | 107 | * presence or absence of others. |
| 108 | */ | 108 | */ |
| 109 | 109 | ||
| 110 | /* | 110 | /* |
| 111 | * RFC 8446 section 4.2.9 - if we received a pre_shared_key, then we | 111 | * RFC 9846 section 4.3.9 - if we received a pre_shared_key, then we |
| 112 | * also need psk_key_exchange_modes. Otherwise, section 9.2 specifies | 112 | * also need psk_key_exchange_modes. Otherwise, section 9.2 specifies |
| 113 | * that we need both signature_algorithms and supported_groups. | 113 | * that we need both signature_algorithms and supported_groups. |
| 114 | */ | 114 | */ |
| @@ -133,7 +133,7 @@ tls13_client_hello_required_extensions(struct tls13_ctx *ctx) | |||
| 133 | 133 | ||
| 134 | /* | 134 | /* |
| 135 | * XXX - Require server_name from client? If so, we SHOULD enforce | 135 | * XXX - Require server_name from client? If so, we SHOULD enforce |
| 136 | * this here - RFC 8446, 9.2. | 136 | * this here - RFC 9846, 9.2. |
| 137 | */ | 137 | */ |
| 138 | 138 | ||
| 139 | return 1; | 139 | return 1; |
| @@ -246,7 +246,7 @@ tls13_client_hello_process(struct tls13_ctx *ctx, CBS *cbs) | |||
| 246 | /* | 246 | /* |
| 247 | * The legacy session identifier must either be zero length or a 32 byte | 247 | * The legacy session identifier must either be zero length or a 32 byte |
| 248 | * value (in which case the client is requesting middlebox compatibility | 248 | * value (in which case the client is requesting middlebox compatibility |
| 249 | * mode), as per RFC 8446 section 4.1.2. If it is valid, store the value | 249 | * mode), as per RFC 9846 section 4.2.2. If it is valid, store the value |
| 250 | * so that we can echo it back to the client. | 250 | * so that we can echo it back to the client. |
| 251 | */ | 251 | */ |
| 252 | if (CBS_len(&session_id) != 0 && | 252 | if (CBS_len(&session_id) != 0 && |
| @@ -459,7 +459,7 @@ tls13_server_hello_retry_request_sent(struct tls13_ctx *ctx) | |||
| 459 | /* | 459 | /* |
| 460 | * If the client has requested middlebox compatibility mode, | 460 | * If the client has requested middlebox compatibility mode, |
| 461 | * we MUST send a dummy CCS following our first handshake message. | 461 | * we MUST send a dummy CCS following our first handshake message. |
| 462 | * See RFC 8446 Appendix D.4. | 462 | * See RFC 9846 Appendix E.4. |
| 463 | */ | 463 | */ |
| 464 | if (ctx->hs->tls13.legacy_session_id_len > 0) | 464 | if (ctx->hs->tls13.legacy_session_id_len > 0) |
| 465 | ctx->send_dummy_ccs_after = 1; | 465 | ctx->send_dummy_ccs_after = 1; |
| @@ -519,7 +519,7 @@ tls13_server_hello_sent(struct tls13_ctx *ctx) | |||
| 519 | /* | 519 | /* |
| 520 | * If the client has requested middlebox compatibility mode, | 520 | * If the client has requested middlebox compatibility mode, |
| 521 | * we MUST send a dummy CCS following our first handshake message. | 521 | * we MUST send a dummy CCS following our first handshake message. |
| 522 | * See RFC 8446 Appendix D.4. | 522 | * See RFC 9846 Appendix E.4. |
| 523 | */ | 523 | */ |
| 524 | if ((ctx->handshake_stage.hs_type & WITHOUT_HRR) && | 524 | if ((ctx->handshake_stage.hs_type & WITHOUT_HRR) && |
| 525 | ctx->hs->tls13.legacy_session_id_len > 0) | 525 | ctx->hs->tls13.legacy_session_id_len > 0) |
| @@ -572,7 +572,7 @@ tls13_server_check_certificate(struct tls13_ctx *ctx, SSL_CERT_PKEY *cpk, | |||
| 572 | 572 | ||
| 573 | /* | 573 | /* |
| 574 | * The digitalSignature bit MUST be set if the Key Usage extension is | 574 | * The digitalSignature bit MUST be set if the Key Usage extension is |
| 575 | * present as per RFC 8446 section 4.4.2.2. | 575 | * present as per RFC 9846 section 4.5.1.2. |
| 576 | */ | 576 | */ |
| 577 | if (!(X509_get_key_usage(cpk->x509) & X509v3_KU_DIGITAL_SIGNATURE)) | 577 | if (!(X509_get_key_usage(cpk->x509) & X509v3_KU_DIGITAL_SIGNATURE)) |
| 578 | goto done; | 578 | goto done; |
