11#ifndef BOTAN_SP_WOTS_H_
12#define BOTAN_SP_WOTS_H_
14#include <botan/internal/sp_types.h>
20class Sphincs_Hash_Functions;
21class Sphincs_Parameters;
30 StrongSpan<SphincsTreeNode> leaf_out,
33 std::optional<TreeNodeIndex> sign_leaf_idx,
34 const std::vector<WotsHashIndex>& wots_steps,
35 Sphincs_Address& leaf_addr,
36 Sphincs_Address& pk_addr,
37 const Sphincs_Parameters& params,
38 Sphincs_Hash_Functions& hashes);
45 StrongSpan<const WotsSignature> signature,
46 Sphincs_Address& address,
47 const Sphincs_Parameters& params,
48 Sphincs_Hash_Functions& hashes);
Strong< std::vector< uint8_t >, struct SphincsTreeNode_ > SphincsTreeNode
Either an XMSS or FORS tree node or leaf.
WotsPublicKey wots_public_key_from_signature(const SphincsTreeNode &hashed_message, StrongSpan< const WotsSignature > signature, Sphincs_Address &address, const Sphincs_Parameters ¶ms, Sphincs_Hash_Functions &hashes)
void wots_sign_and_pkgen(StrongSpan< WotsSignature > sig_out, StrongSpan< SphincsTreeNode > leaf_out, const SphincsSecretSeed &secret_seed, TreeNodeIndex leaf_idx, std::optional< TreeNodeIndex > sign_leaf_idx, const std::vector< WotsHashIndex > &wots_steps, Sphincs_Address &leaf_addr, Sphincs_Address &pk_addr, const Sphincs_Parameters ¶ms, Sphincs_Hash_Functions &hashes)
Strong< std::vector< uint8_t >, struct WotsPublicKey_ > WotsPublicKey
Strong< secure_vector< uint8_t >, struct SphincsSecretSeed_ > SphincsSecretSeed
Strong< uint32_t, struct TreeNodeIndex_, EnableArithmeticWithPlainNumber > TreeNodeIndex
Index of an individual node inside an XMSS or FORS tree.
std::vector< WotsHashIndex > chain_lengths(const SphincsTreeNode &msg, const Sphincs_Parameters ¶ms)