List of usage examples for org.bouncycastle.crypto.engines ElGamalEngine ElGamalEngine
ElGamalEngine
From source file:util.secure.ElGamal.java
License:Open Source License
@Override public byte[] encryptWithPublicKey(byte[] data) { ElGamalParameters params = new ElGamalParameters(keys.getP(), keys.getG()); ElGamalPublicKeyParameters pubKey = new ElGamalPublicKeyParameters(keys.getPublicKey(), params); ElGamalEngine e = new ElGamalEngine(); e.init(true, pubKey);/*w ww . ja v a 2s . com*/ return e.processBlock(data, 0, data.length); }
From source file:util.secure.ElGamal.java
License:Open Source License
public ElGamalEncrypt encryptForContract(byte[] data) { ElGamalParameters params = new ElGamalParameters(keys.getP(), keys.getG()); ElGamalPublicKeyParameters pubKey = new ElGamalPublicKeyParameters(keys.getPublicKey(), params); ElGamalEngine e = new ElGamalEngine(); e.init(true, pubKey);/*from w w w . j a v a2 s . c o m*/ byte[] m = e.processBlock(data, 0, data.length); BigInteger k = e.getK(); BigInteger u = keys.getG().modPow(k, keys.getP()); BigInteger v = (keys.getPublicKey().modPow(e.getK(), keys.getP()).multiply(new BigInteger(data))); return new ElGamalEncrypt(u, v, k, m); }
From source file:util.secure.ElGamal.java
License:Open Source License
@Override public byte[] decryptWithPrivateKey(byte[] data) { ElGamalParameters params = new ElGamalParameters(keys.getP(), keys.getG()); ElGamalPrivateKeyParameters privKey = new ElGamalPrivateKeyParameters(keys.getPrivateKey(), params); ElGamalEngine e = new ElGamalEngine(); e.init(false, privKey);// w w w .j av a 2 s . c o m return e.processBlock(data, 0, data.length); }