Classes | Macros | Typedefs | Functions
hpke.h File Reference
#include <openssl/aead.h>
#include <openssl/base.h>
#include <openssl/curve25519.h>
#include <openssl/digest.h>
Include dependency graph for hpke.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  evp_hpke_ctx_st
 
struct  evp_hpke_key_st
 

Macros

#define EVP_HPKE_AES_128_GCM   0x0001
 
#define EVP_HPKE_AES_256_GCM   0x0002
 
#define EVP_HPKE_CHACHA20_POLY1305   0x0003
 
#define EVP_HPKE_DHKEM_X25519_HKDF_SHA256   0x0020
 
#define EVP_HPKE_HKDF_SHA256   0x0001
 
#define EVP_HPKE_MAX_ENC_LENGTH   32
 
#define EVP_HPKE_MAX_OVERHEAD   EVP_AEAD_MAX_OVERHEAD
 
#define EVP_HPKE_MAX_PRIVATE_KEY_LENGTH   32
 
#define EVP_HPKE_MAX_PUBLIC_KEY_LENGTH   32
 

Typedefs

using ScopedEVP_HPKE_CTX = internal::StackAllocated< EVP_HPKE_CTX, void, EVP_HPKE_CTX_zero, EVP_HPKE_CTX_cleanup >
 
using ScopedEVP_HPKE_KEY = internal::StackAllocated< EVP_HPKE_KEY, void, EVP_HPKE_KEY_zero, EVP_HPKE_KEY_cleanup >
 

Functions

const OPENSSL_EXPORT EVP_AEADEVP_HPKE_AEAD_aead (const EVP_HPKE_AEAD *aead)
 
OPENSSL_EXPORT uint16_t EVP_HPKE_AEAD_id (const EVP_HPKE_AEAD *aead)
 
const OPENSSL_EXPORT EVP_HPKE_AEADEVP_hpke_aes_128_gcm (void)
 
const OPENSSL_EXPORT EVP_HPKE_AEADEVP_hpke_aes_256_gcm (void)
 
const OPENSSL_EXPORT EVP_HPKE_AEADEVP_hpke_chacha20_poly1305 (void)
 
const OPENSSL_EXPORT EVP_HPKE_AEADEVP_HPKE_CTX_aead (const EVP_HPKE_CTX *ctx)
 
OPENSSL_EXPORT void EVP_HPKE_CTX_cleanup (EVP_HPKE_CTX *ctx)
 
OPENSSL_EXPORT int EVP_HPKE_CTX_export (const EVP_HPKE_CTX *ctx, uint8_t *out, size_t secret_len, const uint8_t *context, size_t context_len)
 
OPENSSL_EXPORT void EVP_HPKE_CTX_free (EVP_HPKE_CTX *ctx)
 
const OPENSSL_EXPORT EVP_HPKE_KDFEVP_HPKE_CTX_kdf (const EVP_HPKE_CTX *ctx)
 
OPENSSL_EXPORT size_t EVP_HPKE_CTX_max_overhead (const EVP_HPKE_CTX *ctx)
 
OPENSSL_EXPORT EVP_HPKE_CTXEVP_HPKE_CTX_new (void)
 
OPENSSL_EXPORT int EVP_HPKE_CTX_open (EVP_HPKE_CTX *ctx, uint8_t *out, size_t *out_len, size_t max_out_len, const uint8_t *in, size_t in_len, const uint8_t *ad, size_t ad_len)
 
OPENSSL_EXPORT int EVP_HPKE_CTX_seal (EVP_HPKE_CTX *ctx, uint8_t *out, size_t *out_len, size_t max_out_len, const uint8_t *in, size_t in_len, const uint8_t *ad, size_t ad_len)
 
OPENSSL_EXPORT int EVP_HPKE_CTX_setup_recipient (EVP_HPKE_CTX *ctx, const EVP_HPKE_KEY *key, const EVP_HPKE_KDF *kdf, const EVP_HPKE_AEAD *aead, const uint8_t *enc, size_t enc_len, const uint8_t *info, size_t info_len)
 
OPENSSL_EXPORT int EVP_HPKE_CTX_setup_sender (EVP_HPKE_CTX *ctx, uint8_t *out_enc, size_t *out_enc_len, size_t max_enc, const EVP_HPKE_KEM *kem, const EVP_HPKE_KDF *kdf, const EVP_HPKE_AEAD *aead, const uint8_t *peer_public_key, size_t peer_public_key_len, const uint8_t *info, size_t info_len)
 
OPENSSL_EXPORT int EVP_HPKE_CTX_setup_sender_with_seed_for_testing (EVP_HPKE_CTX *ctx, uint8_t *out_enc, size_t *out_enc_len, size_t max_enc, const EVP_HPKE_KEM *kem, const EVP_HPKE_KDF *kdf, const EVP_HPKE_AEAD *aead, const uint8_t *peer_public_key, size_t peer_public_key_len, const uint8_t *info, size_t info_len, const uint8_t *seed, size_t seed_len)
 
OPENSSL_EXPORT void EVP_HPKE_CTX_zero (EVP_HPKE_CTX *ctx)
 
const OPENSSL_EXPORT EVP_HPKE_KDFEVP_hpke_hkdf_sha256 (void)
 
OPENSSL_EXPORT uint16_t EVP_HPKE_KDF_id (const EVP_HPKE_KDF *kdf)
 
OPENSSL_EXPORT uint16_t EVP_HPKE_KEM_id (const EVP_HPKE_KEM *kem)
 
OPENSSL_EXPORT void EVP_HPKE_KEY_cleanup (EVP_HPKE_KEY *key)
 
OPENSSL_EXPORT int EVP_HPKE_KEY_copy (EVP_HPKE_KEY *dst, const EVP_HPKE_KEY *src)
 
OPENSSL_EXPORT void EVP_HPKE_KEY_free (EVP_HPKE_KEY *key)
 
OPENSSL_EXPORT int EVP_HPKE_KEY_generate (EVP_HPKE_KEY *key, const EVP_HPKE_KEM *kem)
 
OPENSSL_EXPORT int EVP_HPKE_KEY_init (EVP_HPKE_KEY *key, const EVP_HPKE_KEM *kem, const uint8_t *priv_key, size_t priv_key_len)
 
const OPENSSL_EXPORT EVP_HPKE_KEMEVP_HPKE_KEY_kem (const EVP_HPKE_KEY *key)
 
OPENSSL_EXPORT EVP_HPKE_KEYEVP_HPKE_KEY_new (void)
 
OPENSSL_EXPORT int EVP_HPKE_KEY_private_key (const EVP_HPKE_KEY *key, uint8_t *out, size_t *out_len, size_t max_out)
 
OPENSSL_EXPORT int EVP_HPKE_KEY_public_key (const EVP_HPKE_KEY *key, uint8_t *out, size_t *out_len, size_t max_out)
 
OPENSSL_EXPORT void EVP_HPKE_KEY_zero (EVP_HPKE_KEY *key)
 
const OPENSSL_EXPORT EVP_HPKE_KEMEVP_hpke_x25519_hkdf_sha256 (void)
 

Macro Definition Documentation

◆ EVP_HPKE_AES_128_GCM

#define EVP_HPKE_AES_128_GCM   0x0001

Definition at line 64 of file hpke.h.

◆ EVP_HPKE_AES_256_GCM

#define EVP_HPKE_AES_256_GCM   0x0002

Definition at line 65 of file hpke.h.

◆ EVP_HPKE_CHACHA20_POLY1305

#define EVP_HPKE_CHACHA20_POLY1305   0x0003

Definition at line 66 of file hpke.h.

◆ EVP_HPKE_DHKEM_X25519_HKDF_SHA256

#define EVP_HPKE_DHKEM_X25519_HKDF_SHA256   0x0020

Definition at line 43 of file hpke.h.

◆ EVP_HPKE_HKDF_SHA256

#define EVP_HPKE_HKDF_SHA256   0x0001

Definition at line 55 of file hpke.h.

◆ EVP_HPKE_MAX_ENC_LENGTH

#define EVP_HPKE_MAX_ENC_LENGTH   32

Definition at line 187 of file hpke.h.

◆ EVP_HPKE_MAX_OVERHEAD

#define EVP_HPKE_MAX_OVERHEAD   EVP_AEAD_MAX_OVERHEAD

Definition at line 288 of file hpke.h.

◆ EVP_HPKE_MAX_PRIVATE_KEY_LENGTH

#define EVP_HPKE_MAX_PRIVATE_KEY_LENGTH   32

Definition at line 145 of file hpke.h.

◆ EVP_HPKE_MAX_PUBLIC_KEY_LENGTH

#define EVP_HPKE_MAX_PUBLIC_KEY_LENGTH   32

Definition at line 132 of file hpke.h.

Typedef Documentation

◆ ScopedEVP_HPKE_CTX

using ScopedEVP_HPKE_CTX = internal::StackAllocated<EVP_HPKE_CTX, void, EVP_HPKE_CTX_zero, EVP_HPKE_CTX_cleanup>

Definition at line 337 of file hpke.h.

◆ ScopedEVP_HPKE_KEY

using ScopedEVP_HPKE_KEY = internal::StackAllocated<EVP_HPKE_KEY, void, EVP_HPKE_KEY_zero, EVP_HPKE_KEY_cleanup>

Definition at line 340 of file hpke.h.

Function Documentation

◆ EVP_HPKE_AEAD_aead()

const OPENSSL_EXPORT EVP_AEAD* EVP_HPKE_AEAD_aead ( const EVP_HPKE_AEAD aead)

Definition at line 338 of file hpke.c.

◆ EVP_HPKE_AEAD_id()

OPENSSL_EXPORT uint16_t EVP_HPKE_AEAD_id ( const EVP_HPKE_AEAD aead)

Definition at line 336 of file hpke.c.

◆ EVP_hpke_aes_128_gcm()

const OPENSSL_EXPORT EVP_HPKE_AEAD* EVP_hpke_aes_128_gcm ( void  )

Definition at line 318 of file hpke.c.

◆ EVP_hpke_aes_256_gcm()

const OPENSSL_EXPORT EVP_HPKE_AEAD* EVP_hpke_aes_256_gcm ( void  )

Definition at line 324 of file hpke.c.

◆ EVP_hpke_chacha20_poly1305()

const OPENSSL_EXPORT EVP_HPKE_AEAD* EVP_hpke_chacha20_poly1305 ( void  )

Definition at line 330 of file hpke.c.

◆ EVP_HPKE_CTX_aead()

const OPENSSL_EXPORT EVP_HPKE_AEAD* EVP_HPKE_CTX_aead ( const EVP_HPKE_CTX ctx)

Definition at line 612 of file hpke.c.

◆ EVP_HPKE_CTX_cleanup()

OPENSSL_EXPORT void EVP_HPKE_CTX_cleanup ( EVP_HPKE_CTX ctx)

Definition at line 447 of file hpke.c.

◆ EVP_HPKE_CTX_export()

OPENSSL_EXPORT int EVP_HPKE_CTX_export ( const EVP_HPKE_CTX ctx,
uint8_t out,
size_t  secret_len,
const uint8_t context,
size_t  context_len 
)

Definition at line 591 of file hpke.c.

◆ EVP_HPKE_CTX_free()

OPENSSL_EXPORT void EVP_HPKE_CTX_free ( EVP_HPKE_CTX ctx)

Definition at line 461 of file hpke.c.

◆ EVP_HPKE_CTX_kdf()

const OPENSSL_EXPORT EVP_HPKE_KDF* EVP_HPKE_CTX_kdf ( const EVP_HPKE_CTX ctx)

Definition at line 616 of file hpke.c.

◆ EVP_HPKE_CTX_max_overhead()

OPENSSL_EXPORT size_t EVP_HPKE_CTX_max_overhead ( const EVP_HPKE_CTX ctx)

Definition at line 607 of file hpke.c.

◆ EVP_HPKE_CTX_new()

OPENSSL_EXPORT EVP_HPKE_CTX* EVP_HPKE_CTX_new ( void  )

Definition at line 451 of file hpke.c.

◆ EVP_HPKE_CTX_open()

OPENSSL_EXPORT int EVP_HPKE_CTX_open ( EVP_HPKE_CTX ctx,
uint8_t out,
size_t *  out_len,
size_t  max_out_len,
const uint8_t in,
size_t  in_len,
const uint8_t ad,
size_t  ad_len 
)

Definition at line 543 of file hpke.c.

◆ EVP_HPKE_CTX_seal()

OPENSSL_EXPORT int EVP_HPKE_CTX_seal ( EVP_HPKE_CTX ctx,
uint8_t out,
size_t *  out_len,
size_t  max_out_len,
const uint8_t in,
size_t  in_len,
const uint8_t ad,
size_t  ad_len 
)

Definition at line 567 of file hpke.c.

◆ EVP_HPKE_CTX_setup_recipient()

OPENSSL_EXPORT int EVP_HPKE_CTX_setup_recipient ( EVP_HPKE_CTX ctx,
const EVP_HPKE_KEY key,
const EVP_HPKE_KDF kdf,
const EVP_HPKE_AEAD aead,
const uint8_t enc,
size_t  enc_len,
const uint8_t info,
size_t  info_len 
)

Definition at line 505 of file hpke.c.

◆ EVP_HPKE_CTX_setup_sender()

OPENSSL_EXPORT int EVP_HPKE_CTX_setup_sender ( EVP_HPKE_CTX ctx,
uint8_t out_enc,
size_t *  out_enc_len,
size_t  max_enc,
const EVP_HPKE_KEM kem,
const EVP_HPKE_KDF kdf,
const EVP_HPKE_AEAD aead,
const uint8_t peer_public_key,
size_t  peer_public_key_len,
const uint8_t info,
size_t  info_len 
)

Definition at line 468 of file hpke.c.

◆ EVP_HPKE_CTX_setup_sender_with_seed_for_testing()

OPENSSL_EXPORT int EVP_HPKE_CTX_setup_sender_with_seed_for_testing ( EVP_HPKE_CTX ctx,
uint8_t out_enc,
size_t *  out_enc_len,
size_t  max_enc,
const EVP_HPKE_KEM kem,
const EVP_HPKE_KDF kdf,
const EVP_HPKE_AEAD aead,
const uint8_t peer_public_key,
size_t  peer_public_key_len,
const uint8_t info,
size_t  info_len,
const uint8_t seed,
size_t  seed_len 
)

Definition at line 482 of file hpke.c.

◆ EVP_HPKE_CTX_zero()

OPENSSL_EXPORT void EVP_HPKE_CTX_zero ( EVP_HPKE_CTX ctx)

Definition at line 442 of file hpke.c.

◆ EVP_hpke_hkdf_sha256()

const OPENSSL_EXPORT EVP_HPKE_KDF* EVP_hpke_hkdf_sha256 ( void  )

Definition at line 311 of file hpke.c.

◆ EVP_HPKE_KDF_id()

OPENSSL_EXPORT uint16_t EVP_HPKE_KDF_id ( const EVP_HPKE_KDF kdf)

Definition at line 316 of file hpke.c.

◆ EVP_HPKE_KEM_id()

OPENSSL_EXPORT uint16_t EVP_HPKE_KEM_id ( const EVP_HPKE_KEM kem)

Definition at line 227 of file hpke.c.

◆ EVP_HPKE_KEY_cleanup()

OPENSSL_EXPORT void EVP_HPKE_KEY_cleanup ( EVP_HPKE_KEY key)

Definition at line 233 of file hpke.c.

◆ EVP_HPKE_KEY_copy()

OPENSSL_EXPORT int EVP_HPKE_KEY_copy ( EVP_HPKE_KEY dst,
const EVP_HPKE_KEY src 
)

Definition at line 255 of file hpke.c.

◆ EVP_HPKE_KEY_free()

OPENSSL_EXPORT void EVP_HPKE_KEY_free ( EVP_HPKE_KEY key)

Definition at line 248 of file hpke.c.

◆ EVP_HPKE_KEY_generate()

OPENSSL_EXPORT int EVP_HPKE_KEY_generate ( EVP_HPKE_KEY key,
const EVP_HPKE_KEM kem 
)

Definition at line 272 of file hpke.c.

◆ EVP_HPKE_KEY_init()

OPENSSL_EXPORT int EVP_HPKE_KEY_init ( EVP_HPKE_KEY key,
const EVP_HPKE_KEM kem,
const uint8_t priv_key,
size_t  priv_key_len 
)

Definition at line 261 of file hpke.c.

◆ EVP_HPKE_KEY_kem()

const OPENSSL_EXPORT EVP_HPKE_KEM* EVP_HPKE_KEY_kem ( const EVP_HPKE_KEY key)

Definition at line 282 of file hpke.c.

◆ EVP_HPKE_KEY_new()

OPENSSL_EXPORT EVP_HPKE_KEY* EVP_HPKE_KEY_new ( void  )

Definition at line 238 of file hpke.c.

◆ EVP_HPKE_KEY_private_key()

OPENSSL_EXPORT int EVP_HPKE_KEY_private_key ( const EVP_HPKE_KEY key,
uint8_t out,
size_t *  out_len,
size_t  max_out 
)

Definition at line 297 of file hpke.c.

◆ EVP_HPKE_KEY_public_key()

OPENSSL_EXPORT int EVP_HPKE_KEY_public_key ( const EVP_HPKE_KEY key,
uint8_t out,
size_t *  out_len,
size_t  max_out 
)

Definition at line 286 of file hpke.c.

◆ EVP_HPKE_KEY_zero()

OPENSSL_EXPORT void EVP_HPKE_KEY_zero ( EVP_HPKE_KEY key)

Definition at line 229 of file hpke.c.

◆ EVP_hpke_x25519_hkdf_sha256()

const OPENSSL_EXPORT EVP_HPKE_KEM* EVP_hpke_x25519_hkdf_sha256 ( void  )

Definition at line 213 of file hpke.c.



grpc
Author(s):
autogenerated on Fri May 16 2025 03:01:19