我有代码为当前用户检索Windows证书存储中的所有根证书:#include#includeinlinestd::vectorsystem_root_certificates(){std::vectorcerts;HCERTSTOREhStore;PCCERT_CONTEXTpCertContext=NULL;if(!(hStore=::CertOpenStore(CERT_STORE_PROV_SYSTEM_A,0,NULL,CERT_SYSTEM_STORE_CURRENT_USER,"Root")))returncerts;do{if(pCertContext=::CertFin
我正在尝试在CryptoAPI中使用CertEnumCertificatesInStore()来遍历所有根证书并将它们编码为PEM文件以用于OpenSSL。我已经找到了几个这样的例子,所以它似乎是可能的,但是,我为每个证书返回的PCCERT_CONTEXT都有一个无效的pbCertEncoded指针和cbCertEncoded(缓冲区大小)始终为0,但我觉得这不应该是作为示例的案例使用编码缓冲区将证书转换为其他格式。有没有其他人遇到过这个获取空缓冲区的问题或者可以看到我遗漏的步骤?我已经验证我实际上正在使用CryptUIDlgViewContext()函数获取证书。我觉得我缺少一些非常
我已将证书添加到系统存储中,如下所示:PCCERT_CONTEXTpCertContext;HCERTSTOREhCertStore;CRYPT_KEY_PROV_INFOprovInfo;if(pCertContext=CertCreateCertificateContext(MY_ENCODING_TYPE,certDER,certSize)){provInfo.pwszContainerName=idCert;provInfo.pwszProvName=provName;provInfo.dwProvType=provType;provInfo.dwFlags=0;provInf