From 55e9e952b60d5e3b0e30b52c4c01e4e95eae3302 Mon Sep 17 00:00:00 2001 From: Vladimir Diaz Date: Thu, 2 Apr 2015 16:35:45 -0400 Subject: [PATCH] Improve code coverage for pycrypto_keys.py --- tests/test_pycrypto_keys.py | 9 +++++++++ tuf/pycrypto_keys.py | 5 +++-- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/tests/test_pycrypto_keys.py b/tests/test_pycrypto_keys.py index 4ef568ab..667e93fa 100755 --- a/tests/test_pycrypto_keys.py +++ b/tests/test_pycrypto_keys.py @@ -66,6 +66,7 @@ def test_generate_rsa_public_and_private(self): def test_create_rsa_signature(self): global private_rsa + global public_rsa data = 'The quick brown fox jumps over the lazy dog'.encode('utf-8') signature, method = pycrypto.create_rsa_signature(private_rsa, data) @@ -83,9 +84,16 @@ def test_create_rsa_signature(self): pycrypto.create_rsa_signature, '', data) # Check for invalid 'data'. + print(repr(private_rsa)) + pycrypto.create_rsa_signature(private_rsa, '') + self.assertRaises(tuf.CryptoError, pycrypto.create_rsa_signature, private_rsa, 123) + # Check for missing private key. + self.assertRaises(tuf.CryptoError, + pycrypto.create_rsa_signature, public_rsa, data) + def test_verify_rsa_signature(self): global public_rsa @@ -209,6 +217,7 @@ def test_create_rsa_public_and_private_from_encrypted_pem(self): self.assertRaises(tuf.FormatError, pycrypto.create_rsa_public_and_private_from_encrypted_pem, pem_rsakey, ['pw']) + self.assertRaises(tuf.CryptoError, pycrypto.create_rsa_public_and_private_from_encrypted_pem, 'invalid_pem', passphrase) diff --git a/tuf/pycrypto_keys.py b/tuf/pycrypto_keys.py index f3ac2382..b61fd9d6 100755 --- a/tuf/pycrypto_keys.py +++ b/tuf/pycrypto_keys.py @@ -585,8 +585,9 @@ def create_rsa_public_and_private_from_encrypted_pem(encrypted_pem, passphrase): public = rsa_pubkey.exportKey(format='PEM') # PyCrypto raises 'ValueError' if the public or private keys cannot be - # exported. See 'Crypto.PublicKey.RSA'. - except (ValueError): + # exported. See 'Crypto.PublicKey.RSA'. 'ValueError' should not be raised + # if the 'Crypto.PublicKey.RSA.importKey() call above passed. + except (ValueError): #pragma: no cover message = 'The public and private keys cannot be exported in PEM format.' raise tuf.CryptoError(message)