List of usage examples for org.bouncycastle.crypto.params DSAParameterGenerationParameters DSAParameterGenerationParameters
public DSAParameterGenerationParameters(int L, int N, int certainty, SecureRandom random)
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);/*from www .ja va2 s . co m*/ 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 ww w . jav a2 s . co 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 o m*/ 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); }