1

我正在尝试按主题备用名称从本地存储中检索证书。目前,我看到的唯一选项是按主题名称检索它。这是我的代码:

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 查找,但没有看到任何选项。在这里感谢任何帮助!

4

0 回答 0