19#include "hitls_build.h"
23#include "crypt_types.h"
24#include "crypt_algid.h"
25#include "bsl_params.h"
31#ifndef CRYPT_DH_TRY_CNT_MAX
32#define CRYPT_DH_TRY_CNT_MAX 100
36typedef struct DH_Para CRYPT_DH_Para;
39typedef struct DH_Ctx CRYPT_DH_Ctx;
48CRYPT_DH_Ctx *CRYPT_DH_NewCtx(
void);
59CRYPT_DH_Ctx *CRYPT_DH_NewCtxEx(
void *libCtx);
70CRYPT_DH_Ctx *CRYPT_DH_DupCtx(CRYPT_DH_Ctx *ctx);
78void CRYPT_DH_FreeCtx(CRYPT_DH_Ctx *ctx);
89CRYPT_DH_Para *CRYPT_DH_NewPara(
const CRYPT_DhPara *para);
97void CRYPT_DH_FreePara(CRYPT_DH_Para *dhPara);
112int32_t CRYPT_DH_SetPara(CRYPT_DH_Ctx *ctx,
const CRYPT_DhPara *para);
126int32_t CRYPT_DH_GetPara(
const CRYPT_DH_Ctx *ctx,
CRYPT_DhPara *para);
136CRYPT_DH_Para *CRYPT_DH_NewParaById(int32_t
id);
157uint32_t CRYPT_DH_GetBits(
const CRYPT_DH_Ctx *ctx);
172int32_t CRYPT_DH_Gen(CRYPT_DH_Ctx *ctx);
191int32_t CRYPT_DH_ComputeShareKey(
const CRYPT_DH_Ctx *ctx,
const CRYPT_DH_Ctx *pubKey,
192 uint8_t *shareKey, uint32_t *shareKeyLen);
208int32_t CRYPT_DH_SetPrvKey(CRYPT_DH_Ctx *ctx,
const CRYPT_DhPrv *prv);
224int32_t CRYPT_DH_SetPubKey(CRYPT_DH_Ctx *ctx,
const CRYPT_DhPub *pub);
239int32_t CRYPT_DH_GetPrvKey(
const CRYPT_DH_Ctx *ctx,
CRYPT_DhPrv *prv);
254int32_t CRYPT_DH_GetPubKey(
const CRYPT_DH_Ctx *ctx,
CRYPT_DhPub *pub);
256#ifdef HITLS_BSL_PARAMS
271int32_t CRYPT_DH_SetPrvKeyEx(CRYPT_DH_Ctx *ctx,
const BSL_Param *para);
287int32_t CRYPT_DH_SetPubKeyEx(CRYPT_DH_Ctx *ctx,
const BSL_Param *para);
302int32_t CRYPT_DH_GetPrvKeyEx(
const CRYPT_DH_Ctx *ctx, BSL_Param *para);
317int32_t CRYPT_DH_GetPubKeyEx(
const CRYPT_DH_Ctx *ctx, BSL_Param *para);
332int32_t CRYPT_DH_SetParaEx(CRYPT_DH_Ctx *ctx,
const BSL_Param *para);
346int32_t CRYPT_DH_GetParaEx(
const CRYPT_DH_Ctx *ctx, BSL_Param *para);
349#ifdef HITLS_CRYPTO_DH_CHECK
361int32_t CRYPT_DH_Check(uint32_t checkType,
const CRYPT_DH_Ctx *pkey1,
const CRYPT_DH_Ctx *pkey2);
365#ifdef HITLS_CRYPTO_DH_CMP
380int32_t CRYPT_DH_Cmp(
const CRYPT_DH_Ctx *a,
const CRYPT_DH_Ctx *b);
382#define CRYPT_DH_Cmp NULL
397int32_t CRYPT_DH_Ctrl(CRYPT_DH_Ctx *ctx, int32_t opt,
void *val, uint32_t len);
409int32_t CRYPT_DH_CopyParam(
const CRYPT_DH_Ctx *src, CRYPT_DH_Ctx *dest);
419int32_t CRYPT_DH_GetSecBits(
const CRYPT_DH_Ctx *ctx);
CRYPT_PKEY_ParaId
定义 crypt_algid.h:208
CRYPT_Data CRYPT_DhPrv
定义 crypt_types.h:296
CRYPT_Data CRYPT_DhPub
定义 crypt_types.h:435