@deftypefun {int} {gnutls_session_supplemental_register} (gnutls_session_t @var{session}, 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}, unsigned @var{flags}) @var{session}: the session for which this will be registered @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 @var{flags}: must be zero This function will register a new supplemental data type (rfc4680). The registered supplemental functions will be used for that specific session. 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. As supplemental data are not defined under TLS 1.3, this function will disable TLS 1.3 support for the given session. @strong{Returns:} @code{GNUTLS_E_SUCCESS} on success, otherwise a negative error code. @strong{Since:} 3.5.5 @end deftypefun