From 874c48a329da1b3f77a8355a6e48d4b9002cc018 Mon Sep 17 00:00:00 2001 From: Jeffrey Walton Date: Sun, 25 Mar 2018 19:22:42 -0400 Subject: Fix a_exp_b_mod_c and divide by 0 (GH #604) --- integer.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'integer.cpp') 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); } -- cgit v1.2.1