7#ifndef BOTAN_MONTY_EXP_H_
8#define BOTAN_MONTY_EXP_H_
10#include <botan/bigint.h>
17class Montgomery_Params;
19class Montgomery_Exponentation_State;
25 const std::shared_ptr<const Montgomery_Params>& params_p,
28 bool const_time =
true);
33BigInt
monty_execute(
const Montgomery_Exponentation_State& precomputed_state,
const BigInt& k,
size_t max_k_bits);
39BigInt
monty_execute_vartime(
const Montgomery_Exponentation_State& precomputed_state,
const BigInt& k);
59BigInt
monty_multi_exp(
const std::shared_ptr<const Montgomery_Params>& params_p,
BigInt monty_exp(const std::shared_ptr< const Montgomery_Params > ¶ms_p, const BigInt &g, const BigInt &k, size_t max_k_bits)
BigInt monty_multi_exp(const std::shared_ptr< const Montgomery_Params > ¶ms_p, const BigInt &x_bn, const BigInt &z1, const BigInt &y_bn, const BigInt &z2)
BigInt monty_exp_vartime(const std::shared_ptr< const Montgomery_Params > ¶ms_p, const BigInt &g, const BigInt &k)
BigInt monty_execute_vartime(const Montgomery_Exponentation_State &precomputed_state, const BigInt &k)
BigInt monty_execute(const Montgomery_Exponentation_State &precomputed_state, const BigInt &k, size_t max_k_bits)
std::shared_ptr< const Montgomery_Exponentation_State > monty_precompute(const std::shared_ptr< const Montgomery_Params > ¶ms, const BigInt &g, size_t window_bits, bool const_time)