Botan 3.7.1
Crypto and TLS for C&
|
Representation of a Classic McEliece polynomial. More...
#include <cmce_poly.h>
Public Member Functions | |
void | _const_time_poison () const |
void | _const_time_unpoison () const |
Classic_McEliece_Polynomial (std::vector< Classic_McEliece_GF > coef) | |
Construct a polynomial given its coefficients. | |
const std::vector< Classic_McEliece_GF > & | coef () const |
Get the entire coefficients vector of the polynomial. | |
Classic_McEliece_GF & | coef_at (size_t i) |
Get the coefficient of the i-th monomial as a reference (from low to high degree). | |
const Classic_McEliece_GF & | coef_at (size_t i) const |
Get the coefficient of the i-th monomial (from low to high degree). | |
size_t | degree () const |
Get the degree of the polynomial. | |
Classic_McEliece_GF | operator() (Classic_McEliece_GF a) const |
Evaluate the polynomial P(x) at a given point a, i.e., compute P(a). | |
Representation of a Classic McEliece polynomial.
This class represents a polynomial in the ring GF(q)[y]. E.g an example element of degree 2 could be: a = (z^3+1)y^2 + (z)y + (z^4+z^3) The degree of the polynomial is given by the size of the coefficient vector given to the constructor, even if the leading coefficient is zero. Coefficients are stored from lowest to highest monomial degree (coef_at(0) = (z^4+z^3) in the example above).
This class is merely a container. The modulus and the operations with Polynomials (e.g. multiplication) is handled by the Classic_McEliece_Polynomial_Ring class.
Definition at line 32 of file cmce_poly.h.
|
inline |
Construct a polynomial given its coefficients.
coef | The coefficients of the polynomial. The first element is the coefficient of the lowest monomial. |
Definition at line 39 of file cmce_poly.h.
|
inline |
Definition at line 68 of file cmce_poly.h.
|
inline |
Definition at line 70 of file cmce_poly.h.
|
inline |
Get the entire coefficients vector of the polynomial.
Definition at line 59 of file cmce_poly.h.
Referenced by Botan::Classic_McEliece_Minimal_Polynomial::serialize().
|
inline |
Get the coefficient of the i-th monomial as a reference (from low to high degree).
Definition at line 49 of file cmce_poly.h.
Referenced by Botan::Classic_McEliece_PrivateKeyInternal::check_key(), Botan::Classic_McEliece_Polynomial_Ring::multiply(), and operator()().
|
inline |
Get the coefficient of the i-th monomial (from low to high degree).
Definition at line 54 of file cmce_poly.h.
|
inline |
Get the degree of the polynomial.
Note that the degree is given by the size of the coefficient vector, even if the leading coefficient is zero.
Definition at line 66 of file cmce_poly.h.
Referenced by Botan::Classic_McEliece_PrivateKeyInternal::check_key().
Classic_McEliece_GF Botan::Classic_McEliece_Polynomial::operator() | ( | Classic_McEliece_GF | a | ) | const |
Evaluate the polynomial P(x) at a given point a, i.e., compute P(a).
Definition at line 18 of file cmce_poly.cpp.
References BOTAN_DEBUG_ASSERT, coef_at(), and Botan::Classic_McEliece_GF::modulus().