IX509Extension 接口 (certenroll.h)

IX509Extension 接口可用于为 证书请求定义扩展。 证书扩展提供有关密钥用法、证书策略和约束、备用名称表单等的信息。 扩展包含 对象标识符(OID),一个布尔值,用于标识扩展是否关键,以及包含扩展值的字节数组,如以下 抽象语法表示法 One (ASN.1) 语法所示。


Extension ::= SEQUENCE 
{
   extnId              OBJECT IDENTIFIER,
   critical            BOOLEAN DEFAULT FALSE,
   extnValue           OCTETSTRING
}

证书注册 API 包含以下接口,这些接口派生自 IX509Extension,可用于创建依赖于 Windows 证书服务器的公钥基础结构(PKI)中使用的各种扩展。

注意 不要使用 IX509Extension 基接口来表示可由以下接口之一表示的任何扩展。 如果未使用适当的接口,则未定义注册行为。

 
接口 描述
IX509ExtensionAlternativeNames 定义 AlternativeNames 扩展,该扩展包含证书请求使用者的一个或多个可选名称表单。
IX509ExtensionAuthorityKeyIdentifier 定义一个 AuthorityKeyIdentifier 扩展,该扩展允许标识与签名证书的证书颁发机构 私钥 相对应的 证书颁发机构公钥。 它由 Windows 服务器上的证书路径构建软件用于查找证书颁发机构证书。
IX509ExtensionBasicConstraints 定义一个 BasicConstraints 扩展,该扩展标识实体是否可以用作证书颁发机构;如果是,则标识证书链中可存在的从属证书颁发机构的数量。
IX509ExtensionCertificatePolicies 定义一个 CertificatePolicies 扩展,该扩展标识证书的颁发策略及其用途。
IX509ExtensionEnhancedKeyUsage 定义 EnhancedKeyUsage 扩展,用于标识证书中包含的公钥的一个或多个用法。
IX509ExtensionKeyUsage 定义一个 KeyUsage 扩展,该扩展限制证书中包含的公钥可执行的操作。
IX509ExtensionMSApplicationPolicies 定义 MSApplicationPolicies 扩展,应用程序可以使用该扩展根据允许使用来筛选证书。 允许的使用由对象标识符(OID)标识。
IX509ExtensionSmimeCapabilities 定义 SmimeCapabilities 扩展,该扩展标识电子邮件收件人的解密功能,以便电子邮件发件人可以选择双方支持的最安全的加密算法。
IX509ExtensionSubjectKeyIdentifier 定义 SubjectKeyIdentifier 扩展,该扩展区分证书所有者持有的多个公钥。 扩展值通常是键的 SHA-1 哈希。
IX509ExtensionTemplate 定义 模板 扩展,用于标识颁发或续订证书时要使用的版本 2 模板。
IX509ExtensionTemplateName 定义 TemplateName 扩展,用于标识颁发或续订证书时要使用的版本 1 模板。
 

可以使用上述接口创建的大多数扩展都由版本 3 X.509 语法标准定义。 若要创建Microsoft不提供自定义对象的版本 3 扩展,可以使用 IX509Extension 接口。 下表中标识了这些扩展。

扩展/OID 描述
AuthorityInformationAccess(XCN_OID_AUTHORITY_INFO_ACCESS) 标识如何访问证书颁发机构信息和服务。 扩展值包含 URI 序列。
CrlDistributionPoints(XCN_OID_CRL_DIST_POINTS) 包含基本 证书吊销列表(CRL)的 URI。
FreshestCRL(XCN_OID_FRESHEST_CRL) 包含增量 CRL 的 URI。 此扩展和 CrlDistributionPoints 扩展使用相同的 ASN.1 语法。
NameConstraints(XCN_OID_NAME_CONSTRAINTS) 标识证书层次结构中证书的所有使用者名称必须位于的命名空间。 该扩展仅在证书颁发机构证书中使用。
PolicyConstraints(XCN_OID_POLICY_CONSTRAINTS) 通过禁止策略映射或要求层次结构中的每个证书包含可接受的策略标识符来约束路径验证。
PolicyMappings(XCN_OID_POLICY_MAPPINGS) 标识与颁发证书颁发机构中的策略相对应的从属证书颁发机构中的策略。 扩展值包含一系列颁发证书颁发机构和从属证书颁发机构策略映射,这些映射由对象标识符表示。
PrivateKeyUsagePeriod(XCN_OID_PRIVATEKEY_USAGE_PERIOD) 为私钥指定与与密钥关联的证书不同的有效期。
SubjectDirectoryAttributes(XCN_OID_SUBJECT_DIR_ATTRS) 传达有关证书使用者的国籍等标识属性。 扩展值是 OID 值对的序列。
 

最后,可以使用 IX509Extension 接口定义包含特定社区特有的信息的专用扩展。

扩展将添加到 PKCS #10 请求的 属性 结构以及 CMC 请求的 TaggedAttributes 结构中。 若要将扩展添加到任一请求格式,必须先将它们添加到 IX509Extensions 集合,并使用集合初始化 IX509AttributeExtensions 对象。 有关详细信息,请参阅 PKCS #10 扩展CMC 扩展 主题。

遗产

IX509Extension 接口继承自 IDispatch 接口。 IX509Extension 也有以下类型的成员:

方法

IX509Extension 接口具有这些方法。

 
IX509Extension::get_Critical

指定并检索一个布尔值,该值标识证书扩展是否至关重要。 (获取)
IX509Extension::get_ObjectId

检索扩展的对象标识符(OID)。
IX509Extension::get_RawData

检索包含扩展值的字节数组。 (IX509Extension.get_RawData)
IX509Extension::Initialize

使用对象标识符(OID)和包含可分辨编码规则(DER)编码扩展的字节数组初始化 IX509Extension 对象。
IX509Extension::p ut_Critical

指定并检索一个布尔值,该值标识证书扩展是否至关重要。 (放置)

要求

要求 价值
最低支持的客户端 Windows Vista [仅限桌面应用]
支持的最低服务器 Windows Server 2008 [仅限桌面应用]
目标平台 窗户
标头 certenroll.h

另请参阅

证书注册 API

ICryptAttribute

IDispatch

IX509AttributeExtensions

IX509Extensions