Botan 3.9.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 |
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 130 of file xmss_parameters.h.
enum Botan::XMSS_Parameters::xmss_algorithm_t : uint32_t |
Definition at line 132 of file xmss_parameters.h.
|
explicit |
Definition at line 89 of file xmss_parameters.cpp.
References xmss_id_from_string(), and XMSS_Parameters().
Referenced by operator==(), and XMSS_Parameters().
|
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 181 of file xmss_parameters.h.
Referenced by Botan::XMSS_Common_Ops::randomize_tree_hash(), raw_legacy_private_key_size(), raw_public_key_size(), and Botan::XMSS_Signature::XMSS_Signature().
|
inline |
Returns the estimated pre-quantum security level of the chosen algorithm.
Definition at line 221 of file xmss_parameters.h.
|
inline |
Definition at line 172 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 191 of file xmss_parameters.h.
|
inline |
Definition at line 211 of file xmss_parameters.h.
Referenced by Botan::XMSS_Common_Ops::create_l_tree(), and Botan::XMSS_Signature::XMSS_Signature().
|
inline |
Definition at line 170 of file xmss_parameters.h.
|
inline |
Definition at line 213 of file xmss_parameters.h.
Referenced by Botan::create_private_key(), and XMSS_Parameters().
|
inline |
Definition at line 233 of file xmss_parameters.h.
References XMSS_Parameters().
|
inline |
Definition at line 215 of file xmss_parameters.h.
|
inline |
Definition at line 225 of file xmss_parameters.h.
References element_size(), and raw_public_key_size().
Referenced by raw_private_key_size().
|
inline |
Definition at line 229 of file xmss_parameters.h.
References raw_legacy_private_key_size().
|
inline |
Definition at line 223 of file xmss_parameters.h.
References element_size().
Referenced by raw_legacy_private_key_size().
|
inline |
Definition at line 201 of file xmss_parameters.h.
References tree_height().
Referenced by Botan::XMSS_Signature::XMSS_Signature().
|
inline |
Definition at line 196 of file xmss_parameters.h.
Referenced by total_number_of_signatures(), and Botan::XMSS_Signature::XMSS_Signature().
|
inline |
The Winternitz parameter.
Definition at line 209 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.
Referenced by XMSS_Parameters().