package JointFeldmanProtocol; import org.factcenter.qilin.primitives.concrete.Zpstar; import org.junit.Before; import org.junit.Test; import java.math.BigInteger; import java.util.Random; /** * Created by Tzlil on 2/9/2016. */ public class DKGTest { DKG[] dkgs; Thread[] threads; int tests = 1 << 10; Random random; @Before public void settings(){ BigInteger p = BigInteger.valueOf(2903); BigInteger q = p.subtract(BigInteger.ONE).divide(BigInteger.valueOf(2)); Zpstar zpstar = new Zpstar(p); random = new Random(); BigInteger g; BigInteger ZERO = zpstar.zero(); do{ g = zpstar.sample(random); }while (!g.equals(ZERO) && !zpstar.multiply(g,q).equals(ZERO));// sample from QRZp* int t = 8; int n = 20 ; Network network = new Network(n); dkgs = new DKG[n]; threads = new Thread[n]; for (int i = 0 ; i < n ; i++) { dkgs[i] = new DKG(t, n, new BigInteger(q.bitLength(), random).mod(q), random, p, q, g, network); threads[i] = new Thread(dkgs[i]); } } @Test public void DKGTest() throws Exception { for (int i = 0 ; i < threads.length ; i++){ threads[i].start(); } for (int i = 0 ; i < threads.length ; i++){ threads[i].join(); } for (int i = 0; i < dkgs.length - 1 ; i++){ assert (dkgs[i].getY().equals(dkgs[i+1].getY())); } } }