Search in sources :

Example 1 with DSAPrivateKeyParameters

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

the class DSAKeyPairGenerator method generateKeyPair.

@Override
public AsymmetricCipherKeyPair generateKeyPair() {
    BigInteger p, q, g, x, y;
    DSAParameters dsaParams = param.getParameters();
    SecureRandom random = param.getRandom();
    q = dsaParams.getQ();
    p = dsaParams.getP();
    g = dsaParams.getG();
    do {
        x = new BigInteger(160, random);
    } while (x.equals(ZERO) || x.compareTo(q) >= 0);
    // 
    // calculate the public key.
    // 
    y = g.modPow(x, p);
    return new AsymmetricCipherKeyPair(new DSAPublicKeyParameters(y, dsaParams), new DSAPrivateKeyParameters(x, dsaParams));
}
Also used : DSAPublicKeyParameters(org.gudy.bouncycastle.crypto.params.DSAPublicKeyParameters) DSAPrivateKeyParameters(org.gudy.bouncycastle.crypto.params.DSAPrivateKeyParameters) BigInteger(java.math.BigInteger) SecureRandom(java.security.SecureRandom) DSAParameters(org.gudy.bouncycastle.crypto.params.DSAParameters) AsymmetricCipherKeyPair(org.gudy.bouncycastle.crypto.AsymmetricCipherKeyPair)

Aggregations

BigInteger (java.math.BigInteger)1 SecureRandom (java.security.SecureRandom)1 AsymmetricCipherKeyPair (org.gudy.bouncycastle.crypto.AsymmetricCipherKeyPair)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