IX509Enrollment::CreatePFX 方法 (certenroll.h)

CreatePFX 方法创建个人信息交换 (PFX) 消息。 消息包含在字节数组中,该字节数组使用 可辨别编码规则 (DER) 进行编码,如抽象语法表示法 One (ASN.1) 标准所定义。 DER 编码的字节数组由纯二进制序列或 Unicode 编码的字符串表示。

语法

HRESULT CreatePFX(
  [in]  BSTR             strPassword,
  [in]  PFXExportOptions ExportOptions,
  [in]  EncodingType     Encoding,
  [out] BSTR             *pValue
);

参数

[in] strPassword

包含 PFX 消息密码的 BSTR 变量。 这可以为 NULL ,表示未使用密码。 使用完密码后,通过调用 SecureZeroMemory 函数将其从内存中清除。 有关保护密码的详细信息,请参阅 处理密码

[in] ExportOptions

一个 PFXExportOptions 枚举值,该值指定导出证书链的量。 只能导出证书、没有根证书的证书链或整个链。

[in] Encoding

一个 EncodingType 枚举值,该值指定应用于 DER 编码消息的 Unicode 编码的类型。 默认值为 XCN_CRYPT_STRING_BASE64

[out] pValue

指向包含 DER 编码 PFX 消息的 BSTR 变量的指针。

返回值

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

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

返回代码/值 说明
CERTSRV_E_PROPERTY_EMPTY
找不到证书。
HRESULT_FROM_WIN32(ERROR_FILE_NOT_FOUND)
找不到证书链。
OLE_E_BLANK
注册对象尚未初始化。

注解

PFX 格式也称为 PKCS #12。 CreatePFX 方法:

  • 打开默认提供程序的内存中的证书存储。
  • 将已安装的证书添加到存储区或生成证书链,并为其添加链接。
  • 根据指定的导出选项,将证书和私钥导出到 PFX 消息。
  • 使用 DER 对导出的消息进行编码。

在调用此方法之前,必须通过调用以下方法之一来初始化 IX509Enrollment 对象。

此外,必须从 Enroll 方法成功返回。

要求

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

另请参阅

IX509Enrollment