本文介绍了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输出吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!