19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_XMSS
23#include "bsl_params.h"
29typedef struct CryptXmssCtx CryptXmssCtx;
37CryptXmssCtx *CRYPT_XMSS_NewCtx(
void);
47CryptXmssCtx *CRYPT_XMSS_NewCtxEx(
void *libCtx);
54void CRYPT_XMSS_FreeCtx(CryptXmssCtx *ctx);
65int32_t CRYPT_XMSS_Gen(CryptXmssCtx *ctx);
77int32_t CRYPT_XMSS_Sign(CryptXmssCtx *ctx, int32_t algId,
const uint8_t *data, uint32_t dataLen, uint8_t *sign,
90int32_t CRYPT_XMSS_Verify(
const CryptXmssCtx *ctx, int32_t algId,
const uint8_t *data, uint32_t dataLen,
91 const uint8_t *sign, uint32_t signLen);
101int32_t CRYPT_XMSS_Ctrl(CryptXmssCtx *ctx, int32_t opt,
void *val, uint32_t len);
109int32_t CRYPT_XMSS_GetPubKey(
const CryptXmssCtx *ctx, BSL_Param *para);
117int32_t CRYPT_XMSS_GetPrvKey(
const CryptXmssCtx *ctx, BSL_Param *para);
125int32_t CRYPT_XMSS_SetPubKey(CryptXmssCtx *ctx,
const BSL_Param *para);
133int32_t CRYPT_XMSS_SetPrvKey(CryptXmssCtx *ctx,
const BSL_Param *para);
135CryptXmssCtx *CRYPT_XMSS_DupCtx(CryptXmssCtx *ctx);
137#ifdef HITLS_CRYPTO_XMSS_CHECK
150int32_t CRYPT_XMSS_Check(uint32_t checkType,
const CryptXmssCtx *pkey1,
const CryptXmssCtx *pkey2);