From d79c856ef04ac581a3d15b57e8d5d78bf4218cc8 Mon Sep 17 00:00:00 2001 From: William Grant Date: Sat, 19 Mar 2011 15:03:53 +1100 Subject: [PATCH] RSA tests. --- dkim/tests/test_crypto.py | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) 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__)