Преобразовать закрытый ключ в формате PKCS # 1 в закрытый ключ в формате PKCS # 8 с помощью java - PullRequest
0 голосов
/ 09 мая 2018

У меня есть закрытый ключ в формате PKCS # 1 (сгенерированный opendkim-genkey), как этот

-----BEGIN RSA PRIVATE KEY-----

Base64 encoded data

-----END RSA PRIVATE KEY-----

Теперь я должен использовать его на Java для генерации java.security.PrivateKey

Но Java поддерживает только закрытый ключ в формате PKCS # 8.

Я знаю, что есть способ конвертировать из PKCS # 8 в PKCS # 1 с помощью Java (используя Bouncycastle), но есть ли способ конвертировать из PKCS # 1 в PKCS # 8 с помощью Java?

1 Ответ

0 голосов
/ 09 мая 2018

Отказ от ответственности : Я сам не придумал это решение, оно было написано Маркоскоттрайтом в github. Найти оригинальный код здесь


Вы можете сделать это, используя BouncyCastle, если у вас есть PrivateKey k объект.

try (ASN1InputStream asn1InputStream = new ASN1InputStream(k.getEncoded()))
{
    DERObject rsaPrivateKey = asn1InputStream.readObject();
    return new PrivateKeyInfo(new AlgorithmIdentifier(PKCSObjectIdentifiers.rsaEncryption), rsaPrivateKey).getDEREncoded();
}
...