【问题标题】:How to get issuer certificate public key using crypto api如何使用加密 api 获取颁发者证书公钥
【发布时间】:2020-08-12 10:53:40
【问题描述】:

我需要获取给定证书(我收到)的颁发者证书公钥。

我读取了证书字节并能够使用CertCreateCertificateContext() 获取PCCERT_CONTEXT 作为叶证书。

PCCERT_CONTEXT->pCertInfo->SubjectPublicKeyInfo 给我叶子证书公钥,但我无法找到获取颁发者证书详细信息的方法。

【问题讨论】:

  • 证书不知道其颁发者的公钥是什么。您需要构建一个链 (CertGetCertificateChain) 并使用颁发者证书。
  • CertGetCertificateChain 提供 CERT_CHAIN_CONTEXT,其中包含 CERT_TRUST_STATUS,即整体验证状态。我的问题是如何从中获得颁发者 PCCERT_CONTEXT?
  • 有一个CertGetIssuerCertificateFromStore 方法。如果您有 PFX/P12,那么您可能需要将其作为商店打开,而不是作为单个证书。

标签: windows ssl cryptography certificate digital-signature


【解决方案1】:

颁发者公钥只能从颁发者证书中获取,这在叶子证书中不存在(已收到证书)(感谢 bartonjs) 我的解决方案是建立完整的链来联系签名者以获取密钥或从另一个来源获得颁发者证书(如果可能的话)。就我而言,我有另一个来源,所以我可以得到它。感谢您的指导。

【讨论】:

    猜你喜欢
    • 2013-01-16
    • 1970-01-01
    • 2016-04-20
    • 1970-01-01
    • 2013-07-09
    • 2017-10-19
    • 1970-01-01
    • 2020-06-26
    • 1970-01-01
    相关资源
    最近更新 更多