diff options
author | Ng Pheng Siong <ngps@netmemetic.com> | 2002-12-23 04:58:36 +0000 |
---|---|---|
committer | Ng Pheng Siong <ngps@netmemetic.com> | 2002-12-23 04:58:36 +0000 |
commit | 3f7d9ae75837b3f792da27979f41ca4a775298fb (patch) | |
tree | 819762da303d6a293e99a8d0e83d143e09651de4 /tests/test_rsa.py | |
parent | 4ec3c92f2651764eba9b17c49d808363a608aa89 (diff) | |
download | m2crypto-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.py | 60 |
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') |