IX509CertificateRequestCmc2::InitializeFromInnerRequestTemplate 方法 (certenroll.h)
InitializeFromInnerRequestTemplate 方法从内部请求对象和模板初始化证书请求。
语法
HRESULT InitializeFromInnerRequestTemplate(
[in] IX509CertificateRequest *pInnerRequest,
[in] IX509EnrollmentPolicyServer *pPolicyServer,
[in] IX509CertificateTemplate *pTemplate
);
参数
[in] pInnerRequest
指向表示内部请求对象的 IX509CertificateRequest 接口的指针。 这可以是 PKCS #10 或 CMC 请求。
[in] pPolicyServer
指向 IX509EnrollmentPolicyServer 对象的指针,该对象表示证书注册策略 (CEP) 服务器,该服务器包含 pTemplate 参数指定的模板。
[in] pTemplate
指向 IX509CertificateTemplate 对象的指针,该对象表示在初始化期间要使用的模板。
返回值
如果函数成功,该函数将返回 S_OK。
如果函数失败,它将返回指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 常见 HRESULT 值。
返回代码/值 | 说明 |
---|---|
|
传递给 pInnerRequest 参数的请求对象必须是 PKCS #10 或 CMC 请求。 |
|
pInnerRequest、pPolicyServer 和 pTemplate 参数不能为 NULL。 |
|
请求对象已初始化。 |
注解
通过指定模板,可以将信息添加到外部请求对象中,这些信息可能不包含在内部请求中。 例如,如果内部请求不包含必要的扩展,则可以提供包含的模板。
InitializeFromInnerRequestTemplate 方法:
- 创建空的 ICryptAttributes 集合。
- 创建一个空 的 IX509NameValuePairs 集合。
- 创建一个空 的 IX509Extensions 集合。
- 为关键扩展创建 IObjectIds 集合,并将XCN_OID_KEY_USAGE和XCN_OID_BASIC_CONSTRAINTS2对象标识符 (OID) 。
- 创建要从请求对象中取消的 OID 的空 IObjectIds 集合。
- 创建空的 ISignerCertificates 集合。
- 从模板中检索私钥标志。
- 设置 ArchivePrivateKey 属性(如果模板标志或设置需要)。
- 如果指定了加密算法,则从模板中检索加密算法,并设置 EncryptionAlgorithm 属性。
- 设置 EncryptionStrength 属性(如果可能)。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 7 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 R2 [仅限桌面应用] |
目标平台 | Windows |
标头 | certenroll.h |