@deftypefun {int} {gnutls_supplemental_register} (const char * @var{name}, gnutls_supplemental_data_format_type_t @var{type}, gnutls_supp_recv_func @var{recv_func}, gnutls_supp_send_func @var{send_func}) @var{name}: the name of the supplemental data to register @var{type}: the type of the supplemental data format @var{recv_func}: the function to receive the data @var{send_func}: the function to send the data This function will register a new supplemental data type (rfc4680). The registered data will remain until @code{gnutls_global_deinit()} is called. The provided @code{type} must be an unassigned type in @code{gnutls_supplemental_data_format_type_t} . If the type is already registered or handled by GnuTLS internally @code{GNUTLS_E_ALREADY_REGISTERED} will be returned. This function is not thread safe. As supplemental data are not defined under TLS 1.3, this function will disable TLS 1.3 support globally. @strong{Returns:} @code{GNUTLS_E_SUCCESS} on success, otherwise a negative error code. @strong{Since:} 3.4.0 @end deftypefun