[openssl/openssl] dfd1af: Adds initial dtls 1.3 structs and definitions
"'Ryan Hooper' via openssl-commits" <[email protected]>
| Newsgroups | gmane.comp.encryption.openssl.cvs |
|---|---|
| Message-ID | <openssl/openssl/push/refs/heads/master/[email protected]> |
Branch: refs/heads/master
Home: https://github.com/openssl/openssl
Commit: dfd1aff261bdaa8f9c1ca3dc47c01f67a1ce68c4
https://github.com/openssl/openssl/commit/dfd1aff261bdaa8f9c1ca3dc47c01f67a1ce68c4
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M include/openssl/prov_ssl.h
M include/openssl/ssl.h.in
M ssl/d1_lib.c
M ssl/methods.c
M ssl/record/methods/recmethod_local.h
M ssl/record/methods/tls13_meth.c
M ssl/ssl_local.h
Log Message:
-----------
Adds initial dtls 1.3 structs and definitions
Reviewed-by: Neil Horman <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Richard Levitte <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22259)
Commit: 57b2ca460c15b43b69d1858672a1abcf04393681
https://github.com/openssl/openssl/commit/57b2ca460c15b43b69d1858672a1abcf04393681
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/methods.c
Log Message:
-----------
Remove compile guards for dtls1.3 method implementations
Reviewed-by: Neil Horman <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Richard Levitte <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22259)
Commit: 3c47f8fcf1f27d19770646d8e4ffc1ebe12bb6ef
https://github.com/openssl/openssl/commit/3c47f8fcf1f27d19770646d8e4ffc1ebe12bb6ef
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M apps/include/opt.h
M apps/lib/s_cb.c
M apps/s_client.c
M apps/s_server.c
Log Message:
-----------
Integrate dtls1.3 in s_client and s_server
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22260)
Commit: 68097ce3a4cdc83f7ac42556ea560392a6298ec7
https://github.com/openssl/openssl/commit/68097ce3a4cdc83f7ac42556ea560392a6298ec7
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/man1/openssl-s_client.pod.in
M doc/man1/openssl-s_server.pod.in
M doc/man1/openssl.pod
M doc/perlvars.pm
Log Message:
-----------
Adds DTLS 1.3 functionality to s_client and s_server documentation.
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22260)
Commit: 5630fbfb71df549aa9f97d0992ad0e1415b20829
https://github.com/openssl/openssl/commit/5630fbfb71df549aa9f97d0992ad0e1415b20829
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M apps/s_client.c
Log Message:
-----------
Print session ticket for dtls 1.3 as well.
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22260)
Commit: 2b727cdfd70da1f69ece6b0904f586b12cef2604
https://github.com/openssl/openssl/commit/2b727cdfd70da1f69ece6b0904f586b12cef2604
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/extensions.c
M ssl/statem/extensions_clnt.c
M ssl/statem/extensions_srvr.c
Log Message:
-----------
Support TLS1.3 extensions with DTLS1.3
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22261)
Commit: 40b5004a5fbebeb142f6c4af00f53471d93dfbdf
https://github.com/openssl/openssl/commit/40b5004a5fbebeb142f6c4af00f53471d93dfbdf
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/tls13_enc.c
Log Message:
-----------
Use dtls1.3 cryptographic label prefix as dictated by RFC 9147 section 5.9
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22416)
Commit: 5fb0a19fc276ee2f036aac23a05e8de3740d19ba
https://github.com/openssl/openssl/commit/5fb0a19fc276ee2f036aac23a05e8de3740d19ba
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/tls13_enc.c
Log Message:
-----------
Determine which label prefix to use based on if the connection is dtls
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22416)
Commit: 3b267f3b29c7ebb6133089eb761c0c19bbeeddab
https://github.com/openssl/openssl/commit/3b267f3b29c7ebb6133089eb761c0c19bbeeddab
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/ssl_conf.c
M ssl/t1_trce.c
M test/helpers/ssl_test_ctx.c
M test/ssl_old_test.c
Log Message:
-----------
Adds DTLS1.3 to ssl protocol to text structs
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22273)
Commit: 785b342d50e5f82ac7a449e566d52f6173b5645c
https://github.com/openssl/openssl/commit/785b342d50e5f82ac7a449e566d52f6173b5645c
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/ssl_lib.c
Log Message:
-----------
Add dtls1.3 to ssl_protocol_to_string()
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22273)
Commit: 028e452bec820db6558d8ad2133648c03dcb2c69
https://github.com/openssl/openssl/commit/028e452bec820db6558d8ad2133648c03dcb2c69
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/ssl_conf.c
Log Message:
-----------
Fix protocol list for cmd_Protocol()
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22273)
Commit: 4ed3e19d8e8e870d91809a352fb679be62574cb5
https://github.com/openssl/openssl/commit/4ed3e19d8e8e870d91809a352fb679be62574cb5
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem.c
M ssl/statem/statem_clnt.c
M ssl/statem/statem_lib.c
M ssl/statem/statem_srvr.c
Log Message:
-----------
Update tls state machine logic to support dtls1.3 alongside tls1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22366)
Updated the logic in ssl_cipher_list_to_bytes to take account of the changes
from PR#24161
Reviewed-by: Richard Levitte <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24226)
Commit: 0668bbf05cb5b5e77b2bde2a995f95d50fe794de
https://github.com/openssl/openssl/commit/0668bbf05cb5b5e77b2bde2a995f95d50fe794de
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_clnt.c
M ssl/statem/statem_srvr.c
Log Message:
-----------
Fix sending session ids in DTLS-1.3
DTLS 1.3 session id must not be sent by client unless
it has a cached id. And DTLS 1.3 servers must not echo
a session id from a client.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22366)
Commit: 41891086703e70b65d71da06e1c175b3852cf075
https://github.com/openssl/openssl/commit/41891086703e70b65d71da06e1c175b3852cf075
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/ssl_local.h
M ssl/statem/extensions_srvr.c
M ssl/statem/statem.c
M ssl/statem/statem_clnt.c
M ssl/statem/statem_lib.c
M ssl/statem/statem_srvr.c
Log Message:
-----------
Do DTLS13 and TLS13 connection version check in one macro
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22366)
Commit: 2c04c62e2720026d95c1702f997a559b78a16a11
https://github.com/openssl/openssl/commit/2c04c62e2720026d95c1702f997a559b78a16a11
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_srvr.c
Log Message:
-----------
Fix wrong dtls 1 and 1.2 version check
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22366)
Commit: 406f94b26c67375936cc0373c2ddaf49c5ec9420
https://github.com/openssl/openssl/commit/406f94b26c67375936cc0373c2ddaf49c5ec9420
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M providers/common/capabilities.c
M ssl/s3_lib.c
M ssl/statem/extensions.c
M ssl/statem/extensions_clnt.c
M ssl/statem/extensions_srvr.c
M ssl/t1_lib.c
Log Message:
-----------
Support TLS 1.3 kexs and groups with DTLS 1.3
SSL_CONNECTION_IS_VERSION13 macro is used where appropriate.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22364)
Commit: e087155d022313b63cb03b3868ceae337f8ea5fd
https://github.com/openssl/openssl/commit/e087155d022313b63cb03b3868ceae337f8ea5fd
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M util/perl/TLSProxy/Record.pm
M util/perl/TLSProxy/ServerHello.pm
Log Message:
-----------
Adds dtls 1.3 support in TLS::Proxy
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/23375)
Commit: e575462cf84bef9885675c1c97b76117a84a7466
https://github.com/openssl/openssl/commit/e575462cf84bef9885675c1c97b76117a84a7466
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M apps/include/s_apps.h
Log Message:
-----------
Don't allow renegotiation for DTLS 1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22362)
Commit: a2126854564cde343159cd8bb3acd15732ff35f4
https://github.com/openssl/openssl/commit/a2126854564cde343159cd8bb3acd15732ff35f4
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/rec_layer_d1.c
Log Message:
-----------
Make dtls1.3 changes to dtls1_read_bytes and do_dtls1_write which matches ssl3_read_bytes and ssl3_write_bytes
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22360)
Commit: a57bcbf251d6d8aed55c866ec0c5540ea2211c30
https://github.com/openssl/openssl/commit/a57bcbf251d6d8aed55c866ec0c5540ea2211c30
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/methods/dtls_meth.c
Log Message:
-----------
Adds some more changes dtls specific functions to make them more in sync with their tls counterparts.
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22360)
Commit: e1c9ac67f6ab6121ed9dcbadcaaf436694e7484d
https://github.com/openssl/openssl/commit/e1c9ac67f6ab6121ed9dcbadcaaf436694e7484d
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_dtls.c
Log Message:
-----------
Make similar changes to dtls1_do_write() for dtls1.3 as in ssl3_do_write() for tls1.3
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22360)
Commit: 88028b8f3bcfb5e210cfd128a2e3c56b18395e77
https://github.com/openssl/openssl/commit/88028b8f3bcfb5e210cfd128a2e3c56b18395e77
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/rec_layer_d1.c
Log Message:
-----------
Handle alerts similarly in dtls1_read_bytes() as done in ssl3_read_bytes()
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22360)
Commit: 8edf0e6ae89d68212bdcce6ce7473e73a4a9f8b5
https://github.com/openssl/openssl/commit/8edf0e6ae89d68212bdcce6ce7473e73a4a9f8b5
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/t1_lib.c
Log Message:
-----------
Support TLS1.3 sigalg logic in DTLS1.3
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22380)
Commit: f0d880230f40a3392a8f187609df9a7fd33399e2
https://github.com/openssl/openssl/commit/f0d880230f40a3392a8f187609df9a7fd33399e2
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_dtls.c
Log Message:
-----------
Removes an mtu assertion that fails
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22401)
Commit: 4ba2ea1bf6ceb81aa8eeda279ae8d6a9bea98f6d
https://github.com/openssl/openssl/commit/4ba2ea1bf6ceb81aa8eeda279ae8d6a9bea98f6d
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/ssl_sess.c
M ssl/t1_lib.c
M ssl/t1_trce.c
Log Message:
-----------
Update session id and ticket logic for dtls13
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22936)
Commit: 7a616a1acfed58fa43709a18d8a8595de86a7778
https://github.com/openssl/openssl/commit/7a616a1acfed58fa43709a18d8a8595de86a7778
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/ssl_txt.c
Log Message:
-----------
Fix session print for dtls1.3
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22936)
Commit: 961f25e6d52f22b7c5498b65fd74b4d5a0451aee
https://github.com/openssl/openssl/commit/961f25e6d52f22b7c5498b65fd74b4d5a0451aee
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/methods/tls_common.c
M ssl/record/methods/tlsany_meth.c
Log Message:
-----------
tls_post_encryption_processing_default() and tls_validate_record_header()
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22376)
Commit: c505b3990c9045677c4bfb65bae7dd8dbe7d571e
https://github.com/openssl/openssl/commit/c505b3990c9045677c4bfb65bae7dd8dbe7d571e
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/ssl_lib.c
Log Message:
-----------
Fix ssl_lib functions for dtls 1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22378)
Commit: b4199b030e8012c25d4f635893cc11c620ef289e
https://github.com/openssl/openssl/commit/b4199b030e8012c25d4f635893cc11c620ef289e
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/s3_lib.c
M ssl/statem/statem_lib.c
Log Message:
-----------
Sanity tests of inputs to ssl_version_cmp
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24293)
Commit: 88b0e95281ae242156be76addeaeb7787a62dacc
https://github.com/openssl/openssl/commit/88b0e95281ae242156be76addeaeb7787a62dacc
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_lib.c
M ssl/t1_lib.c
Log Message:
-----------
Fix sanity tests for ssl_version_cmp for dtls 1.3 branch
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24293)
Commit: 83cde485f0c4df3224ec1f34d2dca3d01abf0ace
https://github.com/openssl/openssl/commit/83cde485f0c4df3224ec1f34d2dca3d01abf0ace
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M include/openssl/dtls1.h
M ssl/ssl_local.h
M ssl/statem/statem_clnt.c
M ssl/statem/statem_lib.c
Log Message:
-----------
Update dtls max version
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22275)
Commit: 62e6bd668ad066ba867bd16bef845983fc31304d
https://github.com/openssl/openssl/commit/62e6bd668ad066ba867bd16bef845983fc31304d
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_clnt.c
Log Message:
-----------
Remove obsolete TODO and guards for post handshake authentication in DTLS 1.3
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22275)
Commit: 2990d14fa4efae2cd16df9375caa2dd19df07160
https://github.com/openssl/openssl/commit/2990d14fa4efae2cd16df9375caa2dd19df07160
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/ssl_lib.c
M test/ssl_ctx_test.c
Log Message:
-----------
Update DTLS version tests
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22275)
Commit: 5a655813c3eac0a9e0e8360d52c09b1a7fdae192
https://github.com/openssl/openssl/commit/5a655813c3eac0a9e0e8360d52c09b1a7fdae192
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_lib.c
Log Message:
-----------
Fix version check to avoid unsupported protocol error in ssl_choose_server_version()
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22275)
Commit: 99a88d2a3e4550fe685b59582b70915d10a75f8b
https://github.com/openssl/openssl/commit/99a88d2a3e4550fe685b59582b70915d10a75f8b
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/extensions_clnt.c
Log Message:
-----------
Fix renegotiation check that was added in https://github.com/openssl/openssl/pull/24161
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22275)
Commit: c49f224397814db976e0b24623efa7eb4bf4cc1c
https://github.com/openssl/openssl/commit/c49f224397814db976e0b24623efa7eb4bf4cc1c
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M fuzz/dtlsclient.c
M test/dtls_mtu_test.c
M test/dtlstest.c
M test/ssl-tests/29-dtls-sctp-label-bug.cnf
M test/ssl-tests/29-dtls-sctp-label-bug.cnf.in
Log Message:
-----------
Run some failing tests with DTLS1.2
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22275)
Commit: 15eecbd4020e93b6780194ea1235be146119fbae
https://github.com/openssl/openssl/commit/15eecbd4020e93b6780194ea1235be146119fbae
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/ssl-tests/07-dtls-protocol-version.cnf
M test/ssl-tests/11-dtls_resumption.cnf
M test/ssl-tests/protocol_version.pm
Log Message:
-----------
Fix test_ssl_new tests
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22275)
Commit: 337f284a75bb543a62a22607735c742269020d13
https://github.com/openssl/openssl/commit/337f284a75bb543a62a22607735c742269020d13
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/extensions.c
M ssl/statem/extensions_clnt.c
M ssl/statem/extensions_srvr.c
Log Message:
-----------
Check that both tls1.3 and dtls1.3 is disabled before removing code from compilation path.
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22275)
Commit: 88c76ecb77a7cc6ef8ea7340a8d032911d6981aa
https://github.com/openssl/openssl/commit/88c76ecb77a7cc6ef8ea7340a8d032911d6981aa
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/ssl_local.h
M ssl/statem/statem_clnt.c
M ssl/statem/statem_lib.c
M ssl/statem/statem_srvr.c
Log Message:
-----------
Disable middlebox for dtls
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22275)
Commit: f49b81abc23ccd3ffa70d093d6df4bf2dc1a3a1f
https://github.com/openssl/openssl/commit/f49b81abc23ccd3ffa70d093d6df4bf2dc1a3a1f
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/tls13_enc.c
M test/tls13secretstest.c
Log Message:
-----------
Clear old messages from queues in order to avoid leaks of record layer objects.
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22275)
Commit: b082f7c507d3212504568f45fbc14a5691fcd05a
https://github.com/openssl/openssl/commit/b082f7c507d3212504568f45fbc14a5691fcd05a
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/t1_trce.c
Log Message:
-----------
Correct traces for certificates in dtls13
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22935)
Commit: b6d5b7f2f2b9f62c1172b1702e512aab49a0b3cb
https://github.com/openssl/openssl/commit/b6d5b7f2f2b9f62c1172b1702e512aab49a0b3cb
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/man1/openssl-s_client.pod.in
M doc/man3/SSL_CIPHER_get_name.pod
M doc/man3/SSL_CONF_cmd.pod
M doc/man3/SSL_CTX_set0_CA_list.pod
M doc/man3/SSL_CTX_set1_sigalgs.pod
M doc/man3/SSL_CTX_set_min_proto_version.pod
M doc/man3/SSL_CTX_set_num_tickets.pod
M doc/man3/SSL_CTX_set_options.pod
M doc/man3/SSL_check_chain.pod
M doc/man3/SSL_export_keying_material.pod
M doc/man3/SSL_get_shared_sigalgs.pod
M doc/man3/SSL_get_version.pod
Log Message:
-----------
Update documentation for DTLS1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22363)
Commit: dd3b272e66788c9a63a17ea5b915cb823fc6cbde
https://github.com/openssl/openssl/commit/dd3b272e66788c9a63a17ea5b915cb823fc6cbde
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/man3/SSL_CONF_cmd.pod
Log Message:
-----------
Updates SSL_CONF_cmd.pod to be explicit when features are for both TLS and DTLS
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22363)
Commit: 2076ecdc177d7f7246fa12894a7813f01aa4f8fc
https://github.com/openssl/openssl/commit/2076ecdc177d7f7246fa12894a7813f01aa4f8fc
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/ssl_local.h
Log Message:
-----------
Fix description of version field of ssl connection struct
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22937)
Commit: 64cdc07643b223511955c26e4c4b0d772a5836a9
https://github.com/openssl/openssl/commit/64cdc07643b223511955c26e4c4b0d772a5836a9
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_srvr.c
Log Message:
-----------
Continue processing cookieless client hellos for dtls1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/22400)
Commit: 1e58a8d6d5802554c0e2c1b44fa5586bc292db55
https://github.com/openssl/openssl/commit/1e58a8d6d5802554c0e2c1b44fa5586bc292db55
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/ssl-tests/02-protocol-version.cnf
M test/ssl-tests/07-dtls-protocol-version.cnf
M test/ssl-tests/10-resumption.cnf
M test/ssl-tests/protocol_version.pm
Log Message:
-----------
Adds DTLSv1.3 to protocol_version.pm for additional protocol version tests.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/23242)
Commit: 7796608c4dfe2c60b840e7562841f988b37136b0
https://github.com/openssl/openssl/commit/7796608c4dfe2c60b840e7562841f988b37136b0
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/dtlstest.c
M test/sslapitest.c
Log Message:
-----------
Run test_cookie() test with DTLS 1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24425)
Commit: 1daba8d9c6af08fd28e700574c97a8ed64b8d465
https://github.com/openssl/openssl/commit/1daba8d9c6af08fd28e700574c97a8ed64b8d465
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
A doc/designs/dtlsv1_3/dtlsv1_3-main.md
Log Message:
-----------
Add design document for DTLS 1.3 implementation
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/23041)
Commit: 7d2232d3d8c7c6104e106f3787e4365866f13b7f
https://github.com/openssl/openssl/commit/7d2232d3d8c7c6104e106f3787e4365866f13b7f
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M apps/s_client.c
M apps/s_server.c
M ssl/record/methods/tls_common.c
M ssl/ssl_cert.c
M ssl/ssl_ciph.c
M ssl/ssl_lib.c
M ssl/ssl_local.h
M ssl/statem/extensions.c
M ssl/statem/extensions_clnt.c
M ssl/statem/extensions_srvr.c
M ssl/statem/statem_clnt.c
M ssl/statem/statem_lib.c
M ssl/t1_lib.c
M test/sslapitest.c
Log Message:
-----------
Refactor code and fix a couple of missing DTLSv1.3 checks.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24345)
Commit: f1f66dc86d315965ac40c739b549fbc18ac4cd15
https://github.com/openssl/openssl/commit/f1f66dc86d315965ac40c739b549fbc18ac4cd15
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/methods/dtls_meth.c
M ssl/statem/statem_dtls.c
Log Message:
-----------
Re-enable mtu assertion which previously failed for DTLS 1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24524)
Commit: db95a7cac8c30762bafc0989c6d513a2de548d94
https://github.com/openssl/openssl/commit/db95a7cac8c30762bafc0989c6d513a2de548d94
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M crypto/packet.c
M include/internal/common.h
M include/internal/packet.h
M ssl/statem/extensions.c
M ssl/statem/extensions_clnt.c
M ssl/statem/statem_dtls.c
M ssl/statem/statem_lib.c
M test/dtls_mtu_test.c
M test/ssl-tests/29-dtls-sctp-label-bug.cnf.in
Log Message:
-----------
Place start of ClientHello correctly when calculating binder for DTLS 1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24426)
Commit: b68db64203b9caf9d1328cd68e8878089f9fd176
https://github.com/openssl/openssl/commit/b68db64203b9caf9d1328cd68e8878089f9fd176
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_dtls.c
Log Message:
-----------
Use WPACKET in dtls1_do_write()
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24426)
Commit: 72589de546d2585ffd5a9b3116eb5bf2ea24aa00
https://github.com/openssl/openssl/commit/72589de546d2585ffd5a9b3116eb5bf2ea24aa00
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M fuzz/dtlsclient.c
M ssl/d1_lib.c
M ssl/ssl_local.h
M ssl/statem/extensions_clnt.c
M ssl/statem/statem_clnt.c
M ssl/statem/statem_lib.c
M test/dtlstest.c
Log Message:
-----------
Fix an assertion failure which happens when a DTLS 1.3 client receives a HelloVerifyRequest.
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Viktor Dukhovni <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24509)
Commit: 3cbc0ceebe781d6039ca48bd8d7342fd85f58c4d
https://github.com/openssl/openssl/commit/3cbc0ceebe781d6039ca48bd8d7342fd85f58c4d
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M Configure
M test/recipes/70-test_tls13alerts.t
M util/perl/TLSProxy/Message.pm
M util/perl/TLSProxy/Proxy.pm
M util/perl/TLSProxy/Record.pm
M util/perl/TLSProxy/ServerKeyExchange.pm
Log Message:
-----------
Run 70-test_tls13alerts.t with dtls
Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24525)
Commit: 696ccf8171f55ddde6ee49208b6515b1dc25f4c0
https://github.com/openssl/openssl/commit/696ccf8171f55ddde6ee49208b6515b1dc25f4c0
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_tls13cookie.t
Log Message:
-----------
Run 70-test_tls13cookie.t with dtls
Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24525)
Commit: ef51f0190b514b05c0252d8857daf5ee0c8d4931
https://github.com/openssl/openssl/commit/ef51f0190b514b05c0252d8857daf5ee0c8d4931
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_tls13hrr.t
Log Message:
-----------
Run 70-test_tls13hrr.t with dtls
Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24525)
Commit: 93ae1f7c48dfe596305735ec9c321fc2aed49fda
https://github.com/openssl/openssl/commit/93ae1f7c48dfe596305735ec9c321fc2aed49fda
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_tls13psk.t
Log Message:
-----------
Add support for running 70-test_tls13psk.t with dtls
Has to be currently disabled because it fails.
Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24525)
Commit: 7f4c0bd62a54112c49f7362475479e39760cdd70
https://github.com/openssl/openssl/commit/7f4c0bd62a54112c49f7362475479e39760cdd70
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_tls13messages.t
Log Message:
-----------
Run 70-test_tls13messages.t with dtls
Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24525)
Commit: e032e5a7350396e3e9a3a2127861613a2ec0f779
https://github.com/openssl/openssl/commit/e032e5a7350396e3e9a3a2127861613a2ec0f779
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_tls13kexmodes.t
Log Message:
-----------
Run 70-test_tls13kexmodes.t with dtls
It is currently unsupported because of missing support in TLSProxy.
Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24525)
Commit: b16d1222890ce5d4f44262b400bec2e8a96c6df6
https://github.com/openssl/openssl/commit/b16d1222890ce5d4f44262b400bec2e8a96c6df6
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_tls13alerts.t
M test/recipes/70-test_tls13certcomp.t
M test/recipes/70-test_tls13cookie.t
M test/recipes/70-test_tls13hrr.t
M test/recipes/70-test_tls13psk.t
Log Message:
-----------
Run 70-test_tls13certcomp.t with dtls
Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24525)
Commit: 0e8e8c9830c02d26545e1e4fdc699263339d5c26
https://github.com/openssl/openssl/commit/0e8e8c9830c02d26545e1e4fdc699263339d5c26
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_clnt.c
M ssl/statem/statem_srvr.c
M test/dtls_mtu_test.c
Log Message:
-----------
Fix SCTP todo
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Viktor Dukhovni <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24605)
Commit: f939ced57be4b72f4b37202047884a323be9c87c
https://github.com/openssl/openssl/commit/f939ced57be4b72f4b37202047884a323be9c87c
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M ssl/record/rec_layer_d1.c
M ssl/ssl_local.h
M ssl/statem/statem_dtls.c
M util/indent.pro
Log Message:
-----------
Refactor handshake msg header parsing etc.
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/24607)
Commit: 9e11e0c135cb5fa25ed8d61fa6926f09262af4bb
https://github.com/openssl/openssl/commit/9e11e0c135cb5fa25ed8d61fa6926f09262af4bb
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/designs/dtlsv1_3/dtlsv1_3-main.md
M ssl/record/rec_layer_d1.c
M ssl/tls13_enc.c
A test/recipes/70-test_dtls13epoch.t
M test/recipes/70-test_tls13alerts.t
M test/tls13secretstest.c
Log Message:
-----------
Update epochs when changing key and cipher state for dtls 1.3
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/23229)
Commit: 15b6e51f9c8e846c5707ebb2ef915a25b535bc4e
https://github.com/openssl/openssl/commit/15b6e51f9c8e846c5707ebb2ef915a25b535bc4e
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/s3_lib.c
M ssl/ssl_local.h
M ssl/statem/statem_lib.c
M ssl/statem/statem_srvr.c
M test/recipes/70-test_tls13downgrade.t
M util/perl/TLSProxy/Certificate.pm
M util/perl/TLSProxy/CertificateRequest.pm
M util/perl/TLSProxy/CertificateVerify.pm
M util/perl/TLSProxy/ClientHello.pm
M util/perl/TLSProxy/EncryptedExtensions.pm
M util/perl/TLSProxy/HelloVerifyRequest.pm
M util/perl/TLSProxy/Message.pm
M util/perl/TLSProxy/NewSessionTicket.pm
M util/perl/TLSProxy/ServerHello.pm
M util/perl/TLSProxy/ServerKeyExchange.pm
Log Message:
-----------
Support dtls 1.3 downgrade mechanism
Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/23320)
Commit: 33d85ab59e0ed95b6ae382da9ba0fc10ac2578d2
https://github.com/openssl/openssl/commit/33d85ab59e0ed95b6ae382da9ba0fc10ac2578d2
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M include/internal/recordmethod.h
M include/openssl/dtls1.h
M ssl/d1_lib.c
M ssl/quic/quic_tls.c
M ssl/record/methods/dtls_meth.c
M ssl/record/methods/ktls_meth.c
M ssl/record/methods/recmethod_local.h
M ssl/record/methods/tls13_meth.c
M ssl/record/methods/tls1_meth.c
M ssl/record/methods/tls_common.c
M ssl/record/methods/tlsany_meth.c
M ssl/record/rec_layer_s3.c
M ssl/record/record.h
M ssl/s3_lib.c
M ssl/ssl_ciph.c
M ssl/ssl_local.h
M ssl/ssl_txt.c
M ssl/statem/statem_clnt.c
M ssl/t1_enc.c
M ssl/tls13_enc.c
M test/tls13encryptiontest.c
M test/tls13secretstest.c
Log Message:
-----------
DTLS 1.3 record number encryption
Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/23511)
Commit: 561978dfb385b8ac2ac2d11ed760a6d5c02946f9
https://github.com/openssl/openssl/commit/561978dfb385b8ac2ac2d11ed760a6d5c02946f9
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/designs/dtlsv1_3/dtlsv1_3-main.md
M ssl/ech/ech_internal.c
M ssl/s3_enc.c
M ssl/ssl_local.h
M ssl/statem/extensions_srvr.c
M ssl/statem/statem_clnt.c
M ssl/statem/statem_dtls.c
M ssl/statem/statem_lib.c
M ssl/statem/statem_local.h
Log Message:
-----------
Fix DTLS 1.3 handshake transcript hash
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26035)
Commit: f523da7941e7cca1faca1582769c5be17849d946
https://github.com/openssl/openssl/commit/f523da7941e7cca1faca1582769c5be17849d946
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/pqueue.c
M ssl/record/methods/dtls_meth.c
M ssl/record/methods/recmethod_local.h
M ssl/ssl_local.h
Log Message:
-----------
Avoid mallocing unprocessed_rcds and processed_rcds in dtls record layer
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26211)
Commit: 6b229d7190ed90f25c86dbae26b3584d36a893ed
https://github.com/openssl/openssl/commit/6b229d7190ed90f25c86dbae26b3584d36a893ed
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/rec_layer_s3.c
M ssl/statem/statem_clnt.c
Log Message:
-----------
Check result of set_protocol_version() and use the version passed as argument
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26226)
Commit: 615095235de15029b2b2903bb835cd0c11f73ab6
https://github.com/openssl/openssl/commit/615095235de15029b2b2903bb835cd0c11f73ab6
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/tls13_enc.c
Log Message:
-----------
Sequence number cipher context is NULL for TLS connections
Fix memory sanitizer report of use of uninitialized variable: be explicit
that sequence number cipher context is NULL for TLS connections when
calling ssl_set_new_record_layer().
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Hugo Landau <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26401)
Commit: 89e2929d700c89fa9096f0ed5bc00f3ff107e6c5
https://github.com/openssl/openssl/commit/89e2929d700c89fa9096f0ed5bc00f3ff107e6c5
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M include/openssl/prov_ssl.h
M ssl/ech/ech_internal.c
M ssl/record/rec_layer_s3.c
M ssl/s3_enc.c
M ssl/ssl_local.h
M ssl/statem/statem_clnt.c
M ssl/statem/statem_dtls.c
M ssl/statem/statem_lib.c
Log Message:
-----------
This change fixes an issue where a DTLS 1.3 would calculate a wrong transcript hash.
A wrong transcript hash was calculated when the client received a HRR which caused interop failures with WolfSSL. This change also refactors the internal calls to ssl3_finish_mac() that no longer requires the "incl_hdr" argument.
Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26465)
Commit: 972967d71b8e105ad6f46106ca5d50dbb7769e7e
https://github.com/openssl/openssl/commit/972967d71b8e105ad6f46106ca5d50dbb7769e7e
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M ssl/record/rec_layer_s3.c
M ssl/ssl_local.h
M ssl/statem/statem_dtls.c
Log Message:
-----------
Reduce the number of mallocs in dtls1_new() by allocating message queues together with the d1 struct.
Reviewed-by: Viktor Dukhovni <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26150)
Commit: 54433b6063cfbe2ebb906cabb316248304221b16
https://github.com/openssl/openssl/commit/54433b6063cfbe2ebb906cabb316248304221b16
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_dtls13epoch.t
M test/recipes/70-test_tls13alerts.t
M test/recipes/70-test_tls13certcomp.t
M test/recipes/70-test_tls13hrr.t
M test/recipes/70-test_tls13messages.t
M util/perl/TLSProxy/Message.pm
Log Message:
-----------
TLSProxy: Handle partial messages with DTLS
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26532)
Commit: 06fd572624ab6c08291a99f503c13597d96b78bc
https://github.com/openssl/openssl/commit/06fd572624ab6c08291a99f503c13597d96b78bc
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M util/perl/TLSProxy/Proxy.pm
Log Message:
-----------
Adds a workaround for false negative test results with TLSProxy
The server is not able to shut down correctly
when the client sends an alert in epoch 0 and the
server has sent its Finished message.
As a workaround we accept a bad exit code for a failing
DTLS test run.
Fixes #26915
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26922)
Commit: 77b648a1d954bd6222240fd3a65e7ec1c9ce5b02
https://github.com/openssl/openssl/commit/77b648a1d954bd6222240fd3a65e7ec1c9ce5b02
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/designs/dtlsv1_3/dtlsv1_3-main.md
M doc/man3/SSL_get_version.pod
M include/openssl/dtls1.h
M ssl/d1_lib.c
M ssl/record/methods/dtls_meth.c
M ssl/record/methods/recmethod_local.h
M ssl/record/methods/tls13_meth.c
M ssl/record/methods/tls1_meth.c
M ssl/record/methods/tls_common.c
M test/helpers/ssltestlib.c
M util/perl/TLSProxy/Record.pm
Log Message:
-----------
Support DTLS 1.3 Unified Headers
Also set correct AAD for DTLS 1.3 message de-/encryption.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/25668)
Commit: d5ad2cb7b6dd4978ffeb7c21075c40f33673713e
https://github.com/openssl/openssl/commit/d5ad2cb7b6dd4978ffeb7c21075c40f33673713e
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/dtls_mtu_test.c
Log Message:
-----------
test_server_mtu_larger_than_max_fragment_length() should be run for DTLS 1.3
Previously it was forced to run on DTLS 1.2>. But the underlying issue was fixed on master and it works now that the feature branch has been rebased on top of a more recent master.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26574)
Commit: a063071fd467b98c6a6b0555a605025b62a5334c
https://github.com/openssl/openssl/commit/a063071fd467b98c6a6b0555a605025b62a5334c
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/sslapitest.c
M test/tls-provider.c
Log Message:
-----------
Duplicate TLS 1.3 sslapitests for DTLS 1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/26912)
Commit: 58301449085888ea3758d2e2c07a4d1db18d41c0
https://github.com/openssl/openssl/commit/58301449085888ea3758d2e2c07a4d1db18d41c0
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_lib.c
Log Message:
-----------
Revert changes to ssl_version_cmp() to avoid calling assert on non-sane inputs
The function can be called with arbitrary inputs.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28000)
Commit: a99dd7aec58f1e07d032fb19ff3e203b6ba1b2da
https://github.com/openssl/openssl/commit/a99dd7aec58f1e07d032fb19ff3e203b6ba1b2da
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M apps/lib/s_cb.c
M doc/designs/dtlsv1_3/dtlsv1_3-main.md
M include/internal/packet.h
M include/internal/recordmethod.h
M include/internal/statem.h
M include/openssl/ssl.h.in
M include/openssl/ssl3.h
M ssl/d1_lib.c
M ssl/pqueue.c
M ssl/quic/quic_tls.c
M ssl/record/methods/dtls_meth.c
M ssl/record/methods/ktls_meth.c
M ssl/record/methods/recmethod_local.h
M ssl/record/methods/tls13_meth.c
M ssl/record/methods/tls1_meth.c
M ssl/record/methods/tls_common.c
M ssl/record/methods/tls_multib.c
M ssl/record/rec_layer_d1.c
M ssl/record/record.h
M ssl/ssl_local.h
M ssl/ssl_stat.c
M ssl/statem/statem.c
M ssl/statem/statem_clnt.c
M ssl/statem/statem_dtls.c
M ssl/statem/statem_local.h
M ssl/statem/statem_srvr.c
M ssl/tls13_enc.c
A test/recipes/70-test_dtls13ack.t
M test/recipes/70-test_sslcbcpadding.t
M test/recipes/70-test_sslrecords.t
M test/recipes/70-test_tls13hrr.t
M test/sslapitest.c
M test/tls13encryptiontest.c
M test/tls13secretstest.c
M util/perl/TLSProxy/Message.pm
M util/perl/TLSProxy/Proxy.pm
M util/perl/TLSProxy/Record.pm
A util/perl/TLSProxy/RecordNumber.pm
Log Message:
-----------
Adds DTLS 1.3 ACK message functionality
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/25119)
Commit: ce29b8c7d6888ef96a16ae57a595e170ad1bc0a6
https://github.com/openssl/openssl/commit/ce29b8c7d6888ef96a16ae57a595e170ad1bc0a6
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M ssl/record/rec_layer_d1.c
M ssl/tls13_enc.c
Log Message:
-----------
Fixes an issue were dropped records sent from server was not retransmitted.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/25119)
Commit: f484fc536b3495d05ee9aeb9747c748155de20b7
https://github.com/openssl/openssl/commit/f484fc536b3495d05ee9aeb9747c748155de20b7
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/methods/tls_multib.c
Log Message:
-----------
Minor style changes and check sequence for wraparound
We check the TLS sequence number for wraparound elsewhere,
this adds the check to TLS multiblock writes as well.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/25119)
Commit: a84b9ddb582e8abe7486a61317789c885e40cd8d
https://github.com/openssl/openssl/commit/a84b9ddb582e8abe7486a61317789c885e40cd8d
Author: Tomas Mraz <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_dtls13ack.t
M test/recipes/70-test_dtls13epoch.t
M test/recipes/70-test_sslrecords.t
Log Message:
-----------
Use non-PQC key share for DTLS-1.3 TLSProxy tests
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28455)
Commit: fc599e96fdfbc98d09e86c2193a37cb5304be4e2
https://github.com/openssl/openssl/commit/fc599e96fdfbc98d09e86c2193a37cb5304be4e2
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M apps/s_client.c
M apps/s_server.c
M ssl/ssl_cert.c
M ssl/statem/statem_clnt.c
Log Message:
-----------
Support OSCP responses for DTLS 1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28455)
Commit: cd0563101180e1d190c25fd7a735fb3ad2211041
https://github.com/openssl/openssl/commit/cd0563101180e1d190c25fd7a735fb3ad2211041
Author: Tomas Mraz <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M providers/common/capabilities.c
Log Message:
-----------
sigalg_constants_list: Add DTLS1_3_VERSION to applicable sigalgs
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28455)
Commit: 5bb55fbede32591c4e2b6bf9fc0f5bd596dff853
https://github.com/openssl/openssl/commit/5bb55fbede32591c4e2b6bf9fc0f5bd596dff853
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/extensions_srvr.c
M ssl/statem/statem_lib.c
M ssl/t1_lib.c
M ssl/t1_trce.c
M test/tls-provider.c
M util/perl/TLSProxy/Record.pm
Log Message:
-----------
TLS-1.3 specific sigalgs should be supported in DTLS-1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28455)
Commit: edc617e385e860eac68733e23bfd30693896c932
https://github.com/openssl/openssl/commit/edc617e385e860eac68733e23bfd30693896c932
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_sslrecords.t
M test/recipes/70-test_tls13downgrade.t
M test/recipes/70-test_tls13messages.t
Log Message:
-----------
Fixes of tests for DTLS-1.3
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28455)
Commit: 7206bea9f24ba8655d6bfe78bf7b5309ba01f244
https://github.com/openssl/openssl/commit/7206bea9f24ba8655d6bfe78bf7b5309ba01f244
Author: Tomas Mraz <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/dtlstest.c
M test/recipes/70-test_tls13certcomp.t
M test/recipes/70-test_tls13cookie.t
M test/recipes/70-test_tls13downgrade.t
M test/recipes/70-test_tls13hrr.t
M test/recipes/70-test_tls13messages.t
Log Message:
-----------
DTLS1.3: Disable tests that currently fail
With added TODO(DTLSv1.3) comments
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28455)
Commit: 11bdf147047f32ada51c68ef640ab13a19a12919
https://github.com/openssl/openssl/commit/11bdf147047f32ada51c68ef640ab13a19a12919
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/p_ossltest.c
M test/recipes/70-test_dtls13ack.t
Log Message:
-----------
Adds AES-128-ECB to ossltest provider to be able to reenable DTLS 1.3 ACK tests.
Reviewed-by: Neil Horman <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/28926)
Commit: cbef7ec03d9eb254f6b52c4c135bc8c6bd97c274
https://github.com/openssl/openssl/commit/cbef7ec03d9eb254f6b52c4c135bc8c6bd97c274
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M test/dtls_mtu_test.c
Log Message:
-----------
Fixes the DTLS MTU test
When calling DTLS_get_data_mtu the function was not taking
into account the extra byte after the data which contains
the content type.
Fixes: https://github.com/openssl/project/issues/1668
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/29081)
Commit: 09a1cfc49f085cad9b676717117ffffb0276b6f8
https://github.com/openssl/openssl/commit/09a1cfc49f085cad9b676717117ffffb0276b6f8
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M include/internal/recordmethod.h
M ssl/d1_msg.c
M ssl/quic/quic_tls.c
M ssl/record/methods/dtls_meth.c
M ssl/record/methods/ktls_meth.c
M ssl/record/methods/recmethod_local.h
M ssl/record/methods/tls13_meth.c
M ssl/record/methods/tls_common.c
M ssl/record/rec_layer_d1.c
M ssl/record/rec_layer_s3.c
M ssl/record/record.h
M ssl/statem/extensions.c
M ssl/statem/statem_clnt.c
M ssl/statem/statem_dtls.c
M ssl/statem/statem_srvr.c
M test/helpers/ssltestlib.c
M test/sslapitest.c
Log Message:
-----------
Fixing comment out tests for DTLS1.3 in sslapitest
Several tests where commented out for the behavior of DTLS1.3 is
different then TLS1.3. The main difference is around the ACK
message. This means some tests needed to be massaged to for
the peer to ACK to a certain message.
This PR does not remove all TODO's for DTLS1.3. Currently there
are two TODOs. One around padding for messages less than 16
bytes and one for authentication and integrity only messages.
Also this PR still has a lot of memory leaks. Looking into it
it has to deal with how new record layers are allocated for
new epochs. Because record layers are also stored in a list of
messages sent in case they need to be resent it wasn't a simple
fix. I feel like the memory leaks should be tackled in a
separate PR.
Fixes: https://github.com/openssl/project/issues/1667
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/29067)
Commit: fb740647251b82f379312309305f928d24147b54
https://github.com/openssl/openssl/commit/fb740647251b82f379312309305f928d24147b54
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M include/openssl/ssl3.h
M ssl/statem/statem_clnt.c
M ssl/tls13_enc.c
M test/recipes/70-test_dtls13ack.t
M test/recipes/70-test_tls13certcomp.t
M util/perl/TLSProxy/Message.pm
M util/perl/TLSProxy/Proxy.pm
M util/perl/TLSProxy/Record.pm
Log Message:
-----------
Updating the DTLS Proxy ACK test to wait for the New Session ACK
Updated the DTLS 1.3 ACK tests that use the proxy to wait until
the ACK for the New Session Ticket is recieved.
Also updated some proxy tests now that the sessionfile can be
used and the DTLS1.3 client will shut down properly. This happens
because the Proxy sends a Close Notify Alert.
Also resolving a DTLS Proxy issue where the Proxy was not
taking into account the second fragment for a record and the
Handshake/Record Header.
Fixes: openssl/project#1669
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/29221)
Commit: 38d2efa98ff42c429ffafc83e7c0e1931c29343d
https://github.com/openssl/openssl/commit/38d2efa98ff42c429ffafc83e7c0e1931c29343d
Author: Frederik Wedel-Heinen <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/dtlstest.c
Log Message:
-----------
Run test cases that were previously skipped for DTLS 1.3.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Jan 7 09:11:11 2026
(Merged from https://github.com/openssl/openssl/pull/29501)
Commit: ece85c7a4bf0dedeee272f8cf39cf26701408c4c
https://github.com/openssl/openssl/commit/ece85c7a4bf0dedeee272f8cf39cf26701408c4c
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/methods/dtls_meth.c
M ssl/record/methods/tls13_meth.c
M ssl/record/methods/tls_common.c
M ssl/ssl_ciph.c
M ssl/tls13_enc.c
M test/sslapitest.c
Log Message:
-----------
Addressing last commented out SSLAPITests for DTLS1.3
The Authentication and Integrity only ciphers and when DTLS1.3
payload padding have been enabled with this change.
The tls13_add_record_padding function was updated to make sure
there is always 16 bytes of encrypted data.
If authentication and integrity only cipher is used the code
was updated to not call Sequence Number encrypt.
Fixes: openssl/project#1700
Fixes: openssl/project#1702
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Thu Jan 8 10:01:39 2026
(Merged from https://github.com/openssl/openssl/pull/29448)
Commit: ad6dd83074420cf960e3838f506ac5efc824e32f
https://github.com/openssl/openssl/commit/ad6dd83074420cf960e3838f506ac5efc824e32f
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M include/internal/recordmethod.h
M ssl/quic/quic_tls.c
M ssl/record/methods/dtls_meth.c
M ssl/record/methods/ktls_meth.c
M ssl/record/methods/tls_common.c
M ssl/record/rec_layer_d1.c
M ssl/ssl_local.h
M ssl/statem/statem_clnt.c
M ssl/statem/statem_srvr.c
Log Message:
-----------
DTLS1.3 omits the Client sending the end of early data record.
Updated the state machine to not send the end of early data
record. Also updated the dtls get more records to handle the
scenario when in Epoch 1 we receive the client's Finish
message in Epoch 2.
Fixes: openssl/project#1701
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/29449)
Commit: 105e374a322793572a4a2172507816e6ec537737
https://github.com/openssl/openssl/commit/105e374a322793572a4a2172507816e6ec537737
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_tls13kexmodes.t
Log Message:
-----------
Enabling the TLSKexMode tests for DTLS1.3
The KEX Mode tests were disabled. The reason being is with PQ
algorithms DTLS1.3 will fragment the packet. The fragmented
client hello's two fragmented packets will be combined into
something larger than the MTU size. Thus, the server never
read the client hello. The client continuously sent out a new
client hello thus hanging the tests.
Fixes: openssl/project#1789
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/29592)
Commit: e138d20d432e3a34ce6ec68890b31416946fe0e2
https://github.com/openssl/openssl/commit/e138d20d432e3a34ce6ec68890b31416946fe0e2
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_tls13cookie.t
Log Message:
-----------
DTLS 1.3 Enable Cookie tests
Enabling the DTLS1.3 Cookie tests.
Fixes: openssl/project#1787
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/29609)
Commit: 168aea75cca843ab746d430bc22bd3b76e837a0f
https://github.com/openssl/openssl/commit/168aea75cca843ab746d430bc22bd3b76e837a0f
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_tls13downgrade.t
Log Message:
-----------
DTLS 1.3 Enabling Downgrade tests
Enabling the downgrade tests for DTLS 1.3.
Fixes: openssl/project#1788
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
(Merged from https://github.com/openssl/openssl/pull/29610)
Commit: 071a871f3396eb9ecb14d5acf5400aaf5884a560
https://github.com/openssl/openssl/commit/071a871f3396eb9ecb14d5acf5400aaf5884a560
Author: Timothy Copeland <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/extensions_clnt.c
Log Message:
-----------
ssl/statem/extensions_clnt.c: Use proper TLS alert for semantic errs
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Jan 21 16:46:28 2026
(Merged from https://github.com/openssl/openssl/pull/29469)
Commit: 32a1d21527ea591c64fe5ca6ee99693dc2f26ab2
https://github.com/openssl/openssl/commit/32a1d21527ea591c64fe5ca6ee99693dc2f26ab2
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_tls13psk.t
Log Message:
-----------
The PSK tests were disabled cause of a Proxy issue, but that has
been resolved. They were failing now because of a PQ issue and
the TLS Proxy. In a nutshell the TLS Proxy doesn't handle
repacking correctly for fragmented packets.
Fixes: openssl/project/#1791
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
MergeDate: Thu Jan 22 10:08:46 2026
(Merged from https://github.com/openssl/openssl/pull/29606)
Commit: 16f99c07fad2729492a2b11dcd59df1532d7de81
https://github.com/openssl/openssl/commit/16f99c07fad2729492a2b11dcd59df1532d7de81
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_lib.c
M test/recipes/80-test_ssl_new.t
M test/ssl-tests/29-dtls-sctp-label-bug.cnf
M test/ssl-tests/29-dtls-sctp-label-bug.cnf.in
M test/ssl-tests/protocol_version.pm
M test/ssl_test.c
Log Message:
-----------
Update SCTP support fot DTLS1.3
There is a draft RFC for DTLS1.3 over SCTP. This PR does not
address that draft RFC. Instead what it does is force DTLS
connections over SCTP to downgrade to DTLS1.2.
Fixes: openssl/project#1793
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Tue Mar 3 14:16:12 2026
(Merged from https://github.com/openssl/openssl/pull/30167)
Commit: 21336d384387e4954b61694772457a71daa386cf
https://github.com/openssl/openssl/commit/21336d384387e4954b61694772457a71daa386cf
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_sslrecords.t
Log Message:
-----------
70-test_sslrecords.t: Fix for the flakiness in the test with DTLS-1.3
A new DTLS test came over in the recent rebase and it
is a flaky test. It was not properly modified to
work with DTLS 1.3.
Fixes: openssl/project#1807
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Mar 4 17:30:29 2026
(Merged from https://github.com/openssl/openssl/pull/29745)
Commit: e8732e22a0b0a93d8d976fe04abd672911e4f47c
https://github.com/openssl/openssl/commit/e8732e22a0b0a93d8d976fe04abd672911e4f47c
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M util/perl/TLSProxy/Proxy.pm
Log Message:
-----------
DTLS 1.3 ACK test cleanup
The DTLS1.3 ACK test is flaky. Usually when you run it the client
sends the "test" data before processing the Server's
NewSessionTicket. Though in scenarios when the client process the
NewSessionTicket and send the ACK for it before sending the "test"
data we will end up exiting the test before seeing the second
NewSessionTicket and the corresponding ACK.
I updated the code to check for the two NewSessionTicket ACKs to
wait for two unique NewSessionTicket ACK messages. I believe
what was happening is the one ACK message was being counted
twice thus breaking the test.
Fixes: openssl/project#1806
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Neil Horman <[email protected]>
MergeDate: Tue Mar 10 18:34:18 2026
(Merged from https://github.com/openssl/openssl/pull/29626)
Commit: be7ae2b8c0d86194ff93f9a8c1143ac2c547d5c4
https://github.com/openssl/openssl/commit/be7ae2b8c0d86194ff93f9a8c1143ac2c547d5c4
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_tls13messages.t
M util/perl/TLSProxy/Message.pm
M util/perl/TLSProxy/Proxy.pm
Log Message:
-----------
Enabling the DTLS 1.3 Message tests
There were a couple of problems with the test. First the Proxy
needed to reOpen the UDP socket after the client closes it.
Without this traffic will not flow through the proxy.
The second issue is around sending the Sever socket an alert
message. Since we are DTLS1.3 closing the socket doesn't
notify the server to close the connection. Thus this is
done by sending an Alert message via the Proxy.
Fixes: openssl/project#1790
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
MergeDate: Mon Mar 16 10:59:52 2026
(Merged from https://github.com/openssl/openssl/pull/29961)
Commit: 34797e916292760bce5628d72ecb61e0ac555329
https://github.com/openssl/openssl/commit/34797e916292760bce5628d72ecb61e0ac555329
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/rec_layer_d1.c
M ssl/record/rec_layer_s3.c
M ssl/s3_lib.c
M ssl/ssl_lib.c
M ssl/statem/statem_clnt.c
M test/recipes/80-test_ssl_new.t
M test/ssl-tests/11-dtls_resumption.cnf
M test/ssl-tests/protocol_version.pm
Log Message:
-----------
DTLS 1.3 Enable Resumption Tests
Enable teh DTLS resumption tests for DTLS1.3.
Fixes: openssl/project#1794
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
MergeDate: Mon Mar 16 11:07:16 2026
(Merged from https://github.com/openssl/openssl/pull/30258)
Commit: e12150d9755fe5b9f06a937bcf4e9097c0789e9d
https://github.com/openssl/openssl/commit/e12150d9755fe5b9f06a937bcf4e9097c0789e9d
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/methods/dtls_meth.c
Log Message:
-----------
DTLS 1.3 remove unecessary TODO
There was a TODO to convert rl->sequence to 64 bit integer.
Though you still needed it in byte format for the encryption
and decryption of the sequence number. Thus you were just moving
the complexity. The TODO has been removed.
Fixes: openssl/project#1784
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
MergeDate: Mon Mar 16 11:13:57 2026
(Merged from https://github.com/openssl/openssl/pull/30352)
Commit: 5328d7886a988b460a5899ad865039805d6e8f6b
https://github.com/openssl/openssl/commit/5328d7886a988b460a5899ad865039805d6e8f6b
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/designs/quic-design/record-layer.md
M include/internal/recordmethod.h
M ssl/d1_lib.c
M ssl/quic/quic_tls.c
M ssl/record/methods/dtls_meth.c
M ssl/record/methods/ktls_meth.c
M ssl/record/methods/recmethod_local.h
M ssl/record/methods/tls_common.c
M ssl/record/rec_layer_d1.c
M ssl/record/rec_layer_s3.c
M ssl/record/record.h
M ssl/ssl_local.h
M ssl/t1_enc.c
M ssl/tls13_enc.c
M test/tls13secretstest.c
Log Message:
-----------
DTLS 1.3 Update Epoch to a 64 bit counter and don't allow wrapping
This is based off a prior PR that was closed. The epoch was updated
for a 64 bit counter. A 16 bit epoch is kept when we read the
epoch from the wire in store it in the record layer.
Fixes: openssl/project#1796
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Eugene Syromiatnikov <[email protected]>
MergeDate: Thu Mar 19 17:30:18 2026
(Merged from https://github.com/openssl/openssl/pull/30394)
Commit: 7b31bbc99c13f729ec22d85d622692c03cbfd048
https://github.com/openssl/openssl/commit/7b31bbc99c13f729ec22d85d622692c03cbfd048
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M ssl/ssl_lib.c
M ssl/ssl_local.h
M util/perl/TLSProxy/Proxy.pm
Log Message:
-----------
DTLS 1.3 remove the last TODO in Proxy.pm and Clean up Double Free
When removing the last todo in proxy it encountered a double free.
The changes are to address that double free.
Fixes: openssl/project#1795
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Apr 8 10:04:10 2026
(Merged from https://github.com/openssl/openssl/pull/30415)
Commit: f45eda7b43930b1e1c3310ee2fc7223420fb88ed
https://github.com/openssl/openssl/commit/f45eda7b43930b1e1c3310ee2fc7223420fb88ed
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/methods/dtls_meth.c
Log Message:
-----------
DTLS 1.3 Epoch bits that don't match are from a prior epoch
When receiving a unified header if the epoch lower bytes do
not match we assumed it was from a future epoch. The RFC
says we should assume it is from a prior epoch.
Updating the code to match the RFC. For early data (epoch 1)
we still need to increment the epoch if it is a handshake
message in epoch 2.
Fixes: openssl/project#1912
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Apr 8 10:06:29 2026
(Merged from https://github.com/openssl/openssl/pull/30570)
Commit: 6007e776c1af4fee31ca83e3e755f8c7853e9a65
https://github.com/openssl/openssl/commit/6007e776c1af4fee31ca83e3e755f8c7853e9a65
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/man3/DTLSv1_listen.pod
M ssl/ssl_lib.c
M test/build.info
M test/dtlsv1listentest.c
M test/recipes/80-test_dtlsv1listen.t
M test/sslapitest.c
Log Message:
-----------
DTLS 1.3 Enable SSL_Stateless and enable DTLSv1Listen Tests
Updated SSL_stateless to keep the sequence nunber
for DTLS 1.3. Without this information the client would be
sending Seq numbers that it thinks is correct and the server
will not process it since it is looking for sequence zero.
Update DTLSv1ListenTest.c to test a client that supports DTLS1.2
and DTLS1.3. It will use a Hello Verify Request.
Added a test that will fail when a client that only supports
DTLS1.3 uses DTLSv1_listen. Instead the user should use
SSL_statless.
Fixes: openssl/project#1829
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Thu Apr 16 16:59:25 2026
(Merged from https://github.com/openssl/openssl/pull/30558)
Commit: 6b1d4be7f1455650503a2b7100dafda4abd26319
https://github.com/openssl/openssl/commit/6b1d4be7f1455650503a2b7100dafda4abd26319
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/methods/dtls_meth.c
M ssl/record/methods/recmethod_local.h
M ssl/record/rec_layer_d1.c
M ssl/ssl_lib.c
M ssl/ssl_local.h
M ssl/statem/statem.c
M ssl/statem/statem_clnt.c
M ssl/statem/statem_srvr.c
M test/dtlstest.c
M test/helpers/ssltestlib.c
M test/helpers/ssltestlib.h
M test/recipes/70-test_tls13alerts.t
M test/recipes/70-test_tls13hrr.t
Log Message:
-----------
Addressing how DTLS 1.3 handles Read Record Layer transitions.
Currently the state machine moves the read record layer to the
next epoch base off of state events. The problem with this is
when either the client or the server sent out a record during
the handshake that causes an alert. If the state machine moved
either the client or server to the next epoch it will not
be able to handle that alert message. This approach delays
moving the read record layer to the next epoch until we
actually receive a record in that epoch. This allows us
to process the alert messages.
Fixes: openssl/project#1786
Fixes: openssl/project#1785
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
MergeDate: Thu Apr 16 17:22:48 2026
(Merged from https://github.com/openssl/openssl/pull/29946)
Commit: 8d6ef97e1e0bd994ab9db2e34be79aec80538164
https://github.com/openssl/openssl/commit/8d6ef97e1e0bd994ab9db2e34be79aec80538164
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/methods/dtls_meth.c
Log Message:
-----------
DTLS 1.3 Fixing issue on DTLS Branch
The last two commits didn't have a merge conflict, but they also
didn't play nice together. This PR fixes the tests.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
MergeDate: Mon Apr 27 06:18:02 2026
(Merged from https://github.com/openssl/openssl/pull/30905)
Commit: 6de98c6fe1075c05d9a9eeb19782bee34052c933
https://github.com/openssl/openssl/commit/6de98c6fe1075c05d9a9eeb19782bee34052c933
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M include/internal/recordmethod.h
M ssl/d1_lib.c
M ssl/quic/quic_tls.c
M ssl/record/methods/dtls_meth.c
M ssl/record/methods/ktls_meth.c
M ssl/record/methods/recmethod_local.h
M ssl/record/methods/tls13_meth.c
M ssl/record/methods/tls1_meth.c
M ssl/record/methods/tls_common.c
M ssl/record/methods/tlsany_meth.c
M ssl/record/rec_layer_s3.c
M ssl/record/record.h
M ssl/ssl_ciph.c
M ssl/ssl_local.h
M ssl/ssl_txt.c
M ssl/statem/statem_clnt.c
M ssl/t1_enc.c
M ssl/tls13_enc.c
M test/build.info
A test/dtls13_internal_test.c
A test/recipes/60-test_dtls13_internal.t
M test/tls13encryptiontest.c
M test/tls13secretstest.c
Log Message:
-----------
DTLS 1.3 Interop Issue with NSS using ChaCha20
When using ChaCha20 for DTLS1.3 the encrypted sequence
number was never being decrypted properly. Instead it
was always a larger number.
Updated the dlts_crypt_sequence_number to match the RFC.
Fixes: openssl/project#1929
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Thu Apr 30 09:55:50 2026
(Merged from https://github.com/openssl/openssl/pull/30807)
Commit: 6700061bbbdd12098860c806a363f6e536afca42
https://github.com/openssl/openssl/commit/6700061bbbdd12098860c806a363f6e536afca42
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/rec_layer_d1.c
M test/dtlstest.c
M test/recipes/70-test_tls13alerts.t
Log Message:
-----------
DTLS 1.3 Buffer App Data received before ACK
For DTLS 1.3 App Data may arrive before an expected ack
message. We will now buffer it and process it after we
process the ACK and end in_init.
Fixes: openssl/project#1908
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Mon May 4 15:18:37 2026
(Merged from https://github.com/openssl/openssl/pull/30998)
Commit: 9177f8e6a06ab4b591f7a3df4108c047aff6e21b
https://github.com/openssl/openssl/commit/9177f8e6a06ab4b591f7a3df4108c047aff6e21b
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/dtlstest.c
Log Message:
-----------
DTLS 1.3 Fixing No Integrity Ciphers CI
The only integrity Ciphers CI is currently broken for dtlstest
These ciphers are needed so we have an unencrypted sequence
number so we can swap records around.
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Eugene Syromiatnikov <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Mon May 4 15:20:46 2026
(Merged from https://github.com/openssl/openssl/pull/31034)
Commit: afe79640f134c597cc6a8248e7a8dbb18619e5f7
https://github.com/openssl/openssl/commit/afe79640f134c597cc6a8248e7a8dbb18619e5f7
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_dtls13ack.t
M test/recipes/70-test_dtls13epoch.t
Log Message:
-----------
DTLS 1.3 Fixing test SKIPs not in code block
Fixing up two tests that are not putting skip's in a SKIP
block. These were identified by a FreeBSD image.
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
MergeDate: Thu May 7 12:27:29 2026
(Merged from https://github.com/openssl/openssl/pull/31089)
Commit: 052440bd5eb6069dda2f1606152bba5f7c14d31e
https://github.com/openssl/openssl/commit/052440bd5eb6069dda2f1606152bba5f7c14d31e
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M .codespellrc
M doc/build.info
M doc/designs/dtlsv1_3/dtlsv1_3-main.md
A doc/man7/ossl-guide-dtlsv13.pod
Log Message:
-----------
Update the DTLS 1.3 documentation to match the final implementation
Added an ossl-guid-dtlsv13 file to describe OpenSSL's DTLSv1.3
implementation.
Fixes: openssl/project#1831
Fixes: openssl/project#1830
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Thu May 21 08:50:49 2026
(Merged from https://github.com/openssl/openssl/pull/31032)
Commit: ef6e427b4026939059ee5878ed88d88707ca09bb
https://github.com/openssl/openssl/commit/ef6e427b4026939059ee5878ed88d88707ca09bb
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M .gitignore
M demos/build.info
A demos/dtlsecho/A-SSL-Docs.txt
A demos/dtlsecho/README.md
A demos/dtlsecho/build.info
A demos/dtlsecho/cert.pem
A demos/dtlsecho/key.pem
A demos/dtlsecho/main.c
M ssl/record/rec_layer_d1.c
M ssl/statem/statem.c
M test/dtlstest.c
Log Message:
-----------
DTLS 1.3 Demo and Bug Fix
Added a DTLS 1.3 demo based off of the SSL echo demo. The client
takes input from the user and sends it to the server. The server
echos that input back.
There was a bug if the server retransmitted New Session tickets
cause it didn't receive the ACK for the first set of New Session
tickets. The changes outside of the demo application are to fix
that bug.
Fixes: openssl/project#1943
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed May 27 08:02:57 2026
(Merged from https://github.com/openssl/openssl/pull/31042)
Commit: 2f0ad0d852ea23fb81bcc4f4e633fe1ec59c4159
https://github.com/openssl/openssl/commit/2f0ad0d852ea23fb81bcc4f4e633fe1ec59c4159
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M crypto/bio/bf_buff.c
M crypto/bio/bio_sock.c
M crypto/thread/build.info
M doc/man3/BIO_socket_wait.pod
M doc/man3/DTLSv1_listen.pod
M doc/man3/SSL_new_listener.pod
M doc/man3/SSL_set_bio.pod
A include/internal/dgram_conn_lookup.h
A include/internal/dgram_demux.h
A include/internal/dtls_record_rx.h
M include/internal/quic_channel.h
M include/internal/quic_demux.h
M include/internal/quic_predef.h
M include/internal/recordmethod.h
M include/internal/ssl_unwrap.h
M include/openssl/bio.h.in
M include/openssl/ssl.h.in
M ssl/build.info
M ssl/d1_lib.c
A ssl/dgram_demux.c
A ssl/dtls_conn_lookup.c
A ssl/dtls_record_rx.c
M ssl/quic/quic_demux.c
M ssl/quic/quic_tls.c
M ssl/record/methods/dtls_meth.c
M ssl/record/methods/ktls_meth.c
M ssl/record/methods/recmethod_local.h
M ssl/record/methods/tls_common.c
M ssl/record/rec_layer_d1.c
M ssl/record/rec_layer_s3.c
M ssl/record/record.h
M ssl/rio/build.info
M ssl/rio/poll_immediate.c
M ssl/ssl_lib.c
M ssl/ssl_local.h
M ssl/statem/extensions_srvr.c
M ssl/statem/statem_srvr.c
M test/build.info
A test/dtls_multithread_test.c
A test/dtlsssllistenertest.c
M test/dtlsv1listentest.c
A test/recipes/80-test_dtls_multithread.t
A test/recipes/80-test_dtlsssllistener.t
M test/tls13encryptiontest.c
M util/libcrypto.num
M util/libssl.num
M util/other.syms
Log Message:
-----------
DTLS 1.3 Limit DTLSv1_listen to DTLS1.2 and add SSL Listener for DTLS
DTLSv1_listen will not support DTLSv1.3. Instead its max version is
DTLSv1.2
Adding DTLS SSL Listener that utilizes a similar DEMUX approach as
QUIC and passes traffic through the URXE structure.
This will establish full connection and an application can ask for
a ready SSL connection. The DTLS SSL listener also supports HVR
and HRR cookie validation.
Fixes: openssl/project#1946
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
MergeDate: Mon Jul 6 09:29:09 2026
(Merged from https://github.com/openssl/openssl/pull/31137)
Commit: 61cdf1c4d4263526f403112556d852b693bead38
https://github.com/openssl/openssl/commit/61cdf1c4d4263526f403112556d852b693bead38
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/recipes/70-test_sslrecords.t
M test/recipes/70-test_tls13cookie.t
M test/recipes/70-test_tls13downgrade.t
M test/recipes/70-test_tls13messages.t
M test/recipes/70-test_tls13psk.t
Log Message:
-----------
Skip failing DTLS 1.3 TLSProxy tests pending investigation
Several DTLS 1.3 test cases driven through TLSProxy currently fail or
hang. To keep the tree buildable and testable while the DTLS 1.3 work
is under review, skip the affected sub-tests (or whole DTLS runs) with
TODO(DTLS1.3) markers. These are to be addressed in a follow-up.
Skipped for DTLS:
- 70-test_tls13psk.t: "Remove sig algs", "Too many PSKs" and
"Bad PSK with no handshake fallback"
- 70-test_tls13cookie.t: the DTLS run
- 70-test_sslrecords.t: "Empty app data in DTLS"
- 70-test_tls13downgrade.t: the DTLS run
- 70-test_tls13messages.t: the DTLS run
Also skipped in 70-test_tls13messages.t: "HelloRequest rejected in
TLSv1.3" and "HelloRequest ignored in (D)TLSv1.2". These fail for TLS
as well as DTLS, so the failure is not proxy-specific and needs
separate investigation.
Assisted-by: Claude Code:claude-opus-4-8
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Mon Jul 13 14:24:27 2026
(Merged from https://github.com/openssl/openssl/pull/31896)
Commit: 7aa160d2a0d3520d3ccd23dbf386643b049deccb
https://github.com/openssl/openssl/commit/7aa160d2a0d3520d3ccd23dbf386643b049deccb
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/record/rec_layer_s3.c
Log Message:
-----------
Restore DTLS listener peer-address propagation to new record layers
Listener-created DTLS connections could not complete a handshake: the
peer address was applied to the initial plaintext record layers by
SSL_set1_initial_peer_addr(), but the write record layer recreated when
encryption is enabled started with no peer, so tls_retry_write_records()
fell back from BIO_sendmmsg() to BIO_write() on the shared listener BIO
and the bytes went nowhere.
This adaptation was lost when the branch was rebased: the change was
originally written when the new_record_layer record method callback took
a peer argument, whereas current record layers set the peer via the
separate set1_peer callback. Re-apply the peer to every DTLS record
layer as it is created in ssl_set_new_record_layer(), mirroring the
existing use_urxe handling.
Fixes test_dtlsssllistener and test_dtls_multithread.
Assisted-by: Claude Code:claude-opus-4-8
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Mon Jul 13 14:24:18 2026
(Merged from https://github.com/openssl/openssl/pull/31896)
Commit: 6a703a10ce6ace61757f2c26d1a14a5c12cbd6fe
https://github.com/openssl/openssl/commit/6a703a10ce6ace61757f2c26d1a14a5c12cbd6fe
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M crypto/bio/bio_sock.c
M demos/dtlsecho/main.c
M demos/sslecho/main.c
M ssl/record/rec_layer_s3.c
M ssl/statem/statem_dtls.c
M ssl/statem/statem_lib.c
M test/dtlsssllistenertest.c
M test/recipes/70-test_sslrecords.t
M test/recipes/70-test_tls13certcomp.t
M test/recipes/70-test_tls13cookie.t
M test/recipes/70-test_tls13downgrade.t
M test/recipes/70-test_tls13kexmodes.t
M test/recipes/70-test_tls13messages.t
M test/recipes/70-test_tls13psk.t
M util/perl/TLSProxy/Proxy.pm
Log Message:
-----------
DTLS 1.3 Fix CI failures
Need to fix a deprecated API in dtlsecho. Also updated the sslecho
usage information since it is no longer correct.
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Thu Jul 16 07:29:15 2026
(Merged from https://github.com/openssl/openssl/pull/31935)
Commit: 5537edf09d664b236499095e3177d678c6f13b45
https://github.com/openssl/openssl/commit/5537edf09d664b236499095e3177d678c6f13b45
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/man3/DTLSv1_listen.pod
M ssl/ssl_lib.c
M test/sslapitest.c
Log Message:
-----------
DTLS 1.3 Remove SSL_stateless support
DTLSv1.3 suppport was added into SSL_stateless, but it
doesn't work properly. The reason why it doesn't work
properly is that it doesn't handle concurrent DTLS
sessions being established at the same time.
If you want something that allows DTLS 1.3 connections
being establish at the same time use DTLS SSL Listener.
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Wed Jul 22 15:55:14 2026
(Merged from https://github.com/openssl/openssl/pull/31364)
Commit: 669733cac4c08f7abf562a88def7b8385235d0cb
https://github.com/openssl/openssl/commit/669733cac4c08f7abf562a88def7b8385235d0cb
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_lib.c
M test/recipes/70-test_dtls13epoch.t
Log Message:
-----------
DTLS 1.3 Don't reset the handshake seq number after connection finish
In DTLS 1.3 the handshake sequence number is not reset to 0 after the
connection is establish. This means New Session tickets will not
send out with a handshake seq of 0. Instead it will pick up where it
left off.
Fixes: openssl/project#2008
Assisted-by: Claude:claude-opus-4-7
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Paul Dale <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
MergeDate: Mon Jul 27 12:20:10 2026
(Merged from https://github.com/openssl/openssl/pull/31978)
Commit: c682ba17f5898be6b46214238458bc49606c6c67
https://github.com/openssl/openssl/commit/c682ba17f5898be6b46214238458bc49606c6c67
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M crypto/bio/bf_buff.c
M crypto/bio/bio_local.h
M doc/man3/BIO_f_buffer.pod
M doc/man3/BIO_sendmmsg.pod
M ssl/record/methods/tls_common.c
M ssl/statem/statem.c
M test/dtlsssllistenertest.c
Log Message:
-----------
DTLS 1.3 SSL Listener does not currently buffer handshake messages
Now when a buffer BIO is created for the initial DTLS handshake
from an SSL listener messages are now buffered until a flush
is called.
Fixes: openssl/project#1982
Assisted-by: Claude:claude-opus-4-7
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
MergeDate: Tue Aug 11 14:41:07 2026
(Merged from https://github.com/openssl/openssl/pull/31979)
Commit: 550706504468d33e2a6975530101fd182a757889
https://github.com/openssl/openssl/commit/550706504468d33e2a6975530101fd182a757889
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/man3/SSL_CTX_set_new_pending_conn_cb.pod
M doc/man3/SSL_get_value_uint.pod
M doc/man3/SSL_new_listener.pod
M include/internal/dgram_conn_lookup.h
M include/openssl/ssl.h.in
M ssl/d1_lib.c
M ssl/dgram_demux.c
M ssl/dtls_conn_lookup.c
M ssl/ssl_lib.c
M ssl/ssl_local.h
M test/dtlsssllistenertest.c
M util/libssl.num
M util/other.syms
Log Message:
-----------
DTLS 1.3 SSL Listener CAP pending connections
To prevent resource exhaustion we have to cap the number
of pending connections. The default is 256 pending connections
but there are APIs to configure the max number of pending
connections.
Fixes: openssl/project#1983
Fixes: openssl/project#2035
Assisted-by: Claude:claude-opus-4-7
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
MergeDate: Tue Aug 11 14:50:11 2026
(Merged from https://github.com/openssl/openssl/pull/31980)
Commit: df183c63f671c2fdf8152446f2867bedcb17fac4
https://github.com/openssl/openssl/commit/df183c63f671c2fdf8152446f2867bedcb17fac4
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M CHANGES.md
M NEWS.md
Log Message:
-----------
DTLS 1.3 Update CHANGES.md
Updating the CHANGES.md for all the changes added via the DTLS1.3
feature branch.
Fixes: openssl/project#2039
Assisted-by: Claude:claude-opus-4-8
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
MergeDate: Tue Aug 11 14:52:30 2026
(Merged from https://github.com/openssl/openssl/pull/32182)
Commit: b451e44c39bbb65a0460ce1b960810bd425df2a3
https://github.com/openssl/openssl/commit/b451e44c39bbb65a0460ce1b960810bd425df2a3
Author: Jakub Zelenka <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M util/perl/TLSProxy/Proxy.pm
Log Message:
-----------
test: let the kernel pick the DTLS client port in TLSProxy
For DTLS, TLSProxy picked a random port for s_client to -bind to,
probing it for availability first. This was racy in two ways: the
probe socket was TCP while s_client binds UDP (the two port spaces
are independent, so a UDP socket held by a parallel test job was
invisible to the probe), and even a UDP probe would leave a window
between closing the probe socket and s_client binding the port.
With many tests now running under the DTLS proxy in parallel CI
jobs this caused intermittent BIO_bind EADDRINUSE failures.
Instead, drop -bind and the port probing entirely. The kernel
assigns s_client's source port atomically on first send, and the
proxy, whose UDP socket is now left unconnected, learns the
client's address from the datagrams it receives, in the same way
any regular UDP server does.
Assisted-by: Claude:claude-fable-5
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Merge-date: Thu Aug 13 13:42:29 2026
Merged-from: https://github.com/openssl/openssl/pull/32312
Commit: 8b651cdcc21fa3e1d3715a382961937e8376c7e0
https://github.com/openssl/openssl/commit/8b651cdcc21fa3e1d3715a382961937e8376c7e0
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M test/dtlsssllistenertest.c
Log Message:
-----------
DTLS 1.3 Signal the listener notifier on accept queue push
The listener's notifier was signalled when the demux routed a datagram into a
connection's receive queue, but not when dtls_listener_drive_pending() moved
a completed connection onto the accept queue - even though the latter is
precisely the readiness event a thread waiting in SSL_poll() for
SSL_POLL_EVENT_IC is waiting for.
Usually the injection signal covers for this. Every connection reaching the
accept queue got there because a datagram was demuxed into its receive queue,
so the waiter is woken by that, ticks the listener during its own readout,
and finds the connection. The exception is the window in which the injection
and the queue push straddle a waiter registering, since signalling only
happens if there is a waiter at the time:
1. Accept thread A polls the listener for SSL_POLL_EVENT_IC. Its readout
ticks the listener, finds nothing, and it decides to block. It is not a
registered waiter yet.
2. Worker thread B polls one of its own connections, which also ticks the
listener. The pump reads a client's final ClientHello and injects it into
that pending connection's queue. There are no waiters, so nothing is
signalled.
3. A enters the blocking section. Its re-check runs without ticking, so it
sees only the accept queue, still empty, and blocks.
4. B's tick reaches dtls_listener_drive_pending(), which completes the
connection against the buffered ClientHello and pushes it onto the accept
queue.
With no signal at step 4, A sleeps on while a validated connection sits ready
to be accepted, until an unrelated datagram makes the socket readable again.
B consumed the only one in flight and the client is now waiting on the server,
so on a quiet listener that means waiting for the client to retransmit its
handshake.
Factor the signalling out of dtls_listener_packet_handler() into a helper and
call it from both places. Both call sites already hold the listener mutex,
which the helper requires.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Fri Aug 14 15:45:34 2026
Merged-from: https://github.com/openssl/openssl/pull/32239
Commit: de4a1979169d61d4a45d44b5c4978beceec4a1f8
https://github.com/openssl/openssl/commit/de4a1979169d61d4a45d44b5c4978beceec4a1f8
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/rio/poll_immediate.c
M test/dtlsssllistenertest.c
Log Message:
-----------
DTLS 1.3 Enter a blocking section when polling a DTLS listener
A DTLS listener added only the network socket to the poll set. Three things
followed from that. The notifier was not in the poll set, so a thread blocked
in SSL_poll() on the listener could not be woken by it. The thread never
called ossl_dtls_listener_enter_blocking_section(), so cur_blocking_waiters
stayed at zero - and since signalling is conditional on there being a waiter,
no other thread even attempted to signal. And there was no re-check after
registering, so readiness arising between the readout deciding nothing was
ready and the wait actually starting was lost.
Polling the socket alone is not sufficient, though not because a wakeup can
be missed outright. poll() reports whatever is currently sitting in the
socket buffer and returns immediately if there is any, so a thread cannot
miss a datagram just by being outside poll() when it arrives. What it can
miss is a datagram another thread has already taken. With several threads
polling the one shared socket that happens constantly: an arriving datagram
wakes all of them, only one gets it, and the rest find nothing. Any of them
can be the one that takes it, because SSL_read() on a connection pumps the
demux and SSL_poll() on a connection ticks the whole listener.
1. Accept thread A polls the listener for SSL_POLL_EVENT_IC. Its readout
ticks the listener, finds nothing, and it decides to block.
2. A client's final ClientHello lands on the shared socket.
3. Worker thread B, polling one of its own connections, ticks the listener
and is the one that takes the datagram. Its tick completes the pending
connection and pushes it onto the accept queue. Signalling is attempted,
but A never registered as a waiter, so nothing is signalled.
4. A reaches its poll, watching the socket alone. B drained it, so it is
empty. A sleeps with a validated connection sitting on the accept queue,
and nothing can wake it until an unrelated datagram arrives or its
deadline expires.
A's readout, back at step 1, would have found that connection had it run
after step 3 rather than before it.
Add the notifier FD to the poll set and bracket the wait with the enter/leave
blocking section calls, mirroring what the listener-based connection path
already does. As there, re-check readiness once inside the section, since it
is only from that point that a readiness event is guaranteed to make the
notifier readable, and abort blocking if the listener became ready in the
meantime. The re-check removes the dependency on that ordering; the notifier
covers anything arising after it.
Note that the signal raised when a connection is pushed onto the accept queue
is itself conditional on a registered waiter, so it does nothing for a thread
polling the listener until that thread registers here. The two changes are
complementary and neither is sufficient alone.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Fri Aug 14 15:45:35 2026
Merged-from: https://github.com/openssl/openssl/pull/32239
Commit: 87e65c6079fab1ba556fbc1d358c2af455ac720c
https://github.com/openssl/openssl/commit/87e65c6079fab1ba556fbc1d358c2af455ac720c
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M ssl/rio/poll_immediate.c
M test/dtlsssllistenertest.c
Log Message:
-----------
DTLS 1.3 Honour the DTLS retransmit timer in SSL_poll
When SSL_poll() decides to block it computes a wakeup deadline from the
per-object event timeout, so that timer driven work is not delayed by the
wait. This was done for QUIC objects but not for DTLS connections, whose
timeout is the handshake retransmission timer.
The consequence was that a poll with no user timeout would sleep until a
datagram arrived, straight through the point at which the connection should
have retransmitted. If the peer had itself lost the message we were waiting
for, neither side would make progress.
Fold SSL_get_event_timeout() into the deadline for DTLS connections as the
QUIC branch already does. It reports the DTLS timer already, so no new
plumbing is needed there.
Waking at the deadline is only useful if something then services the timer.
Unlike the QUIC case, where the readout ticks the reactor and that handles
timeouts, the DTLS readout only pumped the listener's demux. Nothing
retransmitted, and because an expired timer reports zero time remaining the
recomputed deadline would be "now" on every subsequent wait, turning the
sleep into a spin. Call SSL_handle_events() from the readout as well, which
is what a caller polling without SSL_POLL_FLAG_NO_HANDLE_EVENTS is asking
for, and which for a DTLS connection services that timer.
Both of those are the calls the documentation asks new code to use:
DTLSv1_get_timeout(3) and DTLSv1_handle_timeout(3) each record that
SSL_get_event_timeout(3) and SSL_handle_events(3) respectively supersede all
of their use cases. The test asserts its precondition through
SSL_get_event_timeout() for the same reason, which has the side benefit of
using the same call SSL_poll() uses to compute the deadline being tested.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Fri Aug 14 15:45:37 2026
Merged-from: https://github.com/openssl/openssl/pull/32239
Commit: 619c95a8c9d127c26f2f2afa9130eb7a298604ad
https://github.com/openssl/openssl/commit/619c95a8c9d127c26f2f2afa9130eb7a298604ad
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M test/dtlsssllistenertest.c
Log Message:
-----------
Stop the DTLS timer when the retransmit budget is exhausted
dtls1_handle_timeout() fails the connection with SSLfatal() once
dtls1_check_timeout_num() reports that DTLS1_TMO_ALERT_COUNT unanswered
retransmissions have been sent. It returns at that point without reaching
dtls1_start_timer(), so next_timeout is left holding a time in the past.
Nothing re-arms or clears it afterwards, the connection being finished, so
every later dtls1_get_timeout() computes a negative remaining time, clamps it
to zero and reports the timeout as due immediately. A caller which waits on
that timeout therefore never waits at all. The documented
DTLSv1_get_timeout() plus select() loop turns into a busy loop on any
connection which has given up retransmitting, consuming a core until the
application gives up on the connection itself.
Stop the timer instead. dtls1_stop_timer() zeroes next_timeout, which
dtls1_get_timeout() already reports as "no timer running", so callers see no
pending timeout and wait on whatever other deadline they have.
The test drives this without waiting by forcing a retransmission timeout of
1ms, which is below the 15ms floor at which dtls1_get_timeout() treats a
timer as already expired. The server therefore retransmits on every read
attempt and exhausts its budget inside SSL_accept().
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Fri Aug 14 15:45:40 2026
Merged-from: https://github.com/openssl/openssl/pull/32239
Commit: 0670df4cbb543f5b23a4ecb6ff05fbbb5adb8e5f
https://github.com/openssl/openssl/commit/0670df4cbb543f5b23a4ecb6ff05fbbb5adb8e5f
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/rio/poll_builder.c
Log Message:
-----------
Wait consistently across platforms when there is nothing to poll
poll_translate_ssl_dtls_conn() adds no file descriptor to the poll set when
the connection's BIO cannot supply one, which is the case for the memory and
datagram-pair BIOs the test suite is built on. Unlike the QUIC and DTLS
listener paths it does not report that as an error, and rightly so: a DTLS
connection with no pollable BIO has no readiness to wait for, but it still
has a retransmission deadline to wake for, so a wait with nothing to watch is
meaningful.
The resulting empty descriptor set was then handed to the operating system,
where the behaviour differs. poll() treats it as a plain sleep, so this
worked on Unix. Windows' select() rejects a call with no descriptors, so
ossl_rio_poll_builder_poll() returned failure and SSL_poll() failed with it.
Sleep out the deadline explicitly rather than relying on the platform. With
no descriptors and no deadline nothing could ever provide a wakeup, so that
combination is reported as a failure instead of sleeping for ever.
This has no test of its own: on any platform whose poll() already sleeps, the
behaviour before and after is identical, so only the Windows CI builds
distinguish them.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Fri Aug 14 15:45:41 2026
Merged-from: https://github.com/openssl/openssl/pull/32239
Commit: d14b7361938d9695f10b0581f5875ca701146961
https://github.com/openssl/openssl/commit/d14b7361938d9695f10b0581f5875ca701146961
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M ssl/rio/poll_immediate.c
M ssl/ssl_local.h
M test/dtls_multithread_test.c
Log Message:
-----------
DTLS 1.3 Wait rather than spin in the blocking accept path
SSL_accept_connection() looped calling ossl_dtls_tick() with nothing in
between, so it only avoided spinning if the application supplied a
blocking network BIO and each tick slept inside BIO_recvmmsg().
A listener cannot require that. It demultiplexes one socket to many
connections and ossl_dgram_demux_pump() holds the demux lock across the
receive, so a thread blocked in accept stalls reads on every established
connection until a datagram for any peer arrives. QUIC takes the
opposite approach, keeping the socket non-blocking and waiting for
readiness instead.
Do the same: set the listener's network BIO non-blocking and wait
between ticks via ossl_dtls_block_until_ready(), which reuses
SSL_poll()'s blocking machinery. It reads nothing out, so the caller
re-tests its own condition and waits again if the wakeup was not for it.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
Merge-date: Mon Aug 17 08:29:51 2026
Merged-from: https://github.com/openssl/openssl/pull/32324
Commit: a32011d667cd7a35b3931034706716f304faf947
https://github.com/openssl/openssl/commit/a32011d667cd7a35b3931034706716f304faf947
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/dtlsssllistenertest.c
Log Message:
-----------
DTLS 1.3 Name the accept flag in the no-BIO test comments
Both tests describe themselves in terms of "blocking mode" and
"non-blocking behaviour", when what they actually vary is the
SSL_ACCEPT_CONNECTION_NO_BLOCK flag. That reads as though they concern a
mode on the object, which invites confusion with
SSL_set_blocking_mode(). Name the flag, and say what each case is really
asserting.
Comment only, no functional change.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
Merge-date: Mon Aug 17 08:29:53 2026
Merged-from: https://github.com/openssl/openssl/pull/32324
Commit: 1c26ae1e1dd1159e785c75ea3ed6f1c72557cc56
https://github.com/openssl/openssl/commit/1c26ae1e1dd1159e785c75ea3ed6f1c72557cc56
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/man3/SSL_new_listener.pod
M doc/man3/SSL_set_bio.pod
M doc/man3/SSL_set_blocking_mode.pod
M ssl/d1_lib.c
M ssl/ssl_lib.c
M ssl/ssl_local.h
M test/dtlsssllistenertest.c
Log Message:
-----------
DTLS 1.3 Support SSL_set_blocking_mode() on a DTLS listener
A DTLS listener cannot take its blocking behaviour from its network BIO
the way an ordinary DTLS object does. It demultiplexes one socket to
many connections, so a read for one of them must not be allowed to
block and stall the others, and the connections it hands out have no BIO
of their own to configure - they read from a queue the listener fills.
Blocking was therefore unavailable to them, SSL_set_blocking_mode()
being QUIC only.
Extend it to a DTLS listener and to the connections created from one,
with the same semantics QUIC has. Blocking is the default, a connection
follows its listener unless given a setting of its own, and asking for
blocking fails where it cannot be delivered, which for a listener means
a network BIO with no poll descriptor to wait on.
SSL_accept_connection() waits only where the caller did not pass
SSL_ACCEPT_CONNECTION_NO_BLOCK and the listener is in blocking mode,
matching what QUIC does with the same flag.
Only the accept path acts on the mode so far; reads and writes follow.
Note that this does not extend to a DTLS object which did not come from
a listener. Such an object has its own BIO and already offers both modes
through it, so unlike QUIC - where the socket is always nonblocking and
nothing works without emulation - there is nothing missing to provide.
While documenting the above, correct the existing description of which
QUIC objects these functions apply to. It said connection objects only,
but they have always been accepted for QUIC stream and listener objects
too.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
Merge-date: Mon Aug 17 08:29:54 2026
Merged-from: https://github.com/openssl/openssl/pull/32324
Commit: 6d6078160e43b6e79edf18eb68d6f9561a974ced
https://github.com/openssl/openssl/commit/6d6078160e43b6e79edf18eb68d6f9561a974ced
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M ssl/ssl_lib.c
M ssl/ssl_local.h
M test/dtlsssllistenertest.c
Log Message:
-----------
DTLS 1.3 Keep listener driven connections out of blocking mode
A DTLS listener drives the handshakes of connections which have not been
accepted yet from inside its own tick: dtls_listener_drive_pending()
calls SSL_accept() on each of them. Those connections inherit the
listener's blocking mode, so once a listener connection is able to block
waiting for a datagram, that SSL_accept() can block too - and it must
not, because the listener is the only thing which will ever deliver the
datagram it is waiting for. Nothing else runs while the tick is inside
that call, so the wait cannot end.
Add force_nonblocking to DTLS1_STATE, set around the SSL_accept() that
dtls_listener_drive_pending() performs, and consulted by
ossl_dtls_desires_blocking(). Ownership of a connection passes to the
application when SSL_accept_connection() returns it, and by then the
flag is clear, so an application which asked for blocking still gets it.
The flag has to survive SSL_clear(), which memsets d1. SSL_clear() can
run inside the very SSL_accept() the listener is driving:
drive_single_connection() sets TLS1_FLAGS_STATELESS to suppress it, but
only where cookie validation is enabled. Losing the flag there is not
merely a missed optimisation - the connection blocks inside the tick,
poll_translate_ssl_dtls_conn() ticks the listener again from another
thread, drive_pending re-enters and collects the same connection twice,
and registering it a second time trips the old == NULL assertion in the
connection lookup. In a release build that appears later as a
use-after-free rather than as anything to do with blocking mode.
Nothing blocks in a read yet, so this commit changes no behaviour on its
own. It lands first so that the commit which adds blocking reads cannot
deadlock at any point in the series.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
Merge-date: Mon Aug 17 08:29:56 2026
Merged-from: https://github.com/openssl/openssl/pull/32324
Commit: e4d3898697cf553f45989db145d8a57842082fc6
https://github.com/openssl/openssl/commit/e4d3898697cf553f45989db145d8a57842082fc6
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M ssl/record/rec_layer_s3.c
M ssl/ssl_local.h
M test/dtls_multithread_test.c
M test/dtlsssllistenertest.c
Log Message:
-----------
DTLS 1.3 Support blocking reads on listener connections
A connection created by a DTLS listener has no BIO of its own. The
listener owns the socket and demultiplexes datagrams into a per
connection queue, so there is nothing for a read to block in, and every
read on an empty queue reported WANT_READ however the connection was
configured. SSL_set_blocking_mode() therefore had no effect on reads.
Wait in the record layer instead, where a blocking BIO would have. When
rlayer_dtls_get_urxe_packet() finds the queue empty and the connection is
in blocking mode, ossl_dtls_conn_wait_for_datagram() waits for one to
arrive. The state machine above is untouched, so SSL_read(), SSL_peek(),
SSL_do_handshake() and SSL_accept() all become blocking together, which
is what an application moving from a plain DTLS object expects.
The wait loops, because the socket is shared: a wakeup may be for a
datagram belonging to a different connection, in which case our queue is
still empty and there is nothing to return. It also handles events after
each wakeup, since while a thread is in here nothing else services the
connection, and the retransmission timer has to keep running - the poll
translation folds the event timeout into the deadline so the wait ends in
time for it.
Existing tests drive both ends of a connection from a single thread,
which cannot work if the server side blocks, so create_dtls_listener() in
dtlsssllistenertest.c now turns blocking mode off for its callers, with
create_dtls_listener_unconfigured() for the one test which has to observe
the default. test_dtls_multithread opts out for the same reason.
The new test_dtls_blocking_read has the client stay silent for a while
after its handshake, so the server thread is already parked in
SSL_read_ex() when the write finally comes. Its second iteration
handshakes in non-blocking mode and switches to blocking only for the
read, which pins the read path on its own: in the first iteration the
handshake is what fails without this change, and the read is never
reached.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
Merge-date: Mon Aug 17 08:29:57 2026
Merged-from: https://github.com/openssl/openssl/pull/32324
Commit: f2b3c3cbff9df70bdf1baccc937a0362fe6881b0
https://github.com/openssl/openssl/commit/f2b3c3cbff9df70bdf1baccc937a0362fe6881b0
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M doc/man3/SSL_set_blocking_mode.pod
M ssl/d1_lib.c
M ssl/record/methods/recmethod_local.h
M ssl/record/methods/tls_common.c
M ssl/record/rec_layer_s3.c
M ssl/record/record.h
M ssl/rio/poll_immediate.c
M ssl/ssl_local.h
M test/dtlsssllistenertest.c
Log Message:
-----------
DTLS 1.3 Support blocking writes on listener connections
A listener connection writes through the listener's socket, which is
shared with every other connection and is always non-blocking. When a
send cannot be completed the DTLS record layer discards the datagram and
reports that the write should be retried - a fair default for an
unreliable transport, but not what an application which asked for
blocking writes expects, since it gets neither the data sent nor a call
which waited.
Add an rlayer callback, OSSL_FUNC_RLAYER_BLOCK_FOR_WRITE, which the
record layer calls instead of reporting a retry. For a listener
connection in blocking mode it waits for the socket to become writable
and returns 1, and tls_retry_write_records() goes round its loop again to
repeat the same send: nothing has been consumed at that point, so the
retry is a genuine second attempt rather than a resend.
Only the BIO_sendmmsg() branch is hooked. That is the one listener
connections take, because their peer address is set, and the BIO_write()
branch below it belongs to connections which have a BIO of their own to
block in. A NULL callback leaves both paths exactly as they were, so TLS
and standalone DTLS are untouched.
The wait itself is one wait per call, not a loop: the caller retries the
send and comes back here if it still cannot proceed, so a wakeup which
turns out not to have left room in the socket buffer costs another
attempt rather than a lost datagram.
A loopback socket's send buffer does not fill, so the test supplies the
transient failure with a filter BIO in front of the listener's write BIO
which rejects one send with a non-fatal error. Its ctrl forwards
everything to the socket underneath, the poll descriptors included, since
those are what the wait itself needs. The client is then read to confirm
the datagram really was sent rather than merely reported as sent.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
Merge-date: Mon Aug 17 08:29:59 2026
Merged-from: https://github.com/openssl/openssl/pull/32324
Commit: 53fd1bd29aa216f89728098d6afcb87c7dfd4a24
https://github.com/openssl/openssl/commit/53fd1bd29aa216f89728098d6afcb87c7dfd4a24
Author: Mounir IDRASSI <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/statem_dtls.c
M test/recipes/70-test_tls13messages.t
Log Message:
-----------
Reject HelloRequest in TLS and DTLS 1.3
TLS and DTLS 1.3 reserve handshake message type 0, but legacy
client-side HelloRequest skip paths could consume such messages before
the state machines rejected them.
Keep the skip paths only for connections that cannot use TLS or DTLS
1.3. Add TLSProxy coverage for TLS and DTLS 1.3 rejection, and for the
preserved TLS and DTLS 1.2 legacy behavior. The DTLS test insertion
also adjusts record sequencing so the injected HelloRequest is a valid
standalone server record.
Reviewed-by: Andrew Dinh <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Merge-date: Mon Aug 17 08:32:42 2026
Merged-from: https://github.com/openssl/openssl/pull/31637
Commit: 708add2d9fb439f110fd73f943d8a64bbdf10cab
https://github.com/openssl/openssl/commit/708add2d9fb439f110fd73f943d8a64bbdf10cab
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/build.info
A ssl/d1_transcript.c
M ssl/s3_enc.c
M ssl/ssl_local.h
M ssl/tls13_enc.c
M test/build.info
M test/tls13secretstest.c
Log Message:
-----------
Fix DTLS 1.3 early data transcript hash stripping
When the client installs early write keys, negotiated_version is not
yet set to DTLS1_3_VERSION, so the RFC 9147 §5.2 stripping of
msg_seq, fragment_offset, and fragment_length was skipped in
tls13_change_cipher_state. Fix by conditioning on
SSL_CONNECTION_IS_DTLS() alone.
Fixes: openssl/project#2043
Reviewed-by: Frederik Wedel-Heinen <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Merge-date: Mon Aug 17 08:34:23 2026
Merged-from: https://github.com/openssl/openssl/pull/32276
Commit: 5a8c9d45a0675c8a705f1a99934834a687a1fb8b
https://github.com/openssl/openssl/commit/5a8c9d45a0675c8a705f1a99934834a687a1fb8b
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/dtls_multithread_test.c
Log Message:
-----------
Skip the common test options in dtls_multithread_test
setup_tests() read its two positional arguments without first calling
test_skip_common_options(), so the option cursor was never advanced from
the test's point of view and test_get_argument(0) returned the option
itself. Passing -test or -iter therefore left the certificate path set to
the literal string "-test", and the run failed on that:
error:80000002:system library:file_ctrl:No such file or directory:
...:calling fopen(-test, r)
The option was not being ignored: the framework parses it in
process_shared_options() and the selected sub-test really does run. Only
the positional arguments were shifted, which is what made the failure
look unrelated to the option.
Also declare the usage string, so -help describes the two arguments the
test needs rather than showing none.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
Merge-date: Mon Aug 17 08:36:26 2026
Merged-from: https://github.com/openssl/openssl/pull/32331
Commit: 2d0439e8e99df35622da4f37f615c1119daf2448
https://github.com/openssl/openssl/commit/2d0439e8e99df35622da4f37f615c1119daf2448
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M demos/build.info
M demos/dtlsecho/main.c
A demos/dtlslistenerecho/README.md
A demos/dtlslistenerecho/build.info
A demos/dtlslistenerecho/cert.pem
A demos/dtlslistenerecho/key.pem
A demos/dtlslistenerecho/main.c
M doc/man7/ossl-guide-dtlsv13.pod
Log Message:
-----------
DTLS 1.3 SSL Listener Demo
Demo utilizing the SSL Listener for DTLS. It runs in multiple
threads that will echo what a client sends.
Currently up to 10 clients can make a connection. A client can
close the connection by sending kill. If a client sends
killall the server will close all the connections and free
up all the resources being used.
Fixes: openssl/project#1957
Assisted-by: Claude:claude-opus-4-7
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Merge-date: Thu Aug 20 09:50:36 2026
Merged-from: https://github.com/openssl/openssl/pull/31983
Commit: dbc66697a36a2c2b6c025c2fd6998a40f0882f9a
https://github.com/openssl/openssl/commit/dbc66697a36a2c2b6c025c2fd6998a40f0882f9a
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M demos/dtlslistenerecho/README.md
M demos/dtlslistenerecho/main.c
M doc/man7/ossl-guide-dtlsv13.pod
Log Message:
-----------
DTLS 1.3 Set the listener demo to non-blocking mode
A DTLS listener, and the connections it accepts, now default to
blocking mode. The dtlslistenerecho demo drives the listener and its
connections with SSL_poll() and uses SSL_ACCEPT_CONNECTION_NO_BLOCK,
so call SSL_set_blocking_mode() on the listener to put it back into
non-blocking mode. The accepted connections inherit that mode.
Also update the DTLS 1.3 guide (ossl-guide-dtlsv13) to mention
SSL_set_blocking_mode() and SSL_get_blocking_mode() for DTLS
listeners and to note that a listener is blocking by default.
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Merge-date: Thu Aug 20 09:50:38 2026
Merged-from: https://github.com/openssl/openssl/pull/31983
Commit: f6708d3f437d25c2c6855846d71ca235ae6f6b0b
https://github.com/openssl/openssl/commit/f6708d3f437d25c2c6855846d71ca235ae6f6b0b
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M CHANGES.md
M demos/dtlslistenerecho/main.c
M doc/man3/DTLSv1_listen.pod
M doc/man3/SSL_new_listener.pod
M doc/man7/ossl-guide-dtlsv13.pod
M include/openssl/ssl.h.in
M ssl/d1_lib.c
M test/dtlsssllistenertest.c
M util/other.syms
Log Message:
-----------
DTLS SSL Listener default address validation
Replace SSL_LISTENER_FLAG_REQUIRE_HVR and SSL_LISTENER_FLAG_REQUIRE_HRR
with a single SSL_LISTENER_FLAG_ADDRESS_VALIDATION, and make address
validation the default. A DTLS listener now validates (HVR for DTLS
1.0/1.2, HRR cookie for DTLS 1.3) unless SSL_LISTENER_FLAG_NO_VALIDATE
is set. If both NO_VALIDATE and ADDRESS_VALIDATION are given, the
listener fails safe and validates.
Update the tests, the dtlslistenerecho demo, util/other.syms and the
listener documentation to match.
Assisted-by: Claude:claude-opus-4-8
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Jakub Zelenka <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Merge-date: Thu Aug 20 09:50:39 2026
Merged-from: https://github.com/openssl/openssl/pull/31983
Commit: 5b8501c9c7058de27524b8cf44ee687f75b1ef6a
https://github.com/openssl/openssl/commit/5b8501c9c7058de27524b8cf44ee687f75b1ef6a
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/build.info
M test/dtlsssllistenertest.c
M test/dtlstest.c
M test/recipes/80-test_dtls_ccs_reorder.t
M test/recipes/80-test_dtlsv1listen.t
M test/ssl-tests/18-dtls-renegotiate.cnf.in
M test/ssl_ctx_test.c
Log Message:
-----------
DTLS 1.3 CI nightly NO DTLS 1.2 Failures Fix
dtlsv1listentest uses DTLSv1_listen(), a DTLS 1.2-only API that crashes
when DTLS 1.2 is disabled. Guard the test in build.info under
!$disabled{dtls1_2} and add a matching recipe skip so the test is neither
compiled nor run when DTLS 1.2 is unavailable.
The dtls_ccs_reorder test file is specific to DTLS 1.0/1.2 CCS reordering,
which does not apply to DTLS 1.3. The recipe only skipped when all DTLS was
disabled, so when both DTLS 1.0 and 1.2 were disabled while DTLS 1.3
remained, the test still ran. Add a recipe skip for when both DTLS 1.0 and
DTLS 1.2 are disabled, matching the build.info condition.
ssl_ctx_test had two test table entries that set DTLS1_2_VERSION as a max
protocol version and expected success. When DTLS 1.2 is disabled that
version is not valid for any protocol, so SSL_CTX_set_max_proto_version()
returns 0. Guard both entries with #ifndef OPENSSL_NO_DTLS1_2.
dtlstest contained a dead #ifdef OPENSSL_NO_DTLS1_2 block inside
test_listen(), which is itself wrapped in #ifndef OPENSSL_NO_DTLS1_2.
The inner ifdef could never be true; remove it.
Assisted-by: Claude:claude-sonnet-4-6
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Merge-date: Thu Aug 20 09:55:38 2026
Merged-from: https://github.com/openssl/openssl/pull/32340
Commit: ea15c2442d3028fb0c6311e577d4b5f6726a4408
https://github.com/openssl/openssl/commit/ea15c2442d3028fb0c6311e577d4b5f6726a4408
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
M ssl/ssl_ciph.c
M ssl/ssl_local.h
M test/cipher_overhead_test.c
M test/dtls_mtu_test.c
M test/recipes/80-test_dtls_mtu.t
Log Message:
-----------
DTLS 1.3 Fix DTLS_get_data_mtu() and extend MTU test to cover DTLS 1.3
DTLS_get_data_mtu() included the explicit IV overhead from
ssl_cipher_get_overhead() for AES-GCM and CCM ciphers, but DTLS 1.3 uses
implicit IVs so no IV bytes appear on the wire. Fix by subtracting
EVP_GCM_TLS_EXPLICIT_IV_LEN or EVP_CCM_TLS_EXPLICIT_IV_LEN.
Restructure the MTU test to pin DTLS 1.2 in the PSK cipher loop (previously
DTLS 1.3 was silently negotiated instead) and add a DTLS 1.3 loop using
certificate-based auth. Guard TLS_CHACHA20_POLY1305_SHA256 with both
OPENSSL_NO_CHACHA and OPENSSL_NO_POLY1305.
Assisted-by: Claude:claude-sonnet-4-6
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Merge-date: Thu Aug 20 09:55:39 2026
Merged-from: https://github.com/openssl/openssl/pull/32340
Commit: c059db1feb2e070971836338159f289d9b71880e
https://github.com/openssl/openssl/commit/c059db1feb2e070971836338159f289d9b71880e
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M .github/workflows/run-checker-daily.yml
M ssl/statem/statem_lib.c
M test/dtlsssllistenertest.c
M test/dtlstest.c
M test/ssl_ctx_test.c
Log Message:
-----------
DTLS 1.3 Fix no-dtls1_3 build configuration CI failures
Guard the DTLS1_3_VERSION entry in dtls_version_table with
OPENSSL_NO_DTLS1_3 (NULL fallback), matching the pattern used by
tls_version_table for TLS1_3. Add a min_version clamp for DTLS1_3 in
ssl_check_allowed_versions() to fix SSL_CTX_set_min_proto_version()
incorrectly returning failure under no-dtls1_3, caused by DTLS inverted
wire-number ordering making the range check fire after max was clamped to
DTLS1_2. Guard _dtls13 test functions and their ADD_TEST calls in
dtlstest.c. Guard DTLS 1.3-only helpers and tests in
dtlsssllistenertest.c, and move SSL_poll tests outside the DTLS 1.3
guard so they run for any DTLS version. Add no-dtls1_3 to the daily CI
checker matrix.
Assisted-by: Claude:claude-sonnet-4-6
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Merge-date: Thu Aug 20 09:55:41 2026
Merged-from: https://github.com/openssl/openssl/pull/32340
Commit: 3703e9d7911acba31b97aaeaa5b319acce428dba
https://github.com/openssl/openssl/commit/3703e9d7911acba31b97aaeaa5b319acce428dba
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M util/perl/TLSProxy/Proxy.pm
Log Message:
-----------
DTLS 1.3 Fix TLSProxy DTLS retransmission in valgrind CI
Valgrind slows execution down, causing DTLS retransmission timers to fire
during otherwise normal handshakes. The client retransmits its ClientHello
before the server responds, and TLSProxy recorded the duplicate into
message_list unconditionally. This shifted every subsequent message index
by one, breaking three DTLS 1.3 subtests:
70-test_tls13alerts.t: alert_filter corrupted message_list[1] expecting
the ServerHello, but found the retransmitted ClientHello instead. The
real ServerHello passed through uncorrupted, the handshake succeeded,
and Message->fail() returned false.
70-test_tls13messages.t / 70-test_tls13kexmodes.t: checkhandshake.pm
walks message_list sequentially comparing each .mt to an expected
sequence. The extra ClientHello at position 0 shifted all five
subsequent checks.
Fix by deduplicating message_list in DTLS mode using (sender, msgseq) as
the key. Retransmitted DTLS handshake messages always carry the same
message sequence number as the original, so duplicates are naturally
discarded. HelloRetryRequest is unaffected becasue the retried ClientHello
gets an incremented msgseq. The seen_msgseq hash is reset by clearClient
so there is no state leakage between subtests.
Assisted-by: Claude:claude-sonnet-4-6
Reviewed-by: Tomas Mraz <[email protected]>
Reviewed-by: Matt Caswell <[email protected]>
Merge-date: Thu Aug 20 09:55:42 2026
Merged-from: https://github.com/openssl/openssl/pull/32340
Commit: a5dffd58f3d22a4bea991ef1bd7f9b8ebaff8c84
https://github.com/openssl/openssl/commit/a5dffd58f3d22a4bea991ef1bd7f9b8ebaff8c84
Author: Tomas Mraz <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M test/cipher_overhead_test.c
Log Message:
-----------
cipher_overhead_test.c: Init libssl to sort the ciphers
Otherwise ssl3_get_cipher_by_id() cannot work properly.
Reviewed-by: Richard Levitte <[email protected]>
Reviewed-by: Nikola Pajkovsky <[email protected]>
Merge-date: Thu Aug 20 12:59:43 2026
Merged-from: https://github.com/openssl/openssl/pull/32443
Commit: 03f200cabbf064ddda03160056fdb82bfc0c2612
https://github.com/openssl/openssl/commit/03f200cabbf064ddda03160056fdb82bfc0c2612
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/statem/extensions_clnt.c
Log Message:
-----------
Make the TLS 1.3 resumption PSK check aware of DTLS 1.3
tls13_check_resumption_psk() tells tls_construct_ctos_early_data()
whether the resumption session can key 0-RTT, but compared the session
version against TLS1_3_VERSION only. A DTLS 1.3 session records
DTLS1_3_VERSION, so the check never matched for DTLS.
The caller then fell back to the external PSK session, which is NULL
when resuming, and took the suppression path: max_early_data was set to
0, early_data_suppressed was set, and the early_data extension was not
sent. SSL_connect() ran an ordinary handshake and returned WANT_READ
with an empty error queue, so SSL_write_early_data() returned 0 with
nothing to indicate why.
Compare against DTLS1_3_VERSION for DTLS, using the version1_3 idiom
the calling function already uses.
The helper is newer than the DTLS 1.3 work: it was factored out of
tls_construct_ctos_early_data() after that function had been made
version aware, so it never picked up the DTLS case.
Fixes the DTLS 1.3 iterations of nine sslapitest early data tests.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Fri Aug 21 18:10:39 2026
Merged-from: https://github.com/openssl/openssl/pull/32441
Commit: 925cda0d58c143773ba1f54d1fb33e99b1e330b7
https://github.com/openssl/openssl/commit/925cda0d58c143773ba1f54d1fb33e99b1e330b7
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/d1_lib.c
Log Message:
-----------
Use the SSL_CTX cached HMAC for DTLS listener cookies
dtls_listener_cookie_hmac() fetched an EVP_MAC for "HMAC" on every call.
It runs once per cookie generation and once per verification, so a DTLS
listener paid a provider fetch for every ClientHello it answered.
SSL_CTX already holds a pre-fetched EVP_MAC for exactly this purpose.
SSL_CTX_new() fetches it up front and fails if it cannot, so ctx->hmac
is always usable, and ssl_hmac_init() in ssl/t1_lib.c uses it the same
way. Take the MAC from there instead, which also removes the local
fetch and free.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Fri Aug 21 18:10:40 2026
Merged-from: https://github.com/openssl/openssl/pull/32441
Commit: a981006cc8ec94d6108639af57e47a435ab83bdb
https://github.com/openssl/openssl/commit/a981006cc8ec94d6108639af57e47a435ab83bdb
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/rio/poll_immediate.c
Log Message:
-----------
Guard the QUIC poll test hook so no-quic builds compile
poll_translate() calls ossl_quic_poll_translate_test_step_cb, a test
instrumentation hook whose declaration and definition both sit inside
#ifndef OPENSSL_NO_QUIC. On master that is safe, because the whole of
poll_translate() is inside the same guard.
This branch widens that guard to
#if !defined(OPENSSL_NO_QUIC) || !defined(OPENSSL_NO_DTLS)
so that SSL_poll() works for DTLS, so poll_translate() is now also
compiled when QUIC is disabled. The hook call came along into the wider
region and does not compile there.
Guard the call itself. Configurations that disable QUIC, directly or by
cascade from no-tls1_3 or no-tls, then build again.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Fri Aug 21 18:10:41 2026
Merged-from: https://github.com/openssl/openssl/pull/32441
Commit: a847149bf4dcb5b30a5b112be49d5048ae288c6a
https://github.com/openssl/openssl/commit/a847149bf4dcb5b30a5b112be49d5048ae288c6a
Author: Matt Caswell <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/dtls_conn_lookup.c
Log Message:
-----------
Reformat a foreach member call for the new ForEachMacros list
ossl_dgram_conn_lookup_foreach() calls a struct member named foreach.
clang-format has a built-in ForEachMacros list which contains foreach,
and it formats anything on that list like a control statement, with a
space before the parenthesis. The space was therefore correct when this
code was written, and check-style accepted it.
Master has since set ForEachMacros explicitly, to name the OSSL_RBT_*
macros. Setting the option replaces the built-in list rather than adding
to it, so foreach is no longer on it and is now formatted as an ordinary
function call, with no space. That turned an already compliant line into
a check-style failure without the line itself changing.
git rebase does not run the pre-commit hooks over the commits it
replays, so nothing reformatted this on the way past.
Assisted-by: Claude Code:claude-opus-5
Reviewed-by: Ryan Hooper <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Fri Aug 21 18:10:42 2026
Merged-from: https://github.com/openssl/openssl/pull/32441
Commit: 3e0cfe3ae342369097a99d2f5e0dbd7174a36f6f
https://github.com/openssl/openssl/commit/3e0cfe3ae342369097a99d2f5e0dbd7174a36f6f
Author: Ryan Hooper <[email protected]>
Date: 2026-08-25 (Tue, 25 Aug 2026)
Changed paths:
M ssl/ssl_sess.c
M test/recipes/70-test_dtls13ack.t
M test/recipes/70-test_dtls13epoch.t
A test/recipes/70-test_dtls13sessionid.t
Log Message:
-----------
Skip the legacy session ID check for DTLS 1.3 resumption
Commit 4e8593e7ebbb added a session ID match in ssl_get_prev_session()
guarded by !SSL_CONNECTION_IS_TLS13(s). That macro excludes DTLS, so
the pre-1.3 check wrongly ran for DTLS 1.3, where legacy_session_id is
a meaningless compatibility field.
OpenSSL DTLS 1.3 clients send an empty legacy_session_id, so this went
unnoticed. Peers that send a non-empty one (e.g. wolfSSL) tripped the
mismatch and were refused resumption. Use SSL_CONNECTION_IS_VERSION13(s),
which covers both TLS 1.3 and DTLS 1.3.
Add a DTLS 1.3 TLSProxy test that injects a mismatching
legacy_session_id and confirms the server still resumes.
Assisted-by: Claude:claude-opus-4-8
Reviewed-by: Matt Caswell <[email protected]>
Reviewed-by: Tomas Mraz <[email protected]>
Merge-date: Fri Aug 21 18:24:12 2026
Merged-from: https://github.com/openssl/openssl/pull/32435
Compare: https://github.com/openssl/openssl/compare/b6011a9ee87a...3e0cfe3ae342
To unsubscribe from these emails, change your notification settings at https://github.com/openssl/openssl/settings/notifications
--
You received this message because you are subscribed to the Google Groups "openssl-commits" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [email protected].
To view this discussion visit https://groups.google.com/a/openssl.org/d/msgid/openssl-commits/openssl/openssl/push/refs/heads/master/b6011a-3e0cfe%40github.com.