diff --git a/dkim/tests/test_crypto.py b/dkim/tests/test_crypto.py index 9dbcb40..12eff95 100644 --- a/dkim/tests/test_crypto.py +++ b/dkim/tests/test_crypto.py @@ -26,6 +26,7 @@ from dkim.crypto import ( DigestTooLargeError, EMSA_PKCS1_v1_5_encode, int2str, + perform_rsa, str2int, ) @@ -72,6 +73,27 @@ class TestEMSA_PKCS1_v1_5(unittest.TestCase): EMSA_PKCS1_v1_5_encode, digest, 45, HASHID_SHA1) +class TestRSA(unittest.TestCase): + + message = '\x00\x04\xfb' + modulus = 186101 + modlen = 3 + public_exponent = 907 + private_exponent = 2851 + + def test_perform(self): + signed = perform_rsa( + self.message, self.private_exponent, self.modulus, self.modlen) + self.assertEquals('\x01\xf1\x40', signed) + + def test_sign_and_verify(self): + signed = perform_rsa( + self.message, self.private_exponent, self.modulus, self.modlen) + unsigned = perform_rsa( + signed, self.public_exponent, self.modulus, self.modlen) + self.assertEquals(self.message, unsigned) + + def test_suite(): from unittest import TestLoader return TestLoader().loadTestsFromName(__name__)