Example usage for org.bouncycastle.crypto.generators DSAParametersGenerator generateParameters

List of usage examples for org.bouncycastle.crypto.generators DSAParametersGenerator generateParameters

Introduction

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

Prototype

public DSAParameters generateParameters() 

Source Link

Document

which generates the p and g values from the given parameters, returning the DSAParameters object.

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 .  j a v a 2s  .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:dorkbox.util.crypto.CryptoDSA.java

License:Apache License

/**
 * Generates the DSA key (using RSA and SHA1)
 * <p/>/*  ww  w. ja  v a2 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.xipki.commons.security.util.DSAParameterCache.java

License:Open Source License

public static DSAParameterSpec getNewDSAParameterSpec(final int plength, final int qlength,
        final SecureRandom random) {
    final int certainty = 80;
    SecureRandom tmpRandom = (random == null) ? new SecureRandom() : random;
    DSAParametersGenerator paramGen = new DSAParametersGenerator(new SHA512Digest());
    DSAParameterGenerationParameters genParams = new DSAParameterGenerationParameters(plength, qlength,
            certainty, tmpRandom);//w w w . j a va  2 s  . c om
    paramGen.init(genParams);
    DSAParameters dsaParams = paramGen.generateParameters();
    return new DSAParameterSpec(dsaParams.getP(), dsaParams.getQ(), dsaParams.getG());
}

From source file:org.xipki.security.KeyUtil.java

License:Open Source License

public static KeyPair generateDSAKeypair(final int pLength, final int qLength, final int certainty)
        throws Exception {
    DSAParametersGenerator paramGen = new DSAParametersGenerator(new SHA512Digest());
    DSAParameterGenerationParameters genParams = new DSAParameterGenerationParameters(pLength, qLength,
            certainty, new SecureRandom());
    paramGen.init(genParams);//from w w  w  .  j av a2  s. c  o m
    DSAParameters dsaParams = paramGen.generateParameters();

    KeyPairGenerator kpGen = KeyPairGenerator.getInstance("DSA", "BC");
    DSAParameterSpec dsaParamSpec = new DSAParameterSpec(dsaParams.getP(), dsaParams.getQ(), dsaParams.getG());
    kpGen.initialize(dsaParamSpec, new SecureRandom());
    return kpGen.generateKeyPair();
}

From source file:org.xipki.security.p11.iaik.IaikP11Slot.java

License:Open Source License

private PrivateKeyAndPKInfo generateDSAKeyPair(final Session session, final int pLength, final int qLength,
        final byte[] id, final String label) throws Exception {
    DSAParametersGenerator paramGen = new DSAParametersGenerator(new SHA512Digest());
    DSAParameterGenerationParameters genParams = new DSAParameterGenerationParameters(pLength, qLength, 80,
            new SecureRandom());
    paramGen.init(genParams);/*from   w w w  . ja  v  a2 s .  c om*/
    DSAParameters dsaParams = paramGen.generateParameters();

    DSAPrivateKey privateKey = new DSAPrivateKey();
    DSAPublicKey publicKey = new DSAPublicKey();

    setKeyAttributes(id, label, PKCS11Constants.CKK_DSA, privateKey, publicKey);

    publicKey.getPrime().setByteArrayValue(dsaParams.getP().toByteArray());
    publicKey.getSubprime().setByteArrayValue(dsaParams.getQ().toByteArray());
    publicKey.getBase().setByteArrayValue(dsaParams.getG().toByteArray());

    KeyPair kp = session.generateKeyPair(Mechanism.get(PKCS11Constants.CKM_DSA_KEY_PAIR_GEN), publicKey,
            privateKey);

    publicKey = (DSAPublicKey) kp.getPublicKey();
    BigInteger value = new BigInteger(1, publicKey.getValue().getByteArrayValue());

    ASN1EncodableVector v = new ASN1EncodableVector();
    v.add(new ASN1Integer(dsaParams.getP()));
    v.add(new ASN1Integer(dsaParams.getQ()));
    v.add(new ASN1Integer(dsaParams.getG()));
    ASN1Sequence dssParams = new DERSequence(v);

    SubjectPublicKeyInfo pkInfo = new SubjectPublicKeyInfo(
            new AlgorithmIdentifier(X9ObjectIdentifiers.id_dsa, dssParams), new ASN1Integer(value));

    return new PrivateKeyAndPKInfo((DSAPrivateKey) kp.getPrivateKey(), pkInfo);
}

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

License:Open Source License

/**
 * Generate DSA parameters./*w  ww  .j a  v  a 2 s. c  o  m*/
 *
 * Shared with the key generator to optimize key generation.
 *
 * @param params the parameters generation parameters.
 * @return shared DSA parameters for key generation.
 */
org.bouncycastle.crypto.params.DSAParameters getDsaParameters(SecureRandom random,
        DSAKeyParametersGenerationParameters params) {
    DSAParametersGenerator paramGen = getGenerator(params.getHashHint());

    if (params.use186r3()) {
        DSAParameterGenerationParameters p = new DSAParameterGenerationParameters(params.getPrimePsize() * 8,
                params.getPrimeQsize() * 8, params.getCertainty(), random, getUsageIndex(params.getUsage()));
        paramGen.init(p);
    } else {
        paramGen.init(params.getStrength() * 8, params.getCertainty(), random);
    }

    return paramGen.generateParameters();
}