use of org.jruby.ext.openssl.impl.pem.PEMKeyPair in project jruby-openssl by jruby.
the class PEMUtils method generatePKCS12.
public static byte[] generatePKCS12(final Reader keyReader, final byte[] cert, final String aliasName, final char[] password) throws IOException, GeneralSecurityException {
final Collection<? extends Certificate> certChain = SecurityHelper.getCertificateFactory("X.509").generateCertificates(new ByteArrayInputStream(cert));
final PEMKeyPair pemKeyPair = readInternal(keyReader, null);
final KeyFactory keyFactory = getKeyFactory(pemKeyPair.getPrivateKeyInfo().getPrivateKeyAlgorithm());
Key privateKey = keyFactory.generatePrivate(new PKCS8EncodedKeySpec(pemKeyPair.getPrivateKeyInfo().getEncoded()));
final KeyStore keyStore = SecurityHelper.getKeyStore("PKCS12");
keyStore.load(null, null);
keyStore.setKeyEntry(aliasName, privateKey, null, certChain.toArray(new Certificate[certChain.size()]));
final ByteArrayOutputStream pkcs12Out = new ByteArrayOutputStream();
keyStore.store(pkcs12Out, password == null ? new char[0] : password);
return pkcs12Out.toByteArray();
}
Aggregations