Blame doc/functions/gnutls_handshake_set_post_client_hello_function
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@deftypefun {void} {gnutls_handshake_set_post_client_hello_function} (gnutls_session_t @var{session}, gnutls_handshake_simple_hook_func @var{func})
|
|
Packit Service |
4684c1 |
@var{session}: is a @code{gnutls_session_t} type.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{func}: is the function to be called
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
This function will set a callback to be called after the client
|
|
Packit Service |
4684c1 |
hello has been received (callback valid in server side only). This
|
|
Packit Service |
4684c1 |
allows the server to adjust settings based on received extensions.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
Those settings could be ciphersuites, requesting certificate, or
|
|
Packit Service |
4684c1 |
anything else except for version negotiation (this is done before
|
|
Packit Service |
4684c1 |
the hello message is parsed).
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
This callback must return 0 on success or a gnutls error code to
|
|
Packit Service |
4684c1 |
terminate the handshake.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
Since GnuTLS 3.3.5 the callback is
|
|
Packit Service |
4684c1 |
allowed to return @code{GNUTLS_E_AGAIN} or @code{GNUTLS_E_INTERRUPTED} to
|
|
Packit Service |
4684c1 |
put the handshake on hold. In that case @code{gnutls_handshake()}
|
|
Packit Service |
4684c1 |
will return @code{GNUTLS_E_INTERRUPTED} and can be resumed when needed.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@strong{Warning:} You should not use this function to terminate the
|
|
Packit Service |
4684c1 |
handshake based on client input unless you know what you are
|
|
Packit Service |
4684c1 |
doing. Before the handshake is finished there is no way to know if
|
|
Packit Service |
4684c1 |
there is a man-in-the-middle attack being performed.
|
|
Packit Service |
4684c1 |
@end deftypefun
|