58 lines
1.5 KiB
Java
58 lines
1.5 KiB
Java
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()));
|
|
}
|
|
}
|
|
}
|