我想从Windows证书存储中获取父证书(或链中的所有证书)(假设我知道结束证书的位置)。我需要获取每个人以构建我自己的自定义X509_STORE
(使用 OpenSSL )。
我认为正确的行动方针是:
CertFindCertificateInStore
(已完成)CertGetCertificateChain
(已完成)d2i_X509
(已完成)或
CertFindCertificateInStore
(已完成)d2i_X509
转换它,转到2.(已完成)然后创建商店。
接下来要回答的问题是 - 如何使用Windows证书存储获取父证书或链中的所有证书?我可能在这里错过了一些或多或少的神秘功能。
答案 0 :(得分:0)
当CertFindCertificateInStore
输出链上下文时,可以使用漂亮的结构访问它的成员:
chainContext->rgpChain[0]->rgpElement[iCertIndex]->pCertContext->pbCertEncoded
其中iCertIndex
介于0
(最终证书)和chainSize -1
之间(自签名根证书)。