Example usage for org.bouncycastle.crypto.generators DSAKeyPairGenerator generateKeyPair

List of usage examples for org.bouncycastle.crypto.generators DSAKeyPairGenerator generateKeyPair

Introduction

In this page you can find the example usage for org.bouncycastle.crypto.generators DSAKeyPairGenerator generateKeyPair.

Prototype

public AsymmetricCipherKeyPair generateKeyPair() 

Source Link

Usage

From source file:com.geoxp.oss.CryptoHelperTest.java

License:Apache License

@Test
public void testSSHSignatureBlobSign_DSA() throws Exception {
    DSAKeyPairGenerator dsakpg = new DSAKeyPairGenerator();
    DSAParametersGenerator dpg = new DSAParametersGenerator();
    dpg.init(1024, 8, new SecureRandom());
    DSAParameters dsaparams = dpg.generateParameters();
    DSAKeyGenerationParameters params = new DSAKeyGenerationParameters(new SecureRandom(), dsaparams);
    dsakpg.init(params);/*from ww w . j a  va 2 s.  c o  m*/

    AsymmetricCipherKeyPair kp = dsakpg.generateKeyPair();

    DSAPrivateKeyParameters privParams = (DSAPrivateKeyParameters) kp.getPrivate();
    DSAPublicKeyParameters pubParams = (DSAPublicKeyParameters) kp.getPublic();

    KeySpec ks = new DSAPrivateKeySpec(privParams.getX(), privParams.getParameters().getP(),
            privParams.getParameters().getQ(), privParams.getParameters().getG());
    PrivateKey priv = KeyFactory.getInstance("DSA").generatePrivate(ks);

    ks = new DSAPublicKeySpec(pubParams.getY(), pubParams.getParameters().getP(),
            pubParams.getParameters().getQ(), pubParams.getParameters().getG());
    PublicKey pub = KeyFactory.getInstance("DSA").generatePublic(ks);

    byte[] data = PLAINTEXT.getBytes();
    byte[] sig = CryptoHelper.sshSignatureBlobSign(data, priv);

    Assert.assertTrue(CryptoHelper.sshSignatureBlobVerify(data, sig, pub));
}

From source file:dorkbox.util.crypto.CryptoDSA.java

License:Apache License

/**
 * Generates the DSA key (using RSA and SHA1)
 * <p/>//from  ww w .j a v  a  2s.  c  om
 * Note: this is here just for keeping track of how this is done. This should NOT be used, and instead use ECC crypto.
 */
public static AsymmetricCipherKeyPair generateKeyPair(SecureRandom secureRandom, int keyLength) {
    DSAKeyPairGenerator keyGen = new DSAKeyPairGenerator();

    DSAParametersGenerator dsaParametersGenerator = new DSAParametersGenerator();
    dsaParametersGenerator.init(keyLength, 20, secureRandom);
    DSAParameters generateParameters = dsaParametersGenerator.generateParameters();

    DSAKeyGenerationParameters params = new DSAKeyGenerationParameters(secureRandom, generateParameters);
    keyGen.init(params);
    return keyGen.generateKeyPair();
}