|
Botan 3.11.0
Crypto and TLS for C&
|
#include <kyber_symmetric_primitives.h>
Public Member Functions | |
| std::pair< KyberSharedSecret, KyberEncryptionRandomness > | G (StrongSpan< const KyberMessage > msg, StrongSpan< const KyberHashedPublicKey > pubkey_hash) const |
| std::pair< KyberSeedRho, KyberSeedSigma > | G (StrongSpan< const KyberSeedRandomness > seed, const KyberConstants &mode) const |
| KyberHashedCiphertext | H (StrongSpan< const KyberCompressedCiphertext > r) const |
| KyberMessage | H (StrongSpan< const KyberMessage > m) const |
| KyberHashedPublicKey | H (StrongSpan< const KyberSerializedPublicKey > pk) const |
| KyberSharedSecret | J (StrongSpan< const KyberImplicitRejectionValue > rejection_value, StrongSpan< const KyberCompressedCiphertext > ciphertext) const |
| void | KDF (StrongSpan< KyberSharedSecret > out, StrongSpan< const KyberSharedSecret > shared_secret, StrongSpan< const KyberHashedCiphertext > hashed_ciphertext) const |
| KyberSamplingRandomness | PRF (KyberSigmaOrEncryptionRandomness seed, const uint8_t nonce, const size_t outlen) const |
| void | setup_PRF (std::unique_ptr< Botan::XOF > &xof, std::span< const uint8_t > seed, uint8_t nonce) const |
| Setup a seeded PRF XOF for polynomial sampling. | |
| void | setup_XOF (std::unique_ptr< Botan::XOF > &xof, StrongSpan< const KyberSeedRho > seed, std::tuple< uint8_t, uint8_t > matrix_position) const |
| Setup an XOF object for matrix sampling. | |
| virtual | ~Kyber_Symmetric_Primitives ()=default |
Protected Member Functions | |
| virtual std::unique_ptr< HashFunction > | create_G () const =0 |
| virtual std::unique_ptr< HashFunction > | create_H () const =0 |
| virtual std::unique_ptr< HashFunction > | create_J () const =0 |
| virtual std::unique_ptr< HashFunction > | create_KDF () const =0 |
| virtual std::unique_ptr< Botan::XOF > | create_PRF (std::span< const uint8_t > seed, uint8_t nonce) const =0 |
| virtual std::unique_ptr< Botan::XOF > | create_XOF (std::span< const uint8_t > seed, std::tuple< uint8_t, uint8_t > matrix_position) const =0 |
| virtual void | init_PRF (Botan::XOF &xof, std::span< const uint8_t > seed, uint8_t nonce) const =0 |
| virtual void | init_XOF (Botan::XOF &xof, std::span< const uint8_t > seed, std::tuple< uint8_t, uint8_t > matrix_position) const =0 |
| virtual std::optional< std::array< uint8_t, 1 > > | seed_expansion_domain_separator (const KyberConstants &mode) const =0 |
Adapter class that uses polymorphy to distinguish Kyber "modern" from Kyber "90s" modes.
Definition at line 28 of file kyber_symmetric_primitives.h.
|
virtualdefault |
|
protectedpure virtual |
|
protectedpure virtual |
|
protectedpure virtual |
Implemented in Botan::Kyber_90s_Symmetric_Primitives, Botan::Kyber_Modern_Symmetric_Primitives, and Botan::ML_KEM_Symmetric_Primitives.
Referenced by J().
|
protectedpure virtual |
Implemented in Botan::Kyber_90s_Symmetric_Primitives, Botan::Kyber_Modern_Symmetric_Primitives, and Botan::ML_KEM_Symmetric_Primitives.
Referenced by KDF().
|
protectedpure virtual |
Implemented in Botan::Kyber_90s_Symmetric_Primitives, Botan::Kyber_Modern_Symmetric_Primitives, and Botan::ML_KEM_Symmetric_Primitives.
Referenced by PRF(), and setup_PRF().
|
protectedpure virtual |
Implemented in Botan::Kyber_90s_Symmetric_Primitives, Botan::Kyber_Modern_Symmetric_Primitives, and Botan::ML_KEM_Symmetric_Primitives.
Referenced by setup_XOF().
|
inline |
Definition at line 53 of file kyber_symmetric_primitives.h.
|
inline |
Definition at line 44 of file kyber_symmetric_primitives.h.
References seed_expansion_domain_separator().
Referenced by Botan::Kyber_KEM_Decryptor::decapsulate(), Botan::ML_KEM_Decryptor::decapsulate(), and Botan::Kyber_Algos::expand_keypair().
|
inline |
Definition at line 36 of file kyber_symmetric_primitives.h.
References create_H().
|
inline |
Definition at line 33 of file kyber_symmetric_primitives.h.
References create_H().
|
inline |
Definition at line 40 of file kyber_symmetric_primitives.h.
References create_H().
|
protectedpure virtual |
Implemented in Botan::Kyber_90s_Symmetric_Primitives, Botan::Kyber_Modern_Symmetric_Primitives, and Botan::ML_KEM_Symmetric_Primitives.
Referenced by setup_PRF().
|
protectedpure virtual |
Implemented in Botan::Kyber_90s_Symmetric_Primitives, Botan::Kyber_Modern_Symmetric_Primitives, and Botan::ML_KEM_Symmetric_Primitives.
Referenced by setup_XOF().
|
inline |
Definition at line 58 of file kyber_symmetric_primitives.h.
References create_J().
|
inline |
Definition at line 67 of file kyber_symmetric_primitives.h.
References create_KDF().
|
inline |
Definition at line 76 of file kyber_symmetric_primitives.h.
References create_PRF().
|
protectedpure virtual |
Implemented in Botan::Kyber_90s_Symmetric_Primitives, Botan::Kyber_Modern_Symmetric_Primitives, and Botan::ML_KEM_Symmetric_Primitives.
Referenced by G().
|
inline |
Setup a seeded PRF XOF for polynomial sampling.
Definition at line 95 of file kyber_symmetric_primitives.h.
References create_PRF(), and init_PRF().
|
inline |
Setup an XOF object for matrix sampling.
Definition at line 84 of file kyber_symmetric_primitives.h.
References create_XOF(), and init_XOF().