View Javadoc
1   package civitas.crypto.signedciphertext.tests;
2   
3   import java.util.Base64;
4   
5   import civitas.common.CommonUtil;
6   import civitas.crypto.ciphertext.tests.ElGamalCiphertextTestData;
7   import civitas.crypto.signedciphertext.ElGamalSignedCiphertext;
8   import civitas.util.CivitasBigInteger;
9   import civitas.util.CivitasBigIntegerFactory;
10  
11  public interface ElGamalSignedCiphertextTestData extends ElGamalCiphertextTestData {
12  
13  	String EL_GAMAL_SIGNED_CIPHERTEXT_C_BASE64 = "dHKDA9V8OEUx/Z2A7TLdgbG7OdIZTbg860iANjgFJMI=";
14  	CivitasBigInteger EL_GAMAL_SIGNED_CIPHERTEXT_HASH1 = BIGINT_G.modPow(RANDOMS_0, BIGINT_P);
15  	CivitasBigInteger EL_GAMAL_SIGNED_CIPHERTEXT_A = BIGINT_G.modPow(FACTOR_E, BIGINT_P);
16  	CivitasBigInteger EL_GAMAL_SIGNED_CIPHERTEXT_B =
17  			MESSAGE_VOTE_CAPABILITY_SHARE_ENCODED.modMultiply(PUBKEY_E.modPow(FACTOR_E, BIGINT_P), BIGINT_P);
18  	CivitasBigInteger EL_GAMAL_SIGNED_CIPHERTEXT_C =
19  			CivitasBigIntegerFactory.obtain(Base64.getDecoder().decode(EL_GAMAL_SIGNED_CIPHERTEXT_C_BASE64));
20  	CivitasBigInteger EL_GAMAL_SIGNED_CIPHERTEXT_D =
21  			RANDOMS_0.modAdd(EL_GAMAL_SIGNED_CIPHERTEXT_C.modMultiply(FACTOR_E, BIGINT_Q), BIGINT_Q);
22  
23  	ElGamalSignedCiphertext EL_GAMAL_SIGNED_CIPHERTEXT = new ElGamalSignedCiphertext(
24  			EL_GAMAL_SIGNED_CIPHERTEXT_A, EL_GAMAL_SIGNED_CIPHERTEXT_B,
25  			EL_GAMAL_SIGNED_CIPHERTEXT_C, EL_GAMAL_SIGNED_CIPHERTEXT_D);
26  	CivitasBigInteger HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV =
27  			CommonUtil.asBigint("dHKDA9V8OEUx/Z2A7TLdgbG7OdIZTbg860iANjgFJMI=");
28  	CivitasBigInteger HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR =
29  			CommonUtil.asBigint("AKw6iOIfDUU0OHK6D2nQ/e40bKkVIrYwO+kUZJuwSWYt");
30  
31  	CivitasBigInteger RANDOMS_0_PLUS_HASH_MUL_FACTOR = RANDOMS_0.modAdd(
32  			HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV.modMultiply(
33  					FACTOR_E, BIGINT_Q),
34  			BIGINT_Q);
35  
36  	CivitasBigInteger RANDOMS_0_PLUS_HASH_MUL_FACTOR_NOENV = RANDOMS_0.modAdd(
37  			HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR.modMultiply(FACTOR_E, BIGINT_Q),
38  			BIGINT_Q);
39  
40  	CivitasBigInteger G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV = BIGINT_G.modPow(
41  					RANDOMS_0_PLUS_HASH_MUL_FACTOR.mod(BIGINT_Q), BIGINT_P)
42  			.modMultiply(
43  					CIPHERTEXT_E_A.modPow(
44  							HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV.modNegate(
45  									BIGINT_Q),
46  							BIGINT_P),
47  					BIGINT_P);
48  
49  	CivitasBigInteger G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV_BAD = BIGINT_G.modPow(
50  					RANDOMS_0_PLUS_HASH_MUL_FACTOR.mod(BIGINT_Q), BIGINT_P)
51  			.modMultiply(CIPHERTEXT_E_A.modPow(BIGINT_C.modNegate(BIGINT_Q), BIGINT_P), BIGINT_P);
52  	CivitasBigInteger G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_BAD = BIGINT_G.modPow(
53  					RANDOMS_0_PLUS_HASH_MUL_FACTOR_NOENV.mod(BIGINT_Q), BIGINT_P)
54  			.modMultiply(CIPHERTEXT_E_A.modPow(BIGINT_C.modNegate(BIGINT_Q), BIGINT_P), BIGINT_P);
55  
56  	CivitasBigInteger G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR = BIGINT_G.modPow(
57  					RANDOMS_0_PLUS_HASH_MUL_FACTOR.mod(BIGINT_Q), BIGINT_P)
58  			.modMultiply(
59  					CIPHERTEXT_E_A.modPow(
60  							HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR.modNegate(BIGINT_Q),
61  							BIGINT_P),
62  					BIGINT_P);
63  
64  	ElGamalSignedCiphertext SIGNED_CIPHERTEXT_OF_MESSAGE_WITH_FACTOR_RANDOM0_ADDITIONALENV =
65  			new ElGamalSignedCiphertext(
66  					CIPHERTEXT_E_A,
67  					CIPHERTEXT_E_B,
68  					HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR_ADDITIONALENV,
69  					RANDOMS_0_PLUS_HASH_MUL_FACTOR);
70  
71  	ElGamalSignedCiphertext SIGNED_CIPHERTEXT_OF_MESSAGE_WITH_FACTOR_RANDOM0_ADDITIONALENV_BAD =
72  			new ElGamalSignedCiphertext(CIPHERTEXT_E_A, CIPHERTEXT_E_B, BIGINT_C, RANDOMS_0_PLUS_HASH_MUL_FACTOR);
73  
74  	ElGamalSignedCiphertext SIGNED_CIPHERTEXT_OF_MESSAGE_WITH_FACTOR_RANDOM0 = new ElGamalSignedCiphertext(
75  			CIPHERTEXT_E_A,
76  			CIPHERTEXT_E_B,
77  			HASH_OF_G_POW_RANDOMS0_G_EXP_FACTOR_MESSAGE_MUL_PUBKEY_POW_FACTOR,
78  			RANDOMS_0_PLUS_HASH_MUL_FACTOR_NOENV);
79  
80  	ElGamalSignedCiphertext SIGNED_CIPHERTEXT_OF_MESSAGE_WITH_FACTOR_RANDOM0_BAD =
81  			new ElGamalSignedCiphertext(CIPHERTEXT_E_A, CIPHERTEXT_E_B, BIGINT_C, RANDOMS_0_PLUS_HASH_MUL_FACTOR_NOENV);
82  }