diff options
author | Jeffrey Walton <noloader@gmail.com> | 2018-03-25 19:22:42 -0400 |
---|---|---|
committer | Jeffrey Walton <noloader@gmail.com> | 2018-03-25 19:22:42 -0400 |
commit | 874c48a329da1b3f77a8355a6e48d4b9002cc018 (patch) | |
tree | 32d0d256e9aff94d554c4333f91440640fd54d5c /integer.cpp | |
parent | 1efa1a9fc73c40082b4b22caa7675616e794380b (diff) | |
download | cryptopp-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.cpp | 6 |
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);
}
|