特性函数

可以将属性添加到证书请求中,以便向 证书颁发机构 (CA) 提供创建和颁发证书时可以使用的其他信息。

CertEnroll.dll实现以下接口来定义属性和属性集合:

以下各节标识Xenroll.dll导出的函数以将加密属性与证书请求相关联,并讨论如何使用CertEnroll.dll替换函数或指示两个库之间不存在映射:

addAttributeToRequestWStr

Xenroll.dll中的 addAttributeToRequestWStr 函数向证书请求添加属性。

一般情况下,若要使用CertEnroll.dll中实现的对象向请求添加属性,可以执行以下操作:

  1. 创建 IX509Attributes 集合对象。
  2. 创建 IX509Attribute 对象并调用 Initialize 方法,从对象标识符和属性值创建属性,或使用前面列出的任何接口来定义一个更常见的属性。
  3. 使用 Add 方法将上一步中创建的每个新属性添加到 IX509Attributes 集合。
  4. 创建 ICryptAttribute 对象,并通过调用 InitializeFromValues 方法并在输入上指定 IX509Attributes 集合来初始化它。
  5. 通过在现有 IX509CertificateRequestPkcs10IX509CertificateRequestCmc 请求对象上调用 CryptAttributes 属性来检索 ICryptAttributes 集合对象。
  6. ICryptAttribute 对象添加到 ICryptAttributes 集合。

AddAuthenticatedAttributesToPKCS7Request

经过身份验证的属性是由签名并添加到签名的名称值对。 Xenroll.dll中的 AddAuthenticatedAttributesToPKCS7Request 函数将经过身份验证的属性数组添加到 PKCS #7 请求。

如上所述, addAttributeToRequestWStr 函数可以使用CertEnroll.dll轻松地定义属性集合并将其添加到证书请求。 但是,不能选择是否对属性进行身份验证。 注册过程会自动做出此决定。

addNameValuePairToRequestWStr

Xenroll.dll中的 addNameValuePairToRequestWStr 函数向请求添加未经身份验证的名称值配对。

可以使用 CertEnroll.dll 中的 IX509NameValuePair 接口定义名称值配对,并通过执行以下操作将名称值对集合添加到 CMC 请求对象:

  1. 创建并初始化 IX509CertificateRequestCmc 对象。 初始化过程创建一个空 的 IX509NameValuePairs 集合。
  2. 对现有 CMC 请求对象调用 NameValuePairs 属性以检索集合。
  3. 创建并初始化 IX509NameValuePair 对象。
  4. 通过调用 Add 方法,将每个新的名称值配对添加到 IX509NameValuePairs 集合。

注册过程将名称值对的集合放置在 CMC 请求的 TagedAttribute 结构中。

AddNameValuePairToSignatureWStr

Xenroll.dll中的 AddNameValuePairToSignatureWStr 函数向请求添加经过身份验证的名称值配对。 这通常用于在注册 (EOBO) 请求中指定请求者名称。

在 CertEnroll.dll 中,使用 RequesterName 属性在 EOBO 请求中指定名称。

ClientId

Xenroll.dll中的 ClientId 函数指定或检索 ClientId 属性。

使用 CertEnroll.dll中的 ClientId 属性将此属性添加到 CMC 或 PKCS #10 请求。

RenewalCertificate

Xenroll.dll中的 RenewalCertificate 函数指定或检索 RenewalCertificate 属性。

在CertEnroll.dll中,在 PKCS #7 或 PKCS ) 对象上调用 InitializeFromCertificate 时,会自动创建该对象。

resetAttributes

Xenroll.dll中的 resetAttributes 函数从请求中删除属性集合。

若要使用 CertEnroll.dll 通过索引从请求中删除属性,请在 IX509Attributes 集合上调用 Remove 方法。 若要从请求中删除所有属性,请调用 Clear 方法。

将Xenroll.dll映射到CertEnroll.dll

ICryptAttribute

ICryptAttributes

IX509Attribute

IX509Attributes

IX509NameValuePair

IX509NameValuePairs