Name Description Size
atomic.h Simple helper class to expand std::atomic with copy constructor and copy assignment operator, i.e. for use as element in a container like std::vector. The construction of instances of this wrapper is NOT atomic and needs to be properly guarded. 1217
info.txt 586
xmss.h An XMSS: Extended Hash-Based Signature public key. [1] XMSS: Extended Hash-Based Signatures, Request for Comments: 8391 Release: May 2018. https://datatracker.ietf.org/doc/rfc8391/ 14577
xmss_address.h Generic XMSS Address type holding 256 Bits of data. Properties of all three address formats L-Tree-Address, Hash-Tree-Address, OTS-Hash-Address can be called depending on the type currently assigned to the XMSS address using set_type(). 13549
xmss_common_ops.cpp 2432
xmss_common_ops.h Operations shared by XMSS signature generation and verification operations. 2864
xmss_hash.cpp 2159
xmss_hash.h A collection of pseudorandom hash functions required for XMSS and WOTS computations. 5091
xmss_index_registry.cpp 2149
xmss_index_registry.h A registry for XMSS private keys, keeps track of the leaf index for independend copies of the same key. 3442
xmss_key_pair.h A pair of XMSS public and private key. 1262
xmss_parameters.cpp 5836
xmss_parameters.h 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/ 2999
xmss_privatekey.cpp The code requires sizeof(size_t) >= ceil(tree_height / 8) Maximum supported tree height is 20, ceil(20/8) == 3, so 4 byte size_t is sufficient for all defined parameters, or even a (hypothetical) tree height 32, which would be extremely slow to compute. 14132
xmss_privatekey.h 267
xmss_publickey.cpp 3815
xmss_publickey.h 265
xmss_signature.cpp 2698
xmss_signature.h Creates a signature from an XMSS signature method and a uint8_t sequence representing a raw signature. @param oid XMSS signature method @param raw_sig An XMSS signature serialized using XMSS_Signature::bytes(). 3757
xmss_signature_operation.cpp 3669
xmss_signature_operation.h Signature generation operation for Extended Hash-Based Signatures (XMSS) as defined in: [1] XMSS: Extended Hash-Based Signatures, Request for Comments: 8391 Release: May 2018. https://datatracker.ietf.org/doc/rfc8391/ 2528
xmss_tools.h Helper tools for low level byte operations required for the XMSS implementation. 3105
xmss_verification_operation.cpp 4788
xmss_verification_operation.h Provides signature verification capabilities for Extended Hash-Based Signatures (XMSS). 2043
xmss_wots.h Descibes a signature method for XMSS Winternitz One Time Signatures, as defined in: [1] XMSS: Extended Hash-Based Signatures, Request for Comments: 8391 Release: May 2018. https://datatracker.ietf.org/doc/rfc8391/ 25956
xmss_wots_addressed_privatekey.h Wrapper class to pair an XMSS_WOTS_PrivateKey with an XMSS Address. Since the PK_Ops::Signature interface does not allow an extra address parameter to be passed to the sign(RandomNumberGenerator&), the address needs to be stored together with the key and passed to the XMSS_WOTS_Signature_Operation() on creation. 2307
xmss_wots_addressed_publickey.h Wrapper class to pair a XMSS_WOTS_PublicKey with an XMSS Address. Since the PK_Ops::Verification interface does not allow an extra address parameter to be passed to the sign(RandomNumberGenerator&), the address needs to be stored together with the key and passed to the XMSS_WOTS_Verification_Operation() on creation. 2858
xmss_wots_parameters.cpp 3818
xmss_wots_parameters.h 306
xmss_wots_privatekey.cpp 2888
xmss_wots_privatekey.h 303
xmss_wots_publickey.cpp 2116
xmss_wots_publickey.h 303