Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
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
       function	is called for re-handshake  under  TLS	1.2  or	 earlier,  the
       non-fatal  error	 code  GNUTLS_E_GOT_APPLICATION_DATA  may  also	be re-
       turned.

       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
       under  TLS  1.2 or earlier the GNUTLS_E_GOT_APPLICATION_DATA error code
       indicates that some data	were pending  prior  to	 peer  initiating  the
       handshake.   Under TLS 1.3 this function	when called after a successful
       handshake, 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 (C) 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  no-
       tice and	this notice are	preserved.

SEE ALSO
       The  full  documentation	 for gnutls is maintained as a Texinfo manual.
       If the /usr/local/share/doc/gnutls/ directory does not contain the HTML
       form visit

       https://www.gnutls.org/manual/

gnutls				     3.8.9		   gnutls_handshake(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gnutls_handshake&sektion=3&manpath=FreeBSD+Ports+14.3.quarterly>

home | help