List of usage examples for org.bouncycastle.crypto.generators DSAParametersGenerator generateParameters
public DSAParameters generateParameters()
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(); }