16#ifndef CRYPT_HYBRIDKEM_H
17#define CRYPT_HYBRIDKEM_H
19#include "hitls_build.h"
20#include "crypt_types.h"
21#include "bsl_params.h"
24#ifdef HITLS_CRYPTO_ECDH
28CRYPT_HybridKemCtx *CRYPT_HYBRID_KEM_NewCtx(
void);
30CRYPT_HybridKemCtx *CRYPT_HYBRID_KEM_NewCtxEx(
void *libCtx);
32void CRYPT_HYBRID_KEM_FreeCtx(CRYPT_HybridKemCtx *ctx);
34int32_t CRYPT_HYBRID_KEM_KeyCtrl(CRYPT_HybridKemCtx *ctx, int32_t opt,
void *val, uint32_t len);
36int32_t CRYPT_HYBRID_KEM_GenKey(CRYPT_HybridKemCtx *ctx);
38int32_t CRYPT_HYBRID_KEM_SetEncapsKey(CRYPT_HybridKemCtx *ctx,
const CRYPT_KemEncapsKey *ek);
39int32_t CRYPT_HYBRID_KEM_SetDecapsKey(CRYPT_HybridKemCtx *ctx,
const CRYPT_KemDecapsKey *dk);
41int32_t CRYPT_HYBRID_KEM_GetEncapsKey(
const CRYPT_HybridKemCtx *ctx,
CRYPT_KemEncapsKey *ek);
42int32_t CRYPT_HYBRID_KEM_GetDecapsKey(
const CRYPT_HybridKemCtx *ctx,
CRYPT_KemDecapsKey *dk);
44int32_t CRYPT_HYBRID_KEM_GetEncapsKeyEx(
const CRYPT_HybridKemCtx *ctx, BSL_Param *para);
45int32_t CRYPT_HYBRID_KEM_GetDecapsKeyEx(
const CRYPT_HybridKemCtx *ctx, BSL_Param *para);
47int32_t CRYPT_HYBRID_KEM_SetEncapsKeyEx(CRYPT_HybridKemCtx *ctx,
const BSL_Param *para);
48int32_t CRYPT_HYBRID_KEM_SetDecapsKeyEx(CRYPT_HybridKemCtx *ctx,
const BSL_Param *para);
50int32_t CRYPT_HYBRID_KEM_Encaps(
const CRYPT_HybridKemCtx *ctx, uint8_t *cipher, uint32_t *cipherLen,
51 uint8_t *sharekey, uint32_t *shareLen);
53int32_t CRYPT_HYBRID_KEM_Decaps(
const CRYPT_HybridKemCtx *ctx, uint8_t *cipher, uint32_t cipherLen,
54 uint8_t *sharekey, uint32_t *shareLen);
CRYPT_Data CRYPT_KemEncapsKey
定义 crypt_types.h:456
CRYPT_Data CRYPT_KemDecapsKey
定义 crypt_types.h:317
定义 crypt_hybridkem_local.h:22