View Javadoc
1   package civitas.crypto.votecapabilityshare;
2   
3   import org.springframework.beans.factory.annotation.Autowired;
4   import org.springframework.stereotype.Controller;
5   
6   import civitas.crypto.CryptoBase;
7   import civitas.crypto.CryptoException;
8   import civitas.crypto.msg.EncodeMessage;
9   import civitas.crypto.parameters.ElGamalParameters;
10  import civitas.util.CivitasBigInteger;
11  
12  @Controller
13  public class GenerateVoteCapabilityShare {
14  
15  	@Autowired
16  	CryptoBase cryptoBase;
17  
18  	@Autowired
19  	EncodeMessage encodeMessage;
20  
21  	public VoteCapabilityShare apply(final ElGamalParameters p) throws CryptoException {
22  		ElGamalParameters ps = p;
23  		CivitasBigInteger x = cryptoBase.generateRandomElement(ps.q);
24  		return new VoteCapabilityShare(encodeMessage.apply(x, ps));
25  	}
26  }