summaryrefslogtreecommitdiff
path: root/pycryptopp/test/test_rsa.py
diff options
context:
space:
mode:
authorMicah Anderson <micah@riseup.net>2013-08-22 16:39:52 -0400
committerMicah Anderson <micah@riseup.net>2013-08-22 16:39:52 -0400
commit5e60e0e3af85f22aa0afe8bf0ecf85619afacfeb (patch)
tree6a91a3de86fa8de0b4167cc947ab72991bf8da31 /pycryptopp/test/test_rsa.py
parent30e9097985656920f01a72efc1088caa2b8d41b3 (diff)
Imported Upstream version 0.6.0.12upstream/0.6.0.12
Diffstat (limited to 'pycryptopp/test/test_rsa.py')
-rw-r--r--pycryptopp/test/test_rsa.py122
1 files changed, 0 insertions, 122 deletions
diff --git a/pycryptopp/test/test_rsa.py b/pycryptopp/test/test_rsa.py
deleted file mode 100644
index e4c5497..0000000
--- a/pycryptopp/test/test_rsa.py
+++ /dev/null
@@ -1,122 +0,0 @@
-#!/usr/bin/env python
-
-import random
-
-import unittest
-
-global VERBOSE
-VERBOSE=False
-
-from pycryptopp.publickey import rsa
-
-from base64 import b32encode
-def ab(x): # debuggery
- if len(x) >= 3:
- return "%s:%s" % (len(x), b32encode(x[-3:]),)
- elif len(x) == 2:
- return "%s:%s" % (len(x), b32encode(x[-2:]),)
- elif len(x) == 1:
- return "%s:%s" % (len(x), b32encode(x[-1:]),)
- elif len(x) == 0:
- return "%s:%s" % (len(x), "--empty--",)
-
-def randstr(n):
- return ''.join(map(chr, map(random.randrange, [0]*n, [256]*n)))
-
-KEYSIZE=522 # 522 bits is far too few for actual security -- it is used only for faster unit tests
-
-class Signer(unittest.TestCase):
- def test_generate_bad_size(self):
- try:
- rsa.generate(KEYSIZE-1)
- except rsa.Error, le:
- self.failUnless("size in bits is required to be >=" in str(le), le)
- else:
- self.fail("Should have raised error from size being too small.")
- try:
- rsa.generate(sizeinbits=KEYSIZE-1)
- except rsa.Error, le:
- self.failUnless("size in bits is required to be >=" in str(le), le)
- else:
- self.fail("Should have raised error from size being too small.")
-
- def test_generate(self):
- rsa.generate(KEYSIZE)
- # Hooray! It didn't raise an exception! We win!
- rsa.generate(sizeinbits=KEYSIZE)
- # Hooray! It didn't raise an exception! We win!
-
- def test_sign(self):
- signer = rsa.generate(KEYSIZE)
- result = signer.sign("abc")
- self.failUnlessEqual(len(result), ((KEYSIZE+7)/8))
- # TODO: test against RSAInc. test vectors.
-
-class SignAndVerify(unittest.TestCase):
- def _help_test_sign_and_check(self, signer, verifier, msg):
- sig = signer.sign(msg)
- self.failUnlessEqual(len(sig), ((KEYSIZE+7)/8))
- self.failUnless(verifier.verify(msg, sig))
-
- def test_sign_and_check_a(self):
- signer = rsa.generate(KEYSIZE)
- verifier = signer.get_verifying_key()
- return self._help_test_sign_and_check(signer, verifier, "a")
-
- def _help_test_sign_and_check_random(self, signer, verifier):
- for i in range(3):
- l = random.randrange(0, 2**10)
- msg = randstr(l)
- self._help_test_sign_and_check(signer, verifier, msg)
-
- def test_sign_and_check_random(self):
- signer = rsa.generate(KEYSIZE)
- verifier = signer.get_verifying_key()
- return self._help_test_sign_and_check_random(signer, verifier)
-
- def _help_test_sign_and_failcheck(self, signer, verifier, msg):
- sig = signer.sign("a")
- sig = sig[:-1] + chr(ord(sig[-1])^0x01)
- self.failUnless(not verifier.verify(msg, sig))
-
- def test_sign_and_failcheck_a(self):
- signer = rsa.generate(KEYSIZE)
- verifier = signer.get_verifying_key()
- return self._help_test_sign_and_failcheck(signer, verifier, "a")
-
- def _help_test_sign_and_failcheck_random(self, signer, verifier):
- for i in range(3):
- l = random.randrange(0, 2**10)
- msg = randstr(l)
- self._help_test_sign_and_failcheck(signer, verifier, msg)
-
- def test_sign_and_failcheck_random(self):
- signer = rsa.generate(KEYSIZE)
- verifier = signer.get_verifying_key()
- return self._help_test_sign_and_failcheck_random(signer, verifier)
-
- def test_serialize_and_deserialize_verifying_key_and_test(self):
- signer = rsa.generate(KEYSIZE)
- verifier = signer.get_verifying_key()
- serstr = verifier.serialize()
- verifier = None
- newverifier = rsa.create_verifying_key_from_string(serstr)
- self._help_test_sign_and_check(signer, newverifier, "a")
- self._help_test_sign_and_check_random(signer, newverifier)
- self._help_test_sign_and_failcheck(signer, newverifier, "a")
- self._help_test_sign_and_failcheck_random(signer, newverifier)
-
- def test_serialize_and_deserialize_signing_key_and_test(self):
- signer = rsa.generate(KEYSIZE)
- verifier = signer.get_verifying_key()
- serstr = signer.serialize()
- signer = None
- newsigner = rsa.create_signing_key_from_string(serstr)
- self._help_test_sign_and_check(newsigner, verifier, "a")
- self._help_test_sign_and_check_random(newsigner, verifier)
- self._help_test_sign_and_failcheck(newsigner, verifier, "a")
- self._help_test_sign_and_failcheck_random(newsigner, verifier)
-
-
-if __name__ == "__main__":
- unittest.main()