diff options
author | Shengkai Sun <shengkai.sun01@gmail.com> | 2023-04-18 18:15:11 +0800 |
---|---|---|
committer | Sybren A. Stüvel <sybren@stuvel.eu> | 2023-04-23 15:38:33 +0200 |
commit | b94766f775aa3cdc541a66355cb00e439aab3e55 (patch) | |
tree | 6c69a9b5f2d94fe1ff177561a383f47d42d27a1f /tests | |
parent | 5045b149ba255349730e1c7ad78c61700427c5da (diff) | |
download | rsa-git-b94766f775aa3cdc541a66355cb00e439aab3e55.tar.gz |
modified: Fixed a bug in rsa/core.py where the message should not be equals to the modulus
modified: Added test cases in tests/test_integers.py
Diffstat (limited to 'tests')
-rw-r--r-- | tests/test_integers.py | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/test_integers.py b/tests/test_integers.py index 659e85a..fa85cdf 100644 --- a/tests/test_integers.py +++ b/tests/test_integers.py @@ -46,3 +46,31 @@ class IntegerTest(unittest.TestCase): print("\tVerified: %d" % verified) self.assertEqual(message, verified) + + def test_extreme_values(self): + # message < 0 + message = -1 + print("\n\tMessage: %d" % message) + + with self.assertRaises(ValueError): + rsa.core.encrypt_int(message, self.pub.e, self.pub.n) + + # message == 0 + message = 0 + print("\n\tMessage: %d" % message) + + encrypted = rsa.core.encrypt_int(message, self.pub.e, self.pub.n) + print("\tEncrypted: %d" % encrypted) + + decrypted = rsa.core.decrypt_int(encrypted, self.priv.d, self.pub.n) + print("\tDecrypted: %d" % decrypted) + + self.assertEqual(message, decrypted) + + # message >= n + message = self.pub.n + print("\n\tMessage: %d" % message) + + with self.assertRaises(OverflowError): + rsa.core.encrypt_int(message, self.pub.e, self.pub.n) + |