JcaPEMWriter 可以生成 PKCS#8 输出吗?
Can JcaPEMWriter generate PKCS#8 output?
以下代码使用 BouncyCastle 中的 JcaPEMWriter
class 以 PKCS#1 格式 (-----BEGIN RSA PRIVATE KEY-----
) 输出随机生成的 RSA 私钥:
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-----
) 吗?
您需要为 PEMWriter 提供一个稍微不同的对象,即 JcaPKCS8Generator
。以下应该有效
try (JcaPEMWriter w = new JcaPEMWriter(s)) {
w.writeObject(new JcaPKCS8Generator(privateKey, null));
}
以下代码使用 BouncyCastle 中的 JcaPEMWriter
class 以 PKCS#1 格式 (-----BEGIN RSA PRIVATE KEY-----
) 输出随机生成的 RSA 私钥:
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-----
) 吗?
您需要为 PEMWriter 提供一个稍微不同的对象,即 JcaPKCS8Generator
。以下应该有效
try (JcaPEMWriter w = new JcaPEMWriter(s)) {
w.writeObject(new JcaPKCS8Generator(privateKey, null));
}