Botan 3.5.0
Crypto and TLS for C&
|
#include <xmss_parameters.h>
Public Types | |
enum | xmss_algorithm_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 |
const std::string & | hash_function_name () const |
size_t | hash_id_size () const |
size_t | len () const |
const std::string & | name () const |
xmss_algorithm_t | oid () const |
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_Parameters (std::string_view algo_name) | |
XMSS_Parameters (xmss_algorithm_t oid) | |
Static Public Member Functions | |
static xmss_algorithm_t | xmss_id_from_string (std::string_view algo_name) |
Descibes 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 129 of file xmss_parameters.h.
Definition at line 131 of file xmss_parameters.h.
|
explicit |
Definition at line 89 of file xmss_parameters.cpp.
|
explicit |
Definition at line 92 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_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.
|
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 180 of file xmss_parameters.h.
Referenced by Botan::XMSS_Common_Ops::randomize_tree_hash(), Botan::XMSS_Signature_Operation::signature_length(), Botan::XMSS_PrivateKey::XMSS_PrivateKey(), Botan::XMSS_PublicKey::XMSS_PublicKey(), Botan::XMSS_PublicKey::XMSS_PublicKey(), and Botan::XMSS_Signature::XMSS_Signature().
|
inline |
Returns the estimated pre-quantum security level of the chosen algorithm.
Definition at line 220 of file xmss_parameters.h.
|
inline |
Definition at line 171 of file xmss_parameters.h.
Referenced by Botan::XMSS_Hash::XMSS_Hash().
|
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 190 of file xmss_parameters.h.
|
inline |
Definition at line 210 of file xmss_parameters.h.
Referenced by Botan::XMSS_Common_Ops::create_l_tree(), and Botan::XMSS_Signature::XMSS_Signature().
|
inline |
Definition at line 169 of file xmss_parameters.h.
|
inline |
Definition at line 212 of file xmss_parameters.h.
Referenced by Botan::create_private_key(), Botan::XMSS_PublicKey::generate_another(), Botan::XMSS_Verification_Operation::is_valid_signature(), Botan::XMSS_PublicKey::raw_public_key_bits(), and XMSS_Parameters().
|
inline |
Definition at line 232 of file xmss_parameters.h.
|
inline |
Definition at line 214 of file xmss_parameters.h.
|
inline |
Definition at line 224 of file xmss_parameters.h.
|
inline |
Definition at line 228 of file xmss_parameters.h.
|
inline |
Definition at line 222 of file xmss_parameters.h.
Referenced by Botan::XMSS_PublicKey::XMSS_PublicKey().
|
inline |
Definition at line 200 of file xmss_parameters.h.
Referenced by Botan::XMSS_Signature::XMSS_Signature().
|
inline |
Definition at line 195 of file xmss_parameters.h.
Referenced by Botan::XMSS_Signature::XMSS_Signature().
|
inline |
The Winternitz parameter.
Definition at line 208 of file xmss_parameters.h.
|
static |
Definition at line 21 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.