IX509CertificateRequestPkcs10::InitializeFromPublicKey 方法 (certenroll.h)
InitializeFromPublicKey 方法使用 IX509PublicKey 对象和模板(可选)初始化 null 签名的证书请求。
语法
HRESULT InitializeFromPublicKey(
[in] X509CertificateEnrollmentContext Context,
[in] IX509PublicKey *pPublicKey,
[in, optional] BSTR strTemplateName
);
参数
[in] Context
一个 X509CertificateEnrollmentContext 枚举值,该值指定请求的证书是面向最终用户、计算机还是代表计算机操作的管理员。
[in] pPublicKey
指向表示公钥的 IX509PublicKey 接口的指针。
[in, optional] strTemplateName
一个 BSTR 变量,该变量包含模板的公用名 (CN) ,如 Active Directory 或点状十进制 对象标识符中所示。 这是一个可选参数。
返回值
如果函数成功,该函数将返回 S_OK。
如果函数失败,它将返回一个 指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 通用 HRESULT 值。
返回代码/值 | 说明 |
---|---|
|
已初始化证书请求对象。 |
注解
如果指定模板, InitializeFromPublicKey 方法将执行以下操作:
- 将可选模板中指定的扩展(如果有)添加到 IX509Extensions 集合。
- 创建 CriticalExtensions 集合,并使用默认XCN_OID_KEY_USAGE填充该集合,并XCN_OID_BASIC_CONSTRAINTS2对象标识符。 如果指定了模板并指示这些 OID 不重要,则会从集合中删除这些 OID。 添加模板标记为关键型的 OID(如果有)。
- 如果模板支持对称算法,则设置 SmimeCapabilities 属性。
- 如果模板需要离散签名算法 OID,则设置 AlternateSignatureAlgorithm 属性。
- 创建 IX509SignatureInformation 对象。
- 如果在模板中指定了算法并在 IX509SignatureInformation 对象上设置该算法,则创建哈希算法 OID。
- 如果在模板中指定了算法并在 IX509SignatureInformation 对象上设置该算法,则创建非对称加密算法 OID。
无论是否指定模板,如果未指定 CSPInformations 属性,方法将从计算机上安装的提供程序创建 ICspInformations 集合。
方法不会创建私钥。 使用此方法意味着请求是 null 签名的。 因此, 方法在 IX509SignatureInformation 对象上设置 NullSigned 属性。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | certenroll.h |
DLL | CertEnroll.dll |