wincrypt.h) (CERT_CHAIN_PARA 结构
CERT_CHAIN_PARA 结构建立用于生成证书链的搜索和匹配条件。
语法
typedef struct _CERT_CHAIN_PARA {
DWORD cbSize;
CERT_USAGE_MATCH RequestedUsage;
CERT_USAGE_MATCH RequestedIssuancePolicy;
DWORD dwUrlRetrievalTimeout;
BOOL fCheckRevocationFreshnessTime;
DWORD dwRevocationFreshnessTime;
LPFILETIME pftCacheResync;
PCCERT_STRONG_SIGN_PARA pStrongSignPara;
DWORD dwStrongSignFlags;
} CERT_CHAIN_PARA, *PCERT_CHAIN_PARA;
成员
cbSize
此结构的大小(以字节为单位)。
RequestedUsage
结构,指示查找生成证书链的颁发者证书所需的匹配类型。 指向 的结构指示是否在匹配过程中使用 AND 或 OR 逻辑。 结构还包括要匹配的 OID 数组。
RequestedIssuancePolicy
可选结构,指示生成证书链时适用的颁发策略约束匹配类型。 指向 的结构指示是否在匹配过程中使用 AND 或 OR 逻辑。 结构还包括要匹配的 OID 数组。
dwUrlRetrievalTimeout
吊销检查超时前的可选时间(以毫秒为单位)。此成员是可选的。
fCheckRevocationFreshnessTime
可选成员。 当此标志为 TRUE 时,如果此更新大于或等于当前系统时间减去 dwRevocationFreshnessTime 值,则尝试检索新的 CRL。 如果未设置此标志,则使用 CRL 的下一次更新时间。
dwRevocationFreshnessTime
当前时间(以秒为单位)减去已检查的所有元素的 CRL 的更新时间。
pftCacheResync
可选成员。 设置为非 NULL 值时,在指定时间之前缓存的信息被视为无效,并执行缓存重新同步。
Windows Vista: 开始支持此成员。
pStrongSignPara
可选。 指定指向 CERT_STRONG_SIGN_PARA 结构的指针以启用强签名检查。
Windows 8和Windows Server 2012:开始支持此成员。
dwStrongSignFlags
用于修改链检索行为的可选标志。 这可以是零或以下值。
值 | 含义 |
---|---|
|
如果链是强签名的,则将检查最终证书中的公钥,以验证它是否满足强签名的最小公钥长度要求。 可以指定 CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG 禁用默认检查。 |
Windows 8和Windows Server 2012:开始支持此属性。
注解
检查强签名时,以下备注适用。
- 使用 CertGetCertificateChain 或 CertSelectCertificateChains 函数时,将 pStrongSignPara 成员设置为检查强签名。
- 如果在链中找到没有强签名的证书,则会在CERT_TRUST_STATUS结构的 dwErrorStatus 字段中设置CERT_TRUST_HAS_WEAK_SIGNATURE和CERT_TRUST_IS_NOT_SIGNATURE_VALID错误。 CertGetCertificateChain 函数的 ppChainContext 参数和 CertSelectCertificateChains 函数的 pprgpSelection 参数指向CERT_CHAIN_CONTEXT结构,该结构又指向CERT_TRUST_STATUS结构。
- 如果链是强签名的,则会检查最终证书中的公钥,以确定它是否满足强签名的最小公钥长度要求。 如果不满足条件,则会在CERT_TRUST_STATUS结构的 dwErrorStatus 字段中设置CERT_TRUST_HAS_WEAK_SIGNATURE和CERT_TRUST_IS_NOT_SIGNATURE_VALID错误。 在 dwStrongSignFlags 成员中设置CERT_CHAIN_STRONG_SIGN_DISABLE_END_CHECK_FLAG值以禁用此检查。
- 如果CERT_STRONG_SIGN_ENABLE_CRL_CHECK或CERT_STRONG_SIGN_ENABLE_OCSP_CHECK标志是在 pStrongSignPara 成员所指向CERT_STRONG_SIGN_PARA结构引用的CERT_STRONG_SIGN_SERIALIZED_INFO结构中设置的,并且找到没有强签名的 CRL 或 OCSP 响应,则 CRL 或 OCSP 响应将被视为脱机。 也就是说,CERT_TRUST_IS_OFFLINE_REVOCATION和CERT_TRUST_REVOCATION_STATUS_UNKNOWN错误在CERT_TRUST_STATUS结构的 dwErrorStatus 字段中设置。 此外,CERT_REVOCATION_INFO 结构的 dwRevocationResult 成员设置为 NTE_BAD_ALGID。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | wincrypt.h |