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

我在BouncyCastle中找不到任何方法可以做到这一点。我已经能够从CSR中读取PKCS10CertificationRequest对象。我已经看到了使用SubjectPublicKeyInfo提取公共密钥的示例。但是代码依赖于已知公钥算法的事实。我可以对各种算法参数进行“ instanceof”操作并进行匹配,但我认为会有更好的选择。我想从CSR本身衍生算法。我试图找到此信息,但找不到与此相关的任何信息。
感谢帮助。

最佳答案

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

此类具有getPublicKey()方法。

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

07-24 09:43
查看更多