+
+
+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)