本文介绍了JcaPEMWriter可以生成PKCS#8输出吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下代码使用BouncyCastle中的JcaPEMWriter类以PKCS#1格式(-----BEGIN RSA PRIVATE KEY-----)输出随机生成的RSA私钥:

The following code uses the JcaPEMWriter class from BouncyCastle to output a randomly generated RSA private key in PKCS#1 format (-----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-----)?

Is there any way to make JcaPEMWriter output PKCS#8 format (-----BEGIN PRIVATE KEY-----) instead?

推荐答案

您需要向PEMWriter提供稍微不同的对象,即 JcaPKCS8Generator .以下应该可以工作

You need to supply a slightly different object to the PEMWriter, namely a JcaPKCS8Generator. The following should work

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

这篇关于JcaPEMWriter可以生成PKCS#8输出吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-27 22:33