gnutls_hpke_encap(3) — Linux manual page

NAME | SYNOPSIS | ARGUMENTS | DESCRIPTION | RETURNS | SINCE | REPORTING BUGS | COPYRIGHT | SEE ALSO | COLOPHON

gnutls_hpke_encap(3)              gnutls             gnutls_hpke_encap(3)

NAME         top

       gnutls_hpke_encap - API function

SYNOPSIS         top

       #include <gnutls/hpke.h>

       int gnutls_hpke_encap(gnutls_hpke_context_t ctx, const
       gnutls_datum_t * info, gnutls_datum_t * enc, const gnutls_pubkey_t
       receiver_pubkey, const gnutls_privkey_t sender_privkey, const
       gnutls_datum_t * psk, const gnutls_datum_t * psk_id);

ARGUMENTS         top

       gnutls_hpke_context_t ctx
                   The HPKE context to use for encapsulation.

       const gnutls_datum_t * info
                   The application-specific information to be included in
                   the key schedule (optional).

       gnutls_datum_t * enc
                   A pointer to a gnutls_datum_t structure where the
                   encapsulated key will be stored.

       const gnutls_pubkey_t receiver_pubkey
                   The receiver's public key to use for encapsulation.

       const gnutls_privkey_t sender_privkey
                   The sender's private key needed for AuthEncap
                   operation (optional).

       const gnutls_datum_t * psk
                   The pre-shared key (optional).

       const gnutls_datum_t * psk_id
                   The pre-shared key identifier (optional).

DESCRIPTION         top

       This function performs the encapsulation operation of HPKE. It
       generates an encapsulated key ( enc ) that can be sent to the
       receiver, who can then use it to derive the shared secret.

       The function checks that the context is properly initialized and
       that the provided parameters are valid. It also checks that the
       context is in the correct role (GNUTLS_HPKE_ROLE_SENDER) for
       encapsulation.

       This function must be used once per HPKE context and before any
       calls to gnutls_hpke_seal().

       The function will allocate memory for  enc , and the caller is
       responsible for freeing this memory using gnutls_free() when it is
       no longer needed.

        receiver_pubkey must be a valid public key that is compatible
       with the KEM algorithm specified in the HPKE context.

       For GNUTLS_HPKE_MODE_AUTH or GNUTLS_HPKE_MODE_AUTH_PSK,
        sender_privkey must be a valid private key that can be used for
       authentication. For GNUTLS_HPKE_MODE_PSK or
       GNUTLS_HPKE_MODE_AUTH_PSK, a pre-shared key ( psk ) and its
       identifier ( psk_id ) must be supplied.

RETURNS         top

       0 on success, or a negative error code on failure

SINCE         top

       3.8.13

REPORTING BUGS         top

       Report bugs to <bugs@gnutls.org>.
       Home page: https://www.gnutls.org

COPYRIGHT         top

       Copyright © 2001-2023 Free Software Foundation, Inc., and others.
       Copying and distribution of this file, with or without
       modification, are permitted in any medium without royalty provided
       the copyright notice and this notice are preserved.

SEE ALSO         top

       The full documentation for gnutls is maintained as a Texinfo
       manual.  If the /usr/share/doc/gnutls/ directory does not contain
       the HTML form visit

       https://www.gnutls.org/manual/

COLOPHON         top

       This page is part of the GnuTLS (GnuTLS Transport Layer Security
       Library) project.  Information about the project can be found at
       ⟨http://www.gnutls.org/⟩.  If you have a bug report for this
       manual page, send it to bugs@gnutls.org.  This page was obtained
       from the tarball fetched from
       ⟨https://www.gnupg.org/ftp/gcrypt/gnutls/⟩ on 2026-05-24.  If you
       discover any rendering problems in this HTML version of the page,
       or you believe there is a better or more up-to-date source for the
       page, or you have corrections or improvements to the information
       in this COLOPHON (which is not part of the original manual page),
       send a mail to man-pages@man7.org

gnutls                            3.8.13             gnutls_hpke_encap(3)