Search in sources :

Example 1 with ElGamalPrivateKeyParameters

use of org.gudy.bouncycastle.crypto.params.ElGamalPrivateKeyParameters in project BiglyBT by BiglySoftware.

the class ElGamalKeyPairGenerator method generateKeyPair.

@Override
public AsymmetricCipherKeyPair generateKeyPair() {
    BigInteger p, g, x, y;
    int qLength = param.getStrength() - 1;
    ElGamalParameters elParams = param.getParameters();
    p = elParams.getP();
    g = elParams.getG();
    // 
    // calculate the private key
    // 
    x = new BigInteger(qLength, param.getRandom());
    // 
    // calculate the public key.
    // 
    y = g.modPow(x, p);
    return new AsymmetricCipherKeyPair(new ElGamalPublicKeyParameters(y, elParams), new ElGamalPrivateKeyParameters(x, elParams));
}
Also used : ElGamalParameters(org.gudy.bouncycastle.crypto.params.ElGamalParameters) ElGamalPrivateKeyParameters(org.gudy.bouncycastle.crypto.params.ElGamalPrivateKeyParameters) BigInteger(java.math.BigInteger) ElGamalPublicKeyParameters(org.gudy.bouncycastle.crypto.params.ElGamalPublicKeyParameters) AsymmetricCipherKeyPair(org.gudy.bouncycastle.crypto.AsymmetricCipherKeyPair)

Aggregations

BigInteger (java.math.BigInteger)1 AsymmetricCipherKeyPair (org.gudy.bouncycastle.crypto.AsymmetricCipherKeyPair)1 ElGamalParameters (org.gudy.bouncycastle.crypto.params.ElGamalParameters)1 ElGamalPrivateKeyParameters (org.gudy.bouncycastle.crypto.params.ElGamalPrivateKeyParameters)1 ElGamalPublicKeyParameters (org.gudy.bouncycastle.crypto.params.ElGamalPublicKeyParameters)1