19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_ECDH
23#include "crypt_types.h"
24#include "crypt_algid.h"
25#include "crypt_ecc_pkey.h"
26#include "bsl_params.h"
34typedef struct ECC_PkeyCtx CRYPT_ECDH_Ctx;
37typedef struct EccPara CRYPT_EcdhPara;
46CRYPT_ECDH_Ctx *CRYPT_ECDH_NewCtx(
void);
57CRYPT_ECDH_Ctx *CRYPT_ECDH_NewCtxEx(
void *libCtx);
68#define CRYPT_ECDH_DupCtx ECC_DupCtx
76#define CRYPT_ECDH_FreeCtx ECC_FreeCtx
88#define CRYPT_ECDH_NewParaById ECC_NewPara
100CRYPT_EcdhPara *CRYPT_ECDH_NewPara(
const CRYPT_EccPara *eccPara);
118#define CRYPT_ECDH_FreePara ECC_FreePara
131int32_t CRYPT_ECDH_SetPara(CRYPT_ECDH_Ctx *ctx,
const CRYPT_EccPara *para);
144#define CRYPT_ECDH_GetPara ECC_GetPara
155#define CRYPT_ECDH_GetBits ECC_PkeyGetBits
168#define CRYPT_ECDH_Gen ECC_PkeyGen
188int32_t CRYPT_ECDH_ComputeShareKey(
const CRYPT_ECDH_Ctx *ctx,
const CRYPT_ECDH_Ctx *pubKey,
189 uint8_t *shareKey, uint32_t *shareKeyLen);
203#define CRYPT_ECDH_SetPrvKey ECC_PkeySetPrvKey
217#define CRYPT_ECDH_SetPubKey ECC_PkeySetPubKey
231#define CRYPT_ECDH_GetPrvKey ECC_PkeyGetPrvKey
245#define CRYPT_ECDH_GetPubKey ECC_PkeyGetPubKey
247#ifdef HITLS_BSL_PARAMS
260#define CRYPT_ECDH_SetPrvKeyEx ECC_PkeySetPrvKeyEx
274#define CRYPT_ECDH_SetPubKeyEx ECC_PkeySetPubKeyEx
288#define CRYPT_ECDH_GetPrvKeyEx ECC_PkeyGetPrvKeyEx
302#define CRYPT_ECDH_GetPubKeyEx ECC_PkeyGetPubKeyEx
315#define CRYPT_ECDH_GetParaEx ECC_GetParaEx
328int32_t CRYPT_ECDH_SetParaEx(CRYPT_ECDH_Ctx *ctx,
const BSL_Param *para);
346int32_t CRYPT_ECDH_Ctrl(CRYPT_ECDH_Ctx *ctx, int32_t opt,
void *val, uint32_t len);
358#define CRYPT_ECDH_Cmp ECC_PkeyCmp
368int32_t CRYPT_ECDH_GetSecBits(
const CRYPT_ECDH_Ctx *ctx);
370#ifdef HITLS_CRYPTO_ECDH_CHECK
383int32_t CRYPT_ECDH_Check(uint32_t checkType,
const CRYPT_ECDH_Ctx *pkey1,
const CRYPT_ECDH_Ctx *pkey2);
CRYPT_PKEY_ParaId
定义 crypt_algid.h:208