我正在尝试按主题备用名称从本地存储中检索证书。目前,我看到的唯一选项是按主题名称检索它。这是我的代码:
PCCERT_CONTEXT GetCertFromSubject(const std::wstring& subjectName)
{
PCCERT_CONTEXT cert = nullptr;
HCERTSTORE hStoreHandle = CertOpenStore(
CERT_STORE_PROV_SYSTEM,
0,
nullptr,
CERT_SYSTEM_STORE_CURRENT_USER,
L"MY");
if (hStoreHandle == nullptr)
{
// throw
}
cert = CertFindCertificateInStore(
hStoreHandle,
X509_ASN_ENCODING,
0,
CERT_FIND_SUBJECT_STR,
subjectName.c_str(),
nullptr);
CertCloseStore(hStoreHandle, CERT_CLOSE_STORE_CHECK_FLAG);
return cert;
}
如果我将主题名称传递给函数,这将非常有用。我想通过 SAN 查找,但没有看到任何选项。在这里感谢任何帮助!