43 if (signatureAlgorithm == null) {
44 throw new InvalidParameterException(
"The signature algorithm cannot be null");
47 KeyPairGenerator keyGen = KeyPairGenerator.getInstance(
"RSA",
"BC");
48 keyGen.initialize(2048,
new SecureRandom());
50 KeyPair keyPair = keyGen.generateKeyPair();
52 BCRSAPrivateCrtKey jcersaPrivateCrtKey = (BCRSAPrivateCrtKey) keyPair.getPrivate();
53 BCRSAPublicKey jcersaPublicKey = (BCRSAPublicKey) keyPair.getPublic();
55 rsaPrivateKey =
new RSAPrivateKey(jcersaPrivateCrtKey.getModulus(),
56 jcersaPrivateCrtKey.getPrivateExponent());
58 rsaPublicKey =
new RSAPublicKey(jcersaPublicKey.getModulus(),
59 jcersaPublicKey.getPublicExponent());
61 if (StringUtils.isNotBlank(dnName)) {
63 GregorianCalendar startDate =
new GregorianCalendar();
64 GregorianCalendar expiryDate =
new GregorianCalendar();
65 expiryDate.add(Calendar.YEAR, 1);
66 BigInteger serialNumber =
new BigInteger(1024,
new Random());
68 X509V1CertificateGenerator certGen =
new X509V1CertificateGenerator();
69 X500Principal principal =
new X500Principal(dnName);
71 certGen.setSerialNumber(serialNumber);
72 certGen.setIssuerDN(principal);
73 certGen.setNotBefore(startDate.getTime());
74 certGen.setNotAfter(expiryDate.getTime());
75 certGen.setSubjectDN(principal);
76 certGen.setPublicKey(keyPair.getPublic());
77 certGen.setSignatureAlgorithm(signatureAlgorithm.getAlgorithm());
79 X509Certificate x509Certificate = certGen.generate(jcersaPrivateCrtKey,
"BC");
80 certificate =
new Certificate(signatureAlgorithm, x509Certificate);
RSAPublicKey rsaPublicKey
Definition: RSAKeyFactory.java:36
Certificate certificate
Definition: RSAKeyFactory.java:37
RSAPrivateKey rsaPrivateKey
Definition: RSAKeyFactory.java:35