7#ifndef BOTAN_MONTY_INT_H_
8#define BOTAN_MONTY_INT_H_
10#include <botan/bigint.h>
12#include <botan/internal/ct_utils.h>
18class Montgomery_Params;
28 Montgomery_Int(std::shared_ptr<const Montgomery_Params> params) : m_params(std::move(params)) {}
33 Montgomery_Int(
const std::shared_ptr<const Montgomery_Params>& params,
const BigInt& v,
bool redc_needed =
true);
38 Montgomery_Int(
const std::shared_ptr<const Montgomery_Params>& params,
41 bool redc_needed =
true);
49 bool redc_needed =
true);
55 std::vector<uint8_t> serialize()
const;
122 std::shared_ptr<const Montgomery_Params> m_params;
void _const_time_unpoison() const
Montgomery_Int(std::shared_ptr< const Montgomery_Params > params)
const BigInt & repr() const
bool operator!=(const Montgomery_Int &other) const
void _const_time_poison() const
const BigInt & R3() const
const BigInt & R2() const
const BigInt & R1() const
int(* final)(unsigned char *, CTX *)
BigInt operator*(const BigInt &x, const BigInt &y)
BigInt square(const BigInt &x)
OctetString operator+(const OctetString &k1, const OctetString &k2)
BigInt operator-(const BigInt &x, const BigInt &y)
bool operator==(const AlgorithmIdentifier &a1, const AlgorithmIdentifier &a2)
std::vector< T, Alloc > & operator+=(std::vector< T, Alloc > &out, const std::vector< T, Alloc2 > &in)
constexpr auto operator-=(Strong< T1, Tags... > &a, T2 b)
std::vector< T, secure_allocator< T > > secure_vector
constexpr auto operator*=(Strong< T1, Tags... > &a, T2 b)