CertFindCRLInStore 函式 (wincrypt.h)
CertFindCRLInStore 函式會在證書存儲中尋找第一個或下一個證書吊銷清單, (CRL) 內容,符合 dwFindType 參數和相關聯的 pvFindPara 參數所建立的搜尋準則。 此函式可用於迴圈,以在符合指定尋找準則的證書存儲中尋找所有 CRL 內容。
語法
PCCRL_CONTEXT CertFindCRLInStore(
[in] HCERTSTORE hCertStore,
[in] DWORD dwCertEncodingType,
[in] DWORD dwFindFlags,
[in] DWORD dwFindType,
[in] const void *pvFindPara,
[in] PCCRL_CONTEXT pPrevCrlContext
);
參數
[in] hCertStore
要搜尋之證書存儲的句柄。
[in] dwCertEncodingType
目前未使用此參數。 它必須設定為零。
[in] dwFindFlags
如果 dwFindType 是CRL_FIND_ISSUED_BY,則預設只會完成簽發者名稱比對。 下列旗標可用來執行其他篩選。
值 | 意義 |
---|---|
|
檢查具有授權金鑰標識碼的 CRL (AKI) 延伸模組。 如果CRL有 AKI,則只會傳回 AKI 符合簽發者的CRL。
注意 AKI 延伸模組具有 物件標識碼 (OID) 值szOID_AUTHORITY_KEY_IDENTIFIER2及其對應的數據結構。
|
|
使用簽發者憑證中的公鑰來驗證 CRL 上的簽章。 只會傳回具有有效簽章的CRL。 |
|
尋找並傳回差異 CRL。 |
|
尋找並傳回基底 CRL。 |
|
簽章會在驗證成功之後檢查是否有強度。 只有當 dwFindType 參數設定為 CRL_FIND_ISSUED_FOR時,才會套用此旗標。 您也必須設定 CRL_FIND_ISSUED_BY_SIGNATURE_FLAG。 如果成功,則會在CRL內容上設定下列強式簽章屬性:
|
[in] dwFindType
指定所要進行的搜尋類型。 dwFindType 的值會決定 pvFindPara 參數的數據類型、內容和使用。 目前定義的搜尋類型及其 pvFindPara 需求如下。
值 | 意義 |
---|---|
|
沒有搜尋準則。 會傳回存放區中的下一個CRL。 |
|
在與 CERT_CONTEXT中籤發者相符的存放區中搜尋下一個CRL。 |
|
以下列方式搜尋符合 CRL_CONTEXT 的下一個CRL:
|
|
在存放區中搜尋符合CRL_FIND_ISSUED_FOR_PARA結構中主體憑證簽發者的下一個CRL。
如果找不到 CRL,請在存放區中搜尋符合 CRL_FIND_ISSUED_FOR_PARA 結構中籤發者的下一個 CRL。 注意 使用跨憑證時,簽發者憑證中的主體名稱可能與主體憑證及其對應的CRL中的簽發者名稱不符。
|
[in] pvFindPara
此參數取決於 dwFindType 的值。 如需詳細資訊,請參閱本主題稍早的表格。
[in] pPrevCrlContext
這個函式傳回之最後 一個CRL_CONTEXT 指標。 必須是 NULL ,才能在符合搜尋準則的存放區中取得第一個 CRL。 將 pPrevCrlContext 設定為先前呼叫函式所傳回 的PCCRL_CONTEXT 指標,即可找到符合搜尋準則的後續 CRL。 搜尋程式會略過不符合搜尋準則或先前由 CertDeleteCRLFromStore 從存放區中刪除的任何 CRL。 此函式會釋放非 NULL 之此參數值所參考的CRL_CONTEXT。
傳回值
如果函式成功,函式會傳回只讀CRL內容的指標。 當您完成使用傳回的CRL內容時,請在後續呼叫 CertFindCRLInStore 函式時將其傳遞為 pPrevCrlContext 參數,以隱含釋放它。
如果函式失敗,且找不到符合搜尋準則的CRL,則傳回值為 NULL。 如需擴充錯誤資訊,請呼叫 GetLastError。 以下是一些可能的錯誤碼。
傳回碼 | Description |
---|---|
|
hCertStore 參數中的句柄與 pPrevCrlContext 參數所指向的 CRL 內容中的句柄不同,或在 dwFindType 參數中指定無效的搜尋類型。 |
|
存放區中沒有CRL、找不到符合搜尋準則的CRL,或到達存放區清單的結尾。 |
備註
在後續呼叫函式時,會釋放傳回的指標作為 pPrevCrlContext 參數。 否則,必須藉由呼叫 CertFreeCRLContext 明確釋放指標。 CertFindCRLInStore 一律會使用呼叫 CertFreeCRLContext 來釋放非 NULL 的 pPrevCrlContext,即使函式中有錯誤也一樣。
您可以呼叫 CertDuplicateCRLContext ,使傳回的內容重複。 傳回的CRL內容可以使用 CertAddCRLContextToStore 新增至不同的證書存儲,或使用 CertAddCRLLinkToStore 將該 CRL 內容的連結新增至非集合存放區。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |