|
Botan 3.12.0
Crypto and TLS for C&
|
#include <xmss_parameters.h>
Public Types | |
| enum | xmss_algorithm_t : uint32_t { XMSS_SHA2_10_256 = 0x00000001 , XMSS_SHA2_16_256 = 0x00000002 , XMSS_SHA2_20_256 = 0x00000003 , XMSS_SHA2_10_512 = 0x00000004 , XMSS_SHA2_16_512 = 0x00000005 , XMSS_SHA2_20_512 = 0x00000006 , XMSS_SHAKE_10_256 = 0x00000007 , XMSS_SHAKE_16_256 = 0x00000008 , XMSS_SHAKE_20_256 = 0x00000009 , XMSS_SHAKE_10_512 = 0x0000000a , XMSS_SHAKE_16_512 = 0x0000000b , XMSS_SHAKE_20_512 = 0x0000000c , XMSS_SHA2_10_192 = 0x0000000d , XMSS_SHA2_16_192 = 0x0000000e , XMSS_SHA2_20_192 = 0x0000000f , XMSS_SHAKE256_10_256 = 0x00000010 , XMSS_SHAKE256_16_256 = 0x00000011 , XMSS_SHAKE256_20_256 = 0x00000012 , XMSS_SHAKE256_10_192 = 0x00000013 , XMSS_SHAKE256_16_192 = 0x00000014 , XMSS_SHAKE256_20_192 = 0x00000015 } |
Public Member Functions | |
| size_t | element_size () const |
| size_t | estimated_strength () const |
| std::string_view | hash_function_name () const |
| size_t | hash_id_size () const |
| size_t | len () const |
| std::string_view | name () const |
| xmss_algorithm_t | oid () const |
| XMSS_Parameters & | operator= (const XMSS_Parameters &other)=default |
| XMSS_Parameters & | operator= (XMSS_Parameters &&other) noexcept=default |
| bool | operator== (const XMSS_Parameters &p) const |
| XMSS_WOTS_Parameters::ots_algorithm_t | ots_oid () const |
| size_t | raw_legacy_private_key_size () const |
| size_t | raw_private_key_size () const |
| size_t | raw_public_key_size () const |
| size_t | total_number_of_signatures () const |
| size_t | tree_height () const |
| size_t | wots_parameter () const |
| XMSS_WOTS_Parameters | wots_parameters () const |
| XMSS_Parameters (const XMSS_Parameters &other)=default | |
| XMSS_Parameters (std::string_view algo_name) | |
| XMSS_Parameters (xmss_algorithm_t oid) | |
| XMSS_Parameters (XMSS_Parameters &&other) noexcept=default | |
| ~XMSS_Parameters ()=default | |
Static Public Member Functions | |
| static XMSS_Parameters | from_id (xmss_algorithm_t id) |
| static XMSS_Parameters | from_name (std::string_view algo_name) |
| static xmss_algorithm_t | xmss_id_from_string (std::string_view algo_name) |
Describes a signature method for XMSS, as defined in: [1] XMSS: Extended Hash-Based Signatures, Request for Comments: 8391 Release: May 2018. https://datatracker.ietf.org/doc/rfc8391/ [2] Recommendation for Stateful Hash-Based Signature Schemes NIST Special Publication 800-208 Release: October 2020. https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-208.pdf
Definition at line 121 of file xmss_parameters.h.
| enum Botan::XMSS_Parameters::xmss_algorithm_t : uint32_t |
Definition at line 123 of file xmss_parameters.h.
|
explicit |
Definition at line 203 of file xmss_parameters.cpp.
References from_name().
Referenced by from_id(), from_name(), operator=(), operator=(), operator==(), XMSS_Parameters(), XMSS_Parameters(), and ~XMSS_Parameters().
|
explicit |
Definition at line 207 of file xmss_parameters.cpp.
|
default |
References XMSS_Parameters().
|
defaultnoexcept |
References XMSS_Parameters().
|
default |
References hash_function_name(), name(), and XMSS_Parameters().
|
inline |
Retrieves the uniform length of a message, and the size of each node. This correlates to XMSS parameter "n" defined in [1].
Definition at line 183 of file xmss_parameters.h.
References element_size().
Referenced by element_size(), Botan::XMSS_Common_Ops::randomize_tree_hash(), raw_legacy_private_key_size(), and raw_public_key_size().
|
inline |
Returns the estimated pre-quantum security level of the chosen algorithm.
Definition at line 225 of file xmss_parameters.h.
Referenced by Botan::XMSS_PublicKey::estimated_strength(), and Botan::XMSS_PublicKey::key_length().
|
static |
Definition at line 217 of file xmss_parameters.cpp.
References oid(), Botan::XMSS_WOTS_Parameters::WOTSP_SHA2_192, Botan::XMSS_WOTS_Parameters::WOTSP_SHA2_256, Botan::XMSS_WOTS_Parameters::WOTSP_SHA2_512, Botan::XMSS_WOTS_Parameters::WOTSP_SHAKE_256, Botan::XMSS_WOTS_Parameters::WOTSP_SHAKE_256_192, Botan::XMSS_WOTS_Parameters::WOTSP_SHAKE_256_256, Botan::XMSS_WOTS_Parameters::WOTSP_SHAKE_512, XMSS_Parameters(), XMSS_SHA2_10_192, XMSS_SHA2_10_256, XMSS_SHA2_10_512, XMSS_SHA2_16_192, XMSS_SHA2_16_256, XMSS_SHA2_16_512, XMSS_SHA2_20_192, XMSS_SHA2_20_256, XMSS_SHA2_20_512, XMSS_SHAKE256_10_192, XMSS_SHAKE256_10_256, XMSS_SHAKE256_16_192, XMSS_SHAKE256_16_256, XMSS_SHAKE256_20_192, XMSS_SHAKE256_20_256, XMSS_SHAKE_10_256, XMSS_SHAKE_10_512, XMSS_SHAKE_16_256, XMSS_SHAKE_16_512, XMSS_SHAKE_20_256, and XMSS_SHAKE_20_512.
Referenced by from_name(), XMSS_Parameters(), Botan::XMSS_PublicKey::XMSS_PublicKey(), Botan::XMSS_PublicKey::XMSS_PublicKey(), Botan::XMSS_PublicKey::XMSS_PublicKey(), and Botan::XMSS_Signature::XMSS_Signature().
|
static |
Definition at line 213 of file xmss_parameters.cpp.
References from_id(), xmss_id_from_string(), and XMSS_Parameters().
Referenced by Botan::create_private_key(), and XMSS_Parameters().
| std::string_view Botan::XMSS_Parameters::hash_function_name | ( | ) | const |
Definition at line 90 of file xmss_parameters.cpp.
References BOTAN_ASSERT_UNREACHABLE, XMSS_SHA2_10_192, XMSS_SHA2_10_256, XMSS_SHA2_10_512, XMSS_SHA2_16_192, XMSS_SHA2_16_256, XMSS_SHA2_16_512, XMSS_SHA2_20_192, XMSS_SHA2_20_256, XMSS_SHA2_20_512, XMSS_SHAKE256_10_192, XMSS_SHAKE256_10_256, XMSS_SHAKE256_16_192, XMSS_SHAKE256_16_256, XMSS_SHAKE256_20_192, XMSS_SHAKE256_20_256, XMSS_SHAKE_10_256, XMSS_SHAKE_10_512, XMSS_SHAKE_16_256, XMSS_SHAKE_16_512, XMSS_SHAKE_20_256, and XMSS_SHAKE_20_512.
Referenced by Botan::XMSS_Hash::XMSS_Hash(), and ~XMSS_Parameters().
|
inline |
Retrieves the length of the hash identifier (domain separator) in bytes. See definition of toByte() in RFC 8391 Section 2.4 and the concrete definitions of hash functions in Section 5.1 where this parameter is always equal to the output length of the underlying hash primitive. Also see NIST SP.800-208 where instantiations utilizing truncated hashes use shorter hash IDs.
Definition at line 193 of file xmss_parameters.h.
|
inline |
Definition at line 213 of file xmss_parameters.h.
Referenced by Botan::XMSS_Common_Ops::create_l_tree().
| std::string_view Botan::XMSS_Parameters::name | ( | ) | const |
Definition at line 132 of file xmss_parameters.cpp.
References BOTAN_ASSERT_UNREACHABLE, XMSS_SHA2_10_192, XMSS_SHA2_10_256, XMSS_SHA2_10_512, XMSS_SHA2_16_192, XMSS_SHA2_16_256, XMSS_SHA2_16_512, XMSS_SHA2_20_192, XMSS_SHA2_20_256, XMSS_SHA2_20_512, XMSS_SHAKE256_10_192, XMSS_SHAKE256_10_256, XMSS_SHAKE256_16_192, XMSS_SHAKE256_16_256, XMSS_SHAKE256_20_192, XMSS_SHAKE256_20_256, XMSS_SHAKE_10_256, XMSS_SHAKE_10_512, XMSS_SHAKE_16_256, XMSS_SHAKE_16_512, XMSS_SHAKE_20_256, and XMSS_SHAKE_20_512.
Referenced by ~XMSS_Parameters().
|
inline |
Definition at line 215 of file xmss_parameters.h.
Referenced by Botan::create_private_key(), from_id(), and XMSS_Parameters().
|
default |
References XMSS_Parameters().
|
defaultnoexcept |
References XMSS_Parameters().
|
inline |
Definition at line 237 of file xmss_parameters.h.
References XMSS_Parameters().
|
inline |
Definition at line 217 of file xmss_parameters.h.
|
inline |
Definition at line 229 of file xmss_parameters.h.
References element_size(), and raw_public_key_size().
Referenced by raw_private_key_size().
|
inline |
Definition at line 233 of file xmss_parameters.h.
References raw_legacy_private_key_size().
|
inline |
Definition at line 227 of file xmss_parameters.h.
References element_size().
Referenced by raw_legacy_private_key_size().
|
inline |
Definition at line 203 of file xmss_parameters.h.
References tree_height().
|
inline |
Definition at line 198 of file xmss_parameters.h.
Referenced by total_number_of_signatures().
|
inline |
The Winternitz parameter.
Definition at line 211 of file xmss_parameters.h.
|
inline |
Definition at line 219 of file xmss_parameters.h.
References Botan::XMSS_WOTS_Parameters::from_id().
|
static |
Definition at line 22 of file xmss_parameters.cpp.
References Botan::fmt(), XMSS_SHA2_10_192, XMSS_SHA2_10_256, XMSS_SHA2_10_512, XMSS_SHA2_16_192, XMSS_SHA2_16_256, XMSS_SHA2_16_512, XMSS_SHA2_20_192, XMSS_SHA2_20_256, XMSS_SHA2_20_512, XMSS_SHAKE256_10_192, XMSS_SHAKE256_10_256, XMSS_SHAKE256_16_192, XMSS_SHAKE256_16_256, XMSS_SHAKE256_20_192, XMSS_SHAKE256_20_256, XMSS_SHAKE_10_256, XMSS_SHAKE_10_512, XMSS_SHAKE_16_256, XMSS_SHAKE_16_512, XMSS_SHAKE_20_256, and XMSS_SHAKE_20_512.
Referenced by from_name().