IX509CertificateRequest::Encode 方法 (certenroll.h)

Encode 方法对证书请求进行签名和编码,如果密钥对不存在,则创建密钥对。 根据抽象语法表示法 1 ( ASN.1 标准) 定义,使用 可辨别编码规则 (DER) 对请求进行编码。 编码过程创建字节数组。 可以通过调用 RawData 属性来检索字节数组。

语法

HRESULT Encode();

返回值

如果函数成功,该函数将返回 S_OK

如果函数失败,它将返回一个 指示错误的 HRESULT 值。 可能的值包括(但并不限于)下表中的项。 有关常见错误代码的列表,请参阅 通用 HRESULT 值

返回代码/值 说明
CERTSRV_E_ARCHIVED_KEY_REQUIRED
已为 CMC 请求设置了 ArchivePrivateKey 属性,但找不到密钥交换证书。
OLE_E_BLANK
对象未初始化。

注解

对于 PKCS #10 请求,此方法:

  • 汇报私钥或根据需要创建密钥。
  • 从私钥填充公钥。
  • 汇报扩展,添加任何默认扩展,并考虑抑制的 OID 集合和关键扩展 OID 集合。
  • 汇报属性,添加默认属性并考虑抑制的 OID 集合。
  • 对无符号更新的请求进行汇编和编码。
  • 创建签名并对其进行编码。
  • 对签名和无符号请求进行编码。

对于 CMC 请求,此方法:

  • 对所有内部请求对象进行编码。
  • 汇报外部请求对象的扩展,添加任何默认扩展,并考虑抑制的 OID 集合和关键扩展 OID 集合。
  • 汇报外部请求对象的属性,添加默认属性并考虑抑制的 OID 集合。
  • 汇报名称/值对集合。
  • 对由编码的内部请求和更新的外部请求组成的 CMC 内容进行编码。
  • 为每个签名证书创建和编码签名。
  • 创建和编码主签名。
  • 将编码的 CMC 内容 (包括内部请求和更新的外部请求) 以及编码的签名。
  • 将汇编的内容编码为 PKCS #7 消息。

要求

要求
最低受支持的客户端 Windows Vista [仅限桌面应用]
最低受支持的服务器 Windows Server 2008 [仅限桌面应用]
目标平台 Windows
标头 certenroll.h
DLL CertEnroll.dll

另请参阅

IX509CertificateRequest

IX509CertificateRequestCertificate

IX509CertificateRequestCmc

IX509CertificateRequestPkcs10

IX509CertificateRequestPkcs7

IX509SignatureInformation