7#ifndef BOTAN_MONTY_EXP_H_
8#define BOTAN_MONTY_EXP_H_
10#include <botan/internal/monty.h>
17class Montgomery_Exponentation_State;
23 const std::shared_ptr<const Montgomery_Params>& params_p,
26 bool const_time =
true);
31std::shared_ptr<const Montgomery_Exponentation_State>
monty_precompute(
const Montgomery_Int& g,
33 bool const_time =
true);
38Montgomery_Int
monty_execute(
const Montgomery_Exponentation_State& precomputed_state,
46Montgomery_Int
monty_execute_vartime(
const Montgomery_Exponentation_State& precomputed_state,
const BigInt& k);
66Montgomery_Int
monty_multi_exp(
const std::shared_ptr<const Montgomery_Params>& params_p,
Montgomery_Int monty_execute_vartime(const Montgomery_Exponentation_State &precomputed_state, const BigInt &k)
Montgomery_Int monty_exp(const std::shared_ptr< const Montgomery_Params > ¶ms_p, const BigInt &g, const BigInt &k, size_t max_k_bits)
Montgomery_Int monty_exp_vartime(const std::shared_ptr< const Montgomery_Params > ¶ms_p, const BigInt &g, const BigInt &k)
Montgomery_Int 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 Montgomery_Int &g, size_t window_bits, bool const_time)
Montgomery_Int 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)