diff options
Diffstat (limited to 'src/math/numbertheory')
-rw-r--r-- | src/math/numbertheory/numthry.cpp | 6 | ||||
-rw-r--r-- | src/math/numbertheory/pow_mod.h | 12 | ||||
-rw-r--r-- | src/math/numbertheory/powm_fw.cpp | 2 |
3 files changed, 15 insertions, 5 deletions
diff --git a/src/math/numbertheory/numthry.cpp b/src/math/numbertheory/numthry.cpp index 18f6ce429..c6816219f 100644 --- a/src/math/numbertheory/numthry.cpp +++ b/src/math/numbertheory/numthry.cpp @@ -253,6 +253,12 @@ BigInt inverse_mod(const BigInt& n, const BigInt& mod) BigInt power_mod(const BigInt& base, const BigInt& exp, const BigInt& mod) { Power_Mod pow_mod(mod); + + /* + * Calling set_base before set_exponent means we end up using a + * minimal window. This makes sense given that here we know that any + * precomputation is wasted. + */ pow_mod.set_base(base); pow_mod.set_exponent(exp); return pow_mod.execute(); diff --git a/src/math/numbertheory/pow_mod.h b/src/math/numbertheory/pow_mod.h index 9857c1833..b78510793 100644 --- a/src/math/numbertheory/pow_mod.h +++ b/src/math/numbertheory/pow_mod.h @@ -77,8 +77,10 @@ class BOTAN_DLL Fixed_Exponent_Power_Mod : public Power_Mod { set_base(b); return execute(); } Fixed_Exponent_Power_Mod() {} - Fixed_Exponent_Power_Mod(const BigInt&, const BigInt&, - Usage_Hints = NO_HINTS); + + Fixed_Exponent_Power_Mod(const BigInt& exponent, + const BigInt& modulus, + Usage_Hints hints = NO_HINTS); }; /** @@ -91,8 +93,10 @@ class BOTAN_DLL Fixed_Base_Power_Mod : public Power_Mod { set_exponent(e); return execute(); } Fixed_Base_Power_Mod() {} - Fixed_Base_Power_Mod(const BigInt&, const BigInt&, - Usage_Hints = NO_HINTS); + + Fixed_Base_Power_Mod(const BigInt& base, + const BigInt& modulus, + Usage_Hints hints = NO_HINTS); }; } diff --git a/src/math/numbertheory/powm_fw.cpp b/src/math/numbertheory/powm_fw.cpp index 3348e55cd..13aeee63b 100644 --- a/src/math/numbertheory/powm_fw.cpp +++ b/src/math/numbertheory/powm_fw.cpp @@ -55,7 +55,7 @@ BigInt Fixed_Window_Exponentiator::execute() const * Fixed_Window_Exponentiator Constructor */ Fixed_Window_Exponentiator::Fixed_Window_Exponentiator(const BigInt& n, - Power_Mod::Usage_Hints hints) + Power_Mod::Usage_Hints hints) { reducer = Modular_Reducer(n); this->hints = hints; |