summaryrefslogtreecommitdiff
path: root/tests/test_rsa.py
diff options
context:
space:
mode:
authorNg Pheng Siong <ngps@netmemetic.com>2002-12-23 04:58:36 +0000
committerNg Pheng Siong <ngps@netmemetic.com>2002-12-23 04:58:36 +0000
commit3f7d9ae75837b3f792da27979f41ca4a775298fb (patch)
tree819762da303d6a293e99a8d0e83d143e09651de4 /tests/test_rsa.py
parent4ec3c92f2651764eba9b17c49d808363a608aa89 (diff)
downloadm2crypto-3f7d9ae75837b3f792da27979f41ca4a775298fb.tar.gz
Prepare for import into CVS.
git-svn-id: http://svn.osafoundation.org/m2crypto/trunk@141 2715db39-9adf-0310-9c64-84f055769b4b
Diffstat (limited to 'tests/test_rsa.py')
-rw-r--r--tests/test_rsa.py60
1 files changed, 45 insertions, 15 deletions
diff --git a/tests/test_rsa.py b/tests/test_rsa.py
index 49d6c2f..766ba0b 100644
--- a/tests/test_rsa.py
+++ b/tests/test_rsa.py
@@ -4,17 +4,17 @@
Copyright (c) 2000 Ng Pheng Siong. All rights reserved."""
-RCS_id='$Id: test_rsa.py,v 1.1 2000/11/19 08:09:20 ngps Exp $'
+RCS_id='$Id: test_rsa.py,v 1.2 2002/12/23 04:58:36 ngps Exp $'
import unittest
import os, sha, tempfile
-from M2Crypto import RSA, BIO, m2
-
-def callback(p, n): pass
+from M2Crypto import RSA, BIO, Rand, m2
class RSATestCase(unittest.TestCase):
+ errkey = 'dsa.priv.pem'
privkey = 'rsa.priv.pem'
+ privkey2 = 'rsa.priv2.pem'
pubkey = 'rsa.pub.pem'
data = sha.sha('The magic words are squeamish ossifrage.').digest()
@@ -24,28 +24,54 @@ class RSATestCase(unittest.TestCase):
s_padding_ok = ('pkcs1_padding',)
s_padding_nok = ('no_padding', 'sslv23_padding', 'pkcs1_oaep_padding')
- def setUp(self):
+ def gen_callback(self, *args):
+ pass
+
+ def gen2_callback(self):
pass
- def tearDown(self):
+ def pp_callback(self, *args):
+ # The passphrase for rsa.priv2.pem is 'qwerty'.
+ return 'qwerty'
+
+ def pp2_callback(self, *args):
+ # Misbehaving passphrase callback.
pass
+ def check_loadkey_junk(self):
+ self.assertRaises(RSA.RSAError, RSA.load_key, self.errkey)
+
+ def check_loadkey_pp(self):
+ rsa = RSA.load_key(self.privkey2, self.pp_callback)
+ assert len(rsa) == 512
+ assert rsa.e == '\000\000\000\003\001\000\001' # aka 65537 aka 0xf4
+ assert rsa.check_key() == 1
+
+ def check_loadkey_pp_bad_cb(self):
+ self.assertRaises(RSA.RSAError, RSA.load_key, self.privkey2, self.pp2_callback)
+
def check_loadkey(self):
rsa = RSA.load_key(self.privkey)
- assert len(rsa) == 64
+ assert len(rsa) == 512
assert rsa.e == '\000\000\000\003\001\000\001' # aka 65537 aka 0xf4
assert rsa.check_key() == 1
def check_loadkey_bio(self):
keybio = BIO.MemoryBuffer(open(self.privkey).read())
rsa = RSA.load_key_bio(keybio)
- assert len(rsa) == 64
+ assert len(rsa) == 512
assert rsa.e == '\000\000\000\003\001\000\001' # aka 65537 aka 0xf4
assert rsa.check_key() == 1
def check_keygen(self):
- rsa = RSA.gen_key(256, 65537, callback)
- assert len(rsa) == 32
+ rsa = RSA.gen_key(256, 65537, self.gen_callback)
+ assert len(rsa) == 256
+ assert rsa.e == '\000\000\000\003\001\000\001' # aka 65537 aka 0xf4
+ assert rsa.check_key() == 1
+
+ def check_keygen_bad_cb(self):
+ rsa = RSA.gen_key(256, 65537, self.gen2_callback)
+ assert len(rsa) == 256
assert rsa.e == '\000\000\000\003\001\000\001' # aka 65537 aka 0xf4
assert rsa.check_key() == 1
@@ -62,7 +88,7 @@ class RSATestCase(unittest.TestCase):
p = getattr(RSA, padding)
self.assertRaises(RSA.RSAError, priv.private_encrypt, self.data, p)
# Type-check the data to be encrypted.
- self.assertRaises(TypeError, priv.private_encrypt, callback, RSA.pkcs1_padding)
+ self.assertRaises(TypeError, priv.private_encrypt, self.gen_callback, RSA.pkcs1_padding)
def check_public_encrypt(self):
priv = RSA.load_key(self.privkey)
@@ -78,25 +104,27 @@ class RSATestCase(unittest.TestCase):
# no_padding
self.assertRaises(RSA.RSAError, priv.public_encrypt, self.data, RSA.no_padding)
# Type-check the data to be encrypted.
- self.assertRaises(TypeError, priv.public_encrypt, callback, RSA.pkcs1_padding)
+ self.assertRaises(TypeError, priv.public_encrypt, self.gen_callback, RSA.pkcs1_padding)
def check_loadpub(self):
rsa = RSA.load_pub_key(self.pubkey)
- assert len(rsa) == 64
+ assert len(rsa) == 512
assert rsa.e == '\000\000\000\003\001\000\001' # aka 65537 aka 0xf4
assert rsa.check_key()
+ def check_loadpub_bad(self):
+ self.assertRaises(RSA.RSAError, RSA.load_pub_key, self.errkey)
+
def check_set_bn(self):
rsa = RSA.load_pub_key(self.pubkey)
assert m2.rsa_set_e(rsa.rsa, '\000\000\000\003\001\000\001') is None
- # Following test's actual error message doesn't look right.
self.assertRaises(RSA.RSAError, m2.rsa_set_e, rsa.rsa, '\000\000\000\003\001')
def check_newpub(self):
old = RSA.load_pub_key(self.pubkey)
new = RSA.new_pub_key(old.pub())
assert new.check_key()
- assert len(new) == 64
+ assert len(new) == 512
assert new.e == '\000\000\000\003\001\000\001' # aka 65537 aka 0xf4
@@ -105,5 +133,7 @@ def suite():
if __name__ == '__main__':
+ Rand.load_file('randpool.dat', -1)
unittest.TextTestRunner().run(suite())
+ Rand.save_file('randpool.dat')