10#ifndef BOTAN_DILITHIUM_ROUND3_SYM_PRIMITIVES_H_
11#define BOTAN_DILITHIUM_ROUND3_SYM_PRIMITIVES_H_
13#include <botan/internal/dilithium_keys.h>
14#include <botan/internal/dilithium_symmetric_primitives.h>
41 std::optional<std::reference_wrapper<RandomNumberGenerator>> rng)
const final {
44 return (rng.has_value())
static constexpr size_t COMMITMENT_HASH_C1_BYTES
static constexpr size_t SEED_RHOPRIME_BYTES
secure_vector< uint8_t > encode_keypair(DilithiumInternalKeypair keypair) const override
DilithiumInternalKeypair decode_keypair(std::span< const uint8_t > private_key, DilithiumConstants mode) const override
StrongSpan< const DilithiumCommitmentHash > truncate_commitment_hash(StrongSpan< const DilithiumCommitmentHash > seed) const final
DilithiumSeedRhoPrime H_maybe_randomized(StrongSpan< const DilithiumSigningSeedK > k, StrongSpan< const DilithiumMessageRepresentative > mu, std::optional< std::reference_wrapper< RandomNumberGenerator > > rng) const final
std::optional< std::array< uint8_t, 2 > > seed_expansion_domain_separator() const final
OutT H_256(size_t outbytes, InTs &&... ins) const
Dilithium_Symmetric_Primitives_Base(const DilithiumConstants &mode, std::unique_ptr< DilithiumXOF > xof_adapter)
int(* final)(unsigned char *, CTX *)
std::vector< T, secure_allocator< T > > secure_vector
std::pair< std::shared_ptr< Dilithium_PublicKeyInternal >, std::shared_ptr< Dilithium_PrivateKeyInternal > > DilithiumInternalKeypair
Internal representation of a Dilithium key pair.