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 逻辑中,证书必须至少满足一个条件。 定义以下代码以确定匹配中使用的逻辑。 有关此应用方式的详细信息,请参阅备注。

含义
USAGE_MATCH_TYPE_AND
AND 逻辑
USAGE_MATCH_TYPE_OR
OR 逻辑
 

默认使用情况匹配逻辑为USAGE_MATCH_TYPE_AND。

Usage

CERT_ENHKEY_USAGE 结构 (CERT_ENHKEY_USAGECTL_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