Botan 3.4.0
Crypto and TLS for C&
|
#include <dilithium_polynomials.h>
Public Member Functions | |
void | cadd_q () |
void | invntt_tomont () |
int32_t | montgomery_reduce (int64_t a) const |
void | ntt () |
Polynomial & | operator+= (const Polynomial &other) |
Polynomial & | operator-= (const Polynomial &other) |
void | poly_decompose (Polynomial &a1, Polynomial &a0, const DilithiumModeConstants &mode) const |
void | poly_invntt_tomont () |
void | poly_pointwise_montgomery (Polynomial &output, const Polynomial &second) const |
void | poly_reduce () |
void | poly_shiftl () |
void | poly_uniform_gamma1 (const secure_vector< uint8_t > &seed, uint16_t nonce, const DilithiumModeConstants &mode) |
void | polyeta_pack (uint8_t *r, const DilithiumModeConstants &mode) const |
Polynomial ()=default | |
void | polyt0_pack (uint8_t *r) const |
void | polyt1_pack (uint8_t *r) const |
void | polyw1_pack (uint8_t *r, const DilithiumModeConstants &mode) |
void | polyz_pack (uint8_t *r, const DilithiumModeConstants &mode) const |
Static Public Member Functions | |
static int32_t | decompose (int32_t *a0, int32_t a, const DilithiumModeConstants &mode) |
static void | fill_poly_uniform_eta (Polynomial &a, const secure_vector< uint8_t > &seed, uint16_t nonce, const DilithiumModeConstants &mode) |
static void | fill_polys_power2round (Polynomial &a1, Polynomial &a0, const Polynomial &a) |
static size_t | generate_hint_polynomial (Polynomial &h, const Polynomial &a0, const Polynomial &a1, const DilithiumModeConstants &mode) |
static int32_t | make_hint (size_t a0, size_t a1, const DilithiumModeConstants &mode) |
static Polynomial | poly_challenge (const uint8_t *seed, const DilithiumModeConstants &mode) |
static bool | poly_chknorm (const Polynomial &a, size_t B) |
static void | poly_use_hint (Polynomial &b, const Polynomial &a, const Polynomial &h, const DilithiumModeConstants &mode) |
static Polynomial | polyeta_unpack (std::span< const uint8_t > a, const DilithiumModeConstants &mode) |
static Polynomial | polyt0_unpack (std::span< const uint8_t > a) |
static void | polyt1_unpack (Polynomial &r, const uint8_t *a) |
static void | polyz_unpack (Polynomial &r, const uint8_t *a, const DilithiumModeConstants &mode) |
static int32_t | power2round (int32_t &a0, int32_t a) |
static size_t | rej_eta (Polynomial &a, size_t offset, size_t len, const secure_vector< uint8_t > &buf, size_t buflen, const DilithiumModeConstants &mode) |
static size_t | rej_uniform (Polynomial &p, size_t position, size_t len, const uint8_t *buf, size_t buflen) |
static int32_t | use_hint (int32_t a, size_t hint, const DilithiumModeConstants &mode) |
Public Attributes | |
std::array< int32_t, Botan::DilithiumModeConstants::N > | m_coeffs |
Definition at line 28 of file dilithium_polynomials.h.
|
default |
|
inline |
Definition at line 533 of file dilithium_polynomials.h.
References m_coeffs, and Botan::DilithiumModeConstants::Q.
|
inlinestatic |
Definition at line 338 of file dilithium_polynomials.h.
References BOTAN_ASSERT_NOMSG, Botan::DilithiumModeConstants::gamma2(), and Botan::DilithiumModeConstants::Q.
Referenced by poly_decompose(), and use_hint().
|
inlinestatic |
Definition at line 148 of file dilithium_polynomials.h.
References BOTAN_ASSERT_NOMSG, Botan::DilithiumModeConstants::CRHBYTES, Botan::DilithiumModeConstants::N, Botan::DilithiumModeConstants::poly_uniform_eta_nblocks(), rej_eta(), Botan::DilithiumModeConstants::stream256_blockbytes(), and Botan::DilithiumModeConstants::XOF_256().
Referenced by Botan::Dilithium::PolynomialVector::fill_polyvec_uniform_eta().
|
inlinestatic |
Definition at line 196 of file dilithium_polynomials.h.
References m_coeffs, Botan::DilithiumModeConstants::N, and power2round().
Referenced by Botan::Dilithium::PolynomialVector::fill_polyvecs_power2round().
|
inlinestatic |
Definition at line 309 of file dilithium_polynomials.h.
References m_coeffs, make_hint(), and Botan::DilithiumModeConstants::N.
Referenced by Botan::Dilithium::PolynomialVector::generate_hint_polyvec().
|
inline |
Definition at line 494 of file dilithium_polynomials.h.
References m_coeffs, montgomery_reduce(), Botan::DilithiumModeConstants::N, and Botan::DilithiumModeConstants::ZETAS.
Referenced by poly_invntt_tomont().
|
inlinestatic |
Definition at line 286 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::gamma2(), and Botan::DilithiumModeConstants::Q.
Referenced by generate_hint_polynomial().
|
inline |
Definition at line 418 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::Q, and Botan::DilithiumModeConstants::QINV.
Referenced by invntt_tomont(), ntt(), and poly_pointwise_montgomery().
|
inline |
Definition at line 451 of file dilithium_polynomials.h.
References m_coeffs, montgomery_reduce(), Botan::DilithiumModeConstants::N, and Botan::DilithiumModeConstants::ZETAS.
|
inline |
Adds two polynomials element-wise. Does not perform a reduction after the addition. Therefore this operation might cause an integer overflow.
Definition at line 37 of file dilithium_polynomials.h.
References m_coeffs.
|
inline |
Subtracts two polynomials element-wise. Does not perform a reduction after the subtraction. Therefore this operation might cause an integer underflow.
Definition at line 48 of file dilithium_polynomials.h.
References m_coeffs.
|
inlinestatic |
Definition at line 213 of file dilithium_polynomials.h.
References Botan::Buffered_Computation::final(), m_coeffs, Botan::DilithiumModeConstants::N, Botan::DilithiumModeConstants::SEEDBYTES, Botan::DilithiumModeConstants::SHAKE256_RATE, Botan::DilithiumModeConstants::tau(), and Botan::Buffered_Computation::update().
|
inlinestatic |
Definition at line 253 of file dilithium_polynomials.h.
References m_coeffs, and Botan::DilithiumModeConstants::Q.
Referenced by Botan::Dilithium::PolynomialVector::polyvec_chknorm().
|
inline |
Definition at line 569 of file dilithium_polynomials.h.
References decompose(), m_coeffs, and Botan::DilithiumModeConstants::N.
|
inline |
Definition at line 524 of file dilithium_polynomials.h.
References invntt_tomont().
|
inline |
Definition at line 437 of file dilithium_polynomials.h.
References m_coeffs, montgomery_reduce(), and Botan::DilithiumModeConstants::N.
|
inline |
Definition at line 477 of file dilithium_polynomials.h.
References m_coeffs, and Botan::DilithiumModeConstants::Q.
|
inline |
Definition at line 583 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::D, and m_coeffs.
|
inline |
Definition at line 550 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::ExpandMask(), and polyz_unpack().
|
inlinestatic |
Definition at line 399 of file dilithium_polynomials.h.
References m_coeffs, Botan::DilithiumModeConstants::N, and use_hint().
Referenced by Botan::Dilithium::PolynomialVector::polyvec_use_hint().
|
inline |
Definition at line 674 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::eta(), Botan::Eta2, Botan::Eta4, m_coeffs, and Botan::DilithiumModeConstants::N.
|
inlinestatic |
Definition at line 626 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::eta(), Botan::Eta2, Botan::Eta4, m_coeffs, and Botan::DilithiumModeConstants::N.
Referenced by Botan::Dilithium::PolynomialVector::unpack_eta().
|
inline |
Definition at line 774 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::D, m_coeffs, and Botan::DilithiumModeConstants::N.
|
inlinestatic |
Definition at line 712 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::D, m_coeffs, and Botan::DilithiumModeConstants::N.
Referenced by Botan::Dilithium::PolynomialVector::unpack_t0().
|
inline |
Definition at line 939 of file dilithium_polynomials.h.
References m_coeffs, and Botan::DilithiumModeConstants::N.
|
inlinestatic |
Definition at line 921 of file dilithium_polynomials.h.
References m_coeffs, and Botan::DilithiumModeConstants::N.
Referenced by Botan::Dilithium::PolynomialVector::unpack_t1().
|
inline |
Definition at line 599 of file dilithium_polynomials.h.
References BOTAN_ASSERT_NOMSG, Botan::DilithiumModeConstants::gamma2(), m_coeffs, Botan::DilithiumModeConstants::N, and Botan::DilithiumModeConstants::Q.
|
inline |
Definition at line 875 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::gamma1(), m_coeffs, and Botan::DilithiumModeConstants::N.
|
inlinestatic |
Definition at line 819 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::gamma1(), m_coeffs, and Botan::DilithiumModeConstants::N.
Referenced by poly_uniform_gamma1(), Botan::Dilithium::PolynomialVector::polyvec_unpack_z(), and Botan::Dilithium::PolynomialVector::unpack_sig().
|
inlinestatic |
Definition at line 178 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::D.
Referenced by fill_polys_power2round().
|
inlinestatic |
Definition at line 101 of file dilithium_polynomials.h.
References Botan::DilithiumModeConstants::eta(), Botan::Eta2, Botan::Eta4, and m_coeffs.
Referenced by fill_poly_uniform_eta().
|
inlinestatic |
Definition at line 70 of file dilithium_polynomials.h.
References m_coeffs, and Botan::DilithiumModeConstants::Q.
Referenced by Botan::Dilithium::PolynomialVector::poly_uniform().
|
inlinestatic |
Definition at line 365 of file dilithium_polynomials.h.
References decompose(), Botan::DilithiumModeConstants::gamma2(), and Botan::DilithiumModeConstants::Q.
Referenced by poly_use_hint().
std::array<int32_t, Botan::DilithiumModeConstants::N> Botan::Dilithium::Polynomial::m_coeffs |
Definition at line 31 of file dilithium_polynomials.h.
Referenced by cadd_q(), fill_polys_power2round(), generate_hint_polynomial(), invntt_tomont(), ntt(), operator+=(), operator-=(), poly_challenge(), poly_chknorm(), poly_decompose(), poly_pointwise_montgomery(), poly_reduce(), poly_shiftl(), poly_use_hint(), polyeta_pack(), polyeta_unpack(), polyt0_pack(), polyt0_unpack(), polyt1_pack(), polyt1_unpack(), polyw1_pack(), polyz_pack(), polyz_unpack(), rej_eta(), and rej_uniform().