CERT_CHAIN_POLICY_STATUS 結構 (wincrypt.h)

CERT_CHAIN_POLICY_STATUS結構會保存憑證鏈結驗證時,CertVerifyCertificateChainPolicy函式所傳回的憑證鏈結狀態資訊。

語法

typedef struct _CERT_CHAIN_POLICY_STATUS {
  DWORD cbSize;
  DWORD dwError;
  LONG  lChainIndex;
  LONG  lElementIndex;
  void  *pvExtraPolicyStatus;
} CERT_CHAIN_POLICY_STATUS, *PCERT_CHAIN_POLICY_STATUS;

成員

cbSize

這個結構的大小,以位元組為單位。

dwError

值,指出驗證程式期間遇到錯誤或不正確條件。 此成員的值專屬於原則類型,如CertVerifyCertificateChainPolicy函式的pszPolicyOID參數值所指定。

基底原則錯誤 (CERT_CHAIN_POLICY_BASE)

意義
TRUST_E_CERT_SIGNATURE
0x80096004L
無法驗證憑證的簽章。
CRYPT_E_REVOKED
0x80092010L
憑證或簽章已被撤銷。
CERT_E_UNTRUSTEDROOT
0x800B0109L
憑證鏈結已正確處理,但在 信任提供者不信任的根憑證中終止。
CERT_E_UNTRUSTEDTESTROOT
0x800B010DL
根憑證是測試憑證,原則設定不允許測試憑證。
CERT_E_CHAINING
0x800B010AL
憑證鏈結未正確建立。
CERT_E_WRONG_USAGE
0x800B0110L
此憑證不適用於要求的使用方式。
CERT_E_EXPIRED
0x800B0101L
必要的憑證不在有效期間內。
CERT_E_INVALID_NAME
0x800B0114L
憑證的名稱無效。 名稱未包含在允許的清單中,或明確排除。
CERT_E_INVALID_POLICY
0x800B0113L
憑證的原則無效。
TRUST_E_BASIC_CONSTRAINTS
0x80096019L
憑證的基本條件約束無效,或遺失這些條件約束。
CERT_E_CRITICAL
0x800B0105L
憑證正用於其 CA 所指定之目的以外的用途。
CERT_E_VALIDITYPERIODNESTING
0x800B0102L
憑證鏈結的有效期間不會正確巢狀。
CRYPT_E_NO_REVOCATION_CHECK
0x80092012L
撤銷函式無法檢查憑證的撤銷。
CRYPT_E_REVOCATION_OFFLINE
0x80092013L
因為伺服器已離線,所以撤銷功能無法核對撤銷狀況。
 

基本條件約束原則錯誤 (CERT_CHAIN_POLICY_BASIC_CONSTRAINTS) 。

意義
TRUST_E_BASIC_CONSTRAINTS
0x80096019L
憑證的基本條件約束無效,或遺失這些條件約束。
 

Authenticode 原則錯誤 (CERT_CHAIN_POLICY_AUTHENTICODECERT_CHAIN_POLICY_AUTHENTICODE_TS) 。

這些錯誤除了基底原則錯誤之外。

意義
CERT_E_PURPOSE
0x800B0106L
憑證用於發行 CA 所指定的憑證以外的用途。
CERT_E_REVOKED
0x800B010CL
簽發者已明確撤銷憑證。
CERT_E_REVOCATION_FAILURE
0x800B010EL
撤銷程式無法繼續,而且無法檢查憑證。
 

SSL 原則錯誤 (CERT_CHAIN_POLICY_SSL) 。

這些錯誤除了基底原則錯誤之外。

意義
CERT_E_UNTRUSTEDROOT
0x800B0109L
憑證鏈結已正確處理,但在 信任提供者不信任的根憑證中終止。
CERT_E_CN_NO_MATCH
0x800B010FL
憑證的 CN 名稱不符合傳遞的值。
CERT_E_PURPOSE
0x800B0106L
憑證正用於其 CA 所指定之目的以外的用途。
CERT_E_ROLE
0x800B0103L
只能當做端實體使用的憑證,會當做 CA 使用,反之亦然。
 

Microsoft 根原則錯誤 (CERT_CHAIN_POLICY_MICROSOFT_ROOT) 。

意義
CERT_E_UNTRUSTEDROOT
0x800B0109L
憑證鏈結已正確處理,但在 信任提供者不信任的根憑證中終止。
 

EV 原則錯誤。

意義
CERT_E_CHAINING
0x800B010AL
無法建置根信任授權單位的憑證鏈結。
CERT_E_WRONG_USAGE
0x800B0110L
此憑證不適用於要求的使用方式。

lChainIndex

索引,指出找到無效錯誤或條件的鏈結。 如需詳細資訊,請參閱<備註>。

lElementIndex

索引,指出鏈結中找不到無效錯誤或條件的專案。 如需詳細資訊,請參閱<備註>。

pvExtraPolicyStatus

結構的指標。 結構類型取決於CertVerifyCertificateChainPolicy函式的pszPolicyOID參數值。 除了 dwError 錯誤之外,您也可以在這裡傳回原則 OID 特定的額外狀態,以提供其他鏈結狀態資訊。 這個指標可以選擇性地設定為指向 AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS 結構。

備註

如果 lChainIndexlElementIndex 都設定為 –1,則不正確錯誤或條件會套用至整個鏈結內容。 如果只有 lElementIndex 設定為 –1,則不正確錯誤或條件會套用至 lChainIndex所編制索引的鏈結。 否則,不正確錯誤或條件會套用至 pChainCoNtext-rgpChain[lChainIndex]- >> rgpElement[lElementIndex] 的憑證專案。

規格需求

   
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2003 [僅限傳統型應用程式]
標頭 wincrypt.h