diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 07:33:12 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-28 07:33:12 +0000 |
commit | 36082a2fe36ecd800d784ae44c14f1f18c66a7e9 (patch) | |
tree | 6c68e0c0097987aff85a01dabddd34b862309a7c /doc/functions/gnutls_session_get_data2 | |
parent | Initial commit. (diff) | |
download | gnutls28-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_data2 | 44 |
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 |