summaryrefslogtreecommitdiffstats
path: root/doc/functions/gnutls_session_get_data2
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 07:33:12 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-28 07:33:12 +0000
commit36082a2fe36ecd800d784ae44c14f1f18c66a7e9 (patch)
tree6c68e0c0097987aff85a01dabddd34b862309a7c /doc/functions/gnutls_session_get_data2
parentInitial commit. (diff)
downloadgnutls28-36082a2fe36ecd800d784ae44c14f1f18c66a7e9.tar.xz
gnutls28-36082a2fe36ecd800d784ae44c14f1f18c66a7e9.zip
Adding upstream version 3.7.9.upstream/3.7.9upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'doc/functions/gnutls_session_get_data2')
-rw-r--r--doc/functions/gnutls_session_get_data244
1 files changed, 44 insertions, 0 deletions
diff --git a/doc/functions/gnutls_session_get_data2 b/doc/functions/gnutls_session_get_data2
new file mode 100644
index 0000000..4816534
--- /dev/null
+++ b/doc/functions/gnutls_session_get_data2
@@ -0,0 +1,44 @@
+
+
+
+
+@deftypefun {int} {gnutls_session_get_data2} (gnutls_session_t @var{session}, gnutls_datum_t * @var{data})
+@var{session}: is a @code{gnutls_session_t} type.
+
+@var{data}: is a pointer to a datum that will hold the session.
+
+Returns necessary parameters to support resumption. The client
+should call this function and store the returned session data. A session
+can be resumed later by calling @code{gnutls_session_set_data()} with the returned
+data. Note that under TLS 1.3, it is recommended for clients to use
+session parameters only once, to prevent passive-observers from correlating
+the different connections.
+
+The returned @code{data} are allocated and must be released using @code{gnutls_free()} .
+
+This function will fail if called prior to handshake completion. In
+case of false start TLS, the handshake completes only after data have
+been successfully received from the peer.
+
+Under TLS1.3 session resumption is possible only after a session ticket
+is received by the client. To ensure that such a ticket has been received use
+@code{gnutls_session_get_flags()} and check for flag @code{GNUTLS_SFLAGS_SESSION_TICKET} ;
+if this flag is not set, this function will wait for a new ticket within
+an estimated roundtrip, and if not received will return dummy data which
+cannot lead to resumption.
+
+To get notified when new tickets are received by the server
+use @code{gnutls_handshake_set_hook_function()} to wait for @code{GNUTLS_HANDSHAKE_NEW_SESSION_TICKET}
+messages. Each call of @code{gnutls_session_get_data2()} after a ticket is
+received, will return session resumption data corresponding to the last
+received ticket.
+
+Note that this function under TLS1.3 requires a callback to be set with
+@code{gnutls_transport_set_pull_timeout_function()} for successful operation. There
+was a bug before 3.6.10 which could make this function fail if that callback
+was not set. On later versions if not set, the function will return a successful
+error code, but will return dummy data that cannot lead to a resumption.
+
+@strong{Returns:} On success, @code{GNUTLS_E_SUCCESS} (0) is returned, otherwise
+an error code is returned.
+@end deftypefun