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