【问题标题】:How to get next certificate in chain如何获得链中的下一个证书
【发布时间】:2016-05-05 13:54:55
【问题描述】:

我想从 Windows 证书存储中获取父证书(或链中的所有证书)(假设我知道最终证书的位置)。我需要获取每一个以构建我自己的自定义X509_STORE(使用OpenSSL)。

我认为正确的做法是:

  1. 使用CertFindCertificateInStore 获得第一个证书(完成)
  2. 使用CertGetCertificateChain 获取证书链(完成)
  3. 从链中提取证书 (?)
  4. 对于链中的每个证书,使用d2i_X509 转换它(完成)

  1. 使用CertFindCertificateInStore 获得第一个证书(完成)
  2. 获取父证书(如果存在)(?)
  3. 使用d2i_X509转换它,转到2。(完成)

然后创建商店。

然后要回答的问题是 - 如何使用 Windows 证书存储获取父证书或链中的所有证书?我可能在这里或多或少地遗漏了一些神秘的功能。

【问题讨论】:

    标签: c openssl cryptoapi wincrypt


    【解决方案1】:

    CertFindCertificateInStore 输出链式上下文,可以使用漂亮的结构访问它的成员:

    chainContext->rgpChain[0]->rgpElement[iCertIndex]->pCertContext->pbCertEncoded

    其中iCertIndex 介于0(结束证书)和chainSize -1(自签名根证书)之间。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-19
      • 2017-06-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多