38 lines
1.1 KiB
Python
38 lines
1.1 KiB
Python
import unittest
|
|
|
|
import binascii
|
|
from Cryptodome.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 Cryptodome.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')
|