Botan 3.7.1
Crypto and TLS for C&
|
Namespaces | |
namespace | AES_AARCH64 |
namespace | ARIA_F |
namespace | ASN1 |
namespace | Camellia_F |
namespace | Cert_Extension |
namespace | CMCE_CT |
namespace | concepts |
namespace | CryptoBox |
namespace | CRYSTALS |
namespace | CT |
namespace | detail |
namespace | Dilithium_Algos |
namespace | fmt_detail |
namespace | FPE |
namespace | HTTP |
namespace | KeyPair |
namespace | Kuznyechik_F |
namespace | Kyber_Algos |
namespace | OCSP |
namespace | OIDS |
namespace | OS |
namespace | PCurve |
namespace | PEM_Code |
namespace | PK_Ops |
namespace | PKCS11 |
namespace | PKCS8 |
namespace | PKIX |
namespace | ranges |
namespace | Roughtime |
namespace | Serpent_F |
namespace | SHA1_F |
namespace | SHA1_SSE2_F |
namespace | Sodium |
namespace | Threefish_F |
namespace | TLS |
namespace | TPM2 |
namespace | X509 |
Concepts | |
concept | md_hash_implementation |
concept | WordType |
concept | updatable_object |
concept | appendable_object |
concept | absorbing_object |
concept | bitvectorish |
Typedefs | |
typedef __vector unsigned int | Altivec32x4 |
typedef __vector unsigned long long | Altivec64x2 |
typedef __vector unsigned char | Altivec8x16 |
using | bitvector = bitvector_base<std::allocator> |
template<size_t bound> | |
using | Bounded_XOF = detail::Bounded_XOF<XOF&, bound> |
using | byte = std::uint8_t |
typedef int32_t | CCCryptorStatus |
typedef std::vector< std::set< Certificate_Status_Code > > | CertificatePathStatusCodes |
using | CmceCodeWord = Strong<secure_bitvector, struct CmceCodeWord_> |
Represents C of decapsulation. | |
using | CmceColumnSelection = Strong<secure_bitvector, struct CmceColumnSelection_> |
Represents c of private key. | |
using | CmceErrorVector = Strong<secure_bitvector, struct CmceErrorVector_> |
Represents e of encapsulation. | |
using | CmceGfElem = Strong<uint16_t, struct CmceGfElem_> |
Represents a GF(q) element. | |
using | CmceGfMod = Strong<uint16_t, struct CmceGfMod_> |
Represents a GF(q) modulus. | |
using | CmceInitialSeed = Strong<secure_vector<uint8_t>, struct CmceInitialSeed_> |
Represents initial delta of keygen. | |
using | CmceIrreducibleBits = Strong<secure_vector<uint8_t>, struct CmceIrreducibleBits_> |
using | CmceKeyGenSeed = Strong<secure_vector<uint8_t>, struct CmceKeyGenSeed_> |
Represents a delta (can be altered; final value stored in private key) | |
using | CmceOrderingBits = Strong<secure_vector<uint8_t>, struct CmceOrderingBits_> |
using | CmcePermutation = Strong<secure_vector<uint16_t>, struct CmcePermutation_> |
Represents a permutation (pi in spec). Used in field ordering creation. | |
using | CmcePermutationElement = Strong<uint16_t, struct CmcePermutationElement_> |
Represents an element of a permuation (pi in spec). Used in field ordering creation. | |
using | CmceRejectionSeed = Strong<secure_vector<uint8_t>, struct CmceRejectionSeed_> |
Represents s of private key. | |
typedef X25519_PrivateKey | Curve25519_PrivateKey |
typedef X25519_PublicKey | Curve25519_PublicKey |
using | DilithiumCommitmentHash = Strong<std::vector<uint8_t>, struct DilithiumCommitmentHash_> |
Hash of the message representative and the signer's commitment. | |
using | DilithiumHashedPublicKey = Strong<std::vector<uint8_t>, struct DilithiumHashedPublicKey_> |
using | DilithiumInternalKeypair |
Internal representation of a Dilithium key pair. | |
using | DilithiumMessageRepresentative = Strong<std::vector<uint8_t>, struct DilithiumMessageRepresentative_> |
Representation of the message to be signed. | |
using | DilithiumOptionalRandomness = Strong<secure_vector<uint8_t>, struct DilithiumOptionalRandomness_> |
Optional randomness 'rnd' used for rho prime computation in ML-DSA. | |
using | DilithiumPoly = Botan::CRYSTALS::Polynomial<DilithiumPolyTraits, Botan::CRYSTALS::Domain::Normal> |
using | DilithiumPolyMatNTT = Botan::CRYSTALS::PolynomialMatrix<DilithiumPolyTraits> |
using | DilithiumPolyNTT = Botan::CRYSTALS::Polynomial<DilithiumPolyTraits, Botan::CRYSTALS::Domain::NTT> |
using | DilithiumPolyVec = Botan::CRYSTALS::PolynomialVector<DilithiumPolyTraits, Botan::CRYSTALS::Domain::Normal> |
using | DilithiumPolyVecNTT = Botan::CRYSTALS::PolynomialVector<DilithiumPolyTraits, Botan::CRYSTALS::Domain::NTT> |
using | DilithiumSeedRandomness = Strong<secure_vector<uint8_t>, struct DilithiumSeedRandomness_> |
Principal seed used to generate Dilithium key pairs. | |
using | DilithiumSeedRho = Strong<std::vector<uint8_t>, struct DilithiumPublicSeed_> |
Public seed to sample the polynomial matrix A from. | |
using | DilithiumSeedRhoPrime = Strong<secure_vector<uint8_t>, struct DilithiumSeedRhoPrime_> |
Private seed to sample the polynomial vectors s1 and s2 from. | |
using | DilithiumSerializedCommitment = Strong<std::vector<uint8_t>, struct DilithiumSerializedCommitment_> |
Serialized representation of a commitment w1. | |
using | DilithiumSerializedPrivateKey = Strong<secure_vector<uint8_t>, struct DilithiumSerializedPrivateKey_> |
Serialized private key data. | |
using | DilithiumSerializedPublicKey = Strong<std::vector<uint8_t>, struct DilithiumSerializedPublicKey_> |
Serialized public key data (result of pkEncode(pk)) | |
using | DilithiumSerializedSignature = Strong<std::vector<uint8_t>, struct DilithiumSerializedSignature_> |
Serialized signature data. | |
using | DilithiumSigningSeedK = Strong<secure_vector<uint8_t>, struct DilithiumSeedK_> |
Private seed K used during signing. | |
typedef FE_25519 | fe |
using | ForsLeafSecret = Strong<secure_vector<uint8_t>, struct ForsLeafSecret_> |
using | ForsSignature = Strong<std::vector<uint8_t>, struct ForsSignature_> |
using | FrodoDomainSeparator = Strong<std::array<uint8_t, 1>, struct FrodoDoaminSeparator_> |
using | FrodoIntermediateSharedSecret = Strong<secure_vector<uint8_t>, struct FrodoIntermediateSharedSecret_> |
using | FrodoPackedMatrix = Strong<std::vector<uint8_t>, struct FrodoPackedMatrix_> |
using | FrodoPlaintext = Strong<secure_vector<uint8_t>, struct FrodoPlaintext_> |
using | FrodoPublicKeyHash = Strong<std::vector<uint8_t>, struct FrodoPublicKeyHash_> |
using | FrodoSalt = Strong<std::vector<uint8_t>, struct FrodoSalt_> |
using | FrodoSampleR = Strong<secure_vector<uint8_t>, struct FrodoSampleR_> |
using | FrodoSeedA = Strong<std::vector<uint8_t>, struct FrodoSeedA_> |
using | FrodoSeedS = Strong<secure_vector<uint8_t>, struct FrodoSeedS_> |
using | FrodoSeedSE = Strong<secure_vector<uint8_t>, struct FrodoSeedSE_> |
using | FrodoSeedZ = Strong<std::vector<uint8_t>, struct FrodoSeedZ_> |
using | FrodoSerializedMatrix = Strong<secure_vector<uint8_t>, struct FrodoSerializedMatrix_> |
using | GenerateLeafFunction = std::function<void(StrongSpan<SphincsTreeNode> , TreeNodeIndex)> |
typedef uint16_t | gf2m |
using | HSS_Level = Strong<uint32_t, struct HSS_Level_, EnableArithmeticWithPlainNumber> |
The HSS layer in the HSS multi tree starting at 0 from the root. | |
using | HSS_Sig_Idx = Strong<uint64_t, struct HSS_Sig_Idx_, EnableArithmeticWithPlainNumber> |
The index of a node within a specific LMS tree layer. | |
using | HypertreeLayerIndex = Strong<uint32_t, struct HypertreeLayerIndex_> |
Index of a layer in the XMSS hyper-tree. | |
using | InitializationVector = OctetString |
typedef Invalid_Authentication_Tag | Integrity_Failure |
using | KyberCompressedCiphertext = Strong<std::vector<uint8_t>, struct KyberCompressedCiphertext_> |
Compressed and serialized ciphertext value. | |
using | KyberEncryptionRandomness = Strong<secure_vector<uint8_t>, struct KyberEncryptionRandomness_> |
Random value used to generate the Kyber ciphertext. | |
using | KyberHashedCiphertext = Strong<std::vector<uint8_t>, struct KyberHashedCiphertext_> |
using | KyberHashedPublicKey = Strong<std::vector<uint8_t>, struct KyberHashedPublicKey_> |
Hash value of the serialized public key. | |
using | KyberImplicitRejectionValue = Strong<secure_vector<uint8_t>, struct KyberImplicitRejectionValue_> |
Secret random value (called Z in the spec), used for implicit rejection in the decapsulation. | |
using | KyberInternalKeypair |
using | KyberMessage = Strong<secure_vector<uint8_t>, struct KyberMessage_> |
Random message value to be encrypted by the CPA-secure Kyber encryption scheme. | |
using | KyberPoly = Botan::CRYSTALS::Polynomial<KyberPolyTraits, Botan::CRYSTALS::Domain::Normal> |
using | KyberPolyMat = Botan::CRYSTALS::PolynomialMatrix<KyberPolyTraits> |
using | KyberPolyNTT = Botan::CRYSTALS::Polynomial<KyberPolyTraits, Botan::CRYSTALS::Domain::NTT> |
using | KyberPolyVec = Botan::CRYSTALS::PolynomialVector<KyberPolyTraits, Botan::CRYSTALS::Domain::Normal> |
using | KyberPolyVecNTT = Botan::CRYSTALS::PolynomialVector<KyberPolyTraits, Botan::CRYSTALS::Domain::NTT> |
using | KyberSamplingRandomness = Strong<secure_vector<uint8_t>, struct KyberSamplingRandomness_> |
PRF value used for sampling of error polynomials. | |
using | KyberSeedRandomness = Strong<secure_vector<uint8_t>, struct KyberSeedRandomness_> |
Principal seed used to generate Kyber key pairs. | |
using | KyberSeedRho = Strong<std::vector<uint8_t>, struct KyberSeedRho_> |
Public seed value to generate the Kyber matrix A. | |
using | KyberSeedSigma = Strong<secure_vector<uint8_t>, struct KyberSeedSigma_> |
Private seed used to generate polynomial vectors s and e during key generation. | |
using | KyberSerializedPublicKey = Strong<std::vector<uint8_t>, struct KyberSerializedPublicKey_> |
Public key in serialized form (t || rho) | |
using | KyberSharedSecret = Strong<secure_vector<uint8_t>, struct KyberSharedSecret_> |
Shared secret value generated during encapsulation and recovered during decapsulation. | |
using | KyberSigmaOrEncryptionRandomness |
Variant value of either a KyberSeedSigma or a KyberEncryptionRandomness. | |
using | LMOTS_K = Strong<std::vector<uint8_t>, struct LMOTS_K_> |
The K value from the LM-OTS public key. | |
using | LMOTS_Node = Strong<secure_vector<uint8_t>, struct LMOTS_Node_> |
One node within one LM-OTS hash chain. | |
using | LMOTS_Signature_Bytes = Strong<std::vector<uint8_t>, struct LMOTS_Signature_Bytes_> |
Byte vector of an LM-OTS signature. | |
using | LMS_AuthenticationPath = Strong<std::vector<uint8_t>, struct LMS_AuthenticationPath_> |
The authentication path of an LMS signature. | |
using | LMS_Identifier = Strong<std::vector<uint8_t>, struct LMS_Identifier_> |
The identifier of an LMS tree (I in RFC 8554) | |
using | LMS_Message = Strong<std::vector<uint8_t>, struct LMS_Message_> |
A message that is signed with an LMS tree. | |
using | LMS_Seed = Strong<secure_vector<uint8_t>, struct LMS_SEED_> |
Seed of the LMS tree, used to generate the LM-OTS private keys. | |
using | LMS_Signature_Bytes = Strong<std::vector<uint8_t>, struct LMS_Signature_Bytes_> |
Raw bytes of an LMS signature. | |
using | LMS_Tree_Node = Strong<std::vector<uint8_t>, struct LMS_Tree_Node_> |
A node with the LMS tree. | |
using | LMS_Tree_Node_Idx = Strong<uint32_t, struct LMS_Tree_Node_Idx_, EnableArithmeticWithPlainNumber> |
The index of a node within a specific LMS tree layer. | |
template<typename T > | |
using | lock_guard_type = lock_guard<T> |
typedef MessageAuthenticationCode | MAC |
using | ML_DSA_Mode = DilithiumMode |
using | ML_DSA_PrivateKey = Dilithium_PrivateKey |
using | ML_DSA_PublicKey = Dilithium_PublicKey |
using | ML_KEM_Mode = KyberMode |
using | ML_KEM_PrivateKey = Kyber_PrivateKey |
using | ML_KEM_PublicKey = Kyber_PublicKey |
using | mutex_type = noop_mutex |
template<std::signed_integral T> | |
using | next_longer_int_t |
template<std::unsigned_integral T> | |
using | next_longer_uint_t |
using | Point448 = Strong<std::array<uint8_t, X448_LEN>, struct Point448_> |
typedef EC_Point | PointGFp |
using | recursive_mutex_type = noop_mutex |
typedef RandomNumberGenerator | RNG |
typedef PBKDF | S2K |
using | s32bit = std::int32_t |
using | ScalarX448 = Strong<std::array<uint8_t, X448_LEN>, struct ScalarX448_> |
using | secure_bitvector = bitvector_base<secure_allocator> |
template<typename T > | |
using | secure_deque = std::deque<T, secure_allocator<T>> |
template<typename T > | |
using | secure_vector = std::vector<T, secure_allocator<T>> |
template<typename T > | |
using | SecureVector = secure_vector<T> |
typedef SM2_PrivateKey | SM2_Encryption_PrivateKey |
typedef SM2_PublicKey | SM2_Encryption_PublicKey |
typedef SM2_PrivateKey | SM2_Signature_PrivateKey |
typedef SM2_PublicKey | SM2_Signature_PublicKey |
using | SphincsAuthenticationPath = Strong<std::vector<uint8_t>, struct SphincsAuthenticationPath_> |
using | SphincsContext = Strong<std::vector<uint8_t>, struct SphincsContext_> |
using | SphincsHashedMessage = Strong<std::vector<uint8_t>, struct SphincsHashedMessage_> |
using | SphincsHypertreeSignature = Strong<std::vector<uint8_t>, struct SphincsXmssSignature_> |
using | SphincsInputMessage = Strong<std::vector<uint8_t>, struct SphincsInputMessage_> |
using | SphincsMessagePrefix = Strong<std::vector<uint8_t>, struct SphincsMessagePrefix_> |
using | SphincsMessageRandomness = Strong<secure_vector<uint8_t>, struct SphincsMessageRandomness_> |
using | SphincsOptionalRandomness = Strong<secure_vector<uint8_t>, struct SphincsOptionalRandomness_> |
using | SphincsPublicSeed = Strong<std::vector<uint8_t>, struct SphincsPublicSeed_> |
using | SphincsSecretPRF = Strong<secure_vector<uint8_t>, struct SphincsSecretPRF_> |
using | SphincsSecretSeed = Strong<secure_vector<uint8_t>, struct SphincsSecretSeed_> |
using | SphincsTreeNode = Strong<std::vector<uint8_t>, struct SphincsTreeNode_> |
Either an XMSS or FORS tree node or leaf. | |
using | SphincsXmssSignature = Strong<std::vector<uint8_t>, struct SphincsXmssSignature_> |
template<typename T > | |
using | strong_type_wrapped_type = typename detail::wrapped_type_helper<std::remove_cvref_t<T>>::type |
Extracts the wrapped type from a strong type. | |
using | SymmetricKey = OctetString |
using | TreeLayerIndex = Strong<uint32_t, struct TreeLayerIndex_, EnableArithmeticWithPlainNumber> |
Index of the layer within a FORS/XMSS tree. | |
using | TreeNodeIndex = Strong<uint32_t, struct TreeNodeIndex_, EnableArithmeticWithPlainNumber> |
Index of an individual node inside an XMSS or FORS tree. | |
using | u16bit = std::uint16_t |
using | u32bit = std::uint32_t |
using | u64bit = std::uint64_t |
typedef std::vector< secure_vector< uint8_t > > | wots_keysig_t |
using | WotsChainIndex = Strong<uint32_t, struct WotsChainIndex_> |
Index of a WOTS chain within a single usage of WOTS. | |
using | WotsHashIndex = Strong<uint8_t, struct WotsHashIndex_, EnableArithmeticWithPlainNumber> |
Index of a hash application inside a single WOTS chain (integers in "base_w") | |
using | WotsNode = Strong<secure_vector<uint8_t>, struct WotsNode_> |
Start (or intermediate) node of a WOTS+ chain. | |
using | WotsPublicKey = Strong<std::vector<uint8_t>, struct WotsPublicKey_> |
using | WotsPublicKeyNode = Strong<std::vector<uint8_t>, struct WotsPublicKeyNode_> |
End node of a WOTS+ chain (part of the WOTS+ public key) | |
using | WotsSignature = Strong<secure_vector<uint8_t>, struct WotsSignature_> |
typedef ASN1_Time | X509_Time |
using | XmssTreeIndexInLayer = Strong<uint64_t, struct XmssTreeIndexInLayer_, EnableArithmeticWithPlainNumber> |
Index of an XMSS tree (unique for just the local hyper-tree layer) | |
Functions | |
BigInt | abs (const BigInt &n) |
BOTAN_MALLOC_FN void * | allocate_memory (size_t elems, size_t elem_size) |
void | argon2 (uint8_t output[], size_t output_len, const char *password, size_t password_len, const uint8_t salt[], size_t salt_len, const uint8_t key[], size_t key_len, const uint8_t ad[], size_t ad_len, uint8_t y, size_t p, size_t M, size_t t) |
bool | argon2_check_pwhash (const char *password, size_t password_len, std::string_view input_hash) |
std::string | argon2_generate_pwhash (const char *password, size_t password_len, RandomNumberGenerator &rng, size_t p, size_t M, size_t t, uint8_t y, size_t salt_len, size_t output_len) |
std::string | asn1_class_to_string (ASN1_Class type) |
std::string | asn1_tag_to_string (ASN1_Type type) |
template<typename T > | |
T | assert_is_some (std::optional< T > v, const char *expr, const char *func, const char *file, int line) |
void | assert_unreachable (const char *file, int line) |
void | assertion_failure (const char *expr_str, const char *assertion_made, const char *func, const char *file, int line) |
secure_vector< uint8_t > | base32_decode (const char input[], size_t input_length, bool ignore_ws) |
secure_vector< uint8_t > | base32_decode (std::string_view input, bool ignore_ws) |
size_t | base32_decode (uint8_t out[], const char in[], size_t input_length, size_t &input_consumed, bool final_inputs, bool ignore_ws) |
size_t | base32_decode (uint8_t output[], const char input[], size_t input_length, bool ignore_ws) |
size_t | base32_decode (uint8_t output[], std::string_view input, bool ignore_ws) |
size_t | base32_encode (char out[], const uint8_t in[], size_t input_length, size_t &input_consumed, bool final_inputs) |
std::string | base32_encode (const uint8_t input[], size_t input_length) |
std::string | base32_encode (std::span< const uint8_t > input) |
std::vector< uint8_t > | base58_check_decode (const char input[], size_t input_length) |
std::vector< uint8_t > | base58_check_decode (std::string_view s) |
std::string | base58_check_encode (const uint8_t input[], size_t input_length) |
std::string | base58_check_encode (std::span< const uint8_t > vec) |
std::vector< uint8_t > | base58_decode (const char input[], size_t input_length) |
std::vector< uint8_t > | base58_decode (std::string_view s) |
std::string | base58_encode (const uint8_t input[], size_t input_length) |
std::string | base58_encode (std::span< const uint8_t > vec) |
secure_vector< uint8_t > | base64_decode (const char input[], size_t input_length, bool ignore_ws) |
size_t | base64_decode (std::span< uint8_t > output, std::string_view input, bool ignore_ws) |
secure_vector< uint8_t > | base64_decode (std::string_view input, bool ignore_ws) |
size_t | base64_decode (uint8_t out[], const char in[], size_t input_length, size_t &input_consumed, bool final_inputs, bool ignore_ws) |
size_t | base64_decode (uint8_t output[], const char input[], size_t input_length, bool ignore_ws) |
size_t | base64_decode (uint8_t output[], std::string_view input, bool ignore_ws) |
size_t | base64_decode_max_output (size_t input_length) |
size_t | base64_encode (char out[], const uint8_t in[], size_t input_length, size_t &input_consumed, bool final_inputs) |
std::string | base64_encode (const uint8_t input[], size_t input_length) |
std::string | base64_encode (std::span< const uint8_t > input) |
size_t | base64_encode_max_output (size_t input_length) |
template<typename Base > | |
size_t | base_decode (Base &&base, uint8_t output[], const char input[], size_t input_length, size_t &input_consumed, bool final_inputs, bool ignore_ws=true) |
template<typename Base > | |
size_t | base_decode_full (Base &&base, uint8_t output[], const char input[], size_t input_length, bool ignore_ws) |
template<typename Vector , typename Base > | |
Vector | base_decode_to_vec (Base &&base, const char input[], size_t input_length, bool ignore_ws) |
template<class Base > | |
size_t | base_encode (Base &&base, char output[], const uint8_t input[], size_t input_length, size_t &input_consumed, bool final_inputs) |
template<typename Base > | |
std::string | base_encode_to_string (Base &&base, const uint8_t input[], size_t input_length) |
BOTAN_FUZZER_API void | basecase_mul (word z[], size_t z_size, const word x[], size_t x_size, const word y[], size_t y_size) |
BOTAN_FUZZER_API void | basecase_sqr (word z[], size_t z_size, const word x[], size_t x_size) |
void | bcrypt_pbkdf (uint8_t output[], size_t output_len, const char *password, size_t password_len, const uint8_t salt[], size_t salt_len, size_t rounds) |
template<WordType W, size_t N> | |
constexpr auto | bigint_add (std::span< W, N > z, std::span< const W, N > x, std::span< const W, N > y) -> W |
template<WordType W> | |
constexpr void | bigint_add2 (W x[], size_t x_size, const W y[], size_t y_size) |
template<WordType W> | |
constexpr auto | bigint_add2_nc (W x[], size_t x_size, const W y[], size_t y_size) -> W |
template<WordType W> | |
constexpr void | bigint_add3 (W z[], const W x[], size_t x_size, const W y[], size_t y_size) |
template<WordType W> | |
constexpr auto | bigint_add3_nc (W z[], const W x[], size_t x_size, const W y[], size_t y_size) -> W |
template<WordType W> | |
constexpr int32_t | bigint_cmp (const W x[], size_t x_size, const W y[], size_t y_size) |
template<WordType W> | |
constexpr void | bigint_cnd_abs (W cnd, W x[], size_t size) |
template<WordType W> | |
constexpr W | bigint_cnd_add (W cnd, W x[], const W y[], size_t size) |
template<WordType W> | |
constexpr W | bigint_cnd_add (W cnd, W x[], size_t x_size, const W y[], size_t y_size) |
template<WordType W> | |
constexpr void | bigint_cnd_add_or_sub (CT::Mask< W > mask, W x[], const W y[], size_t size) |
template<WordType W> | |
constexpr auto | bigint_cnd_addsub (CT::Mask< W > mask, W x[], const W y[], const W z[], size_t size) -> W |
template<WordType W> | |
constexpr auto | bigint_cnd_sub (W cnd, W x[], const W y[], size_t size) -> W |
template<WordType W> | |
constexpr auto | bigint_cnd_sub (W cnd, W x[], size_t x_size, const W y[], size_t y_size) -> W |
template<WordType W> | |
constexpr void | bigint_cnd_swap (W cnd, W x[], W y[], size_t size) |
void | bigint_comba_mul16 (word z[32], const word x[16], const word y[16]) |
void | bigint_comba_mul24 (word z[48], const word x[24], const word y[24]) |
void | bigint_comba_mul4 (word z[8], const word x[4], const word y[4]) |
void | bigint_comba_mul6 (word z[12], const word x[6], const word y[6]) |
void | bigint_comba_mul7 (word z[14], const word x[7], const word y[7]) |
void | bigint_comba_mul8 (word z[16], const word x[8], const word y[8]) |
void | bigint_comba_mul9 (word z[18], const word x[9], const word y[9]) |
void | bigint_comba_sqr16 (word z[32], const word x[16]) |
void | bigint_comba_sqr24 (word z[48], const word x[24]) |
void | bigint_comba_sqr4 (word z[8], const word x[4]) |
void | bigint_comba_sqr6 (word z[12], const word x[6]) |
void | bigint_comba_sqr7 (word z[14], const word x[7]) |
void | bigint_comba_sqr8 (word z[16], const word x[8]) |
void | bigint_comba_sqr9 (word z[18], const word x[9]) |
template<size_t N, WordType W> | |
constexpr void | bigint_correct_redc (std::array< W, N > &r, const std::array< W, N > &P, const std::array< W, N > &C) |
template<WordType W> | |
constexpr auto | bigint_ct_is_eq (const W x[], size_t x_size, const W y[], size_t y_size) -> CT::Mask< W > |
template<WordType W> | |
constexpr auto | bigint_ct_is_lt (const W x[], size_t x_size, const W y[], size_t y_size, bool lt_or_equal=false) -> CT::Mask< W > |
template<WordType W> | |
constexpr auto | bigint_divop_vartime (W n1, W n0, W d) -> W |
template<WordType W> | |
constexpr auto | bigint_linmul2 (W x[], size_t x_size, W y) -> W |
template<WordType W> | |
constexpr void | bigint_linmul3 (W z[], const W x[], size_t x_size, W y) |
template<WordType W> | |
constexpr void | bigint_mod_sub (W t[], const W s[], const W mod[], size_t mod_sw, W ws[]) |
template<WordType W> | |
constexpr auto | bigint_modop_vartime (W n1, W n0, W d) -> W |
template<WordType W> | |
constexpr void | bigint_monty_maybe_sub (size_t N, W z[], W x0, const W x[], const W p[]) |
template<size_t N, WordType W> | |
constexpr void | bigint_monty_maybe_sub (W z[N], W x0, const W x[N], const W y[N]) |
void | bigint_monty_redc (word z[], const word p[], size_t p_size, word p_dash, word ws[], size_t ws_size) |
BOTAN_FUZZER_API void | bigint_monty_redc_16 (word z[32], const word p[16], word p_dash, word ws[]) |
BOTAN_FUZZER_API void | bigint_monty_redc_24 (word z[48], const word p[24], word p_dash, word ws[]) |
BOTAN_FUZZER_API void | bigint_monty_redc_32 (word z[64], const word p[32], word p_dash, word ws[]) |
BOTAN_FUZZER_API void | bigint_monty_redc_4 (word z[8], const word p[4], word p_dash, word ws[]) |
BOTAN_FUZZER_API void | bigint_monty_redc_6 (word z[12], const word p[6], word p_dash, word ws[]) |
BOTAN_FUZZER_API void | bigint_monty_redc_8 (word z[16], const word p[8], word p_dash, word ws[]) |
BOTAN_FUZZER_API void | bigint_monty_redc_generic (word z[], size_t z_size, const word p[], size_t p_size, word p_dash, word ws[]) |
void | bigint_mul (word z[], size_t z_size, const word x[], size_t x_size, size_t x_sw, const word y[], size_t y_size, size_t y_sw, word workspace[], size_t ws_size) |
template<WordType W> | |
constexpr void | bigint_shl1 (W x[], size_t x_size, size_t x_words, size_t shift) |
template<WordType W> | |
constexpr void | bigint_shl2 (W y[], const W x[], size_t x_size, size_t shift) |
template<WordType W> | |
constexpr void | bigint_shr1 (W x[], size_t x_size, size_t shift) |
template<WordType W> | |
constexpr void | bigint_shr2 (W y[], const W x[], size_t x_size, size_t shift) |
void | bigint_sqr (word z[], size_t z_size, const word x[], size_t x_size, size_t x_sw, word workspace[], size_t ws_size) |
template<WordType W> | |
constexpr auto | bigint_sub2 (W x[], size_t x_size, const W y[], size_t y_size) -> W |
template<WordType W> | |
constexpr void | bigint_sub2_rev (W x[], const W y[], size_t y_size) |
template<WordType W> | |
constexpr auto | bigint_sub3 (W z[], const W x[], size_t x_size, const W y[], size_t y_size) -> W |
template<WordType W> | |
constexpr auto | bigint_sub_abs (W z[], const W x[], const W y[], size_t N, W ws[]) -> CT::Mask< W > |
template<WordType W> | |
constexpr int32_t | bigint_sub_abs (W z[], const W x[], size_t x_size, const W y[], size_t y_size) |
template<typename T > | |
constexpr T | bit_permute_step (T x, T mask, size_t shift) |
size_t | bit_size_to_32bit_size (size_t bit_size) |
size_t | bit_size_to_byte_size (size_t bit_size) |
constexpr auto | bitlen (size_t x) |
BOTAN_FUNC_ISA ("avx2") void Argon2 | |
BOTAN_FUNC_ISA ("sse2") void IDEA | |
BOTAN_FUNC_ISA ("ssse3,aes") void AES_128 | |
BOTAN_FUNC_ISA (BOTAN_VPERM_ISA) size_t ZFEC | |
BOTAN_FUNC_ISA_INLINE ("gfni,avx2") SIMD_8x32 gf2p8mul(const SIMD_8x32 &a | |
template<typename T , typename Alloc , typename Alloc2 > | |
size_t | buffer_insert (std::vector< T, Alloc > &buf, size_t buf_offset, const std::vector< T, Alloc2 > &input) |
template<typename T , typename Alloc > | |
size_t | buffer_insert (std::vector< T, Alloc > &buf, size_t buf_offset, const T input[], size_t input_length) |
template<size_t S, int64_t MUL = 1> requires (S > 0 && S < 64) | |
void | carry (int64_t &h0, int64_t &h1) |
template<size_t S> requires (S > 0 && S < 32) | |
void | carry0 (int32_t &h0, int32_t &h1) |
template<size_t S> requires (S > 0 && S < 64) | |
void | carry0 (int64_t &h0, int64_t &h1) |
constexpr uint64_t | carry_shift (const donna128 &a, size_t shift) |
uint8_t * | cast_char_ptr_to_uint8 (char *s) |
const uint8_t * | cast_char_ptr_to_uint8 (const char *s) |
const char * | cast_uint8_ptr_to_char (const uint8_t *b) |
char * | cast_uint8_ptr_to_char (uint8_t *b) |
template<std::unsigned_integral T> | |
constexpr T | ceil_division (T a, T b) |
template<typename T > requires (std::is_integral<T>::value && sizeof(T) < 32) | |
constexpr uint8_t | ceil_log2 (T x) |
template<typename T > requires (std::is_integral<T>::value) | |
constexpr T | ceil_tobytes (T bits) |
std::vector< WotsHashIndex > | chain_lengths (const SphincsTreeNode &msg, const Sphincs_Parameters ¶ms) |
std::string | check_and_canonicalize_dns_name (std::string_view name) |
bool | check_bcrypt (std::string_view pass, std::string_view hash) |
bool | check_passhash9 (std::string_view pass, std::string_view hash) |
template<std::unsigned_integral T> | |
constexpr std::optional< T > | checked_add (T a, T b) |
template<std::unsigned_integral T, std::unsigned_integral... Ts> requires all_same_v<T, Ts...> | |
constexpr std::optional< T > | checked_add (T a, T b, Ts... rest) |
template<typename RT , typename AT > requires std::integral<strong_type_wrapped_type<RT>> && std::integral<strong_type_wrapped_type<AT>> | |
constexpr RT | checked_cast_to (AT i) |
template<typename RT , typename ExceptionType , typename AT > requires std::integral<strong_type_wrapped_type<RT>> && std::integral<strong_type_wrapped_type<AT>> | |
constexpr RT | checked_cast_to_or_throw (AT i, std::string_view error_msg_on_fail) |
template<std::unsigned_integral T> | |
constexpr std::optional< T > | checked_mul (T a, T b) |
template<std::unsigned_integral T> | |
constexpr std::optional< T > | checked_sub (T a, T b) |
template<typename T > | |
constexpr T | choose (T mask, T a, T b) |
constexpr void | clear_bytes (void *ptr, size_t bytes) |
template<ranges::contiguous_output_range R> requires std::is_trivially_copyable_v<std::ranges::range_value_t<R>> | |
constexpr void | clear_mem (R &&mem) |
template<typename T > | |
constexpr void | clear_mem (T *ptr, size_t n) |
template<size_t N, WordType W> | |
constexpr void | comba_mul (W z[2 *N], const W x[N], const W y[N]) |
template<size_t N, WordType W> | |
constexpr void | comba_sqr (W z[2 *N], const W x[N]) |
constexpr uint64_t | combine_lower (const donna128 &a, size_t s1, const donna128 &b, size_t s2) |
void | commoncrypto_adjust_key_size (const uint8_t key[], size_t length, const CommonCryptor_Opts &opts, secure_vector< uint8_t > &full_key) |
CommonCryptor_Opts | commoncrypto_opts_from_algo (std::string_view algo) |
CommonCryptor_Opts | commoncrypto_opts_from_algo_name (std::string_view algo_name) |
void | compute_root (StrongSpan< SphincsTreeNode > out, const Sphincs_Parameters ¶ms, Sphincs_Hash_Functions &hashes, const SphincsTreeNode &leaf, TreeNodeIndex leaf_idx, uint32_t idx_offset, StrongSpan< const SphincsAuthenticationPath > authentication_path, uint32_t total_tree_height, Sphincs_Address &tree_address) |
template<concepts::contiguous_strong_type TreeNode, concepts::strong_span AuthPathSS, concepts::tree_node_index TreeNodeIndex, concepts::tree_layer_index TreeLayerIndex, typename Address > requires concepts::tree_address<Address, TreeLayerIndex, TreeNodeIndex> | |
void | compute_root (StrongSpan< TreeNode > out_root, AuthPathSS authentication_path, TreeNodeIndex leaf_idx, StrongSpan< const TreeNode > leaf, size_t node_size, TreeLayerIndex total_tree_height, uint32_t idx_offset, concepts::tree_hash_node_pair< TreeNodeIndex, TreeLayerIndex, Address, StrongSpan< TreeNode > > auto node_pair_hash, Address &tree_address) |
Uses an authentication path and a leaf node to reconstruct the root node of a merkle tree. | |
BigInt | compute_rsa_secret_exponent (const BigInt &e, const BigInt &phi_n, const BigInt &p, const BigInt &q) |
template<typename OutR = detail::AutoDetect, ranges::spanable_range... Rs> requires (all_same_v<std::ranges::range_value_t<Rs>...>) | |
constexpr auto | concat (Rs &&... ranges) |
bool | constant_time_compare (const uint8_t x[], const uint8_t y[], size_t len) |
bool | constant_time_compare (std::span< const uint8_t > x, std::span< const uint8_t > y) |
template<ranges::contiguous_output_range OutR, ranges::contiguous_range InR> requires std::is_same_v<std::ranges::range_value_t<OutR>, std::ranges::range_value_t<InR>> && std::is_trivially_copyable_v<std::ranges::range_value_t<InR>> | |
constexpr void | copy_mem (OutR &&out, InR &&in) |
template<typename T > requires std::is_trivial<typename std::decay<T>::type>::value | |
constexpr void | copy_mem (T *out, const T *in, size_t n) |
template<ranges::spanable_range InR> | |
void | copy_out_be (std::span< uint8_t > out, InR &&in) |
template<ranges::spanable_range InR> | |
void | copy_out_le (std::span< uint8_t > out, InR &&in) |
template<WordType W, size_t N, W C> | |
consteval std::array< W, N > | crandall_p () |
auto | create_aes_row_generator (const FrodoKEMConstants &constants, StrongSpan< const FrodoSeedA > seed_a) |
std::unique_ptr< Private_Key > | create_ec_private_key (std::string_view alg_name, const EC_Group &ec_group, RandomNumberGenerator &rng) |
std::string | create_hex_fingerprint (const uint8_t bits[], size_t bits_len, std::string_view hash_name) |
std::string | create_hex_fingerprint (std::span< const uint8_t > vec, std::string_view hash_name) |
std::array< uint8_t, ED448_LEN > | create_pk_from_sk (std::span< const uint8_t, ED448_LEN > sk) |
Create a public key point from a secret key (RFC 8032 5.2.5) | |
std::unique_ptr< Private_Key > | create_private_key (std::string_view alg_name, RandomNumberGenerator &rng, std::string_view params, std::string_view provider) |
auto | create_shake_row_generator (const FrodoKEMConstants &constants, StrongSpan< const FrodoSeedA > seed_a) |
uint8_t | ct_compare_u8 (const uint8_t x[], const uint8_t y[], size_t len) |
BigInt | ct_divide (const BigInt &x, const BigInt &y) |
void | ct_divide (const BigInt &x, const BigInt &y, BigInt &q_out, BigInt &r_out) |
BigInt | ct_divide_pow2k (size_t k, const BigInt &y) |
BigInt | ct_divide_word (const BigInt &x, word y) |
void | ct_divide_word (const BigInt &x, word y, BigInt &q_out, word &r_out) |
template<typename T > requires (std::is_integral<T>::value) | |
constexpr T | ct_is_zero (T x) |
word | ct_mod_word (const BigInt &x, word y) |
BigInt | ct_modulo (const BigInt &x, const BigInt &y) |
template<std::unsigned_integral T> | |
constexpr uint8_t | ct_popcount (T x) |
template<std::unsigned_integral T> | |
constexpr T | ct_reverse_bits (T b) |
template<typename T > requires (std::is_integral<T>::value) | |
constexpr size_t | ctz (T n) |
void | curve25519_basepoint (uint8_t mypublic[32], const uint8_t secret[32]) |
void | curve25519_donna (uint8_t mypublic[32], const uint8_t secret[32], const uint8_t basepoint[32]) |
void | deallocate_memory (void *p, size_t elems, size_t elem_size) |
gf2m | decode_gf2m (const uint8_t *mem) |
Point448 | decode_point (std::span< const uint8_t > p_bytes) |
Decode a point from a byte array. RFC 7748 Section 5 (decodeUCoordinate) | |
ScalarX448 | decode_scalar (std::span< const uint8_t > scalar_bytes) |
Decode a scalar from a byte array. RFC 7748 Section 5 (decodeScalar448) | |
size_t | dl_exponent_size (size_t bits) |
size_t | dl_work_factor (size_t bits) |
template<typename E , typename... Args> | |
void | do_throw_error (const char *file, int line, const char *func, Args... args) |
size_t | ecp_work_factor (size_t bits) |
void | ed25519_gen_keypair (uint8_t *pk, uint8_t *sk, const uint8_t seed[32]) |
void | ed25519_gen_keypair (uint8_t pk[32], uint8_t sk[64], const uint8_t seed[32]) |
void | ed25519_sign (uint8_t sig[64], const uint8_t m[], size_t mlen, const uint8_t sk[64], const uint8_t domain_sep[], size_t domain_sep_len) |
bool | ed25519_verify (const uint8_t *m, size_t mlen, const uint8_t sig[64], const uint8_t *pk, const uint8_t domain_sep[], size_t domain_sep_len) |
bool | ed25519_verify (const uint8_t msg[], size_t msg_len, const uint8_t sig[64], const uint8_t pk[32], const uint8_t domain_sep[], size_t domain_sep_len) |
uint32_t | encode_gf2m (gf2m to_enc, uint8_t *mem) |
secure_vector< uint8_t > | encode_point (const Point448 &p) |
Encode a point to a 56 byte vector. RFC 7748 Section 5 (encodeUCoordinate) | |
RandomNumberGenerator & | esdm_rng () |
template<typename T > | |
uint16_t | expand_mask_16bit (T tst) |
void | expand_message_xmd (std::string_view hash_fn, std::span< uint8_t > output, std::span< const uint8_t > input, std::span< const uint8_t > domain_sep) |
void | expand_message_xmd (std::string_view hash_fn, std::span< uint8_t > output, std::string_view input_str, std::string_view domain_sep_str) |
template<typename T > requires (std::is_integral<T>::value) | |
constexpr T | expand_top_bit (T a) |
template<std::integral T> | |
consteval eea_result< T > | extended_euclidean_algorithm (T a, T b) |
void | fe_0 (fe &x) |
void | fe_1 (fe &x) |
void | fe_add (fe &x, const fe &a, const fe &b) |
void | fe_copy (fe &a, const fe &b) |
void | fe_frombytes (fe &x, const uint8_t *b) |
void | fe_invert (fe &x, const fe &z) |
int | fe_isnegative (const fe &x) |
int | fe_isnonzero (const fe &x) |
void | fe_mul (fe &x, const fe &a, const fe &b) |
void | fe_neg (fe &x, const fe &z) |
void | fe_pow22523 (fe &x, const fe &y) |
void | fe_sq (fe &x, const fe &z) |
void | fe_sq2 (fe &x, const fe &z) |
void | fe_sq_iter (fe &x, const fe &z, size_t iter) |
void | fe_sub (fe &x, const fe &a, const fe &b) |
void | fe_tobytes (uint8_t *b, const fe &x) |
secure_vector< gf2m > | find_roots_gf2m_decomp (const polyn_gf2m &polyn, size_t code_length) |
template<typename T > requires (std::is_unsigned<T>::value) | |
constexpr T | floor_log2 (T n) |
template<typename... T> | |
std::string | fmt (std::string_view format, const T &... args) |
std::string | format_char_for_display (char c) |
SphincsTreeNode | fors_public_key_from_signature (const SphincsHashedMessage &hashed_message, StrongSpan< const ForsSignature > signature, const Sphincs_Address &address, const Sphincs_Parameters ¶ms, Sphincs_Hash_Functions &hash) |
FIPS 205, Algorithm 17: fors_pkFromSig. | |
SphincsTreeNode | fors_sign_and_pkgen (StrongSpan< ForsSignature > sig_out, const SphincsHashedMessage &hashed_message, const SphincsSecretSeed &secret_seed, const Sphincs_Address &address, const Sphincs_Parameters ¶ms, Sphincs_Hash_Functions &hashes) |
FIPS 205, Algorithm 16: fors_sign (with simultaneous FORS pk generation) | |
BigInt | gcd (const BigInt &a, const BigInt &b) |
void | ge_double_scalarmult_vartime (uint8_t out[32], const uint8_t *a, const ge_p3 *A, const uint8_t *b) |
void | ge_double_scalarmult_vartime (uint8_t out[32], const uint8_t a[], const ge_p3 *A, const uint8_t b[]) |
int | ge_frombytes_negate_vartime (ge_p3 *v, const uint8_t *) |
void | ge_scalarmult_base (uint8_t out[32], const uint8_t in[32]) |
template<typename GeneralVariantT , typename SpecialT > requires (std::is_constructible_v<GeneralVariantT, std::decay_t<SpecialT>>) | |
constexpr GeneralVariantT | generalize_to (SpecialT &&specific) noexcept |
Converts a given variant into another variant-ish whose type states are a super set of the given variant. | |
template<typename GeneralVariantT , typename... SpecialTs> | |
constexpr GeneralVariantT | generalize_to (std::variant< SpecialTs... > specific) noexcept |
Converts a given variant into another variant-ish whose type states are a super set of the given variant. | |
std::string | generate_bcrypt (std::string_view pass, RandomNumberGenerator &rng, uint16_t work_factor, char version) |
std::vector< uint8_t > | generate_dsa_primes (RandomNumberGenerator &rng, BigInt &p, BigInt &q, size_t pbits, size_t qbits) |
bool | generate_dsa_primes (RandomNumberGenerator &rng, BigInt &p, BigInt &q, size_t pbits, size_t qbits, const std::vector< uint8_t > &seed_c, size_t offset) |
McEliece_PrivateKey | generate_mceliece_key (RandomNumberGenerator &rng, size_t ext_deg, size_t code_length, size_t t) |
std::string | generate_passhash9 (std::string_view pass, RandomNumberGenerator &rng, uint16_t work_factor, uint8_t alg_id) |
BigInt | generate_rfc6979_nonce (const BigInt &x, const BigInt &q, const BigInt &h, std::string_view hash) |
BigInt | generate_rsa_prime (RandomNumberGenerator &keygen_rng, RandomNumberGenerator &prime_test_rng, size_t bits, const BigInt &coprime, size_t prob) |
AEAD_Mode * | get_aead (std::string_view name, Cipher_Dir direction) |
template<size_t B, typename T > requires (B < sizeof(T)) | |
constexpr uint8_t | get_byte (T input) |
template<typename T > | |
constexpr uint8_t | get_byte_var (size_t byte_num, T input) |
Keyed_Filter * | get_cipher (std::string_view algo_spec, Cipher_Dir direction) |
Keyed_Filter * | get_cipher (std::string_view algo_spec, const SymmetricKey &key, Cipher_Dir direction) |
Keyed_Filter * | get_cipher (std::string_view algo_spec, const SymmetricKey &key, const InitializationVector &iv, Cipher_Dir direction) |
Cipher_Mode * | get_cipher_mode (std::string_view algo_spec, Cipher_Dir direction, std::string_view provider="") |
std::vector< std::string > | get_files_recursive (std::string_view dir) |
KDF * | get_kdf (std::string_view algo_spec) |
PBKDF * | get_pbkdf (std::string_view algo_spec, std::string_view provider="") |
PBKDF * | get_s2k (std::string_view algo_spec) |
template<WordType W> | |
constexpr uint32_t | get_uint32 (const W xw[], size_t i) |
template<uint64_t A, uint8_t B> | |
SIMD_8x32 | gf2p8affine (const SIMD_8x32 &x) |
template<uint64_t A, uint8_t B> | |
SIMD_8x32 | gf2p8affineinv (const SIMD_8x32 &x) |
consteval uint64_t | gfni_matrix (std::string_view s) |
gf2m | gray_to_lex (gf2m gray) |
bool | has_filesystem_impl () |
std::vector< uint8_t > | hex_decode (const char input[], size_t input_length, bool ignore_ws) |
size_t | hex_decode (std::span< uint8_t > output, std::string_view input, bool ignore_ws) |
std::vector< uint8_t > | hex_decode (std::string_view input, bool ignore_ws) |
size_t | hex_decode (uint8_t output[], const char input[], size_t input_length, bool ignore_ws) |
size_t | hex_decode (uint8_t output[], const char input[], size_t input_length, size_t &input_consumed, bool ignore_ws) |
size_t | hex_decode (uint8_t output[], std::string_view input, bool ignore_ws) |
secure_vector< uint8_t > | hex_decode_locked (const char input[], size_t input_length, bool ignore_ws) |
secure_vector< uint8_t > | hex_decode_locked (std::string_view input, bool ignore_ws) |
void | hex_encode (char output[], const uint8_t input[], size_t input_length, bool uppercase) |
std::string | hex_encode (const uint8_t input[], size_t input_length, bool uppercase) |
std::string | hex_encode (std::span< const uint8_t > input, bool uppercase=true) |
template<WordType W, size_t N> | |
constexpr auto | hex_to_words (const char(&s)[N]) |
template<typename T > requires (std::is_unsigned<T>::value) | |
constexpr size_t | high_bit (T n) |
secure_vector< uint8_t > | hkdf_expand_label (std::string_view hash_fn, std::span< const uint8_t > secret, std::string_view label, std::span< const uint8_t > hash_val, size_t length) |
template<typename... Alts, typename... Ts> | |
constexpr bool | holds_any_of (const std::variant< Ts... > &v) noexcept |
bool | host_wildcard_match (std::string_view issued_, std::string_view host_) |
void | ht_sign (StrongSpan< SphincsHypertreeSignature > out_sig, const SphincsTreeNode &message_to_sign, const SphincsSecretSeed &secret_seed, XmssTreeIndexInLayer tree_index_in_layer, TreeNodeIndex idx_leaf, const Sphincs_Parameters ¶ms, Sphincs_Hash_Functions &hashes) |
FIPS 205, Algorithm 12: ht_sign. | |
bool | ht_verify (const SphincsTreeNode &signed_msg, StrongSpan< const SphincsHypertreeSignature > ht_sig, const SphincsTreeNode &pk_root, XmssTreeIndexInLayer tree_index_in_layer, TreeNodeIndex idx_leaf, const Sphincs_Parameters ¶ms, Sphincs_Hash_Functions &hashes) |
FIPS 205, Algorithm 13: ht_verify. | |
uint8_t | ieee1363_hash_id (std::string_view name) |
size_t | if_work_factor (size_t bits) |
template<typename T > | |
constexpr void | ignore_param (T &&) |
template<typename... T> | |
constexpr void | ignore_params (T &&... args) |
template<std::unsigned_integral T> | |
constexpr size_t | index_of_first_set_byte (T v) |
void | initialize_allocator () |
bool | intersects (ASN1_Class x, ASN1_Class y) |
BigInt | inverse_mod (const BigInt &n, const BigInt &mod) |
std::optional< BigInt > | inverse_mod_general (const BigInt &x, const BigInt &mod) |
BigInt | inverse_mod_public_prime (const BigInt &x, const BigInt &p) |
BigInt | inverse_mod_rsa_public_modulus (const BigInt &x, const BigInt &n) |
BigInt | inverse_mod_secret_prime (const BigInt &x, const BigInt &p) |
std::string | ipv4_to_string (uint32_t ip) |
bool | is_bailie_psw_probable_prime (const BigInt &n, const Modular_Reducer &mod_n) |
template<typename GeneralVariantT , typename SpecialT > | |
constexpr bool | is_generalizable_to (const SpecialT &) noexcept |
template<typename GeneralVariantT , typename... SpecialTs> | |
constexpr bool | is_generalizable_to (const std::variant< SpecialTs... > &) noexcept |
bool | is_lucas_probable_prime (const BigInt &C, const Modular_Reducer &mod_C) |
bool | is_miller_rabin_probable_prime (const BigInt &n, const Modular_Reducer &mod_n, RandomNumberGenerator &rng, size_t test_iterations) |
bool | is_passhash9_alg_supported (uint8_t alg_id) |
BigInt | is_perfect_square (const BigInt &C) |
template<typename T > requires (std::is_unsigned<T>::value) | |
constexpr bool | is_power_of_2 (T arg) |
bool | is_prime (const BigInt &n, RandomNumberGenerator &rng, size_t prob, bool is_random) |
int32_t | jacobi (const BigInt &a, const BigInt &n) |
template<absorbing_object T, typename... Ts> requires (std::constructible_from<std::span<const uint8_t>, Ts> && ...) | |
size_t | keccak_absorb_padded_strings_encoding (T &sink, size_t padding_mod, Ts... byte_strings) |
size_t | keccak_int_encoding_size (size_t x) |
std::span< const uint8_t > | keccak_int_left_encode (std::span< uint8_t > out, size_t x) |
std::span< const uint8_t > | keccak_int_right_encode (std::span< uint8_t > out, size_t x) |
constexpr size_t | keccak_max_int_encoding_size () |
void | Keccak_Permutation_round (uint64_t T[25], const uint64_t A[25], uint64_t RC) |
std::string | key_constraints_to_string (Key_Constraints c) |
std::string | latin1_to_utf8 (const uint8_t chars[], size_t len) |
BigInt | lcm (const BigInt &a, const BigInt &b) |
gf2m | lex_to_gray (gf2m lex) |
LMOTS_K | lmots_compute_pubkey_from_sig (const LMOTS_Signature &sig, const LMS_Message &msg, const LMS_Identifier &identifier, LMS_Tree_Node_Idx q) |
Compute a public key candidate for an OTS-signature-message pair and the OTS instance parameters. | |
uint64_t | load_3 (const uint8_t in[3]) |
uint64_t | load_4 (const uint8_t *in) |
template<typename OutT = detail::AutoDetect, typename... ParamTs> | |
constexpr auto | load_be (ParamTs &&... params) |
template<typename OutT = detail::AutoDetect, typename... ParamTs> | |
constexpr auto | load_le (ParamTs &&... params) |
std::unique_ptr< Private_Key > | load_private_key (const AlgorithmIdentifier &alg_id, std::span< const uint8_t > key_bits) |
std::unique_ptr< Public_Key > | load_public_key (const AlgorithmIdentifier &alg_id, std::span< const uint8_t > key_bits) |
template<typename T > | |
secure_vector< T > | lock (const std::vector< T > &in) |
size_t | low_zero_bits (const BigInt &n) |
template<typename T > | |
constexpr T | majority (T a, T b, T c) |
std::unique_ptr< BlockCipher > | make_commoncrypto_block_cipher (std::string_view name) |
std::unique_ptr< Cipher_Mode > | make_commoncrypto_cipher_mode (std::string_view name, Cipher_Dir direction) |
std::unique_ptr< HashFunction > | make_commoncrypto_hash (std::string_view name) |
Compression_Algorithm * | make_compressor (std::string_view type) |
Decompression_Algorithm * | make_decompressor (std::string_view type) |
constexpr uint16_t | make_uint16 (uint8_t i0, uint8_t i1) |
constexpr uint32_t | make_uint32 (uint8_t i0, uint8_t i1, uint8_t i2, uint8_t i3) |
constexpr uint64_t | make_uint64 (uint8_t i0, uint8_t i1, uint8_t i2, uint8_t i3, uint8_t i4, uint8_t i5, uint8_t i6, uint8_t i7) |
template<typename T , typename Pred > | |
void | map_remove_if (Pred pred, T &assoc) |
secure_vector< uint8_t > | mceliece_decrypt (secure_vector< gf2m > &error_pos, const uint8_t *ciphertext, size_t ciphertext_len, const McEliece_PrivateKey &key) |
void | mceliece_decrypt (secure_vector< uint8_t > &plaintext, secure_vector< uint8_t > &error_mask, const uint8_t ciphertext[], size_t ciphertext_len, const McEliece_PrivateKey &key) |
void | mceliece_decrypt (secure_vector< uint8_t > &plaintext_out, secure_vector< uint8_t > &error_mask_out, const secure_vector< uint8_t > &ciphertext, const McEliece_PrivateKey &key) |
void | mceliece_encrypt (secure_vector< uint8_t > &ciphertext_out, secure_vector< uint8_t > &error_mask_out, const secure_vector< uint8_t > &plaintext, const McEliece_PublicKey &key, RandomNumberGenerator &rng) |
size_t | mceliece_work_factor (size_t n, size_t t) |
template<typename F > | |
uint64_t | measure_cost (std::chrono::milliseconds trial_msec, F func) |
void | mgf1_mask (HashFunction &hash, const uint8_t in[], size_t in_len, uint8_t out[], size_t out_len) |
void | mgf1_mask (HashFunction &hash, std::span< const uint8_t > input, std::span< uint8_t > output) |
size_t | miller_rabin_test_iterations (size_t n_bits, size_t prob, bool random) |
template<std::integral T, std::integral T2 = next_longer_int_t<T>> requires (sizeof(T) <= 4) | |
consteval T | modular_inverse (T q, T2 m=T2(1)<< sizeof(T) *8) |
template<std::integral T> requires (size_t(sizeof(T)) <= 4) | |
consteval T | montgomery_R (T q) |
template<std::integral T> requires (size_t(sizeof(T)) <= 4) | |
consteval T | montgomery_R2 (T q) |
Montgomery_Int | monty_execute (const Montgomery_Exponentation_State &precomputed_state, const BigInt &k, size_t max_k_bits) |
Montgomery_Int | monty_execute_vartime (const Montgomery_Exponentation_State &precomputed_state, const BigInt &k) |
Montgomery_Int | monty_exp (const std::shared_ptr< const Montgomery_Params > ¶ms_p, const BigInt &g, const BigInt &k, size_t max_k_bits) |
Montgomery_Int | monty_exp_vartime (const std::shared_ptr< const Montgomery_Params > ¶ms_p, const BigInt &g, const BigInt &k) |
template<WordType W> | |
constexpr auto | monty_inverse (W a) -> W |
Montgomery_Int | monty_multi_exp (const std::shared_ptr< const Montgomery_Params > ¶ms_p, const BigInt &x_bn, const BigInt &z1, const BigInt &y_bn, const BigInt &z2) |
std::shared_ptr< const Montgomery_Exponentation_State > | monty_precompute (const Montgomery_Int &g, size_t window_bits, bool const_time) |
std::shared_ptr< const Montgomery_Exponentation_State > | monty_precompute (const std::shared_ptr< const Montgomery_Params > ¶ms, const BigInt &g, size_t window_bits, bool const_time) |
constexpr void | mul64x64_128 (uint64_t a, uint64_t b, uint64_t *lo, uint64_t *hi) |
EC_Point | multi_exponentiate (const EC_Point &p1, const BigInt &z1, const EC_Point &p2, const BigInt &z2) |
secure_vector< uint8_t > | nist_key_unwrap (const uint8_t input[], size_t input_len, const BlockCipher &bc) |
secure_vector< uint8_t > | nist_key_unwrap_padded (const uint8_t input[], size_t input_len, const BlockCipher &bc) |
std::vector< uint8_t > | nist_key_wrap (const uint8_t input[], size_t input_len, const BlockCipher &bc) |
std::vector< uint8_t > | nist_key_wrap_padded (const uint8_t input[], size_t input_len, const BlockCipher &bc) |
CT::Option< size_t > | oaep_find_delim (std::span< const uint8_t > input, std::span< const uint8_t > phash) |
bool | operator!= (const AlgorithmIdentifier &a1, const AlgorithmIdentifier &a2) |
bool | operator!= (const ASN1_Time &, const ASN1_Time &) |
bool | operator!= (const BigInt &a, const BigInt &b) |
bool | operator!= (const BigInt &a, word b) |
bool | operator!= (const CRL_Entry &a1, const CRL_Entry &a2) |
bool | operator!= (const EC_Group &lhs, const EC_Group &rhs) |
bool | operator!= (const OctetString &s1, const OctetString &s2) |
bool | operator!= (const OID &a, const OID &b) |
template<typename T , typename U > | |
bool | operator!= (const secure_allocator< T > &, const secure_allocator< U > &) |
template<bitvectorish T1, bitvectorish T2> | |
bool | operator!= (const T1 &lhs, const T2 &rhs) |
bool | operator!= (const X509_Certificate &cert1, const X509_Certificate &cert2) |
bool | operator!= (const X509_DN &dn1, const X509_DN &dn2) |
BigInt | operator% (const BigInt &n, const BigInt &mod) |
word | operator% (const BigInt &n, word mod) |
template<bitvectorish T1, bitvectorish T2> | |
auto | operator& (const T1 &lhs, const T2 &rhs) |
ECIES_Flags | operator& (ECIES_Flags a, ECIES_Flags b) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | operator& (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator& (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator& (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator&= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | operator&= (Strong< T1, Tags... > &a, T2 b) |
EC_Point | operator* (const BigInt &scalar, const EC_Point &point) |
BigInt | operator* (const BigInt &x, const BigInt &y) |
BigInt | operator* (const BigInt &x, word y) |
template<std::unsigned_integral T> | |
constexpr donna128 | operator* (const donna128 &x, T y) |
EC_Point | operator* (const EC_Point &point, const BigInt &scalar) |
Ed448Point | operator* (const Scalar448 &lhs, const Ed448Point &rhs) |
Syntax sugar for scalar multiplication. | |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | operator* (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator* (Strong< T1, Tags... > a, T2 b) |
template<std::unsigned_integral T> | |
constexpr donna128 | operator* (T y, const donna128 &x) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator* (T1 a, Strong< T2, Tags... > b) |
BigInt | operator* (word x, const BigInt &y) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator*= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | operator*= (Strong< T1, Tags... > &a, T2 b) |
BigInt | operator+ (const BigInt &x, const BigInt &y) |
BigInt | operator+ (const BigInt &x, word y) |
constexpr donna128 | operator+ (const donna128 &x, const donna128 &y) |
constexpr donna128 | operator+ (const donna128 &x, uint64_t y) |
EC_Point | operator+ (const EC_Point &lhs, const EC_Point &rhs) |
OctetString | operator+ (const OctetString &k1, const OctetString &k2) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | operator+ (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator+ (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator+ (T1 a, Strong< T2, Tags... > b) |
BigInt | operator+ (word x, const BigInt &y) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator++ (Strong< T, Tags... > &a) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator++ (Strong< T, Tags... > &a, int) |
template<typename T , typename Alloc , typename L > | |
std::vector< T, Alloc > & | operator+= (std::vector< T, Alloc > &out, const std::pair< const T *, L > &in) |
template<typename T , typename Alloc , typename L > | |
std::vector< T, Alloc > & | operator+= (std::vector< T, Alloc > &out, const std::pair< T *, L > &in) |
template<typename T , typename Alloc , typename Alloc2 > | |
std::vector< T, Alloc > & | operator+= (std::vector< T, Alloc > &out, const std::vector< T, Alloc2 > &in) |
template<typename T , typename Alloc > | |
std::vector< T, Alloc > & | operator+= (std::vector< T, Alloc > &out, T in) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator+= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | operator+= (Strong< T1, Tags... > &a, T2 b) |
BigInt | operator- (const BigInt &x, const BigInt &y) |
BigInt | operator- (const BigInt &x, word y) |
EC_Point | operator- (const EC_Point &lhs) |
EC_Point | operator- (const EC_Point &lhs, const EC_Point &rhs) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | operator- (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator- (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator- (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator-- (Strong< T, Tags... > &a) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator-- (Strong< T, Tags... > &a, int) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator-= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | operator-= (Strong< T1, Tags... > &a, T2 b) |
BigInt | operator/ (const BigInt &x, const BigInt &y) |
BigInt | operator/ (const BigInt &x, word y) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | operator/ (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator/ (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator/ (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator/= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | operator/= (Strong< T1, Tags... > &a, T2 b) |
bool | operator< (const ASN1_Time &, const ASN1_Time &) |
bool | operator< (const BigInt &a, const BigInt &b) |
bool | operator< (const BigInt &a, word b) |
bool | operator< (const OID &a, const OID &b) |
bool | operator< (const X509_DN &dn1, const X509_DN &dn2) |
BigInt | operator<< (const BigInt &x, size_t shift) |
int | operator<< (int fd, Pipe &pipe) |
std::ostream & | operator<< (std::ostream &os, const GeneralName &gn) |
std::ostream & | operator<< (std::ostream &os, const GeneralSubtree &gs) |
template<typename T , typename... Tags> requires (concepts::streamable<T>) | |
decltype(auto) | operator<< (std::ostream &os, const Strong< T, Tags... > &v) |
std::ostream & | operator<< (std::ostream &out, const OID &oid) |
std::ostream & | operator<< (std::ostream &out, const X509_DN &dn) |
std::ostream & | operator<< (std::ostream &out, Pipe &pipe) |
std::ostream & | operator<< (std::ostream &stream, const BigInt &n) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | operator<< (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator<< (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator<< (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator<<= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | operator<<= (Strong< T1, Tags... > &a, T2 b) |
bool | operator<= (const ASN1_Time &, const ASN1_Time &) |
bool | operator<= (const BigInt &a, const BigInt &b) |
bool | operator<= (const BigInt &a, word b) |
template<typename T , typename... Tags> requires (std::three_way_comparable<T>) | |
auto | operator<=> (const Strong< T, Tags... > &lhs, const Strong< T, Tags... > &rhs) |
template<std::integral T1, std::integral T2, typename... Tags> | |
auto | operator<=> (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> | |
auto | operator<=> (T1 a, Strong< T2, Tags... > b) |
bool | operator== (const AlgorithmIdentifier &a1, const AlgorithmIdentifier &a2) |
bool | operator== (const ASN1_Time &, const ASN1_Time &) |
bool | operator== (const BigInt &a, const BigInt &b) |
bool | operator== (const BigInt &a, word b) |
bool | operator== (const Classic_McEliece_Polynomial_Ring::Big_F_Coefficient &lhs, const Classic_McEliece_Polynomial_Ring::Big_F_Coefficient &rhs) |
bool | operator== (const CRL_Entry &a1, const CRL_Entry &a2) |
bool | operator== (const OctetString &s1, const OctetString &s2) |
template<typename T , typename U > | |
bool | operator== (const secure_allocator< T > &, const secure_allocator< U > &) |
template<typename T , typename... Tags> requires (std::equality_comparable<T>) | |
bool | operator== (const Strong< T, Tags... > &lhs, const Strong< T, Tags... > &rhs) |
template<bitvectorish T1, bitvectorish T2> | |
bool | operator== (const T1 &lhs, const T2 &rhs) |
bool | operator== (const X509_DN &dn1, const X509_DN &dn2) |
template<std::integral T1, std::integral T2, typename... Tags> | |
auto | operator== (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> | |
auto | operator== (T1 a, Strong< T2, Tags... > b) |
bool | operator> (const ASN1_Time &, const ASN1_Time &) |
bool | operator> (const BigInt &a, const BigInt &b) |
bool | operator> (const BigInt &a, word b) |
bool | operator>= (const ASN1_Time &, const ASN1_Time &) |
bool | operator>= (const BigInt &a, const BigInt &b) |
bool | operator>= (const BigInt &a, word b) |
BigInt | operator>> (const BigInt &x, size_t shift) |
int | operator>> (int fd, Pipe &pipe) |
std::istream & | operator>> (std::istream &in, Pipe &pipe) |
std::istream & | operator>> (std::istream &in, X509_DN &dn) |
std::istream & | operator>> (std::istream &stream, BigInt &n) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | operator>> (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator>> (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator>> (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator>>= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | operator>>= (Strong< T1, Tags... > &a, T2 b) |
OctetString | operator^ (const OctetString &k1, const OctetString &k2) |
template<bitvectorish T1, bitvectorish T2> | |
auto | operator^ (const T1 &lhs, const T2 &rhs) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | operator^ (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator^ (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator^ (T1 a, Strong< T2, Tags... > b) |
template<typename Alloc , typename Alloc2 > | |
std::vector< uint8_t, Alloc > & | operator^= (std::vector< uint8_t, Alloc > &out, const std::vector< uint8_t, Alloc2 > &in) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator^= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | operator^= (Strong< T1, Tags... > &a, T2 b) |
ASN1_Class | operator| (ASN1_Class x, ASN1_Class y) |
uint32_t | operator| (ASN1_Class x, ASN1_Type y) |
uint32_t | operator| (ASN1_Type x, ASN1_Class y) |
ASN1_Type | operator| (ASN1_Type x, ASN1_Type y) |
constexpr donna128 | operator| (const donna128 &x, const donna128 &y) |
constexpr donna128 | operator| (const donna128 &x, uint64_t y) |
template<bitvectorish T1, bitvectorish T2> | |
auto | operator| (const T1 &lhs, const T2 &rhs) |
ECIES_Flags | operator| (ECIES_Flags a, ECIES_Flags b) |
template<std::integral T, typename... Tags> | |
constexpr decltype(auto) | operator| (Strong< T, Tags... > a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator| (Strong< T1, Tags... > a, T2 b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr decltype(auto) | operator| (T1 a, Strong< T2, Tags... > b) |
template<std::integral T, typename... Tags> | |
constexpr auto | operator|= (Strong< T, Tags... > &a, Strong< T, Tags... > b) |
template<std::integral T1, std::integral T2, typename... Tags> requires (detail::has_capability<EnableArithmeticWithPlainNumber, Tags...>) | |
constexpr auto | operator|= (Strong< T1, Tags... > &a, T2 b) |
EC_Point | OS2ECP (const uint8_t data[], size_t data_len, const CurveGFp &curve) |
std::pair< BigInt, BigInt > | OS2ECP (const uint8_t pt[], size_t pt_len, const BigInt &p, const BigInt &a, const BigInt &b) |
EC_Point | OS2ECP (std::span< const uint8_t > data, const CurveGFp &curve) |
template<typename T > requires std::is_default_constructible_v<T> | |
constexpr auto | out_opt (std::optional< T > &outopt) noexcept |
template<typename T > | |
constexpr auto | out_ptr (T &outptr) noexcept |
template<class... Ts> | |
overloaded (Ts...) -> overloaded< Ts... > | |
std::vector< std::string > | parse_algorithm_name (std::string_view namex) |
bool | passes_miller_rabin_test (const BigInt &n, const Modular_Reducer &mod_n, const std::shared_ptr< Montgomery_Params > &monty_n, const BigInt &a) |
secure_vector< uint8_t > | pbes2_decrypt (std::span< const uint8_t > key_bits, std::string_view passphrase, const std::vector< uint8_t > ¶ms) |
std::pair< AlgorithmIdentifier, std::vector< uint8_t > > | pbes2_encrypt (std::span< const uint8_t > key_bits, std::string_view passphrase, std::chrono::milliseconds msec, std::string_view cipher, std::string_view digest, RandomNumberGenerator &rng) |
std::pair< AlgorithmIdentifier, std::vector< uint8_t > > | pbes2_encrypt_iter (std::span< const uint8_t > key_bits, std::string_view passphrase, size_t pbkdf_iter, std::string_view cipher, std::string_view digest, RandomNumberGenerator &rng) |
std::pair< AlgorithmIdentifier, std::vector< uint8_t > > | pbes2_encrypt_msec (std::span< const uint8_t > key_bits, std::string_view passphrase, std::chrono::milliseconds msec, size_t *out_iterations_if_nonnull, std::string_view cipher, std::string_view digest, RandomNumberGenerator &rng) |
void | pbkdf2 (MessageAuthenticationCode &prf, uint8_t out[], size_t out_len, const uint8_t salt[], size_t salt_len, size_t iterations) |
size_t | pbkdf2 (MessageAuthenticationCode &prf, uint8_t out[], size_t out_len, std::string_view password, const uint8_t salt[], size_t salt_len, size_t iterations, std::chrono::milliseconds msec) |
std::vector< uint8_t > | pkcs_hash_id (std::string_view name) |
void | poly_double_n (uint8_t buf[], size_t n) |
void | poly_double_n (uint8_t out[], const uint8_t in[], size_t n) |
void | poly_double_n_le (uint8_t out[], const uint8_t in[], size_t n) |
bool | poly_double_supported_size (size_t n) |
BigInt | power_mod (const BigInt &base, const BigInt &exp, const BigInt &mod) |
uint64_t | prefetch_array_raw (size_t bytes, const void *arrayv) noexcept |
template<typename T , size_t... Ns> requires std::is_integral<T>::value | |
T | prefetch_arrays (T(&... arr)[Ns]) noexcept |
std::vector< std::string > | probe_provider_private_key (std::string_view alg_name, const std::vector< std::string > &possible) |
template<typename T > | |
std::vector< std::string > | probe_providers_of (std::string_view algo_spec, const std::vector< std::string > &possible={"base"}) |
gf2m | random_code_element (uint16_t code_length, RandomNumberGenerator &rng) |
gf2m | random_gf2m (RandomNumberGenerator &rng) |
BigInt | random_prime (RandomNumberGenerator &rng, size_t bits, const BigInt &coprime, size_t equiv, size_t modulo, size_t prob) |
BigInt | random_safe_prime (RandomNumberGenerator &rng, size_t bits) |
std::map< std::string, std::string > | read_cfg (std::istream &is) |
BOTAN_TEST_API std::map< std::string, std::string > | read_kv (std::string_view kv) |
template<WordType W, size_t N, W C> | |
constexpr std::array< W, N > | redc_crandall (std::span< const W, 2 *N > z) |
void | redc_mul (int64_t &s1, int64_t &s2, int64_t &s3, int64_t &s4, int64_t &s5, int64_t &s6, int64_t &X) |
template<typename RetT , typename KeyT , typename ReducerT > requires std::is_convertible_v<ReducerT, std::function<RetT(RetT, const KeyT&)>> | |
RetT | reduce (const std::vector< KeyT > &keys, RetT acc, ReducerT reducer) |
template<std::unsigned_integral T> requires (sizeof(T) == 1 || sizeof(T) == 2 || sizeof(T) == 4 || sizeof(T) == 8) | |
constexpr T | reverse_bytes (T x) |
secure_vector< uint8_t > | rfc3394_keyunwrap (const secure_vector< uint8_t > &key, const SymmetricKey &kek) |
secure_vector< uint8_t > | rfc3394_keywrap (const secure_vector< uint8_t > &key, const SymmetricKey &kek) |
size_t | RFC4880_decode_count (uint8_t iter) |
uint8_t | RFC4880_encode_count (size_t desired_iterations) |
size_t | RFC4880_round_iterations (size_t iterations) |
template<size_t R1, size_t R2, size_t R3, typename T > | |
constexpr T | rho (T x) |
Gf448Elem | root (const Gf448Elem &elem) |
Compute the root of elem in the field. | |
template<size_t R> | |
SIMD_16x32 | rotl (SIMD_16x32 input) |
template<size_t R> | |
SIMD_4x32 | rotl (SIMD_4x32 input) |
template<size_t R> | |
SIMD_8x32 | rotl (SIMD_8x32 input) |
template<size_t ROT, typename T > requires (ROT > 0 && ROT < 8 * sizeof(T)) | |
constexpr T | rotl (T input) |
template<typename T > | |
constexpr T | rotl_var (T input, size_t rot) |
template<size_t R> | |
SIMD_16x32 | rotr (SIMD_16x32 input) |
template<size_t R> | |
SIMD_4x32 | rotr (SIMD_4x32 input) |
template<size_t R> | |
SIMD_8x32 | rotr (SIMD_8x32 input) |
template<size_t ROT, typename T > requires (ROT > 0 && ROT < 8 * sizeof(T)) | |
constexpr T | rotr (T input) |
template<typename T > | |
constexpr T | rotr_var (T input, size_t rot) |
constexpr size_t | round_up (size_t n, size_t align_to) |
std::string | runtime_version_check (uint32_t major, uint32_t minor, uint32_t patch) |
template<typename T > | |
bool | same_mem (const T *p1, const T *p2, size_t n) |
void | sc_muladd (uint8_t *, const uint8_t *, const uint8_t *, const uint8_t *) |
void | sc_reduce (uint8_t *) |
void | scrypt (uint8_t output[], size_t output_len, const char *password, size_t password_len, const uint8_t salt[], size_t salt_len, size_t N, size_t r, size_t p) |
void | scrypt (uint8_t output[], size_t output_len, std::string_view password, const uint8_t salt[], size_t salt_len, size_t N, size_t r, size_t p) |
void | secure_scrub_memory (ranges::contiguous_output_range auto &&data) |
void | secure_scrub_memory (void *ptr, size_t n) |
constexpr void | set_mem (uint8_t *ptr, size_t n, uint8_t val) |
BOTAN_FORCE_INLINE void | SHA2_32_F (uint32_t A, uint32_t B, uint32_t C, uint32_t &D, uint32_t E, uint32_t F, uint32_t G, uint32_t &H, uint32_t &M1, uint32_t M2, uint32_t M3, uint32_t M4, uint32_t magic) |
BOTAN_FORCE_INLINE void | SHA2_64_F (uint64_t A, uint64_t B, uint64_t C, uint64_t &D, uint64_t E, uint64_t F, uint64_t G, uint64_t &H, uint64_t &M1, uint64_t M2, uint64_t M3, uint64_t M4, uint64_t magic) |
template<size_t S, WordType W, size_t N> | |
constexpr W | shift_left (std::array< W, N > &x) |
template<size_t S, WordType W, size_t N> | |
constexpr W | shift_right (std::array< W, N > &x) |
template<size_t S> | |
SIMD_16x32 | shl (SIMD_16x32 input) |
template<size_t S> | |
SIMD_4x32 | shl (SIMD_4x32 input) |
template<size_t S> | |
SIMD_8x32 | shl (SIMD_8x32 input) |
const char * | short_version_cstr () |
std::string | short_version_string () |
template<size_t R1, size_t R2, size_t S, typename T > | |
constexpr T | sigma (T x) |
std::array< uint8_t, 2 *ED448_LEN > | sign_message (std::span< const uint8_t, ED448_LEN > sk, std::span< const uint8_t, ED448_LEN > pk, bool f, std::span< const uint8_t > context, std::span< const uint8_t > msg) |
Sign a message using a keypair (RFC 8032 5.2.6) | |
template<typename T > requires (std::is_integral<T>::value) | |
constexpr size_t | significant_bytes (T n) |
std::vector< uint8_t > | sm2_compute_za (HashFunction &hash, std::string_view user_id, const EC_Group &group, const EC_AffinePoint &pubkey) |
std::vector< std::string > | split_on (std::string_view str, char delim) |
BigInt | sqrt_modulo_prime (const BigInt &a, const BigInt &p) |
BigInt | square (const BigInt &x) |
Gf448Elem | square (const Gf448Elem &elem) |
Computes elem^2. Faster than operator*. | |
std::pair< BigInt, SymmetricKey > | srp6_client_agree (std::string_view identifier, std::string_view password, const DL_Group &group, std::string_view hash_id, const std::vector< uint8_t > &salt, const BigInt &B, const size_t a_bits, RandomNumberGenerator &rng) |
std::pair< BigInt, SymmetricKey > | srp6_client_agree (std::string_view identifier, std::string_view password, std::string_view group_id, std::string_view hash_id, const std::vector< uint8_t > &salt, const BigInt &B, RandomNumberGenerator &rng) |
BigInt | srp6_generate_verifier (std::string_view identifier, std::string_view password, const std::vector< uint8_t > &salt, const DL_Group &group, std::string_view hash_id) |
BigInt | srp6_generate_verifier (std::string_view identifier, std::string_view password, const std::vector< uint8_t > &salt, std::string_view group_id, std::string_view hash_id) |
std::string | srp6_group_identifier (const BigInt &N, const BigInt &g) |
template<typename ModifierT = detail::AutoDetect, typename... ParamTs> | |
constexpr auto | store_be (ParamTs &&... params) |
template<typename ModifierT = detail::AutoDetect, typename... ParamTs> | |
constexpr auto | store_le (ParamTs &&... params) |
std::string | string_join (const std::vector< std::string > &strs, char delim) |
std::optional< uint32_t > | string_to_ipv4 (std::string_view str) |
template<typename T > | |
constexpr void | swap_bits (T &x, T &y, T mask, size_t shift) |
template<std::unsigned_integral T> | |
constexpr T | swar_in_range (T v, T lower, T upper) |
template<std::unsigned_integral T> | |
constexpr T | swar_lt (T a, T b) |
std::vector< polyn_gf2m > | syndrome_init (const polyn_gf2m &generator, const std::vector< gf2m > &support, int n) |
RandomNumberGenerator & | system_rng () |
void | throw_invalid_argument (const char *message, const char *func, const char *file) |
void | throw_invalid_state (const char *expr, const char *func, const char *file) |
template<concepts::contiguous_container T = std::vector<uint8_t>> | |
T | to_byte_vector (std::string_view s) |
const char * | to_string (Certificate_Status_Code code) |
std::string | to_string (ErrorType type) |
Convert an ErrorType to string. | |
std::string | to_string (std::span< const uint8_t > bytes) |
uint32_t | to_u32bit (std::string_view str_view) |
uint16_t | to_uint16 (std::string_view str) |
template<typename T > requires std::is_enum_v<T> | |
auto | to_underlying (T e) noexcept |
std::string | tolower_string (std::string_view in) |
void | treehash (StrongSpan< SphincsTreeNode > out_root, StrongSpan< SphincsAuthenticationPath > out_auth_path, const Sphincs_Parameters ¶ms, Sphincs_Hash_Functions &hashes, std::optional< TreeNodeIndex > leaf_idx, uint32_t idx_offset, uint32_t total_tree_height, const GenerateLeafFunction &gen_leaf, Sphincs_Address &tree_address) |
template<concepts::contiguous_strong_type TreeNode, concepts::strong_span AuthPathSS, concepts::tree_node_index TreeNodeIndex, concepts::tree_layer_index TreeLayerIndex, typename Address > requires concepts::tree_address<Address, TreeLayerIndex, TreeNodeIndex> | |
void | treehash (StrongSpan< TreeNode > out_root, std::optional< AuthPathSS > out_auth_path, std::optional< TreeNodeIndex > leaf_idx, size_t node_size, TreeLayerIndex total_tree_height, uint32_t idx_offset, concepts::tree_hash_node_pair< TreeNodeIndex, TreeLayerIndex, Address, StrongSpan< TreeNode > > auto node_pair_hash, concepts::tree_gen_leaf< TreeNodeIndex, TreeLayerIndex, Address, StrongSpan< TreeNode > > auto gen_leaf, Address &tree_address) |
Treehash logic to build up a merkle hash tree. | |
template<typename To > requires std::is_trivial<To>::value | |
constexpr To | typecast_copy (const uint8_t src[]) noexcept |
template<typename ToT , ranges::contiguous_range FromR> requires std::is_default_constructible_v<ToT> && std::is_trivially_copyable_v<ToT> && std::is_trivially_copyable_v<std::ranges::range_value_t<FromR>> | |
constexpr ToT | typecast_copy (FromR &&src) noexcept |
template<typename T > requires std::is_trivial<typename std::decay<T>::type>::value | |
constexpr void | typecast_copy (T &out, const uint8_t in[]) |
template<typename T > requires std::is_trivial<T>::value | |
constexpr void | typecast_copy (T out[], const uint8_t in[], size_t N) |
template<ranges::contiguous_output_range ToR, typename FromT > requires std::is_trivially_copyable_v<FromT> && (!std::ranges::range<FromT>) && std::is_trivially_copyable_v<std::ranges::range_value_t<ToR>> | |
constexpr void | typecast_copy (ToR &&out, const FromT &in) |
template<ranges::contiguous_output_range ToR, ranges::contiguous_range FromR> requires std::is_trivially_copyable_v<std::ranges::range_value_t<FromR>> && std::is_trivially_copyable_v<std::ranges::range_value_t<ToR>> | |
constexpr void | typecast_copy (ToR &&out, FromR &&in) |
template<typename ToT , ranges::contiguous_range FromR> requires std::is_trivially_copyable_v<std::ranges::range_value_t<FromR>> && std::is_trivially_copyable_v<ToT> && (!std::ranges::range<ToT>) | |
constexpr void | typecast_copy (ToT &out, FromR &&in) noexcept |
template<typename T > | |
constexpr void | typecast_copy (uint8_t out[], const T &in) |
template<typename T > requires std::is_trivially_copyable<T>::value | |
constexpr void | typecast_copy (uint8_t out[], T in[], size_t N) |
std::string | ucs2_to_utf8 (const uint8_t ucs2[], size_t len) |
std::string | ucs4_to_utf8 (const uint8_t ucs4[], size_t len) |
template<typename T > | |
std::vector< T > | unlock (const secure_vector< T > &in) |
template<typename T > | |
constexpr decltype(auto) | unwrap_strong_type (T &&t) |
Generically unwraps a strong type to its underlying type. | |
template<typename T , typename OT > | |
bool | value_exists (const std::vector< T > &vec, const OT &val) |
constexpr size_t | var_ctz32 (uint32_t n) |
void | vartime_divide (const BigInt &x, const BigInt &y_arg, BigInt &q_out, BigInt &r_out) |
bool | verify_signature (std::span< const uint8_t, ED448_LEN > pk, bool phflag, std::span< const uint8_t > context, std::span< const uint8_t > sig, std::span< const uint8_t > msg) |
Verify a signature(RFC 8032 5.2.7) | |
const char * | version_cstr () |
uint32_t | version_datestamp () |
uint32_t | version_major () |
uint32_t | version_minor () |
uint32_t | version_patch () |
std::string | version_string () |
template<WordType W> | |
constexpr void | word3_add (W *w2, W *w1, W *w0, W x) |
template<WordType W> | |
constexpr void | word3_muladd (W *w2, W *w1, W *w0, W x, W y) |
template<WordType W> | |
constexpr void | word3_muladd_2 (W *w2, W *w1, W *w0, W x, W y) |
template<WordType W> | |
constexpr auto | word4_add3 (W z[4], const W x[4], const W y[4], W carry) -> W |
template<WordType W> | |
constexpr auto | word4_sub3 (W z[4], const W x[4], const W y[4], W carry) -> W |
template<WordType W> | |
constexpr auto | word8_add2 (W x[8], const W y[8], W carry) -> W |
template<WordType W> | |
constexpr auto | word8_add3 (W z[8], const W x[8], const W y[8], W carry) -> W |
template<WordType W> | |
constexpr auto | word8_linmul2 (W x[8], W y, W carry) -> W |
template<WordType W> | |
constexpr auto | word8_linmul3 (W z[8], const W x[8], W y, W carry) -> W |
template<WordType W> | |
constexpr auto | word8_madd3 (W z[8], const W x[8], W y, W carry) -> W |
template<WordType W> | |
constexpr auto | word8_sub2 (W x[8], const W y[8], W carry) -> W |
template<WordType W> | |
constexpr auto | word8_sub2_rev (W x[8], const W y[8], W carry) -> W |
template<WordType W> | |
constexpr auto | word8_sub3 (W z[8], const W x[8], const W y[8], W carry) -> W |
template<WordType W> | |
constexpr auto | word_add (W x, W y, W *carry) -> W |
template<WordType W> | |
constexpr auto | word_madd2 (W a, W b, W *c) -> W |
template<WordType W> | |
constexpr auto | word_madd3 (W a, W b, W c, W *d) -> W |
template<WordType W> | |
constexpr auto | word_sub (W x, W y, W *carry) -> W |
constexpr size_t | words_for_bits (size_t x) |
WotsPublicKey | wots_public_key_from_signature (const SphincsTreeNode &hashed_message, StrongSpan< const WotsSignature > signature, Sphincs_Address &address, const Sphincs_Parameters ¶ms, Sphincs_Hash_Functions &hashes) |
FIPS 205, Algorithm 8: wots_pkFromSig. | |
void | wots_sign_and_pkgen (StrongSpan< WotsSignature > sig_out, StrongSpan< SphincsTreeNode > leaf_out, const SphincsSecretSeed &secret_seed, TreeNodeIndex leaf_idx, std::optional< TreeNodeIndex > sign_leaf_idx, const std::vector< WotsHashIndex > &wots_steps, Sphincs_Address &leaf_addr, Sphincs_Address &pk_addr, const Sphincs_Parameters ¶ms, Sphincs_Hash_Functions &hashes) |
FIPS 205, Algorithm 6 and 7: wots_pkGen and wots_sign. | |
template<typename T , typename ParamT > requires std::constructible_from<T, ParamT> || (concepts::strong_type<T> && std::constructible_from<typename T::wrapped_type, ParamT>) | |
constexpr decltype(auto) | wrap_strong_type (ParamT &&t) |
Wraps a value into a caller-defined (strong) type. | |
Point448 | x448 (const ScalarX448 &k, const Point448 &u) |
Multiply a scalar k with a point u . | |
Point448 | x448_basepoint (const ScalarX448 &k) |
Multiply a scalar with the base group element (5) | |
Path_Validation_Result | x509_path_validate (const std::vector< X509_Certificate > &end_certs, const Path_Validation_Restrictions &restrictions, const Certificate_Store &store, std::string_view hostname, Usage_Type usage, std::chrono::system_clock::time_point when, std::chrono::milliseconds ocsp_timeout, const std::vector< std::optional< OCSP::Response > > &ocsp_resp) |
Path_Validation_Result | x509_path_validate (const std::vector< X509_Certificate > &end_certs, const Path_Validation_Restrictions &restrictions, const std::vector< Certificate_Store * > &trusted_roots, std::string_view hostname, Usage_Type usage, std::chrono::system_clock::time_point ref_time, std::chrono::milliseconds ocsp_timeout, const std::vector< std::optional< OCSP::Response > > &ocsp_resp) |
Path_Validation_Result | x509_path_validate (const X509_Certificate &end_cert, const Path_Validation_Restrictions &restrictions, const Certificate_Store &store, std::string_view hostname, Usage_Type usage, std::chrono::system_clock::time_point when, std::chrono::milliseconds ocsp_timeout, const std::vector< std::optional< OCSP::Response > > &ocsp_resp) |
Path_Validation_Result | x509_path_validate (const X509_Certificate &end_cert, const Path_Validation_Restrictions &restrictions, const std::vector< Certificate_Store * > &trusted_roots, std::string_view hostname, Usage_Type usage, std::chrono::system_clock::time_point when, std::chrono::milliseconds ocsp_timeout, const std::vector< std::optional< OCSP::Response > > &ocsp_resp) |
SphincsTreeNode | xmss_gen_root (const Sphincs_Parameters ¶ms, const SphincsSecretSeed &secret_seed, Sphincs_Hash_Functions &hashes) |
SphincsTreeNode | xmss_sign_and_pkgen (StrongSpan< SphincsXmssSignature > out_sig, const SphincsTreeNode &message, const SphincsSecretSeed &secret_seed, Sphincs_Address &wots_addr, Sphincs_Address &tree_addr, std::optional< TreeNodeIndex > idx_leaf, const Sphincs_Parameters ¶ms, Sphincs_Hash_Functions &hashes) |
FIPS 205, Algorithm 10: xmss_sign. | |
constexpr void | xor_buf (ranges::contiguous_output_range< uint8_t > auto &&out, ranges::contiguous_range< uint8_t > auto &&in) |
constexpr void | xor_buf (ranges::contiguous_output_range< uint8_t > auto &&out, ranges::contiguous_range< uint8_t > auto &&in1, ranges::contiguous_range< uint8_t > auto &&in2) |
void | xor_buf (std::span< uint8_t > out, std::span< const uint8_t > in, size_t n) |
template<typename Alloc , typename Alloc2 > | |
void | xor_buf (std::vector< uint8_t, Alloc > &out, const uint8_t *in, const std::vector< uint8_t, Alloc2 > &in2, size_t n) |
template<typename Alloc > | |
void | xor_buf (std::vector< uint8_t, Alloc > &out, const uint8_t *in, size_t n) |
void | xor_buf (uint8_t out[], const uint8_t in[], const uint8_t in2[], size_t length) |
void | xor_buf (uint8_t out[], const uint8_t in[], size_t length) |
void | xts_update_tweak_block (uint8_t tweak[], size_t BS, size_t blocks_in_tweak) |
template<typename T , typename Alloc > | |
void | zap (std::vector< T, Alloc > &vec) |
template<typename T , typename Alloc > | |
void | zeroise (std::vector< T, Alloc > &vec) |
Variables | |
const SIMD_8x32 & | b |
constexpr size_t | BLAKE2B_BLOCKBYTES = 128 |
constexpr size_t | BYTES_448 = ceil_tobytes(448) |
constexpr size_t | ED448_LEN = 57 |
const size_t | HEX_CODEC_BUFFER_SIZE = 256 |
template<typename T > | |
constexpr bool | is_strong_span_v = is_strong_span<T>::value |
template<typename... Ts> | |
constexpr bool | is_strong_type_v = is_strong_type<std::remove_const_t<Ts>...>::value |
constexpr size_t | LMS_IDENTIFIER_LEN = 16 |
The length in bytes of the LMS identifier (I). | |
const size_t | MAX_EXT_DEG = 16 |
const size_t | PRIME_TABLE_SIZE = 6541 |
const uint16_t | PRIMES [] |
const uint64_t | STREEBOG_Ax [8][256] |
const uint64_t | STREEBOG_C [12][8] |
constexpr size_t | WORDS_448 = 7 |
constexpr size_t | X448_LEN = 56 |
Wrapper for truncated hashes (C) 2023 Jack Lloyd 2023 René Meusel - Rohde & Schwarz Cybersecurity
Botan is released under the Simplified BSD License (see license.txt)
(C) 2019 Jack Lloyd
Botan is released under the Simplified BSD License (see license.txt)
(C) 2018,2019,2021 Jack Lloyd
Botan is released under the Simplified BSD License (see license.txt)
(C) 2018,2019,2022 Jack Lloyd
Botan is released under the Simplified BSD License (see license.txt)
(C) 2018,2019 Jack Lloyd
Botan is released under the Simplified BSD License (see license.txt)
(C) 2023 Jack Lloyd
Botan is released under the Simplified BSD License (see license.txt)
(C) 2022 Jack Lloyd
Botan is released under the Simplified BSD License (see license.txt)
(C) 2018 Jack Lloyd (C) 2018 Ribose Inc
Botan is released under the Simplified BSD License (see license.txt)
Symmetric primitives for dilithium
(C) 2022-2023 Jack Lloyd (C) 2022-2023 Michael Boric, René Meusel - Rohde & Schwarz Cybersecurity (C) 2022 Manuel Glaser - Rohde & Schwarz Cybersecurity (C) 2024 Fabian Albert, René Meusel - Rohde & Schwarz Cybersecurity
Botan is released under the Simplified BSD License (see license.txt)
HSS - Hierarchical Signatures System (RFC 8554) (C) 2023 Jack Lloyd 2023 Fabian Albert, Philippe Lieser - Rohde & Schwarz Cybersecurity GmbH
Botan is released under the Simplified BSD License (see license.txt)
HSS-LMS (C) 2023 Jack Lloyd 2023 Fabian Albert, René Meusel, Amos Treiber - Rohde & Schwarz Cybersecurity
Botan is released under the Simplified BSD License (see license.txt)
Utils for HSS/LMS (C) 2023 Jack Lloyd 2023 Fabian Albert, Philippe Lieser - Rohde & Schwarz Cybersecurity GmbH
Botan is released under the Simplified BSD License (see license.txt)
LM-OTS - Leighton-Micali One-Time Signatures (C) 2023 Jack Lloyd 2023 Fabian Albert, Philippe Lieser - Rohde & Schwarz Cybersecurity GmbH
Botan is released under the Simplified BSD License (see license.txt)
LM-OTS - Leighton-Micali One-Time Signatures (RFC 8554 Section 4) (C) 2023 Jack Lloyd 2023 Fabian Albert, Philippe Lieser - Rohde & Schwarz Cybersecurity GmbH
Botan is released under the Simplified BSD License (see license.txt)
LMS - Leighton-Micali Hash-Based Signatures (RFC 8554) (C) 2023 Jack Lloyd 2023 Fabian Albert, Philippe Lieser - Rohde & Schwarz Cybersecurity GmbH
Botan is released under the Simplified BSD License (see license.txt)
Ordinary applications should never need to include or use this header. It is exposed only for specialized applications which want to implement new versions of public key crypto without merging them as changes to the library. One actual example of such usage is an application which creates RSA signatures using a custom TPM library. Unless you're doing something like that, you don't need anything here. Instead use pubkey.h which wraps these types safely and provides a stable application-oriented API.
Note: This header was accidentally pulled from the public API between Botan 3.0.0 and 3.2.0, and then restored in 3.3.0. If you are maintaining an application which used this header in Botan 2.x, you should make sure to use Botan 3.3.0 or later when migrating.
Hybrid Session Manager emitting both Tickets and storing sessions in Memory (C) 2023 Jack Lloyd (C) 2023 René Meusel - Rohde & Schwarz Cybersecurity
Botan is released under the Simplified BSD License (see license.txt)
TLS Session Manager in Memory (C) 2011 Jack Lloyd (C) 2023 René Meusel - Rohde & Schwarz Cybersecurity
Botan is released under the Simplified BSD License (see license.txt)
TLS Stateless Session Manager for stateless servers (C) 2023 Jack Lloyd 2023 René Meusel - Rohde & Schwarz Cybersecurity
Botan is released under the Simplified BSD License (see license.txt)
Useful concepts that are available throughout the library (C) 2023 Jack Lloyd 2023 René Meusel - Rohde & Schwarz Cybersecurity
Botan is released under the Simplified BSD License (see license.txt)
A wrapper class to implement strong types (C) 2022 Jack Lloyd 2022 René Meusel - Rohde & Schwarz Cybersecurity
Botan is released under the Simplified BSD License (see license.txt)
(C) 2024 Jack Lloyd
Botan is released under the Simplified BSD License (see license.txt)
Treehash logic used for hash-based signatures (C) 2023 Jack Lloyd 2023 Fabian Albert, René Meusel, Amos Treiber, Philippe Lieser - Rohde & Schwarz Cybersecurity GmbH
Parts of this file have been adapted from https://github.com/sphincs/sphincsplus
Botan is released under the Simplified BSD License (see license.txt)
utilities for PKIX::build_all_certificate_paths
typedef __vector unsigned int Botan::Altivec32x4 |
Definition at line 24 of file aes_power8.cpp.
typedef __vector unsigned long long Botan::Altivec64x2 |
Definition at line 23 of file aes_power8.cpp.
typedef __vector unsigned char Botan::Altivec8x16 |
Definition at line 25 of file aes_power8.cpp.
using Botan::bitvector = bitvector_base<std::allocator> |
Definition at line 1298 of file bitvector.h.
using Botan::Bounded_XOF = detail::Bounded_XOF<XOF&, bound> |
Definition at line 221 of file pqcrystals_helpers.h.
using Botan::byte = std::uint8_t |
typedef int32_t Botan::CCCryptorStatus |
Definition at line 24 of file commoncrypto.h.
typedef std::vector<std::set<Certificate_Status_Code> > Botan::CertificatePathStatusCodes |
This type represents the validation status of an entire certificate path. There is one set of status codes for each certificate in the path.
Definition at line 29 of file x509path.h.
using Botan::CmceCodeWord = Strong<secure_bitvector, struct CmceCodeWord_> |
Represents C of decapsulation.
Definition at line 52 of file cmce_types.h.
using Botan::CmceColumnSelection = Strong<secure_bitvector, struct CmceColumnSelection_> |
Represents c of private key.
Definition at line 46 of file cmce_types.h.
using Botan::CmceErrorVector = Strong<secure_bitvector, struct CmceErrorVector_> |
Represents e of encapsulation.
Definition at line 49 of file cmce_types.h.
using Botan::CmceGfElem = Strong<uint16_t, struct CmceGfElem_> |
Represents a GF(q) element.
Definition at line 19 of file cmce_types.h.
using Botan::CmceGfMod = Strong<uint16_t, struct CmceGfMod_> |
Represents a GF(q) modulus.
Definition at line 22 of file cmce_types.h.
using Botan::CmceInitialSeed = Strong<secure_vector<uint8_t>, struct CmceInitialSeed_> |
Represents initial delta of keygen.
Definition at line 31 of file cmce_types.h.
using Botan::CmceIrreducibleBits = Strong<secure_vector<uint8_t>, struct CmceIrreducibleBits_> |
Definition at line 40 of file cmce_types.h.
using Botan::CmceKeyGenSeed = Strong<secure_vector<uint8_t>, struct CmceKeyGenSeed_> |
Represents a delta (can be altered; final value stored in private key)
Definition at line 34 of file cmce_types.h.
using Botan::CmceOrderingBits = Strong<secure_vector<uint8_t>, struct CmceOrderingBits_> |
Definition at line 37 of file cmce_types.h.
using Botan::CmcePermutation = Strong<secure_vector<uint16_t>, struct CmcePermutation_> |
Represents a permutation (pi in spec). Used in field ordering creation.
Definition at line 28 of file cmce_types.h.
using Botan::CmcePermutationElement = Strong<uint16_t, struct CmcePermutationElement_> |
Represents an element of a permuation (pi in spec). Used in field ordering creation.
Definition at line 25 of file cmce_types.h.
using Botan::CmceRejectionSeed = Strong<secure_vector<uint8_t>, struct CmceRejectionSeed_> |
Represents s of private key.
Definition at line 43 of file cmce_types.h.
Definition at line 18 of file curve25519.h.
Definition at line 17 of file curve25519.h.
using Botan::DilithiumCommitmentHash = Strong<std::vector<uint8_t>, struct DilithiumCommitmentHash_> |
Hash of the message representative and the signer's commitment.
Definition at line 64 of file dilithium_types.h.
using Botan::DilithiumHashedPublicKey = Strong<std::vector<uint8_t>, struct DilithiumHashedPublicKey_> |
Hash value of the serialized public key data (result of H(BytesToBits(pkEncode(pk)), also referred to as 'tr')
Definition at line 52 of file dilithium_types.h.
Internal representation of a Dilithium key pair.
Definition at line 67 of file dilithium_types.h.
using Botan::DilithiumMessageRepresentative = Strong<std::vector<uint8_t>, struct DilithiumMessageRepresentative_> |
Representation of the message to be signed.
Definition at line 55 of file dilithium_types.h.
using Botan::DilithiumOptionalRandomness = Strong<secure_vector<uint8_t>, struct DilithiumOptionalRandomness_> |
Optional randomness 'rnd' used for rho prime computation in ML-DSA.
Definition at line 39 of file dilithium_types.h.
using Botan::DilithiumPoly = Botan::CRYSTALS::Polynomial<DilithiumPolyTraits, Botan::CRYSTALS::Domain::Normal> |
Definition at line 26 of file dilithium_types.h.
Definition at line 24 of file dilithium_types.h.
using Botan::DilithiumPolyNTT = Botan::CRYSTALS::Polynomial<DilithiumPolyTraits, Botan::CRYSTALS::Domain::NTT> |
Definition at line 22 of file dilithium_types.h.
using Botan::DilithiumPolyVec = Botan::CRYSTALS::PolynomialVector<DilithiumPolyTraits, Botan::CRYSTALS::Domain::Normal> |
Definition at line 27 of file dilithium_types.h.
using Botan::DilithiumPolyVecNTT = Botan::CRYSTALS::PolynomialVector<DilithiumPolyTraits, Botan::CRYSTALS::Domain::NTT> |
Definition at line 23 of file dilithium_types.h.
using Botan::DilithiumSeedRandomness = Strong<secure_vector<uint8_t>, struct DilithiumSeedRandomness_> |
Principal seed used to generate Dilithium key pairs.
Definition at line 30 of file dilithium_types.h.
using Botan::DilithiumSeedRho = Strong<std::vector<uint8_t>, struct DilithiumPublicSeed_> |
Public seed to sample the polynomial matrix A from.
Definition at line 33 of file dilithium_types.h.
using Botan::DilithiumSeedRhoPrime = Strong<secure_vector<uint8_t>, struct DilithiumSeedRhoPrime_> |
Private seed to sample the polynomial vectors s1 and s2 from.
Definition at line 36 of file dilithium_types.h.
using Botan::DilithiumSerializedCommitment = Strong<std::vector<uint8_t>, struct DilithiumSerializedCommitment_> |
Serialized representation of a commitment w1.
Definition at line 61 of file dilithium_types.h.
using Botan::DilithiumSerializedPrivateKey = Strong<secure_vector<uint8_t>, struct DilithiumSerializedPrivateKey_> |
Serialized private key data.
Definition at line 45 of file dilithium_types.h.
using Botan::DilithiumSerializedPublicKey = Strong<std::vector<uint8_t>, struct DilithiumSerializedPublicKey_> |
Serialized public key data (result of pkEncode(pk))
Definition at line 48 of file dilithium_types.h.
using Botan::DilithiumSerializedSignature = Strong<std::vector<uint8_t>, struct DilithiumSerializedSignature_> |
Serialized signature data.
Definition at line 58 of file dilithium_types.h.
using Botan::DilithiumSigningSeedK = Strong<secure_vector<uint8_t>, struct DilithiumSeedK_> |
Private seed K used during signing.
Definition at line 42 of file dilithium_types.h.
Definition at line 140 of file ed25519_fe.h.
using Botan::ForsLeafSecret = Strong<secure_vector<uint8_t>, struct ForsLeafSecret_> |
Definition at line 71 of file sp_types.h.
using Botan::ForsSignature = Strong<std::vector<uint8_t>, struct ForsSignature_> |
Definition at line 72 of file sp_types.h.
using Botan::FrodoDomainSeparator = Strong<std::array<uint8_t, 1>, struct FrodoDoaminSeparator_> |
Definition at line 47 of file frodo_types.h.
using Botan::FrodoIntermediateSharedSecret = Strong<secure_vector<uint8_t>, struct FrodoIntermediateSharedSecret_> |
Definition at line 56 of file frodo_types.h.
using Botan::FrodoPackedMatrix = Strong<std::vector<uint8_t>, struct FrodoPackedMatrix_> |
Definition at line 41 of file frodo_types.h.
using Botan::FrodoPlaintext = Strong<secure_vector<uint8_t>, struct FrodoPlaintext_> |
Definition at line 50 of file frodo_types.h.
using Botan::FrodoPublicKeyHash = Strong<std::vector<uint8_t>, struct FrodoPublicKeyHash_> |
Definition at line 38 of file frodo_types.h.
using Botan::FrodoSalt = Strong<std::vector<uint8_t>, struct FrodoSalt_> |
Definition at line 53 of file frodo_types.h.
using Botan::FrodoSampleR = Strong<secure_vector<uint8_t>, struct FrodoSampleR_> |
Definition at line 35 of file frodo_types.h.
using Botan::FrodoSeedA = Strong<std::vector<uint8_t>, struct FrodoSeedA_> |
Definition at line 23 of file frodo_types.h.
using Botan::FrodoSeedS = Strong<secure_vector<uint8_t>, struct FrodoSeedS_> |
Definition at line 26 of file frodo_types.h.
using Botan::FrodoSeedSE = Strong<secure_vector<uint8_t>, struct FrodoSeedSE_> |
Definition at line 29 of file frodo_types.h.
using Botan::FrodoSeedZ = Strong<std::vector<uint8_t>, struct FrodoSeedZ_> |
Definition at line 32 of file frodo_types.h.
using Botan::FrodoSerializedMatrix = Strong<secure_vector<uint8_t>, struct FrodoSerializedMatrix_> |
Definition at line 44 of file frodo_types.h.
using Botan::GenerateLeafFunction = std::function<void(StrongSpan<SphincsTreeNode> , TreeNodeIndex)> |
Definition at line 25 of file sp_treehash.h.
typedef uint16_t Botan::gf2m |
Definition at line 20 of file gf2m_small_m.h.
using Botan::HSS_Level = Strong<uint32_t, struct HSS_Level_, EnableArithmeticWithPlainNumber> |
using Botan::HSS_Sig_Idx = Strong<uint64_t, struct HSS_Sig_Idx_, EnableArithmeticWithPlainNumber> |
using Botan::HypertreeLayerIndex = Strong<uint32_t, struct HypertreeLayerIndex_> |
Index of a layer in the XMSS hyper-tree.
Definition at line 86 of file sp_types.h.
using Botan::KyberCompressedCiphertext = Strong<std::vector<uint8_t>, struct KyberCompressedCiphertext_> |
Compressed and serialized ciphertext value.
Definition at line 63 of file kyber_types.h.
using Botan::KyberEncryptionRandomness = Strong<secure_vector<uint8_t>, struct KyberEncryptionRandomness_> |
Random value used to generate the Kyber ciphertext.
Definition at line 48 of file kyber_types.h.
using Botan::KyberHashedCiphertext = Strong<std::vector<uint8_t>, struct KyberHashedCiphertext_> |
Hash of the compressed and serialized ciphertext value TODO: Remove this once Kyber-R3 is removed
Definition at line 67 of file kyber_types.h.
using Botan::KyberHashedPublicKey = Strong<std::vector<uint8_t>, struct KyberHashedPublicKey_> |
Hash value of the serialized public key.
Definition at line 60 of file kyber_types.h.
using Botan::KyberImplicitRejectionValue = Strong<secure_vector<uint8_t>, struct KyberImplicitRejectionValue_> |
Secret random value (called Z in the spec), used for implicit rejection in the decapsulation.
Definition at line 42 of file kyber_types.h.
Definition at line 73 of file kyber_types.h.
using Botan::KyberMessage = Strong<secure_vector<uint8_t>, struct KyberMessage_> |
Random message value to be encrypted by the CPA-secure Kyber encryption scheme.
Definition at line 45 of file kyber_types.h.
using Botan::KyberPoly = Botan::CRYSTALS::Polynomial<KyberPolyTraits, Botan::CRYSTALS::Domain::Normal> |
Definition at line 29 of file kyber_types.h.
Definition at line 27 of file kyber_types.h.
using Botan::KyberPolyNTT = Botan::CRYSTALS::Polynomial<KyberPolyTraits, Botan::CRYSTALS::Domain::NTT> |
Definition at line 25 of file kyber_types.h.
using Botan::KyberPolyVec = Botan::CRYSTALS::PolynomialVector<KyberPolyTraits, Botan::CRYSTALS::Domain::Normal> |
Definition at line 30 of file kyber_types.h.
using Botan::KyberPolyVecNTT = Botan::CRYSTALS::PolynomialVector<KyberPolyTraits, Botan::CRYSTALS::Domain::NTT> |
Definition at line 26 of file kyber_types.h.
using Botan::KyberSamplingRandomness = Strong<secure_vector<uint8_t>, struct KyberSamplingRandomness_> |
PRF value used for sampling of error polynomials.
Definition at line 51 of file kyber_types.h.
using Botan::KyberSeedRandomness = Strong<secure_vector<uint8_t>, struct KyberSeedRandomness_> |
Principal seed used to generate Kyber key pairs.
Definition at line 33 of file kyber_types.h.
using Botan::KyberSeedRho = Strong<std::vector<uint8_t>, struct KyberSeedRho_> |
Public seed value to generate the Kyber matrix A.
Definition at line 36 of file kyber_types.h.
using Botan::KyberSeedSigma = Strong<secure_vector<uint8_t>, struct KyberSeedSigma_> |
Private seed used to generate polynomial vectors s and e during key generation.
Definition at line 39 of file kyber_types.h.
using Botan::KyberSerializedPublicKey = Strong<std::vector<uint8_t>, struct KyberSerializedPublicKey_> |
Public key in serialized form (t || rho)
Definition at line 57 of file kyber_types.h.
using Botan::KyberSharedSecret = Strong<secure_vector<uint8_t>, struct KyberSharedSecret_> |
Shared secret value generated during encapsulation and recovered during decapsulation.
Definition at line 54 of file kyber_types.h.
Variant value of either a KyberSeedSigma or a KyberEncryptionRandomness.
Definition at line 70 of file kyber_types.h.
using Botan::LMOTS_K = Strong<std::vector<uint8_t>, struct LMOTS_K_> |
using Botan::LMOTS_Node = Strong<secure_vector<uint8_t>, struct LMOTS_Node_> |
using Botan::LMOTS_Signature_Bytes = Strong<std::vector<uint8_t>, struct LMOTS_Signature_Bytes_> |
using Botan::LMS_AuthenticationPath = Strong<std::vector<uint8_t>, struct LMS_AuthenticationPath_> |
using Botan::LMS_Identifier = Strong<std::vector<uint8_t>, struct LMS_Identifier_> |
using Botan::LMS_Message = Strong<std::vector<uint8_t>, struct LMS_Message_> |
using Botan::LMS_Seed = Strong<secure_vector<uint8_t>, struct LMS_SEED_> |
using Botan::LMS_Signature_Bytes = Strong<std::vector<uint8_t>, struct LMS_Signature_Bytes_> |
using Botan::LMS_Tree_Node = Strong<std::vector<uint8_t>, struct LMS_Tree_Node_> |
using Botan::LMS_Tree_Node_Idx = Strong<uint32_t, struct LMS_Tree_Node_Idx_, EnableArithmeticWithPlainNumber> |
using Botan::lock_guard_type = lock_guard<T> |
typedef MessageAuthenticationCode Botan::MAC |
using Botan::ML_DSA_Mode = DilithiumMode |
using Botan::ML_KEM_Mode = KyberMode |
using Botan::mutex_type = noop_mutex |
using Botan::next_longer_int_t |
using Botan::next_longer_uint_t |
Definition at line 28 of file pqcrystals_helpers.h.
using Botan::Point448 = Strong<std::array<uint8_t, X448_LEN>, struct Point448_> |
Definition at line 18 of file x448_internal.h.
typedef EC_Point Botan::PointGFp |
Definition at line 451 of file ec_point.h.
typedef RandomNumberGenerator Botan::RNG |
typedef PBKDF Botan::S2K |
using Botan::s32bit = std::int32_t |
using Botan::ScalarX448 = Strong<std::array<uint8_t, X448_LEN>, struct ScalarX448_> |
Definition at line 24 of file x448_internal.h.
Definition at line 1297 of file bitvector.h.
using Botan::secure_deque = std::deque<T, secure_allocator<T>> |
using Botan::secure_vector = std::vector<T, secure_allocator<T>> |
using Botan::SecureVector = secure_vector<T> |
using Botan::SphincsAuthenticationPath = Strong<std::vector<uint8_t>, struct SphincsAuthenticationPath_> |
Definition at line 67 of file sp_types.h.
using Botan::SphincsContext = Strong<std::vector<uint8_t>, struct SphincsContext_> |
Definition at line 57 of file sp_types.h.
using Botan::SphincsHashedMessage = Strong<std::vector<uint8_t>, struct SphincsHashedMessage_> |
Definition at line 59 of file sp_types.h.
using Botan::SphincsHypertreeSignature = Strong<std::vector<uint8_t>, struct SphincsXmssSignature_> |
Definition at line 66 of file sp_types.h.
using Botan::SphincsInputMessage = Strong<std::vector<uint8_t>, struct SphincsInputMessage_> |
Definition at line 49 of file sp_types.h.
using Botan::SphincsMessagePrefix = Strong<std::vector<uint8_t>, struct SphincsMessagePrefix_> |
The prefix appended to the message in [hash_]slh_sign and slh_verify. E.g. for SLH-DSA (pure): 0x00 || |ctx| || ctx. Empty for SPHINCS+.
Definition at line 47 of file sp_types.h.
using Botan::SphincsMessageRandomness = Strong<secure_vector<uint8_t>, struct SphincsMessageRandomness_> |
Definition at line 64 of file sp_types.h.
using Botan::SphincsOptionalRandomness = Strong<secure_vector<uint8_t>, struct SphincsOptionalRandomness_> |
Definition at line 63 of file sp_types.h.
using Botan::SphincsPublicSeed = Strong<std::vector<uint8_t>, struct SphincsPublicSeed_> |
Definition at line 60 of file sp_types.h.
using Botan::SphincsSecretPRF = Strong<secure_vector<uint8_t>, struct SphincsSecretPRF_> |
Definition at line 62 of file sp_types.h.
using Botan::SphincsSecretSeed = Strong<secure_vector<uint8_t>, struct SphincsSecretSeed_> |
Definition at line 61 of file sp_types.h.
using Botan::SphincsTreeNode = Strong<std::vector<uint8_t>, struct SphincsTreeNode_> |
Either an XMSS or FORS tree node or leaf.
Definition at line 70 of file sp_types.h.
using Botan::SphincsXmssSignature = Strong<std::vector<uint8_t>, struct SphincsXmssSignature_> |
Definition at line 65 of file sp_types.h.
using Botan::strong_type_wrapped_type = typename detail::wrapped_type_helper<std::remove_cvref_t<T>>::type |
Extracts the wrapped type from a strong type.
If the provided type is not a strong type, it is returned as is.
::wrapped_type
declaration if you know that you are dealing with a strong type. Definition at line 286 of file strong_type.h.
using Botan::SymmetricKey = OctetString |
using Botan::TreeLayerIndex = Strong<uint32_t, struct TreeLayerIndex_, EnableArithmeticWithPlainNumber> |
Index of the layer within a FORS/XMSS tree.
Definition at line 83 of file sp_types.h.
using Botan::TreeNodeIndex = Strong<uint32_t, struct TreeNodeIndex_, EnableArithmeticWithPlainNumber> |
Index of an individual node inside an XMSS or FORS tree.
Definition at line 92 of file sp_types.h.
using Botan::u16bit = std::uint16_t |
using Botan::u32bit = std::uint32_t |
using Botan::u64bit = std::uint64_t |
typedef std::vector< secure_vector< uint8_t > > Botan::wots_keysig_t |
Definition at line 20 of file xmss_common_ops.h.
using Botan::WotsChainIndex = Strong<uint32_t, struct WotsChainIndex_> |
Index of a WOTS chain within a single usage of WOTS.
Definition at line 95 of file sp_types.h.
using Botan::WotsHashIndex = Strong<uint8_t, struct WotsHashIndex_, EnableArithmeticWithPlainNumber> |
Index of a hash application inside a single WOTS chain (integers in "base_w")
Definition at line 98 of file sp_types.h.
using Botan::WotsNode = Strong<secure_vector<uint8_t>, struct WotsNode_> |
Start (or intermediate) node of a WOTS+ chain.
Definition at line 79 of file sp_types.h.
using Botan::WotsPublicKey = Strong<std::vector<uint8_t>, struct WotsPublicKey_> |
Definition at line 73 of file sp_types.h.
using Botan::WotsPublicKeyNode = Strong<std::vector<uint8_t>, struct WotsPublicKeyNode_> |
End node of a WOTS+ chain (part of the WOTS+ public key)
Definition at line 76 of file sp_types.h.
using Botan::WotsSignature = Strong<secure_vector<uint8_t>, struct WotsSignature_> |
Definition at line 80 of file sp_types.h.
typedef ASN1_Time Botan::X509_Time |
Definition at line 417 of file asn1_obj.h.
using Botan::XmssTreeIndexInLayer = Strong<uint64_t, struct XmssTreeIndexInLayer_, EnableArithmeticWithPlainNumber> |
Index of an XMSS tree (unique for just the local hyper-tree layer)
Definition at line 89 of file sp_types.h.
|
strong |
Defines the strategy for handling the final block of input data in the handle_unaligned_data() method of the AlignmentBuffer<>.
The AlignmentBuffer<> assumes data to be "the final block" if no further input data is available in the BufferSlicer<>. This might result in some performance overhead when using the must_be_deferred strategy.
Enumerator | |
---|---|
is_not_special | |
must_be_deferred |
Definition at line 34 of file alignment_buffer.h.
|
strong |
ASN.1 Class Tags
Enumerator | |
---|---|
Universal | |
Application | |
ContextSpecific | |
Private | |
Constructed | |
ExplicitContextSpecific | |
NoObject |
Definition at line 29 of file asn1_obj.h.
|
strong |
ASN.1 Type Tags
Definition at line 44 of file asn1_obj.h.
|
strong |
Certificate validation status code
Definition at line 20 of file pkix_enums.h.
|
strong |
The two possible directions a Cipher_Mode can operate in
Enumerator | |
---|---|
Encryption | |
Decryption | |
ENCRYPTION | |
DECRYPTION |
Definition at line 25 of file cipher_mode.h.
|
strong |
X.509v2 CRL Reason Code.
Enumerator | |
---|---|
Unspecified | |
KeyCompromise | |
CaCompromise | |
AffiliationChanged | |
Superseded | |
CessationOfOperation | |
CertificateHold | |
RemoveFromCrl | |
PrivilegeWithdrawn | |
AaCompromise |
Definition at line 187 of file pkix_enums.h.
|
strong |
The DL group encoding format variants.
Enumerator | |
---|---|
ANSI_X9_42 | |
ANSI_X9_57 | |
PKCS_3 | |
DSA_PARAMETERS | |
DH_PARAMETERS | |
ANSI_X9_42_DH_PARAMETERS | |
PKCS3_DH_PARAMETERS |
Definition at line 29 of file dl_group.h.
|
strong |
Enumerator | |
---|---|
Builtin | |
RandomlyGenerated | |
ExternalSource |
Definition at line 20 of file dl_group.h.
|
strong |
This enum indicates the method used to encode the EC parameters
TODO(Botan4) remove this enum
Enumerator | |
---|---|
Explicit | |
ImplicitCA | |
NamedCurve | |
EC_DOMPAR_ENC_EXPLICIT | |
EC_DOMPAR_ENC_IMPLICITCA | |
EC_DOMPAR_ENC_OID |
Definition at line 36 of file ec_group.h.
|
strong |
Enum indicating the way the group in question is implemented
This is returned by EC_Group::engine
Definition at line 66 of file ec_group.h.
|
strong |
This enum indicates the source of the elliptic curve parameters in use.
Builtin means the curve is a known standard one which was compiled in the library.
ExternalSource means the curve parameters came from either an explicit curve encoding or an application defined curve.
Enumerator | |
---|---|
Builtin | |
ExternalSource |
Definition at line 56 of file ec_group.h.
|
strong |
Enumerator | |
---|---|
Uncompressed | |
Compressed | |
UNCOMPRESSED | |
COMPRESSED | |
Hybrid | |
HYBRID |
Definition at line 21 of file ec_point_format.h.
|
strong |
Definition at line 32 of file ecies.h.
|
strong |
Different types of errors that might occur
Enumerator | |
---|---|
Unknown | Some unknown error |
SystemError | An error while calling a system interface |
NotImplemented | An operation seems valid, but not supported by the current version |
OutOfMemory | Memory allocation failure |
InternalError | An internal error occurred |
IoError | An I/O error occurred |
InvalidObjectState | Invalid object state |
KeyNotSet | A key was not set on an object when this is required |
InvalidArgument | The application provided an argument which is invalid |
InvalidKeyLength | A key with invalid length was provided |
InvalidNonceLength | A nonce with invalid length was provided |
LookupError | An object type was requested but cannot be found |
EncodingFailure | Encoding a message or datum failed |
DecodingFailure | Decoding a message or datum failed |
TLSError | A TLS error (error_code will be the alert type) |
HttpError | An error during an HTTP operation |
InvalidTag | A message with an invalid authentication tag was detected |
RoughtimeError | An error during Roughtime validation |
CommonCryptoError | An error when interacting with CommonCrypto API |
Pkcs11Error | An error when interacting with a PKCS11 device |
TPMError | An error when interacting with a TPM device |
DatabaseError | An error when interacting with a database |
ZlibError | An error when interacting with zlib |
Bzip2Error | An error when interacting with bzip2 |
LzmaError | An error when interacting with lzma |
Definition at line 20 of file exceptn.h.
|
strong |
Enum of available LM-OTS algorithm types.
The supported parameter sets are defined in RFC 8554 Section 4.1. and draft-fluhrer-lms-more-parm-sets-11 Section 4. HSS/LMS typecodes are introduced in RFC 8554 Section 3.2. and their format specified in Section 3.3.
Definition at line 65 of file lm_ots.h.