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

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

Introduction

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

Prototype

public void init(boolean forEncryption, CipherParameters param) 

Source Link

Document

initialise the ElGamal engine.

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);
    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);
    byte[] m = e.processBlock(data, 0, data.length);
    BigInteger k = e.getK();//from  www . ja va2 s. c om
    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);

    return e.processBlock(data, 0, data.length);
}