Provided by: gnutls-doc_3.4.10-4ubuntu1.9_all bug

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 does the handshake of the TLS/SSL protocol, and initializes the TLS connection.

       This  function will fail if any problem is encountered, and will return a negative error code. In case of
       a client, if the client has asked to resume a session, but the server couldn't,  then  a  full  handshake
       will be performed.

       The   non-fatal   errors   expected   by   this   function   are:  GNUTLS_E_INTERRUPTED,  GNUTLS_E_AGAIN,
       GNUTLS_E_WARNING_ALERT_RECEIVED,  and  GNUTLS_E_GOT_APPLICATION_DATA,  the  latter  only  in  a  case  of
       rehandshake.

       The former two interrupt the handshake procedure due to the lower layer being interrupted, and the latter
       because of an alert that may be sent by a server (it is always a good idea to check any received alerts).
       On  these  errors  call  this  function again, until it returns 0; cf.  gnutls_record_get_direction() and
       gnutls_error_is_fatal(). In DTLS sessions the non-fatal error GNUTLS_E_LARGE_PACKET is also possible, and
       indicates that the MTU should be adjusted.

       If this function is called by a server after a rehandshake request then GNUTLS_E_GOT_APPLICATION_DATA  or
       GNUTLS_E_WARNING_ALERT_RECEIVED  may  be  returned.   Note  that  these are non fatal errors, only in the
       specific case of a rehandshake.  Their meaning is that the client rejected the rehandshake request or  in
       the  case  of  GNUTLS_E_GOT_APPLICATION_DATA it could also mean that some data were pending. A client may
       receive that error code if it initiates the handshake and the server doesn't agreed.

RETURNS

       GNUTLS_E_SUCCESS on success, otherwise a negative error code.

REPORTING BUGS

       Report bugs to <bugs@gnutls.org>.
       Home page: http://www.gnutls.org

COPYRIGHT

       Copyright © 2001-2021 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

       http://www.gnutls.org/manual/

gnutls                                               3.4.10                                  gnutls_handshake(3)