Fix a_exp_b_mod_c and divide by 0 (GH #604)
parent
1efa1a9fc7
commit
874c48a329
|
|
@ -4362,12 +4362,18 @@ Integer Integer::MultiplicativeInverse() const
|
||||||
Integer a_times_b_mod_c(const Integer &x, const Integer& y, const Integer& m)
|
Integer a_times_b_mod_c(const Integer &x, const Integer& y, const Integer& m)
|
||||||
{
|
{
|
||||||
CRYPTOPP_ASSERT(m != 0);
|
CRYPTOPP_ASSERT(m != 0);
|
||||||
|
if (m == 0)
|
||||||
|
throw Integer::DivideByZero();
|
||||||
|
|
||||||
return x*y%m;
|
return x*y%m;
|
||||||
}
|
}
|
||||||
|
|
||||||
Integer a_exp_b_mod_c(const Integer &x, const Integer& e, const Integer& m)
|
Integer a_exp_b_mod_c(const Integer &x, const Integer& e, const Integer& m)
|
||||||
{
|
{
|
||||||
CRYPTOPP_ASSERT(m != 0);
|
CRYPTOPP_ASSERT(m != 0);
|
||||||
|
if (m == 0)
|
||||||
|
throw Integer::DivideByZero();
|
||||||
|
|
||||||
ModularArithmetic mr(m);
|
ModularArithmetic mr(m);
|
||||||
return mr.Exponentiate(x, e);
|
return mr.Exponentiate(x, e);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue