public void FinitePointToString() { var split = new ShamirsSecretSharing <BigInteger>(new ExtendedEuclideanAlgorithm <BigInteger>()); FinitePoint <BigInteger> fp = split.MakeShares(3, 7, 500).First(); string s1 = fp.ToString(); string s2 = new FinitePoint <BigInteger>(s1).ToString(); Assert.Equal(s1, s2); }
public static string combineSharedSecrets(List <string> secrets) { List <FinitePoint <BigInteger> > points = new List <FinitePoint <BigInteger> >(); foreach (var secret in secrets) { points.Add(FinitePoint <BigInteger> .Parse(secret)); } var combine = new ShamirsSecretSharing <BigInteger>(gcd); return(combine.Reconstruction(points.ToArray()).ToString()); }