Botan
2.1.0
Crypto and TLS for C++11
|
#include <pow_mod.h>
Public Types | |
enum | Usage_Hints { NO_HINTS = 0x0000, BASE_IS_FIXED = 0x0001, BASE_IS_SMALL = 0x0002, BASE_IS_LARGE = 0x0004, BASE_IS_2 = 0x0008, EXP_IS_FIXED = 0x0100, EXP_IS_SMALL = 0x0200, EXP_IS_LARGE = 0x0400 } |
Public Member Functions | |
BigInt | execute () const |
Power_Mod & | operator= (const Power_Mod &) |
Power_Mod (const BigInt &modulus=0, Usage_Hints hints=NO_HINTS, bool disable_montgomery_arith=false) | |
Power_Mod (const Power_Mod &) | |
void | set_base (const BigInt &base) const |
void | set_exponent (const BigInt &exponent) const |
void | set_modulus (const BigInt &modulus, Usage_Hints=NO_HINTS, bool disable_montgomery_arith=false) const |
virtual | ~Power_Mod () |
Static Public Member Functions | |
static size_t | window_bits (size_t exp_bits, size_t base_bits, Power_Mod::Usage_Hints hints) |
Enumerator | |
---|---|
NO_HINTS | |
BASE_IS_FIXED | |
BASE_IS_SMALL | |
BASE_IS_LARGE | |
BASE_IS_2 | |
EXP_IS_FIXED | |
EXP_IS_SMALL | |
EXP_IS_LARGE |
Definition at line 39 of file pow_mod.h.
Botan::Power_Mod::Power_Mod | ( | const BigInt & | modulus = 0 , |
Usage_Hints | hints = NO_HINTS , |
||
bool | disable_montgomery_arith = false |
||
) |
modulus | Optionally call set_modulus |
hints | Passed to set_modulus if modulus > 0 |
disable_montgomery_arith | Disables use of Montgomery representation. Likely only useful for testing. |
Definition at line 16 of file pow_mod.cpp.
References set_modulus().
Botan::Power_Mod::Power_Mod | ( | const Power_Mod & | other | ) |
Definition at line 25 of file pow_mod.cpp.
References Botan::Modular_Exponentiator::copy().
|
virtual |
Definition at line 52 of file pow_mod.cpp.
BigInt Botan::Power_Mod::execute | ( | ) | const |
All three of the above functions must have already been called.
Definition at line 107 of file pow_mod.cpp.
References Botan::Modular_Exponentiator::execute().
Referenced by Botan::power_mod().
Definition at line 35 of file pow_mod.cpp.
References Botan::Modular_Exponentiator::copy().
void Botan::Power_Mod::set_base | ( | const BigInt & | base | ) | const |
Set the base
Definition at line 81 of file pow_mod.cpp.
References Botan::BigInt::is_negative(), Botan::BigInt::is_zero(), and Botan::Modular_Exponentiator::set_base().
Referenced by Botan::Fixed_Base_Power_Mod::Fixed_Base_Power_Mod(), and Botan::power_mod().
void Botan::Power_Mod::set_exponent | ( | const BigInt & | exponent | ) | const |
Set the exponent
Definition at line 94 of file pow_mod.cpp.
References Botan::BigInt::is_negative(), and Botan::Modular_Exponentiator::set_exponent().
Referenced by Botan::Fixed_Exponent_Power_Mod::Fixed_Exponent_Power_Mod(), and Botan::power_mod().
void Botan::Power_Mod::set_modulus | ( | const BigInt & | modulus, |
Usage_Hints | hints = NO_HINTS , |
||
bool | disable_montgomery_arith = false |
||
) | const |
modulus | the modulus |
hints | Passed to set_modulus if modulus > 0 |
disable_montgomery_arith | Disables use of Montgomery representation. Likely only useful for testing. |
Definition at line 61 of file pow_mod.cpp.
References Botan::BigInt::is_odd().
Referenced by Power_Mod().
|
static |
Definition at line 117 of file pow_mod.cpp.
References BASE_IS_FIXED, and EXP_IS_LARGE.
Referenced by Botan::Fixed_Window_Exponentiator::set_base(), and Botan::Montgomery_Exponentiator::set_base().