gnutls_rehandshake man page

gnutls_rehandshake — API function


#include <gnutls/gnutls.h>

int gnutls_rehandshake(gnutls_session_t session);


gnutls_session_t session

is a gnutls_session_t type.


This function will renegotiate security parameters with the client.  This should only be called in case of a server.

This message informs the peer that we want to renegotiate parameters (perform a handshake).

If this function succeeds (returns 0), you must call the gnutls_handshake() function in order to negotiate the new parameters.

Since TLS is full duplex some application data might have been sent during peer's processing of this message. In that case one should call gnutls_record_recv() until GNUTLS_E_REHANDSHAKE is returned to clear any pending data. Care must be taken, if rehandshake is mandatory, to terminate if it does not start after some threshold.

If the client does not wish to renegotiate parameters he  should reply with an alert message, thus the return code will be GNUTLS_E_WARNING_ALERT_RECEIVED and the alert will be GNUTLS_A_NO_RENEGOTIATION.  A client may also choose to ignore this message.


GNUTLS_E_SUCCESS on success, otherwise a negative error code.

Reporting Bugs

Report bugs to <>.
Home page:

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


3.6.2 gnutls