IX509CertificateRequest::Encode 方法(certenroll.h)
编码 方法对证书请求进行签名和编码,并创建一个密钥对(如果不存在)。 请求使用 可分辨编码规则(DER)进行编码,该规则由 抽象语法表示法一(ASN.1)标准定义。 编码过程将创建字节数组。 可以通过调用 RawData 属性来检索字节数组。
语法
HRESULT Encode();
返回值
如果函数成功,该函数将返回 S_OK。
如果函数失败,它将返回指示错误的 HRESULT 值。 可能的值包括但不限于下表中的值。 有关常见错误代码的列表,请参阅 常见 HRESULT 值。
返回代码/值 | 描述 |
---|---|
|
ArchivePrivateKey 属性已设置为 CMC 请求,但找不到密钥交换证书。 |
|
对象未初始化。 |
言论
对于 PKCS #10 请求,此方法:
- 更新私钥,或在必要时创建密钥。
- 从私钥填充公钥。
- 更新扩展,添加任何默认扩展,并考虑禁止的 OID 集合和关键扩展 OID 集合。
- 更新属性,添加默认属性并考虑已禁止的 OID 集合。
- 程序集并编码未签名的更新请求。
- 创建和编码签名。
- 对签名和未签名的请求进行编码。
对于 CMC 请求,此方法:
- 对所有内部请求对象进行编码。
- 更新外部请求对象的扩展,添加任何默认扩展,并考虑到已禁止的 OID 集合和关键扩展 OID 集合。
- 更新外部请求对象的属性,添加默认属性并考虑禁止的 OID 集合。
- 更新名称值对集合。
- 对由编码的内部请求和更新的外部请求组成的 CMC 内容进行编码。
- 为每个签名证书创建和编码签名。
- 创建和编码主签名。
- 组装编码的 CMC 内容(包括内部请求和更新的外部请求)和编码的签名。
- 将汇编的内容编码为 PKCS #7 消息。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows Vista [仅限桌面应用] |
支持的最低服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | 窗户 |
标头 | certenroll.h |
DLL | CertEnroll.dll |