@Test
public void testProofPerformance() {

	
	final EcCurve curve = CommonConfiguration.CURVE;
	final BigInteger a0 = RandomNumberGenerator.generateRandomInteger(curve.getR());
	final BigInteger b0 = RandomNumberGenerator.generateRandomInteger(curve.getR());
	
	
	// Warm up
	ZeroKnowledgeProof zkp = null;
	for (int i = 0; i < 20; i++)
	{
		zkp = ZeroKnowledgeProver.createProof(a0, b0);
	}
	
	int length = (zkp.getA0().getX().toByteArray().length + 1) + (zkp.getB0().getX().toByteArray().length + 1) + zkp.getC().toByteArray().length + zkp.getSa().toByteArray().length + zkp.getSb().toByteArray().length;
	System.out.println("size: " + length);
	
	// Do test
	long timeNs = 0;
	final int iterations = 1000;
	for (int i = 0; i < iterations; i++)
	{
		final BigInteger a = RandomNumberGenerator.generateRandomInteger(curve.getR());
		final BigInteger b = RandomNumberGenerator.generateRandomInteger(curve.getR());
		final long start = System.nanoTime();
		ZeroKnowledgeProver.createProof(a, b);
		final long end = System.nanoTime();
		timeNs += (end - start);
	}
	
	System.out.println("Total time (ms): " + timeNs / (((long)iterations) * 1_000_000.0));
}