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

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

Introduction

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

Prototype

DSAKeyPairGenerator

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 w w w  .  ja  va 2 s .c  om

    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:com.licel.jcardsim.crypto.KeyPairImpl.java

License:Apache License

/**
 * Init key pair generation engine//from   w w  w . j a  v  a  2  s.c om
 */
private void initEngine() {
    // only public key params, see specification
    if (publicKey != null) {
        keyGenerationParameters = ((KeyImpl) publicKey).getKeyGenerationParameters(rnd);
    }
    switch (algorithm) {
    case KeyPair.ALG_RSA:
    case KeyPair.ALG_RSA_CRT:
        if (keyGenerationParameters == null) {
            keyGenerationParameters = RSAKeyImpl.getDefaultKeyGenerationParameters(keyLength, rnd);
        }
        engine = new RSAKeyPairGenerator();
        break;
    //
    case KeyPair.ALG_DSA:
        if (keyLength < 512 || keyLength > 1024 || keyLength % 64 != 0) {
            CryptoException.throwIt(CryptoException.ILLEGAL_VALUE);
        }
        if (keyGenerationParameters == null) {
            keyGenerationParameters = DSAKeyImpl.getDefaultKeyGenerationParameters(keyLength, rnd);
        }
        engine = new DSAKeyPairGenerator();
        break;

    // ecc
    case KeyPair.ALG_EC_F2M:
    case KeyPair.ALG_EC_FP:
        if (keyGenerationParameters == null) {
            keyGenerationParameters = ECKeyImpl.getDefaultKeyGenerationParameters(algorithm, keyLength, rnd);
        }
        engine = new ECKeyPairGenerator();
        break;

    default:
        CryptoException.throwIt(CryptoException.NO_SUCH_ALGORITHM);
        break;
    }
    engine.init(keyGenerationParameters);

}

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

License:Apache License

/**
 * Generates the DSA key (using RSA and SHA1)
 * <p/>//w ww.  j  ava  2 s  .  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();
}

From source file:org.xwiki.crypto.internal.asymmetric.generator.BcDSAKeyPairGenerator.java

License:Open Source License

@Override
public AsymmetricKeyPair generate(KeyGenerationParameters parameters) {
    org.bouncycastle.crypto.params.DSAParameters keyGenParams;

    if (parameters instanceof DSAKeyParametersGenerationParameters) {
        keyGenParams = getDsaParameters((DSAKeyGenerationParameters) parametersGenerator
                .generate((DSAKeyParametersGenerationParameters) parameters));
    } else if (parameters instanceof DSAKeyGenerationParameters) {
        keyGenParams = getDsaParameters((DSAKeyGenerationParameters) parameters);
    } else {//  ww w  .  j  av  a 2  s.  co  m
        throw new IllegalArgumentException(
                "Invalid parameters for DSA key generator: " + parameters.getClass().getName());
    }

    AsymmetricCipherKeyPairGenerator generator = new DSAKeyPairGenerator();
    generator.init(new org.bouncycastle.crypto.params.DSAKeyGenerationParameters(random.get(), keyGenParams));

    return getKeyPair(generator.generateKeyPair());
}