View Javadoc
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  }