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) (基本策略错误
值 | 含义 |
---|---|
|
无法验证证书的签名。 |
|
证书或签名已被吊销。 |
|
证书链已正确处理,但在信任 提供程序不信任的根证书中终止。 |
|
根证书是测试证书,策略设置不允许测试证书。 |
|
未正确创建证书链。 |
|
该证书对于请求的用法无效。 |
|
所需的证书不在有效期内。 |
|
证书名称无效。 该名称未包含在允许列表中,或者被显式排除。 |
|
证书的策略无效。 |
|
证书的基本约束无效或缺失。 |
|
证书用于其 CA 指定的目的以外的目的。 |
|
认证链的有效期未正确嵌套。 |
|
吊销函数无法检查吊销证书。 |
|
吊销功能无法检查吊销,因为吊销服务器已脱机。 |
基本约束 策略错误 (CERT_CHAIN_POLICY_BASIC_CONSTRAINTS) 。
值 | 含义 |
---|---|
|
证书的基本约束无效或缺失。 |
验证码策略错误 (CERT_CHAIN_POLICY_AUTHENTICODE 和 CERT_CHAIN_POLICY_AUTHENTICODE_TS) 。
这些错误是基础策略错误之外的错误。
值 | 含义 |
---|---|
|
证书用于由颁发 CA 指定的证书以外的目的。 |
|
证书已被颁发者显式吊销。 |
|
吊销过程无法继续,并且无法检查证书。 |
CERT_CHAIN_POLICY_SSL) (SSL 策略错误。
这些错误是基础策略错误之外的错误。
值 | 含义 |
---|---|
|
证书链已正确处理,但在信任 提供程序不信任的根证书中终止。 |
|
证书的 CN 名称与传递的值不匹配。 |
|
证书用于其 CA 指定的目的以外的目的。 |
|
只能用作最终实体的证书将用作 CA,反之亦然。 |
microsoft 根策略错误 (CERT_CHAIN_POLICY_MICROSOFT_ROOT) 。
值 | 含义 |
---|---|
|
证书链已正确处理,但在信任 提供程序不信任的根证书中终止。 |
EV 策略错误。
值 | 含义 |
---|---|
|
无法生成指向受信任的根颁发机构的证书链。 |
|
该证书对于请求的用法无效。 |
lChainIndex
指示在其中找到无效的错误或条件的链的索引。 有关详细信息,请参阅“备注”。
lElementIndex
指示链中发现错误或条件无效的元素的索引。 有关详细信息,请参阅“备注”。
pvExtraPolicyStatus
指向结构的指针。 结构类型由 CertVerifyCertificateChainPolicy 函数的 pszPolicyOID 参数的值确定。 除了 dwError 错误外,还可以在此处返回特定于策略 OID 的额外状态,以提供其他链状态信息。 可以选择将此指针设置为指向 AUTHENTICODE_EXTRA_CERT_CHAIN_POLICY_STATUS 结构。
注解
如果 lChainIndex 和 lElementIndex 都设置为 –1,则无效的错误或条件将应用于整个链上下文。 如果仅 将 lElementIndex 设置为 –1,则无效的错误或条件适用于 由 lChainIndex 编制索引的链。 否则,无效的错误或条件将应用于 pChainContext-rgpChain>[lChainIndex]->rgpElement[lElementIndex] 中的证书元素。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | wincrypt.h |