diff --git a/src/shamira/tests/test_gf256.py b/src/shamira/tests/test_gf256.py --- a/src/shamira/tests/test_gf256.py +++ b/src/shamira/tests/test_gf256.py @@ -22,6 +22,26 @@ class TestGF256(TestCase): for b in range(256): self.assertEqual(_gfmul(a, b), gfmul(a, b)) + def test_gfpow(self): + self.assertEqual(gfpow(0, 0), 1) + + for i in range(1, 256): + self.assertEqual(gfpow(i, 0), 1) + self.assertEqual(gfpow(i, 1), i) + self.assertEqual(gfpow(0, i), 0) + self.assertEqual(gfpow(1, i), 1) + self.assertEqual(gfpow(i, 256), i) + self.assertEqual(gfpow(i, 2), gfmul(i, i)) + + random.seed(1918) + for i in range(256): + j = random.randint(2, 255) + k = random.randint(3, 255) + y = 1 + for m in range(k): + y = gfmul(y, j) + self.assertEqual(gfpow(j, k), y) + def test_evaluate(self): for x in range(256): (a0, a1, a2, a3) = (x, x>>1, x>>2, x>>3)