View Javadoc
1   package civitas.crypto.msg;
2   
3   import java.nio.charset.Charset;
4   import java.nio.charset.StandardCharsets;
5   
6   import org.springframework.beans.factory.annotation.Autowired;
7   import org.springframework.stereotype.Controller;
8   
9   import civitas.crypto.CryptoException;
10  import civitas.crypto.parameters.ElGamalParameters;
11  import civitas.crypto.parameters.encoder.SchnorrPrimeEncode;
12  import civitas.util.CivitasBigInteger;
13  import civitas.util.CivitasBigIntegerFactory;
14  
15  @Controller
16  public class EncodeMessage {
17  	protected static final Charset CHARSET = StandardCharsets.UTF_8;
18  
19  	@Autowired
20  	SchnorrPrimeEncode schnorrPrimeEncoder;
21  
22  	public CivitasBigInteger apply(final CivitasBigInteger plaintext, final ElGamalParameters params)
23  			throws CryptoException {
24  		return schnorrPrimeEncoder.apply(plaintext, params);
25  	}
26  
27  	public CivitasBigInteger apply(final int i, final ElGamalParameters params) throws CryptoException {
28  		return apply(CivitasBigIntegerFactory.obtain(i), params);
29  	}
30  
31  	public CivitasBigInteger apply(final String s, final ElGamalParameters params) throws CryptoException {
32  		try {
33  			return apply(CivitasBigIntegerFactory.obtain(s.getBytes(CHARSET)), params);
34  		} catch (Exception e) {
35  			throw new CryptoException("I thought it is impossible");
36  		}
37  	}
38  }