11#ifndef BOTAN_FRODOKEM_CONSTANTS_H_
12#define BOTAN_FRODOKEM_CONSTANTS_H_
14#include <botan/frodo_mode.h>
15#include <botan/internal/frodo_types.h>
41 uint16_t
cdf_table_at(
size_t i)
const {
return m_cdf_table.at(i); }
45 size_t n()
const {
return m_n; }
47 size_t b()
const {
return m_b; }
49 size_t d()
const {
return m_d; }
51 size_t n_bar()
const {
return m_n_bar; }
62 return (m_d * m_n * m_n_bar + m_d * m_n_bar * m_n_bar + m_len_salt) / 8;
68 return (m_nist_strength + m_len_a + (m_d * m_n * m_n_bar) + (m_n_bar * m_n * 16) + m_nist_strength) / 8;
85 size_t m_nist_strength;
94 std::vector<uint16_t> m_cdf_table;
96 mutable std::unique_ptr<XOF> m_shake_xof;
size_t len_ct_bytes() const
size_t estimated_strength() const
FrodoDomainSeparator keygen_domain_separator() const
size_t len_private_key_bytes() const
FrodoKEMConstants & operator=(FrodoKEMConstants &&other)=default
FrodoKEMConstants & operator=(const FrodoKEMConstants &other)=delete
size_t len_public_key_bytes() const
FrodoKEMConstants(const FrodoKEMConstants &other)
size_t len_sec_bytes() const
FrodoKEMMode mode() const
FrodoKEMConstants(FrodoKEMConstants &&other)=default
size_t len_se_bytes() const
uint16_t cdf_table_at(size_t i) const
size_t len_a_bytes() const
size_t len_salt_bytes() const
size_t len_packed_c_bytes() const
size_t len_packed_b_bytes() const
FrodoDomainSeparator encapsulation_domain_separator() const
size_t cdf_table_len() const