diff --git a/integer.cpp b/integer.cpp index bcb2a734..e89aee5e 100644 --- a/integer.cpp +++ b/integer.cpp @@ -4362,12 +4362,18 @@ Integer Integer::MultiplicativeInverse() const Integer a_times_b_mod_c(const Integer &x, const Integer& y, const Integer& m) { CRYPTOPP_ASSERT(m != 0); + if (m == 0) + throw Integer::DivideByZero(); + return x*y%m; } Integer a_exp_b_mod_c(const Integer &x, const Integer& e, const Integer& m) { CRYPTOPP_ASSERT(m != 0); + if (m == 0) + throw Integer::DivideByZero(); + ModularArithmetic mr(m); return mr.Exponentiate(x, e); }