import unittest import binascii from Crypto.Util.RFC1751 import key_to_english, english_to_key class RFC1751_Tests(unittest.TestCase): def test1(self): data = [ ('EB33F77EE73D4053', 'TIDE ITCH SLOW REIN RULE MOT'), ('CCAC2AED591056BE4F90FD441C534766', 'RASH BUSH MILK LOOK BAD BRIM AVID GAFF BAIT ROT POD LOVE'), ('EFF81F9BFBC65350920CDD7416DE8009', 'TROD MUTE TAIL WARM CHAR KONG HAAG CITY BORE O TEAL AWL') ] for key_hex, words in data: key_bin = binascii.a2b_hex(key_hex) w2 = key_to_english(key_bin) self.assertEqual(w2, words) k2 = english_to_key(words) self.assertEqual(k2, key_bin) def test_error_key_to_english(self): self.assertRaises(ValueError, key_to_english, b'0' * 7) def get_tests(config={}): from Crypto.SelfTest.st_common import list_test_cases tests = list_test_cases(RFC1751_Tests) return tests if __name__ == '__main__': suite = lambda: unittest.TestSuite(get_tests()) unittest.main(defaultTest='suite')