19#include "crypt_types.h"
20#include "bsl_params.h"
25CRYPT_ML_DSA_Ctx *CRYPT_ML_DSA_NewCtx(
void);
26CRYPT_ML_DSA_Ctx *CRYPT_ML_DSA_NewCtxEx(
void *libCtx);
28void CRYPT_ML_DSA_FreeCtx(CRYPT_ML_DSA_Ctx *ctx);
30CRYPT_ML_DSA_Ctx *CRYPT_ML_DSA_DupCtx(CRYPT_ML_DSA_Ctx *ctx);
32int32_t CRYPT_ML_DSA_Ctrl(CRYPT_ML_DSA_Ctx *ctx, int32_t opt,
void *val, uint32_t len);
34int32_t CRYPT_ML_DSA_GenKey(CRYPT_ML_DSA_Ctx *ctx);
36int32_t CRYPT_ML_DSA_Sign(CRYPT_ML_DSA_Ctx *ctx, int32_t hashId,
const uint8_t *data, uint32_t dataLen,
37 uint8_t *sign, uint32_t *signLen);
39int32_t CRYPT_ML_DSA_Verify(CRYPT_ML_DSA_Ctx *ctx, int32_t hashId,
const uint8_t *data, uint32_t dataLen,
40 uint8_t *sign, uint32_t signLen);
42int32_t CRYPT_ML_DSA_SetPrvKey(CRYPT_ML_DSA_Ctx *ctx,
CRYPT_MlDsaPrv *prv);
44int32_t CRYPT_ML_DSA_SetPubKey(CRYPT_ML_DSA_Ctx *ctx,
CRYPT_MlDsaPub *pub);
46int32_t CRYPT_ML_DSA_GetPrvKey(
const CRYPT_ML_DSA_Ctx *ctx,
CRYPT_MlDsaPrv *prv);
48int32_t CRYPT_ML_DSA_GetPubKey(
const CRYPT_ML_DSA_Ctx *ctx,
CRYPT_MlDsaPub *pub);
50int32_t CRYPT_ML_DSA_SetPrvKeyEx(CRYPT_ML_DSA_Ctx *ctx,
const BSL_Param *para);
52int32_t CRYPT_ML_DSA_SetPubKeyEx(CRYPT_ML_DSA_Ctx *ctx,
const BSL_Param *para);
54int32_t CRYPT_ML_DSA_GetPrvKeyEx(
const CRYPT_ML_DSA_Ctx *ctx, BSL_Param *para);
56int32_t CRYPT_ML_DSA_GetPubKeyEx(
const CRYPT_ML_DSA_Ctx *ctx, BSL_Param *para);
58#ifdef HITLS_CRYPTO_MLDSA_CMP
59int32_t CRYPT_ML_DSA_Cmp(
const CRYPT_ML_DSA_Ctx *a,
const CRYPT_ML_DSA_Ctx *b);
61#define CRYPT_ML_DSA_Cmp NULL
64#ifdef HITLS_CRYPTO_MLDSA_CHECK
77int32_t CRYPT_ML_DSA_Check(uint32_t checkType,
const CRYPT_ML_DSA_Ctx *pkey1,
const CRYPT_ML_DSA_Ctx *pkey2);
CRYPT_Data CRYPT_MlDsaPrv
定义 crypt_types.h:324
CRYPT_Data CRYPT_MlDsaPub
定义 crypt_types.h:463