16#ifndef CRYPT_SLH_DSA_H
17#define CRYPT_SLH_DSA_H
19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_SLH_DSA
23#include "bsl_params.h"
25typedef struct SlhDsaCtx CryptSlhDsaCtx;
26typedef struct HashFuncs SlhDsaHashFuncs;
27typedef union Adrs SlhDsaAdrs;
34CryptSlhDsaCtx *CRYPT_SLH_DSA_NewCtx(
void);
43CryptSlhDsaCtx *CRYPT_SLH_DSA_NewCtxEx(
void *libCtx);
50void CRYPT_SLH_DSA_FreeCtx(CryptSlhDsaCtx *ctx);
52CryptSlhDsaCtx *CRYPT_SLH_DSA_DupCtx(CryptSlhDsaCtx *ctx);
59int32_t CRYPT_SLH_DSA_Gen(CryptSlhDsaCtx *ctx);
71int32_t CRYPT_SLH_DSA_Sign(CryptSlhDsaCtx *ctx, int32_t algId,
const uint8_t *data, uint32_t dataLen, uint8_t *sign,
85int32_t CRYPT_SLH_DSA_Verify(
const CryptSlhDsaCtx *ctx, int32_t algId,
const uint8_t *data, uint32_t dataLen,
86 const uint8_t *sign, uint32_t signLen);
96int32_t CRYPT_SLH_DSA_Ctrl(CryptSlhDsaCtx *ctx, int32_t opt,
void *val, uint32_t len);
104int32_t CRYPT_SLH_DSA_GetPubKey(
const CryptSlhDsaCtx *ctx,
CRYPT_SlhDsaPub *pub);
112int32_t CRYPT_SLH_DSA_GetPrvKey(
const CryptSlhDsaCtx *ctx,
CRYPT_SlhDsaPrv *prv);
120int32_t CRYPT_SLH_DSA_SetPubKey(CryptSlhDsaCtx *ctx,
const CRYPT_SlhDsaPub *pub);
128int32_t CRYPT_SLH_DSA_SetPrvKey(CryptSlhDsaCtx *ctx,
const CRYPT_SlhDsaPrv *prv);
136int32_t CRYPT_SLH_DSA_GetPubKeyEx(
const CryptSlhDsaCtx *ctx, BSL_Param *para);
144int32_t CRYPT_SLH_DSA_GetPrvKeyEx(
const CryptSlhDsaCtx *ctx, BSL_Param *para);
152int32_t CRYPT_SLH_DSA_SetPubKeyEx(CryptSlhDsaCtx *ctx,
const BSL_Param *para);
160int32_t CRYPT_SLH_DSA_SetPrvKeyEx(CryptSlhDsaCtx *ctx,
const BSL_Param *para);
162#ifdef HITLS_CRYPTO_SLH_DSA_CHECK
174int32_t CRYPT_SLH_DSA_Check(uint32_t checkType,
const CryptSlhDsaCtx *pkey1,
const CryptSlhDsaCtx *pkey2);
SLH-DSA private key structure
定义 crypt_types.h:365
SLH-DSA public key structure
定义 crypt_types.h:356