dwww Home | Manual pages | Find package

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.