X-Git-Url: http://www.git.cypherpunks.ru/?p=pygost.git;a=blobdiff_plain;f=pygost%2Ftest_gost3413.py;h=159f7fe9c02dc0e8d8ecaa4c5491bdba7e535684;hp=2be55956d2f10939e709480867cc1d8396f269a7;hb=a9f7e3dfc59a987c3d6cce4108f18d9f6b72867b;hpb=9e1dd476aac48ba781c7c7d99f1ec42c8a0c6034 diff --git a/pygost/test_gost3413.py b/pygost/test_gost3413.py index 2be5595..159f7fe 100644 --- a/pygost/test_gost3413.py +++ b/pygost/test_gost3413.py @@ -36,7 +36,9 @@ from pygost.gost3413 import mac from pygost.gost3413 import mac_acpkm_master from pygost.gost3413 import ofb from pygost.gost3413 import pad2 +from pygost.gost3413 import pad_iso10126 from pygost.gost3413 import unpad2 +from pygost.gost3413 import unpad_iso10126 from pygost.utils import hexdec from pygost.utils import hexenc from pygost.utils import strxor @@ -747,3 +749,18 @@ A8 1C 79 A0 4F 29 66 0E A3 FD A8 74 C6 30 79 9E ), hexdec("FBB8DCEE45BEA67C35F58C5700898E5D"), ) + + +class ISO10126Test(TestCase): + def test_symmetric(self): + for _ in range(100): + for blocksize in (GOST3412Magma.blocksize, GOST3412Kuznechik.blocksize): + data = urandom(randint(0, blocksize * 3)) + padded = pad_iso10126(data, blocksize) + self.assertSequenceEqual(unpad_iso10126(padded, blocksize), data) + with self.assertRaises(ValueError): + unpad_iso10126(padded[1:], blocksize) + + def test_small(self): + with self.assertRaises(ValueError): + unpad_iso10126(b"foobar\x00\x09", 8)