【问题标题】:BouncyCastle: Extract public key informationfrom Certificate Signing RequestBouncyCastle:从证书签名请求中提取公钥信息
【发布时间】:2013-09-12 11:14:18
【问题描述】:

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

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

【问题讨论】:

  • 我还希望从通过 Pkcs10CertificateRequest 实例解析的 CertificateSigningRequest 中解析 PublicKey 类型。实际上,SubjectPublicKeyInfo 包含 AlgorithmID (ASN.1 ObjectIdetifier (OID)),并且在 Org.BouncyCastle.Asn1.Pkcs 命名空间中是包含 ObjectID 及其各自值的 PkcsObjectIdentifiers 类,但没有允许解析算法类型的结构! !?非常令人沮丧。

标签: java cryptography bouncycastle


【解决方案1】:

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

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

这个类有getPublicKey()方法。

 PublicKey publicKey = jcaCertRequest.getPublicKey();

【讨论】:

    猜你喜欢
    • 2022-10-19
    • 1970-01-01
    • 2015-11-28
    • 2012-09-23
    • 2016-02-23
    • 1970-01-01
    • 2011-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多