summaryrefslogtreecommitdiff
path: root/integer.cpp
diff options
context:
space:
mode:
authorJeffrey Walton <noloader@gmail.com>2018-03-25 19:22:42 -0400
committerJeffrey Walton <noloader@gmail.com>2018-03-25 19:22:42 -0400
commit874c48a329da1b3f77a8355a6e48d4b9002cc018 (patch)
tree32d0d256e9aff94d554c4333f91440640fd54d5c /integer.cpp
parent1efa1a9fc73c40082b4b22caa7675616e794380b (diff)
downloadcryptopp-git-874c48a329da1b3f77a8355a6e48d4b9002cc018.tar.gz
Fix a_exp_b_mod_c and divide by 0 (GH #604)
Diffstat (limited to 'integer.cpp')
-rw-r--r--integer.cpp6
1 files changed, 6 insertions, 0 deletions
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);
}