



@deftypefun {int} {gnutls_hpke_init} (gnutls_hpke_context_t * @var{ctx}, gnutls_hpke_mode_t @var{mode}, gnutls_hpke_role_t @var{role}, gnutls_hpke_kem_t @var{kem}, gnutls_hpke_kdf_t @var{kdf}, gnutls_hpke_aead_t @var{aead})
@var{ctx}: A pointer to the HPKE context to initialize.

@var{mode}: The HPKE mode to use (Base, PSK, Auth, or AuthPSK).

@var{role}: The role of the context (Sender or Receiver).

@var{kem}: The KEM algorithm to use (e.g., DHKEM(X25519)).

@var{kdf}: The KDF algorithm to use (e.g., HKDF-SHA256).

@var{aead}: The AEAD algorithm to use (e.g., AES-128-GCM).

This function initializes the HPKE context with the specified parameters.
It allocates memory for the context and sets the initial values for the fields based on the provided parameters.

The context must be deinitialized using @code{gnutls_hpke_deinit()}  when it
is no longer needed to free any allocated resources and securely erase sensitive information.

@strong{Returns:} 0 on success, or a negative error code on failure

@strong{Since:} 3.8.13
@end deftypefun
