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
证书的基本约束无效或缺失。
 

验证码策略错误 (CERT_CHAIN_POLICY_AUTHENTICODECERT_CHAIN_POLICY_AUTHENTICODE_TS) 。

这些错误是基础策略错误之外的错误。

含义
CERT_E_PURPOSE
0x800B0106L
证书用于由颁发 CA 指定的证书以外的目的。
CERT_E_REVOKED
0x800B010CL
证书已被颁发者显式吊销。
CERT_E_REVOCATION_FAILURE
0x800B010EL
吊销过程无法继续,并且无法检查证书。
 

CERT_CHAIN_POLICY_SSL) (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