|
|
@@ -56,7 +56,8 @@ def _makered(x, y): |
|
|
|
return x |
|
|
|
|
|
|
|
def evalpoly(polynomial, powers): |
|
|
|
return sum(( x * y for x, y in zip(polynomial, powers)), 0) |
|
|
|
return sum(( x * y for x, y in zip(polynomial, powers, |
|
|
|
strict=True)), 0) |
|
|
|
|
|
|
|
def create_shares(data, k, nshares): |
|
|
|
'''Given data, create nshares, such that given any k shares, |
|
|
@@ -197,7 +198,7 @@ class TestShamirSS(unittest.TestCase): |
|
|
|
def test_evalpoly(self): |
|
|
|
a = GF2p8(random.randint(0, 255)) |
|
|
|
|
|
|
|
powers = a.powerseries(5) |
|
|
|
powers = a.powerseries(4) |
|
|
|
|
|
|
|
self.assertTrue(all(isinstance(x, GF2p8) for x in powers)) |
|
|
|
|
|
|
@@ -207,10 +208,12 @@ class TestShamirSS(unittest.TestCase): |
|
|
|
self.assertEqual(r, vals[0] + vals[1] * powers[1] + vals[2] * |
|
|
|
powers[2] + vals[3] * powers[3] + vals[4] * powers[4]) |
|
|
|
|
|
|
|
r = evalpoly(vals[:3], powers) |
|
|
|
r = evalpoly(vals[:3], powers[:3]) |
|
|
|
self.assertEqual(r, vals[0] + vals[1] * powers[1] + vals[2] * |
|
|
|
powers[2]) |
|
|
|
|
|
|
|
self.assertRaises(ValueError, evalpoly, [1], [1, 2]) |
|
|
|
|
|
|
|
def test_create_shares(self): |
|
|
|
self.assertRaises(TypeError, create_shares, '', 1, 1) |
|
|
|
|
|
|
|