Как преобразовать сертификаты / ключи JKS в сертификаты / ключи BouncyCastle
В моем Java-приложении у меня есть хранилище ключей JKS с самозаверяющим сертификатом / ключом. Мне нужно загрузить их и преобразовать их в типы BouncyCastle.
Я использую java.security.KeyStore для загрузки сертификата / ключа, который дает мне java.security.cert.Certificate и java.security.Key.
Как мне затем преобразовать их в формат, который использует BouncyCastle (org.bouncycastle.asn1.x509.Certificate и т. Д.)
Если я использую Security.addProvider(новый BouncyCastleProvider()); это заставит KeyStore возвращать разные типы???
Или BC имеет свой собственный API хранилища ключей (примечание: хранилище ключей имеет формат JKS/SUN).
Спасибо
1 ответ
Я понял это, вот какой-то псевдокод.
Чтобы конвертировать сертификаты:
byte data[] = java.security.cert.Certificate.getEncoded();
org.bouncycastle.asn1.x509.Certificate.getInstance(data);
Чтобы преобразовать ключи:
byte data[] = java.securty.Key.getEncoded();
if (isRSA) {
RSAPrivateKey rsa = RSAPrivateKey.getInstance(data);
return new RSAPrivateCrtKeyParameters(rsa.getModulus(), rsa.getPublicExponent(),
rsa.getPrivateExponent(), rsa.getPrime1(), rsa.getPrime2(), rsa.getExponent1(),
rsa.getExponent2(), rsa.getCoefficient());
} else {
return PrivateKeyFactory.createKey(data);
}