7 #ifndef BOTAN_MONTY_INT_H_
8 #define BOTAN_MONTY_INT_H_
10 #include <botan/bigint.h>
14 class Modular_Reducer;
16 class Montgomery_Params;
27 Montgomery_Int(std::shared_ptr<const Montgomery_Params> params) : m_params(params) {}
34 bool redc_needed =
true);
40 const uint8_t bits[],
size_t len,
41 bool redc_needed =
true);
47 const word words[],
size_t len,
48 bool redc_needed =
true);
53 std::vector<uint8_t> serialize()
const;
122 std::shared_ptr<const Montgomery_Params> m_params;
174 void square_this(
BigInt& x,
#define BOTAN_UNSTABLE_API
const BigInt & R2() const
OID operator+(const OID &oid, uint32_t new_component)
void const_time_unpoison() const
Montgomery_Int(std::shared_ptr< const Montgomery_Params > params)
int(* final)(unsigned char *, CTX *)
const BigInt & repr() const
BigInt operator-(const BigInt &x, const BigInt &y)
std::vector< T, secure_allocator< T >> secure_vector
const BigInt & R1() const
BigInt square(const BigInt &x)
std::vector< T, Alloc > & operator+=(std::vector< T, Alloc > &out, const std::vector< T, Alloc2 > &in)
BigInt operator*(const BigInt &x, const BigInt &y)
const BigInt & R3() const
bool operator==(const AlgorithmIdentifier &a1, const AlgorithmIdentifier &a2)
bool operator!=(const Montgomery_Int &other) const
void const_time_poison() const