List of usage examples for org.bouncycastle.crypto.generators DSAParametersGenerator init
public void init(DSAParameterGenerationParameters params)
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 ww w .j a va 2 s . com 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); 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); 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);/*from w ww .j a v a 2s.com*/ 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./*from w ww. j a v a 2s . co 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(); }