|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@deftypefun {int} {gnutls_session_ext_register} (gnutls_session_t @var{session}, const char * @var{name}, int @var{id}, gnutls_ext_parse_type_t @var{parse_point}, gnutls_ext_recv_func @var{recv_func}, gnutls_ext_send_func @var{send_func}, gnutls_ext_deinit_data_func @var{deinit_func}, gnutls_ext_pack_func @var{pack_func}, gnutls_ext_unpack_func @var{unpack_func}, unsigned @var{flags})
|
|
Packit Service |
4684c1 |
@var{session}: the session for which this extension will be set
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{name}: the name of the extension to register
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{id}: the numeric id of the extension
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{parse_point}: the parse type of the extension (see gnutls_ext_parse_type_t)
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{recv_func}: a function to receive the data
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{send_func}: a function to send the data
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{deinit_func}: a function deinitialize any private data
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{pack_func}: a function which serializes the extension's private data (used on session packing for resumption)
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{unpack_func}: a function which will deserialize the extension's private data
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@var{flags}: must be zero or flags from @code{gnutls_ext_flags_t}
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
This function will register a new extension type. The extension will be
|
|
Packit Service |
4684c1 |
only usable within the registered session. If the extension type
|
|
Packit Service |
4684c1 |
is already registered then @code{GNUTLS_E_ALREADY_REGISTERED} will be returned,
|
|
Packit Service |
4684c1 |
unless the flag @code{GNUTLS_EXT_FLAG_OVERRIDE_INTERNAL} is specified. The latter
|
|
Packit Service |
4684c1 |
flag when specified can be used to override certain extensions introduced
|
|
Packit Service |
4684c1 |
after 3.6.0. It is expected to be used by applications which handle
|
|
Packit Service |
4684c1 |
custom extensions that are not currently supported in GnuTLS, but direct
|
|
Packit Service |
4684c1 |
support for them may be added in the future.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
Each registered extension can store temporary data into the gnutls_session_t
|
|
Packit Service |
4684c1 |
structure using @code{gnutls_ext_set_data()} , and they can be retrieved using
|
|
Packit Service |
4684c1 |
@code{gnutls_ext_get_data()} .
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
The validity of the extension registered can be given by the appropriate flags
|
|
Packit Service |
4684c1 |
of @code{gnutls_ext_flags_t} . If no validity is given, then the registered extension
|
|
Packit Service |
4684c1 |
will be valid for client and TLS1.2 server hello (or encrypted extensions for TLS1.3).
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@strong{Returns:} @code{GNUTLS_E_SUCCESS} on success, otherwise a negative error code.
|
|
Packit Service |
4684c1 |
|
|
Packit Service |
4684c1 |
@strong{Since:} 3.5.5
|
|
Packit Service |
4684c1 |
@end deftypefun
|