Как преобразовать RSA-кодированный ключ PKCS#8 в PKCS#1 в Java?

Можно ли преобразовать закрытый ключ RSA в формате PKCS#8 в PKCS#1? Я знаю, что это легко сделать с помощью openssl, но можно ли это сделать на Java?

2 ответа

Решение

Используйте BouncyCastle 1,50

PrivateKeyInfo pkInfo = PrivateKeyInfo.getInstance(pkPair.getPrivateKey().getEncodedKey());
ASN1Encodable privateKeyPKCS1ASN1Encodable = pkInfo.parsePrivateKey();
ASN1Primitive privateKeyPKCS1ASN1 = privateKeyPKCS1ASN1Encodable.toASN1Primitive();

byte[] privateKeyPKCS1 = privateKeyPKCS1ASN1.getEncoded();

Использование KeyFactory с PKCS8EncodedKeySpec (алгоритм "RSA") для преобразования байтов закрытого ключа в кодировке PKCS #8 в объекты Java.

использование Cipher а также SecretKeyFactory (алгоритм "PBEWithMD5AndDES") с PBEKeySpec, а также PBEParameterSpec чтобы создать PKCS #5 кодированный материал.

Другие вопросы по тегам