19#include "hitls_build.h"
20#ifdef HITLS_CRYPTO_XMSS
24#include "xmss_common.h"
25#include "xmss_params.h"
26#include "xmss_address.h"
34#define XMSS_MAX_SEED_SIZE 64
42typedef struct CryptXmssCtx {
43 const XmssParams *params;
45 const CryptHashFuncs *hashFuncs;
50 uint8_t seed[XMSS_MAX_SEED_SIZE];
51 uint8_t prf[XMSS_MAX_SEED_SIZE];
53 uint8_t root[XMSS_MAX_MDSIZE];
54 uint8_t pubSeed[XMSS_MAX_SEED_SIZE];
69int32_t CRYPT_XMSS_InitInternal(CryptXmssCtx *ctx,
const XmssParams *params);
78int32_t CRYPT_XMSS_KeyGenInternal(CryptXmssCtx *ctx);
92int32_t CRYPT_XMSS_SignInternal(CryptXmssCtx *ctx,
const uint8_t *msg, uint32_t msgLen, uint8_t *sig, uint32_t *sigLen);
106int32_t CRYPT_XMSS_VerifyInternal(
const CryptXmssCtx *ctx,
const uint8_t *msg, uint32_t msgLen,
const uint8_t *sig,
115void InitTreeCtxFromXmssCtx(TreeCtx *treeCtx,
const CryptXmssCtx *ctx);