CertVerifySubjectCertificateContext 函式 (wincrypt.h)
CertVerifySubjectCertificateContext 函式會藉由檢查憑證簽發者的有效性,對憑證執行已啟用的驗證檢查。 建議使用新的 憑證鏈結驗證函 式,而不是此函式。
語法
BOOL CertVerifySubjectCertificateContext(
[in] PCCERT_CONTEXT pSubject,
[in, optional] PCCERT_CONTEXT pIssuer,
[in, out] DWORD *pdwFlags
);
參數
[in] pSubject
包含主體憑證之 CERT_CONTEXT 結構的指標。
[in, optional] pIssuer
包含簽發者憑證 之CERT_CONTEXT 的指標。 檢查CERT_STORE_TIME_VALIDITY_FLAG時, pIssuer 可以是 NULL。
[in, out] pdwFlags
DWORD 值的指標包含驗證檢查旗標。 您可以設定下列旗標,在主體憑證上啟用驗證檢查。 它們可以使用位 OR 作業來合併,以啟用多個驗證。
值 | 意義 |
---|---|
|
檢查主體憑證是否在簽發者的撤銷清單中。 |
|
使用簽發者憑證中的公鑰來驗證主體憑證上的簽章。 |
|
取得目前的時間,並確認它是否在主體憑證的有效期間內。 |
如果啟用的驗證檢查成功,其旗標會設定為零。 如果失敗,則會在傳回時設定其旗標。
如果已啟用CERT_STORE_REVOCATION_FLAG,且簽發者在存放區中沒有CRL,則除了CERT_STORE_REVOCATION_FLAG之外,還會設定CERT_STORE_NO_CRL_FLAG。
傳回值
如果函式成功,則傳回值為 TRUE。
如果函式失敗,則傳回值為 FALSE。
針對驗證檢查失敗,仍會傳回 TRUE 。 只有在傳入不正確的參數時,才會傳回 FALSE。
如需擴充錯誤資訊,請呼叫 GetLastError。 其中一個可能的錯誤碼如下。
傳回碼 | Description |
---|---|
|
pdwFlags 中已設定不支援的位。 您可以設定CERT_STORE_SIGNATURE_FLAG、CERT_STORE_TIME_VALIDITY_FLAG和CERT_STORE_REVOCATION_FLAG的任何組合。 如果 pIssuer 為 NULL,則只能設定CERT_STORE_TIME_VALIDITY_FLAG。 |
備註
旗標的十六進位值可以使用位 OR 作業來結合,以啟用多個驗證。 例如,若要同時啟用簽章和時間有效性,值
CERT_STORE_SIGNATURE_FLAG | CERT_STORE_TIME_VALIDITY_FLAG
會放在 pdwFlagsDWORD 值中做為輸入參數。 如果CERT_STORE_SIGNATURE_FLAG驗證成功,但CERT_STORE_TIME_VALIDITY_FLAG驗證失敗,當函式傳回時, pdwFlags 會設定為CERT_STORE_TIME_VALIDITY_FLAG。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows XP [傳統型應用程式 |UWP 應用程式] |
最低支援的伺服器 | Windows Server 2003 [傳統型應用程式 |UWP 應用程式] |
目標平台 | Windows |
標頭 | wincrypt.h |
程式庫 | Crypt32.lib |
Dll | Crypt32.dll |