8#ifndef BOTAN_XMSS_PARAMETERS_H_
9#define BOTAN_XMSS_PARAMETERS_H_
14#include <botan/build.h>
15#include <botan/secmem.h>
37 WOTSP_SHA2_256 = 0x00000001,
41 WOTSP_SHA2_512 = 0x00000002,
42 WOTSP_SHAKE_256 = 0x00000003,
43 WOTSP_SHAKE_512 = 0x00000004,
46 WOTSP_SHA2_192 = 0x00000005,
47 WOTSP_SHAKE_256_256 = 0x00000006,
48 WOTSP_SHAKE_256_192 = 0x00000007,
54 static ots_algorithm_t xmss_wots_id_from_string(std::string_view param_set);
73 const std::string
name()
const
95 size_t len()
const {
return m_len; }
97 size_t len_1()
const {
return m_len_1; }
99 size_t len_2()
const {
return m_len_2; }
101 size_t lg_w()
const {
return m_lg_w; }
109 return m_oid == p.m_oid;
113 static const std::map<std::string, ots_algorithm_t> m_oid_name_lut;
114 ots_algorithm_t m_oid;
116 std::string m_hash_name;
117 size_t m_element_size;
143 XMSS_SHA2_10_256 = 0x00000001,
144 XMSS_SHA2_16_256 = 0x00000002,
145 XMSS_SHA2_20_256 = 0x00000003,
149 XMSS_SHA2_10_512 = 0x00000004,
150 XMSS_SHA2_16_512 = 0x00000005,
151 XMSS_SHA2_20_512 = 0x00000006,
152 XMSS_SHAKE_10_256 = 0x00000007,
153 XMSS_SHAKE_16_256 = 0x00000008,
154 XMSS_SHAKE_20_256 = 0x00000009,
155 XMSS_SHAKE_10_512 = 0x0000000a,
156 XMSS_SHAKE_16_512 = 0x0000000b,
157 XMSS_SHAKE_20_512 = 0x0000000c,
160 XMSS_SHA2_10_192 = 0x0000000d,
161 XMSS_SHA2_16_192 = 0x0000000e,
162 XMSS_SHA2_20_192 = 0x0000000f,
163 XMSS_SHAKE256_10_256 = 0x00000010,
164 XMSS_SHAKE256_16_256 = 0x00000011,
165 XMSS_SHAKE256_20_256 = 0x00000012,
166 XMSS_SHAKE256_10_192 = 0x00000013,
167 XMSS_SHAKE256_16_192 = 0x00000014,
168 XMSS_SHAKE256_20_192 = 0x00000015,
171 static xmss_algorithm_t xmss_id_from_string(std::string_view algo_name);
226 size_t len()
const {
return m_len; }
246 return sizeof(uint32_t) + 2 * element_size();
251 return raw_public_key_size() +
258 return raw_legacy_private_key_size()
264 return m_oid == p.m_oid;
268 xmss_algorithm_t m_oid;
271 std::string m_hash_name;
272 size_t m_element_size;
273 size_t m_hash_id_size;
274 size_t m_tree_height;
size_t total_number_of_signatures() const
size_t hash_id_size() const
size_t raw_private_key_size() const
const std::string name() const
size_t estimated_strength() const
size_t wots_parameter() const
size_t raw_public_key_size() const
size_t tree_height() const
xmss_algorithm_t oid() const
XMSS_WOTS_Parameters::ots_algorithm_t ots_oid() const
const std::string hash_function_name() const
size_t raw_legacy_private_key_size() const
size_t element_size() const
bool operator==(const XMSS_Parameters &p) const
size_t wots_parameter() const
size_t element_size() const
ots_algorithm_t oid() const
size_t estimated_strength() const
const std::string name() const
bool operator==(const XMSS_WOTS_Parameters &p) const
int(* final)(unsigned char *, CTX *)
#define BOTAN_PUBLIC_API(maj, min)
std::vector< T, secure_allocator< T > > secure_vector