BouncyCastle:从证书签名请求中提取公钥信息

时间:2013-09-12 11:14:18

标签: java cryptography bouncycastle

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

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

1 个答案:

答案 0 :(得分:2)

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

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

此类具有getPublicKey()方法。

 PublicKey publicKey = jcaCertRequest.getPublicKey();