Example usage for org.bouncycastle.crypto.engines ElGamalEngine ElGamalEngine

List of usage examples for org.bouncycastle.crypto.engines ElGamalEngine ElGamalEngine

Introduction

In this page you can find the example usage for org.bouncycastle.crypto.engines ElGamalEngine ElGamalEngine.

Prototype

ElGamalEngine

Source Link

Usage

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);
}