diff --git a/src/shamira.py b/src/shamira.py --- a/src/shamira.py +++ b/src/shamira.py @@ -15,4 +15,11 @@ def generate(secret,k,n): return [(i+1, [s[i] for s in shares]) for i in range(n)] -print(generate(b"key",2,3)) +def reconstruct(*shares): + k=len(shares) + secretLen=len(shares[0][1]) + res=[None]*secretLen + for i in range(secretLen): + bs=[(x,s[i]) for (x,s) in shares] + res[i]=(gf256.getConstantCoef(k,*bs)) + return bytes(res)