wincrypt.h) (CERT_USAGE_MATCH 结构
CERT_USAGE_MATCH结构提供用于标识用于生成证书链的颁发者证书的条件。
语法
typedef struct _CERT_USAGE_MATCH {
DWORD dwType;
CERT_ENHKEY_USAGE Usage;
} CERT_USAGE_MATCH, *PCERT_USAGE_MATCH;
成员
dwType
确定要完成的颁发者匹配的类型。 在 AND 逻辑中,证书必须满足所有条件。 在 OR 逻辑中,证书必须至少满足一个条件。 定义以下代码以确定匹配中使用的逻辑。 有关此应用方式的详细信息,请参阅备注。
值 | 含义 |
---|---|
|
AND 逻辑 |
|
OR 逻辑 |
默认使用情况匹配逻辑为USAGE_MATCH_TYPE_AND。
Usage
CERT_ENHKEY_USAGE 结构 (CERT_ENHKEY_USAGE 是 CTL_USAGE 结构) 的备用 typedef 名称,其中包含证书必须匹配才能有效 (OID) 的证书 对象标识符 数组。
注解
如果 dwType 成员设置为 USAGE_MATCH_TYPE_OR, 则 Usage 成员不能为空。
如果 dwType 成员设置为 USAGE_MATCH_TYPE_AND,则空 Usage 成员意味着链中的任何嵌套用法都将正常工作。
下面介绍了两个增强的密钥用法 (EKU) 扩展 EKU A 和 EKU B 的行为。
AND 逻辑
如果调用方指定了 EKU A 和 EKU B,则如果路径中的每个证书都支持 EKU A 和 EKU B,则目标证书有效 (显式 EKU 设置或通过 CA 证书中不存在的 EKU 扩展。)OR 逻辑
如果调用方指定了 EKU A 或 EKU B,则路径中支持 EKU A 或 EKU B 时,目标证书有效。除了路径中的证书包含 EKU A 或 EKU B 的简单情况外, OR 子句还具有以下特殊评估。
给定以下路径, OR 测试被视为有效:
尽管链中 EKU 的交集是空集,但 EE 证书的使用对 EKU A 有效,因为对加密 API 的请求指定如果路径的每个证书都支持 EKU A 或 EKU B,则证书有效。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
标头 | wincrypt.h |