This function will set a callback to be called after the client
hello has been received (callback valid in server side only).
This allows the server to adjust settings based on received
Those settings could be ciphersuites, requesting certificate, or
anything else except for version negotiation (this is done before
the hello message is parsed).
This callback must return 0 on success or a gnutls error code to
terminate the handshake.
Since GnuTLS 3.3.5 the callback is allowed to return
GNUTLS_E_AGAIN or GNUTLS_E_INTERRUPTED to put the handshake on
hold. In that case gnutls_handshake() will return
GNUTLS_E_INTERRUPTED and can be resumed when needed.
You should not use this function to terminate the handshake based
on client input unless you know what you are doing. Before the
handshake is finished there is no way to know if there is a
man-in-the-middle attack being performed.
This page is part of the GnuTLS (GnuTLS Transport Layer Security
Library) project. Information about the project can be found at
⟨http://www.gnutls.org/⟩. If you have a bug report for this
manual page, send it to firstname.lastname@example.org. This page was obtained
from the tarball gnutls-3.7.2.tar.xz fetched from
⟨http://www.gnutls.org/download.html⟩ on 2021-08-27. If you
discover any rendering problems in this HTML version of the page,
or you believe there is a better or more up-to-date source for
the page, or you have corrections or improvements to the
information in this COLOPHON (which is not part of the original
manual page), send a mail to email@example.com