Как преобразовать кодированный ключ RSA PKCS # 8 в PKCS # 1 в Java? - PullRequest
2 голосов
/ 11 марта 2011

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

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

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

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

1 голос
/ 07 сентября 2016

Используйте BouncyCastle 1.50

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

byte[] privateKeyPKCS1 = privateKeyPKCS1ASN1.getEncoded();
...