summaryrefslogtreecommitdiff
path: root/lib/ssl/doc/src/ssl.xml
diff options
context:
space:
mode:
authorSindri P. Ingimundarson <sindripetur@gmail.com>2022-11-17 13:39:35 +0100
committerSindri P. Ingimundarson <sindripetur@gmail.com>2022-11-17 13:42:53 +0100
commit75b704cfc0ef26d0d4d5af70847e38b3108907e2 (patch)
treee31dfc0ab01b1098313b6d9354c7c0146fc7ac7d /lib/ssl/doc/src/ssl.xml
parent73f6be02cab08454a915108e2d98df2fe7d529ab (diff)
downloaderlang-75b704cfc0ef26d0d4d5af70847e38b3108907e2.tar.gz
ssl: Store PeerCertificate for session resumption
Adds new options for session_tickets stateless_with_cert and stateful_with_cert, this associates the client certificate with that session. This makes it possible to call ssl:peercert/1 after a pre-shared key session resumption.
Diffstat (limited to 'lib/ssl/doc/src/ssl.xml')
-rw-r--r--lib/ssl/doc/src/ssl.xml29
1 files changed, 24 insertions, 5 deletions
diff --git a/lib/ssl/doc/src/ssl.xml b/lib/ssl/doc/src/ssl.xml
index 5450462ea7..2fcadebd5c 100644
--- a/lib/ssl/doc/src/ssl.xml
+++ b/lib/ssl/doc/src/ssl.xml
@@ -1461,15 +1461,34 @@ fun(srp, Username :: binary(), UserState :: term()) ->
<datatype>
<name name="server_session_tickets"/>
<desc>
- <p>Configures the session ticket functionality. Allowed values are <c>disabled</c>,
- <c>stateful</c> and <c>stateless</c>.</p>
- <p>If it is set to <c>stateful</c> or
- <c>stateless</c>, session resumption with pre-shared keys is enabled and the server will
- send stateful or stateless session tickets to the client after successful connections.</p>
+ <p>Configures the session ticket functionality. Allowed values are <c>disabled</c>,
+ <c>stateful</c>, <c>stateless</c>, <c>stateful_with_cert</c>, <c>stateless_with_cert</c>.</p>
+ <p>If it is not set to <c>disabled</c>,
+ session resumption with pre-shared keys is enabled and the server will
+ send stateful or stateless session tickets to the client after successful connections.</p>
+
+ <note><p>
+ Pre-shared key session ticket resumption does not include any certificate exchange,
+ hence the function <seemfa marker="ssl:ssl#peercert/1">ssl:peercert/1</seemfa> will not
+ be able to return the peer certificate as it is only communicated in the initial handshake.
+ The server options <c>stateful_with_cert</c> or <c>stateless_with_cert</c> may be used
+ to make a server associate the client certificate from the original handshake
+ with the tickets it issues.
+ </p></note>
+
<p>A stateful session ticket is a database reference to internal state information.
A stateless session ticket is a self-encrypted binary that contains both cryptographic keying
material and state data.
</p>
+
+ <warning><p>
+ If it is set to <c>stateful_with_cert</c> the client certificate
+ is stored with the internal state information, increasing memory consumption.
+ If it is set to <c>stateless_with_cert</c> the client certificate is
+ encoded in the self-encrypted binary that is sent to the client,
+ increasing the payload size.
+ </p></warning>
+
<note><p>This option is supported by TLS 1.3 and above. See also
<seeguide marker="ssl:using_ssl#session-tickets-and-session-resumption-in-tls-1.3">
SSL's Users Guide, Session Tickets and Session Resumption in TLS 1.3</seeguide>