



@deftypefun {void} {gnutls_psk_set_server_credentials_function3} (gnutls_psk_server_credentials_t @var{cred}, gnutls_psk_server_credentials_function3 @var{func})
@var{cred}: is a @code{gnutls_psk_server_credentials_t}  type.

@var{func}: is the callback function

This function can be used to set a callback to retrieve the user's PSK credentials.
The callback's function form is:
int (*callback)(gnutls_session_t, const gnutls_datum_t* username,
gnutls_datum_t* key, gnutls_psk_key_flags *flags);

This callback function has the same semantics as that of
@code{gnutls_psk_set_server_credentials_function2()} , but it returns flags
associated with the key.  The callback may import external PSK
using the method described in RFC 9258 by using
@code{gnutls_psk_format_imported_identity()} .

 @code{username} contains the actual username.
The  @code{key} must be filled in using the @code{gnutls_malloc()} .

In case the callback returned a negative number then gnutls will
assume that the username does not exist.

The callback function will only be called once per handshake.  The
callback function should return 0 on success, while -1 indicates
an error.
@end deftypefun
