1

我在 Java 中使用 Bouncy Castle 库来阅读 CSR。我需要从 CSR 中提取公钥信息。我可以看到 openssl 能够从 CSR 中提取所需的信息。

我在 BouncyCastle 中找不到任何方法。我已经能够从 CSR 中读取 PKCS10CertificationRequest 对象。我已经看到使用 SubjectPublicKeyInfo 提取公钥的示例。但该代码依赖于公钥算法已知这一事实。我可以为各种算法参数和匹配做一个“instanceof”操作,但我认为会有更好的东西。我想从 CSR 本身推导出算法。我试图找到此信息,但找不到与此相关的任何内容。感谢帮助。

4

1 回答 1

2

解决方案是围绕 PKCS10CertificateRequest 创建一个新包装器,如下所示:

 JcaPKCS10CertificationRequest jcaCertRequest =
        new JcaPKCS10CertificationRequest(pkcs10CertRequest.getEncoded()).setProvider("BC");

这个类有getPublicKey()方法。

 PublicKey publicKey = jcaCertRequest.getPublicKey();
于 2014-11-06T14:35:19.567 回答