特性函数

可以将属性添加到证书请求,以提供 证书颁发机构 (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 请求的 TaggedAttribute 结构中。

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