CERT_CHAIN_ENGINE_CONFIG 结构 (wincrypt.h)
CERT_CHAIN_ENGINE_CONFIG 结构设置用于生成非默认证书链引擎的参数。 使用的引擎确定证书链的生成方式。
语法
typedef struct _CERT_CHAIN_ENGINE_CONFIG {
DWORD cbSize;
HCERTSTORE hRestrictedRoot;
HCERTSTORE hRestrictedTrust;
HCERTSTORE hRestrictedOther;
DWORD cAdditionalStore;
HCERTSTORE *rghAdditionalStore;
DWORD dwFlags;
DWORD dwUrlRetrievalTimeout;
DWORD MaximumCachedCertificates;
DWORD CycleDetectionModulus;
HCERTSTORE hExclusiveRoot;
HCERTSTORE hExclusiveTrustedPeople;
DWORD dwExclusiveFlags;
} CERT_CHAIN_ENGINE_CONFIG, *PCERT_CHAIN_ENGINE_CONFIG;
成员
cbSize
此结构的大小(以字节为单位)。
hRestrictedRoot
此配置参数可用于限制根存储区。 如果使用,它可以是根存储中仅包含适当证书子集的任何 HCERTSTORE 的句柄。
hRestrictedTrust
存储句柄。 如果使用,则限制搜索的存储以查找 CTL。
hRestrictedOther
cAdditionalStore
要搜索构建链所需的证书和 CRL 的其他存储的计数。
rghAdditionalStore
指向商店句柄数组的指针,用于在构建链中搜索任何其他商店。
dwFlags
定义了以下标志。
dwUrlRetrievalTimeout
基于网络的 URL 对象检索超时之前的毫秒数。 可以设置为零以使用默认限制。
MaximumCachedCertificates
限制可缓存为链的证书数。 可以设置为 0 以使用默认限制。
CycleDetectionModulus
在进行检查以确定链中是否存在证书周期之前添加到链中的证书数。 循环可以定义为在链中的两个不同位置具有相同的证书。
数字越少,检查的频率就越高。 对证书周期进行额外检查会大大减慢该过程。 此参数可以设置为零以使用默认限制。
hExclusiveRoot
包含独占信任定位点的证书存储的句柄。 如果 hExclusiveRoot 或 hExclusiveTrustedPeople 成员指向有效的存储区,则独占信任模式用于链式构建。
Windows 7 和 Windows Server 2008 R2: 开始支持此成员。
hExclusiveTrustedPeople
包含特定于应用程序的对等受信任证书的证书存储的句柄。 如果 hExclusiveRoot 或 hExclusiveTrustedPeople 成员指向有效的存储区,则独占信任模式用于链式构建。
Windows 7 和 Windows Server 2008 R2: 开始支持此成员。
dwExclusiveFlags
可以设置以下标志。 仅当 hExclusiveRoot 或 hExclusiveTrustedPeople 或两者都不为 NULL 时,标志才适用。
Windows 8 和 Windows Server 2012: 开始支持此成员。
值 | 含义 |
---|---|
|
指示在证书验证期间应将 hExclusiveRoot 存储中的非自签名中间 CA 证书视为信任定位点。 如果证书链接到此 CA,则链生成将终止,并且该证书被视为受信任证书。 不会对 CA 证书执行签名验证或吊销检查。
默认情况下,如果未设置此标志,则只有 hExclusiveRoot 存储中的自签名证书被视为信任定位点。 另请参阅 CERT_TRUST_STATUS 结构中的 CERT_TRUST_IS_CA_TRUSTED 值。 |
备注
链生成引擎在生成链中使用四个证书存储。 它们是 hRoot、hWorld、hTrust 和 hOther。 创建链引擎时,通过使用此结构中的信息建立这些存储的句柄。
hRoot 是 hRestrictedRoot 中的存储句柄;如果 hRestrictedRoot 为 NULL,则为系统存储“Root”的句柄。
hWorld 是一个集合证书存储,包括同级存储 hRoot、“CA”、“My”、“Trust”以及其句柄位于 rghAdditionalStore 指向的数组中的任何其他存储。
hTrust 是 来自 hRestrictedTrust 的存储句柄;如果 hRestrictedTrust 为 NULL,则为 hWorld。
hOther 为 hRestrictedOther 加 hRoot,或者,如果 hRestrictedTrust 为非 NULL,则 hWorld 集合存储加上 hRestrictedTrust 中的存储句柄。
独占信任模式允许应用程序为证书链验证指定信任定位点和对等信任证书。 在独占信任模式下,将忽略系统上的根存储和受信任人员存储,并改用 hExclusiveRoot 和 hExclusiveTrustedPeople 成员指向的定位点和证书。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | wincrypt.h |