C 如何获取链中的下一个证书
我想从Windows证书存储中获取父证书(或链中的所有证书)(假设我知道最终证书的位置)。我需要获得每一个,以便构建自己的自定义C 如何获取链中的下一个证书,c,openssl,cryptoapi,wincrypt,C,Openssl,Cryptoapi,Wincrypt,我想从Windows证书存储中获取父证书(或链中的所有证书)(假设我知道最终证书的位置)。我需要获得每一个,以便构建自己的自定义X509\u存储(使用OpenSSL) 我认为适当的做法是: 使用CertFindCertificateInstaller获取第一个证书(完成) 使用CertGetCertificateChain获取证书链(完成) 从链(?)中提取证书 对于链中的每个证书,使用d2i\u X509(完成)将其转换 或 使用CertFindCertificateInstaller获取第一
X509\u存储
(使用OpenSSL)
我认为适当的做法是:
CertGetCertificateChain
获取证书链(完成)d2i\u X509
(完成)将其转换然后要回答的问题是-如何使用Windows证书存储获取父证书或链中的所有证书?我可能在这里遗漏了一些或多或少的神秘功能。当
CertFindCertificateInstant
输出一个链上下文时,可以使用漂亮的结构访问其成员:
chainContext->rgpChain[0]->rgpElement[iCertIndex]->pCertContext->pbcertcoded
当
iCertIndex
介于0
(结束证书)和chainSize-1
(自签名根证书)之间时。当CertFindCertificateInstant
输出链上下文时,可以使用漂亮的结构访问其成员:
chainContext->rgpChain[0]->rgpElement[iCertIndex]->pCertContext->pbcertcoded
其中,iCertIndex
介于0
(结束证书)和chainSize-1
(自签名根证书)之间