Botan 3.0.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 137 of file xmss_parameters.h.
Definition at line 140 of file xmss_parameters.h.
|
explicit |
Definition at line 68 of file xmss_parameters.cpp.
|
explicit |
Definition at line 73 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 196 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(), and Botan::XMSS_Signature::XMSS_Signature().
|
inline |
Returns the estimated pre-quantum security level of the chosen algorithm.
Definition at line 239 of file xmss_parameters.h.
|
inline |
Definition at line 184 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 206 of file xmss_parameters.h.
|
inline |
Definition at line 226 of file xmss_parameters.h.
Referenced by Botan::XMSS_Common_Ops::create_l_tree(), and Botan::XMSS_Signature::XMSS_Signature().
|
inline |
Definition at line 179 of file xmss_parameters.h.
|
inline |
Definition at line 228 of file xmss_parameters.h.
Referenced by Botan::create_private_key(), Botan::XMSS_Verification_Operation::is_valid_signature(), Botan::XMSS_PublicKey::raw_public_key(), and XMSS_Parameters().
|
inline |
Definition at line 262 of file xmss_parameters.h.
|
inline |
Definition at line 230 of file xmss_parameters.h.
|
inline |
Definition at line 249 of file xmss_parameters.h.
|
inline |
Definition at line 256 of file xmss_parameters.h.
|
inline |
Definition at line 244 of file xmss_parameters.h.
Referenced by Botan::XMSS_PublicKey::XMSS_PublicKey().
|
inline |
Definition at line 216 of file xmss_parameters.h.
Referenced by Botan::XMSS_Signature::XMSS_Signature().
|
inline |
Definition at line 211 of file xmss_parameters.h.
Referenced by Botan::XMSS_Signature::XMSS_Signature().
|
inline |
The Winternitz parameter.
Definition at line 224 of file xmss_parameters.h.
|
static |
Definition at line 20 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.