gnutls_handshake(3) gnutls gnutls_handshake(3)
NAME
gnutls_handshake - API function
SYNOPSIS
#include <gnutls/gnutls.h>
int gnutls_handshake(gnutls_session_t session);
ARGUMENTS
gnutls_session_t session
is a gnutls_session_t type.
DESCRIPTION
This function performs the handshake of the TLS/SSL protocol, and ini-
tializes the TLS session parameters.
The non-fatal errors expected by this function are: GNUTLS_E_INTER-
RUPTED, GNUTLS_E_AGAIN, GNUTLS_E_WARNING_ALERT_RECEIVED. When this func-
tion is called for re-handshake under TLS 1.2 or earlier, the non-fatal
error code GNUTLS_E_GOT_APPLICATION_DATA may also be returned.
The former two interrupt the handshake procedure due to the transport
layer being interrupted, and the latter because of a "warning" alert
that was sent by the peer (it is always a good idea to check any re-
ceived alerts). On these non-fatal errors call this function again, un-
til it returns 0; cf. gnutls_record_get_direction() and gnutls_er-
ror_is_fatal(). In DTLS sessions the non-fatal error
GNUTLS_E_LARGE_PACKET is also possible, and indicates that the MTU
should be adjusted.
When this function is called by a server after a rehandshake request un-
der TLS 1.2 or earlier the GNUTLS_E_GOT_APPLICATION_DATA error code in-
dicates that some data were pending prior to peer initiating the hand-
shake. Under TLS 1.3 this function when called after a successful hand-
shake, is a no-op and always succeeds in server side; in client side
this function is equivalent to gnutls_session_key_update() with
GNUTLS_KU_PEER flag.
This function handles both full and abbreviated TLS handshakes (resump-
tion). For abbreviated handshakes, in client side, the gnutls_ses-
sion_set_data() should be called prior to this function to set parame-
ters from a previous session. In server side, resumption is handled by
either setting a DB back-end, or setting up keys for session tickets.
RETURNS
GNUTLS_E_SUCCESS on a successful handshake, otherwise a negative error
code.
REPORTING BUGS
Report bugs to <bugs@gnutls.org>.
Home page: https://www.gnutls.org
COPYRIGHT
Copyright © 2001-2023 Free Software Foundation, Inc., and others.
Copying and distribution of this file, with or without modification, are
permitted in any medium without royalty provided the copyright notice
and this notice are preserved.
SEE ALSO
The full documentation for gnutls is maintained as a Texinfo manual. If
the /usr/share/doc/gnutls/ directory does not contain the HTML form
visit
https://www.gnutls.org/manual/
gnutls 3.8.9 gnutls_handshake(3)
Generated by dwww version 1.16 on Sat Oct 3 07:43:09 CEST 2026.