Search in sources :

Example 6 with AsymmetricCipherKeyPair

use of org.gudy.bouncycastle.crypto.AsymmetricCipherKeyPair 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)6 AsymmetricCipherKeyPair (org.gudy.bouncycastle.crypto.AsymmetricCipherKeyPair)6 DHParameters (org.gudy.bouncycastle.crypto.params.DHParameters)2 DHPrivateKeyParameters (org.gudy.bouncycastle.crypto.params.DHPrivateKeyParameters)2 DHPublicKeyParameters (org.gudy.bouncycastle.crypto.params.DHPublicKeyParameters)2 SecureRandom (java.security.SecureRandom)1 DSAParameters (org.gudy.bouncycastle.crypto.params.DSAParameters)1 DSAPrivateKeyParameters (org.gudy.bouncycastle.crypto.params.DSAPrivateKeyParameters)1 DSAPublicKeyParameters (org.gudy.bouncycastle.crypto.params.DSAPublicKeyParameters)1 ECPrivateKeyParameters (org.gudy.bouncycastle.crypto.params.ECPrivateKeyParameters)1 ECPublicKeyParameters (org.gudy.bouncycastle.crypto.params.ECPublicKeyParameters)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 RSAKeyParameters (org.gudy.bouncycastle.crypto.params.RSAKeyParameters)1 RSAPrivateCrtKeyParameters (org.gudy.bouncycastle.crypto.params.RSAPrivateCrtKeyParameters)1 ECPoint (org.gudy.bouncycastle.math.ec.ECPoint)1