View Javadoc
1   package civitas.crypto.proofvote;
2   
3   import static org.mockito.Mockito.mock;
4   
5   import java.util.List;
6   import java.util.Map;
7   
8   import civitas.common.ConstructTestData;
9   import civitas.crypto.oneoflreencryption.ElGamal1OfLReencryption;
10  import civitas.crypto.proof1ofl.ElGamalProof1OfLTestData;
11  import civitas.util.CivitasBigInteger;
12  import civitas.util.CivitasBigIntegerFactory;
13  
14  public interface ProofVoteTestData extends ElGamalProof1OfLTestData {
15  
16  	ElGamal1OfLReencryption ENCRYPTED_CHOICE =
17  			new ElGamal1OfLReencryption(REENCRYPTED_WELL_KNOWN_CHOICE, EL_GAMAL_PROOF_1_OF_L);
18  
19  	List<CivitasBigInteger> PROOF_VOTE_ENVIRONMENT = List.of(
20  			EL_GAMAL_PARAMETERS.g,
21  			CIPHERTEXT_ENCCAP.a,
22  			CIPHERTEXT_ENCCAP.b,
23  			REENCRYPTED_WELL_KNOWN_CHOICE.a,
24  			REENCRYPTED_WELL_KNOWN_CHOICE.b,
25  			BIGINTEGER_HASH_OF_ADDITIONALENV,
26  			BIGINT_G.modPow(RANDOMS_0, BIGINT_P),
27  			BIGINT_G.modPow(RANDOMS_1, BIGINT_P));
28  
29  	byte[] HASH_OF_PROOF_ENVIRONMENT = "hash of proof environment".getBytes();
30  
31  	CivitasBigInteger PROOF_VOTE_C =
32  			CivitasBigIntegerFactory.obtain(1, HASH_OF_PROOF_ENVIRONMENT).mod(BIGINT_Q);
33  	CivitasBigInteger PROOF_VOTE_S1 =
34  			RANDOMS_0.modSubtract(PROOF_VOTE_C.modMultiply(ELGAMAL_REENCRYPT_FACTOR_EPRIME.r(), BIGINT_Q), BIGINT_Q);
35  	CivitasBigInteger PROOF_VOTE_S2 =
36  			RANDOMS_1.modSubtract(PROOF_VOTE_C.modMultiply(ELGAMAL_REENCRYPT_FACTOR_E.r(), BIGINT_Q), BIGINT_Q);
37  	ProofVote PROOF_VOTE = new ProofVote(PROOF_VOTE_C, PROOF_VOTE_S1, PROOF_VOTE_S2);
38  
39  	ProofVote PROOF_VOTE_BAD = new ProofVote(BIGINT_B, PROOF_VOTE_S1, PROOF_VOTE_S2);
40  
41  	Map<Integer, ProofVote> PROOF_VOTE_MAP = ConstructTestData.constructTestData(
42  			VOTE_PIECES, piece -> mock(ProofVote.class, "PROOF_VOTE_" + VOTE_PIECES.indexOf(piece)));
43  }