1 package civitas.crypto.proofvote;
2
3 import java.util.LinkedList;
4 import java.util.List;
5
6 import org.springframework.beans.factory.annotation.Autowired;
7 import org.springframework.stereotype.Controller;
8
9 import civitas.crypto.ciphertext.ElGamalCiphertextish;
10 import civitas.crypto.messagedigest.CryptoHash;
11 import civitas.crypto.parameters.ElGamalParameters;
12 import civitas.util.CivitasBigInteger;
13 import civitas.util.CivitasBigIntegerFactory;
14
15 @Controller
16 public class CalculateProofEnvironment {
17 @Autowired
18 CryptoHash cryptoHash;
19
20 public List<CivitasBigInteger> apply(
21 final ElGamalParameters params,
22 final ElGamalCiphertextish encCapability,
23 final ElGamalCiphertextish encChoice,
24 final String context) {
25 List<CivitasBigInteger> e = new LinkedList<>();
26 e.add(params.g);
27 e.add(encCapability.getA());
28 e.add(encCapability.getB());
29 e.add(encChoice.getA());
30 e.add(encChoice.getB());
31 e.add(CivitasBigIntegerFactory.obtain(1, cryptoHash.apply(context.getBytes())));
32 return e;
33 }
34 }