From 8fac5909a294f7c2271c3ccfffd93815895e8195 Mon Sep 17 00:00:00 2001 From: "Sybren A. St?vel" Date: Mon, 20 Jun 2011 01:06:39 +0200 Subject: Added block padding to be able to work with leading zeroes, breaks all kind of stuff --- tests/test_binary.py | 37 +++++++++++++++++++++++++++++++++++++ tests/test_strings.py | 7 +++---- 2 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 tests/test_binary.py (limited to 'tests') diff --git a/tests/test_binary.py b/tests/test_binary.py new file mode 100644 index 0000000..f770b72 --- /dev/null +++ b/tests/test_binary.py @@ -0,0 +1,37 @@ +'''Tests string operations.''' + +import struct +import unittest + +import rsa + +class BinaryTest(unittest.TestCase): + + def setUp(self): + (self.pub, self.priv) = rsa.newkeys(64) + + def test_enc_dec(self): + + message = struct.pack('>IIII', 0, 0, 0, 1) + 20 * '\x00' + print "\tMessage: %r" % message + + encrypted = rsa.encrypt(message, self.pub) + print "\tEncrypted: %r" % encrypted + + decrypted = rsa.decrypt(encrypted, self.priv) + print "\tDecrypted: %r" % decrypted + + self.assertEqual(message, decrypted) + + def test_sign_verify(self): + + message = struct.pack('>IIII', 0, 0, 0, 1) + 20 * '\x00' + print "\tMessage: %r" % message + + signed = rsa.sign(message, self.priv) + print "\tSigned: %r" % signed + + verified = rsa.verify(signed, self.pub) + print "\tVerified: %r" % verified + + self.assertEqual(message, verified) diff --git a/tests/test_strings.py b/tests/test_strings.py index c5803e4..8baa63d 100644 --- a/tests/test_strings.py +++ b/tests/test_strings.py @@ -11,8 +11,7 @@ class StringTest(unittest.TestCase): def test_enc_dec(self): - # TODO: test with unicode strings and non-ascii chars - message = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + message = u"Euro=\u20ac ABCDEFGHIJKLMNOPQRSTUVWXYZ".encode('utf-8') print "\tMessage: %s" % message encrypted = rsa.encrypt(message, self.pub) @@ -25,8 +24,8 @@ class StringTest(unittest.TestCase): def test_sign_verify(self): - # TODO: test with unicode strings and non-ascii chars - message = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" + message = u"Euro=\u20ac ABCDEFGHIJKLMNOPQRSTUVWXYZ".encode('utf-8') + print "\tMessage: %s" % message signed = rsa.sign(message, self.priv) print "\tSigned: %s" % signed -- cgit v1.2.1 From 3ba3833bd7646aa8c37149e9bb95741eb750fb25 Mon Sep 17 00:00:00 2001 From: "Sybren A. St?vel" Date: Sun, 10 Jul 2011 12:17:16 +0200 Subject: Replaced the binary test with a test of the PKCS1 module. --- tests/test_binary.py | 37 ------------------------------------- tests/test_pkcs1.py | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 37 deletions(-) delete mode 100644 tests/test_binary.py create mode 100644 tests/test_pkcs1.py (limited to 'tests') diff --git a/tests/test_binary.py b/tests/test_binary.py deleted file mode 100644 index f770b72..0000000 --- a/tests/test_binary.py +++ /dev/null @@ -1,37 +0,0 @@ -'''Tests string operations.''' - -import struct -import unittest - -import rsa - -class BinaryTest(unittest.TestCase): - - def setUp(self): - (self.pub, self.priv) = rsa.newkeys(64) - - def test_enc_dec(self): - - message = struct.pack('>IIII', 0, 0, 0, 1) + 20 * '\x00' - print "\tMessage: %r" % message - - encrypted = rsa.encrypt(message, self.pub) - print "\tEncrypted: %r" % encrypted - - decrypted = rsa.decrypt(encrypted, self.priv) - print "\tDecrypted: %r" % decrypted - - self.assertEqual(message, decrypted) - - def test_sign_verify(self): - - message = struct.pack('>IIII', 0, 0, 0, 1) + 20 * '\x00' - print "\tMessage: %r" % message - - signed = rsa.sign(message, self.priv) - print "\tSigned: %r" % signed - - verified = rsa.verify(signed, self.pub) - print "\tVerified: %r" % verified - - self.assertEqual(message, verified) diff --git a/tests/test_pkcs1.py b/tests/test_pkcs1.py new file mode 100644 index 0000000..9d3d9ec --- /dev/null +++ b/tests/test_pkcs1.py @@ -0,0 +1,38 @@ +'''Tests string operations.''' + +import struct +import unittest + +import rsa +from rsa import pkcs1 + +class BinaryTest(unittest.TestCase): + + def setUp(self): + (self.pub, self.priv) = rsa.newkeys(256) + + def test_enc_dec(self): + + message = struct.pack('>IIII', 0, 0, 0, 1) + 5 * '\x00' + print "\tMessage: %r" % message + + encrypted = pkcs1.encrypt(message, self.pub) + print "\tEncrypted: %r" % encrypted + + decrypted = pkcs1.decrypt(encrypted, self.priv) + print "\tDecrypted: %r" % decrypted + + self.assertEqual(message, decrypted) + +# def test_sign_verify(self): +# +# message = struct.pack('>IIII', 0, 0, 0, 1) + 20 * '\x00' +# print "\tMessage: %r" % message +# +# signed = rsa.sign(message, self.priv) +# print "\tSigned: %r" % signed +# +# verified = rsa.verify(signed, self.pub) +# print "\tVerified: %r" % verified +# +# self.assertEqual(message, verified) -- cgit v1.2.1 From 4462368ed56477f20353ab777dbe2d669bed8b09 Mon Sep 17 00:00:00 2001 From: "Sybren A. St?vel" Date: Sun, 10 Jul 2011 12:40:46 +0200 Subject: Added unittest for PKCS#1 decoding failures --- tests/test_pkcs1.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/test_pkcs1.py b/tests/test_pkcs1.py index 9d3d9ec..230e7f7 100644 --- a/tests/test_pkcs1.py +++ b/tests/test_pkcs1.py @@ -13,7 +13,7 @@ class BinaryTest(unittest.TestCase): def test_enc_dec(self): - message = struct.pack('>IIII', 0, 0, 0, 1) + 5 * '\x00' + message = struct.pack('>IIII', 0, 0, 0, 1) print "\tMessage: %r" % message encrypted = pkcs1.encrypt(message, self.pub) @@ -24,6 +24,16 @@ class BinaryTest(unittest.TestCase): self.assertEqual(message, decrypted) + def test_decoding_failure(self): + + message = struct.pack('>IIII', 0, 0, 0, 1) + encrypted = pkcs1.encrypt(message, self.pub) + + # Alter the encrypted stream + encrypted = encrypted[:5] + chr(ord(encrypted[5]) + 1) + encrypted[6:] + + self.assertRaises(ValueError, pkcs1.decrypt, encrypted, self.priv) + # def test_sign_verify(self): # # message = struct.pack('>IIII', 0, 0, 0, 1) + 20 * '\x00' -- cgit v1.2.1