特性函数
可以将属性添加到证书请求中,以便向 证书颁发机构 (CA) 提供创建和颁发证书时可以使用的其他信息。
CertEnroll.dll实现以下接口来定义属性和属性集合:
- ICryptAttribute
- ICryptAttributes
- IX509Attribute
- IX509Attributes
- IX509AttributeClientId
- IX509AttributeExtensions
- IX509AttributeArchiveKey
- IX509AttributeArchiveKeyHash
- IX509AttributeCspProvider
- IX509AttributeOSVersion
- IX509AttributeRenewalCertificate
以下各节标识Xenroll.dll导出的函数以将加密属性与证书请求相关联,并讨论如何使用CertEnroll.dll替换函数或指示两个库之间不存在映射:
- addAttributeToRequestWStr
- AddAuthenticatedAttributesToPKCS7Request
- addNameValuePairToRequestWStr
- AddNameValuePairToSignatureWStr
- ClientId
- RenewalCertificate
- resetAttributes
- 相关主题
addAttributeToRequestWStr
Xenroll.dll中的 addAttributeToRequestWStr 函数向证书请求添加属性。
一般情况下,若要使用CertEnroll.dll中实现的对象向请求添加属性,可以执行以下操作:
- 创建 IX509Attributes 集合对象。
- 创建 IX509Attribute 对象并调用 Initialize 方法,从对象标识符和属性值创建属性,或使用前面列出的任何接口来定义一个更常见的属性。
- 使用 Add 方法将上一步中创建的每个新属性添加到 IX509Attributes 集合。
- 创建 ICryptAttribute 对象,并通过调用 InitializeFromValues 方法并在输入上指定 IX509Attributes 集合来初始化它。
- 通过在现有 IX509CertificateRequestPkcs10 或 IX509CertificateRequestCmc 请求对象上调用 CryptAttributes 属性来检索 ICryptAttributes 集合对象。
- 将 ICryptAttribute 对象添加到 ICryptAttributes 集合。
AddAuthenticatedAttributesToPKCS7Request
经过身份验证的属性是由签名并添加到签名的名称值对。 Xenroll.dll中的 AddAuthenticatedAttributesToPKCS7Request 函数将经过身份验证的属性数组添加到 PKCS #7 请求。
如上所述, addAttributeToRequestWStr 函数可以使用CertEnroll.dll轻松地定义属性集合并将其添加到证书请求。 但是,不能选择是否对属性进行身份验证。 注册过程会自动做出此决定。
addNameValuePairToRequestWStr
Xenroll.dll中的 addNameValuePairToRequestWStr 函数向请求添加未经身份验证的名称值配对。
可以使用 CertEnroll.dll 中的 IX509NameValuePair 接口定义名称值配对,并通过执行以下操作将名称值对集合添加到 CMC 请求对象:
- 创建并初始化 IX509CertificateRequestCmc 对象。 初始化过程创建一个空 的 IX509NameValuePairs 集合。
- 对现有 CMC 请求对象调用 NameValuePairs 属性以检索集合。
- 创建并初始化 IX509NameValuePair 对象。
- 通过调用 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 方法。
相关主题
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈