14#include <botan/xmss_parameters.h>
16#include <botan/assert.h>
17#include <botan/exceptn.h>
18#include <botan/internal/fmt.h>
23 if(param_set ==
"XMSS-SHA2_10_256") {
26 if(param_set ==
"XMSS-SHA2_16_256") {
29 if(param_set ==
"XMSS-SHA2_20_256") {
32 if(param_set ==
"XMSS-SHA2_10_512") {
35 if(param_set ==
"XMSS-SHA2_16_512") {
38 if(param_set ==
"XMSS-SHA2_20_512") {
41 if(param_set ==
"XMSS-SHAKE_10_256") {
44 if(param_set ==
"XMSS-SHAKE_16_256") {
47 if(param_set ==
"XMSS-SHAKE_20_256") {
50 if(param_set ==
"XMSS-SHAKE_10_512") {
53 if(param_set ==
"XMSS-SHAKE_16_512") {
56 if(param_set ==
"XMSS-SHAKE_20_512") {
59 if(param_set ==
"XMSS-SHA2_10_192") {
62 if(param_set ==
"XMSS-SHA2_16_192") {
65 if(param_set ==
"XMSS-SHA2_20_192") {
68 if(param_set ==
"XMSS-SHAKE256_10_256") {
71 if(param_set ==
"XMSS-SHAKE256_16_256") {
74 if(param_set ==
"XMSS-SHAKE256_20_256") {
77 if(param_set ==
"XMSS-SHAKE256_10_192") {
80 if(param_set ==
"XMSS-SHAKE256_16_192") {
83 if(param_set ==
"XMSS-SHAKE256_20_192") {
87 throw Lookup_Error(
fmt(
"Unknown XMSS algorithm param '{}'", param_set));
105 return "SHAKE-128(256)";
110 return "SHAKE-256(512)";
115 return "Truncated(SHA-256,192)";
120 return "SHAKE-256(256)";
125 return "SHAKE-256(192)";
135 return "XMSS-SHA2_10_256";
138 return "XMSS-SHA2_16_256";
141 return "XMSS-SHA2_20_256";
144 return "XMSS-SHA2_10_512";
147 return "XMSS-SHA2_16_512";
150 return "XMSS-SHA2_20_512";
153 return "XMSS-SHAKE_10_256";
156 return "XMSS-SHAKE_16_256";
159 return "XMSS-SHAKE_20_256";
162 return "XMSS-SHAKE_10_512";
165 return "XMSS-SHAKE_16_512";
168 return "XMSS-SHAKE_20_512";
171 return "XMSS-SHA2_10_192";
174 return "XMSS-SHA2_16_192";
177 return "XMSS-SHA2_20_192";
180 return "XMSS-SHAKE256_10_256";
183 return "XMSS-SHAKE256_16_256";
186 return "XMSS-SHAKE256_20_256";
189 return "XMSS-SHAKE256_10_192";
192 return "XMSS-SHAKE256_16_192";
195 return "XMSS-SHAKE256_20_192";
283 throw Not_Implemented(
"Algorithm id does not match any known XMSS algorithm id:" + std::to_string(
oid));
#define BOTAN_ASSERT_UNREACHABLE()
static XMSS_Parameters from_name(std::string_view algo_name)
static xmss_algorithm_t xmss_id_from_string(std::string_view algo_name)
std::string_view name() const
XMSS_Parameters(std::string_view algo_name)
xmss_algorithm_t oid() const
std::string_view hash_function_name() const
static XMSS_Parameters from_id(xmss_algorithm_t id)
std::string fmt(std::string_view format, const T &... args)