HPKE#
Note
This API is experimental and subject to change.
Hybrid public key encryption (HPKE) according to RFC 9180.
Available Implementations#
#include "Hacl_HPKE_Curve51_CP32_SHA256.h"
#include "Hacl_HPKE_Curve51_CP32_SHA512.h"
#include "Hacl_HPKE_Curve51_CP128_SHA256.h"
#include "Hacl_HPKE_Curve51_CP128_SHA512.h"
#include "Hacl_HPKE_Curve51_CP256_SHA256.h"
#include "Hacl_HPKE_Curve51_CP256_SHA512.h"
#include "Hacl_HPKE_Curve64_CP32_SHA256.h"
#include "Hacl_HPKE_Curve64_CP32_SHA512.h"
#include "Hacl_HPKE_Curve64_CP128_SHA256.h"
#include "Hacl_HPKE_Curve64_CP128_SHA512.h"
#include "Hacl_HPKE_Curve64_CP256_SHA256.h"
#include "Hacl_HPKE_Curve64_CP256_SHA512.h"
#include "Hacl_HPKE_P256_CP32_SHA256.h"
Not available.
#include "Hacl_HPKE_P256_CP128_SHA256.h"
Not available.
#include "Hacl_HPKE_P256_CP256_SHA256.h"
Not available.
API Reference#
#include "Hacl_HPKE_Interface_Hacl_Impl_HPKE_Hacl_Meta_HPKE.h"
-
typedef struct Hacl_Impl_HPKE_context_s_s Hacl_Impl_HPKE_context_s#
-
uint32_t Hacl_HPKE_Curve51_CP32_SHA256_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP32_SHA256_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP32_SHA256_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve51_CP32_SHA256_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_Curve51_CP32_SHA512_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP32_SHA512_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP32_SHA512_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve51_CP32_SHA512_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_Curve51_CP128_SHA256_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP128_SHA256_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP128_SHA256_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve51_CP128_SHA256_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_Curve51_CP128_SHA512_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP128_SHA512_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP128_SHA512_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve51_CP128_SHA512_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_Curve51_CP256_SHA256_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP256_SHA256_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP256_SHA256_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve51_CP256_SHA256_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_Curve51_CP256_SHA512_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP256_SHA512_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve51_CP256_SHA512_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve51_CP256_SHA512_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_Curve64_CP32_SHA256_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP32_SHA256_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP32_SHA256_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve64_CP32_SHA256_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_Curve64_CP32_SHA512_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP32_SHA512_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP32_SHA512_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve64_CP32_SHA512_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_Curve64_CP128_SHA256_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP128_SHA256_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP128_SHA256_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve64_CP128_SHA256_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_Curve64_CP128_SHA512_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP128_SHA512_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP128_SHA512_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve64_CP128_SHA512_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_Curve64_CP256_SHA256_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP256_SHA256_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP256_SHA256_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve64_CP256_SHA256_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_Curve64_CP256_SHA512_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP256_SHA512_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_Curve64_CP256_SHA512_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_Curve64_CP256_SHA512_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
-
uint32_t Hacl_HPKE_P256_CP32_SHA256_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_P256_CP32_SHA256_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_P256_CP32_SHA256_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_P256_CP32_SHA256_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
Not available.
-
uint32_t Hacl_HPKE_P256_CP128_SHA256_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_P256_CP128_SHA256_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_P256_CP128_SHA256_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_P256_CP128_SHA256_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
Not available.
-
uint32_t Hacl_HPKE_P256_CP256_SHA256_setupBaseS(uint8_t *o_pkE, Hacl_Impl_HPKE_context_s o_ctx, uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_P256_CP256_SHA256_setupBaseR(Hacl_Impl_HPKE_context_s o_ctx, uint8_t *enc, uint8_t *skR, uint32_t infolen, uint8_t *info)#
-
uint32_t Hacl_HPKE_P256_CP256_SHA256_sealBase(uint8_t *skE, uint8_t *pkR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t plainlen, uint8_t *plain, uint8_t *o_enc, uint8_t *o_ct)#
-
uint32_t Hacl_HPKE_P256_CP256_SHA256_openBase(uint8_t *pkE, uint8_t *skR, uint32_t infolen, uint8_t *info, uint32_t aadlen, uint8_t *aad, uint32_t ctlen, uint8_t *ct, uint8_t *o_pt)#
Not available.