gnutls_rehandshake - API function
int gnutls_rehandshake(gnutls_session_t session);
- gnutls_session_t session
- is a gnutls_session_t type.
This function can only be called in server side, and instructs a TLS 1.2 or
earlier client to renegotiate parameters (perform a handshake), by sending a
hello request message.
If this function succeeds, the calling application should call
is returned to
clear any pending data. If the GNUTLS_E_REHANDSHAKE
error code is not
seen, then the handshake request was not followed by the peer (the TLS
protocol does not require the client to do, and such compliance should be
handled by the application protocol).
Once the GNUTLS_E_REHANDSHAKE
error code is seen, the calling application
should proceed to calling gnutls_handshake()
to negotiate the new
If the client does not wish to renegotiate parameters he may reply with an alert
message, and in that case the return code seen by subsequent
will be GNUTLS_E_WARNING_ALERT_RECEIVED
with the specific alert being GNUTLS_A_NO_RENEGOTIATION
. A client may
also choose to ignore this request.
Under TLS 1.3 this function is equivalent to gnutls_session_key_update()
with the GNUTLS_KU_PEER
flag. In that case subsequent calls to
will not return GNUTLS_E_REHANDSHAKE
calls to gnutls_handshake()
in server side are a no-op.
This function always fails with GNUTLS_E_INVALID_REQUEST
when called in
on success, otherwise a negative error code.
Report bugs to <firstname.lastname@example.org>.
Home page: https://www.gnutls.org
Copyright © 2001-2019 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.
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