Commit 3fe91b11d2 for openssl.org

commit 3fe91b11d2f0a103d53ef780b53fade175ec39a8
Author: Daniel Kubec <kubec@openssl.foundation>
Date:   Fri May 29 16:08:11 2026 +0200

    DOC: document ticket suppression for SSL_OP_NO_TICKET and SSL_SESS_CACHE_OFF

    Complements: e5a1892 "TLS1.3: Disable tickets when SSL_OP_NO_TICKET and SSL_SESS_CACHE_OFF are set."

    Co-authored-by: Andrew Dinh <andrewd@openssl.org>

    Reviewed-by: Milan Broz <mbroz@openssl.org>
    Reviewed-by: Tomas Mraz <tomas@openssl.foundation>
    MergeDate: Mon Jun 15 14:13:25 2026
    (Merged from https://github.com/openssl/openssl/pull/31335)

diff --git a/doc/man3/SSL_CTX_set_options.pod b/doc/man3/SSL_CTX_set_options.pod
index ec66190d7a..ae6f11cd54 100644
--- a/doc/man3/SSL_CTX_set_options.pod
+++ b/doc/man3/SSL_CTX_set_options.pod
@@ -349,6 +349,16 @@ In TLSv1.3 it is possible to suppress all tickets (stateful and stateless) from
 being sent by calling L<SSL_CTX_set_num_tickets(3)> or
 L<SSL_set_num_tickets(3)>.

+All tickets (stateful and stateless) are also suppressed when the server has set
+B<SSL_OP_NO_TICKET> and the server-side session cache is disabled via
+B<SSL_SESS_CACHE_OFF> through L<SSL_CTX_set_session_cache_mode(3)>.
+Both conditions together indicate a clear intent to suppress resumption, so
+sending B<NewSessionTicket> messages would be wasteful and misleading.
+
+From the server's perspective, a TLS 1.3 client that does not send the
+B<psk_key_exchange_modes> extension is effectively signaling no interest in
+session tickets and session resumption, so tickets are also suppressed in this case.
+
 =item SSL_OP_PRIORITIZE_CHACHA

 When SSL_OP_SERVER_PREFERENCE is set, temporarily reprioritize
diff --git a/doc/man3/SSL_CTX_set_session_cache_mode.pod b/doc/man3/SSL_CTX_set_session_cache_mode.pod
index 296212b839..4234aa6344 100644
--- a/doc/man3/SSL_CTX_set_session_cache_mode.pod
+++ b/doc/man3/SSL_CTX_set_session_cache_mode.pod
@@ -47,6 +47,12 @@ The following session cache modes and modifiers are available:

 No session caching for client or server takes place.

+For a server, setting B<SSL_SESS_CACHE_OFF> together with the
+B<SSL_OP_NO_TICKET> option (see L<SSL_CTX_set_options(3)>) suppresses the
+issuance of B<NewSessionTicket> messages. The combination indicates a clear
+intent to disable session resumption, so no stateful or stateless tickets are
+sent to the client.
+
 =item SSL_SESS_CACHE_CLIENT

 Client sessions are added to the session cache. As there is no reliable way