Может ли JcaPEMWriter генерировать вывод PKCS # 8? - PullRequest
0 голосов
/ 14 мая 2018

Следующий код использует класс JcaPEMWriter из BouncyCastle для вывода случайно сгенерированного закрытого ключа RSA в формате PKCS # 1 (-----BEGIN RSA PRIVATE KEY-----):

public static void main(String[] args) throws Exception {
    final KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
    kpg.initialize(2048, null);
    final KeyPair kp = kpg.generateKeyPair();
    final PrivateKey privateKey = kp.getPrivate();
    final StringWriter s = new StringWriter();
    try (JcaPEMWriter w = new JcaPEMWriter(s)) {
        w.writeObject(privateKey);
    }
    System.out.println(s);
}

Есть ли способ сделать JcaPEMWriter вместо этого вывести формат PKCS # 8 (-----BEGIN PRIVATE KEY-----)?

1 Ответ

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

Вам необходимо добавить немного другой объект в PEMWriter, а именно: JcaPKCS8Generator.Следующее должно работать

try (JcaPEMWriter w = new JcaPEMWriter(s)) {
    w.writeObject(new JcaPKCS8Generator(privateKey, null));
}
...