CertSaveStore 函数 (wincrypt.h)

CertSaveStore 函数将证书存储保存到文件或内存 BLOB

语法

BOOL CertSaveStore(
  [in]      HCERTSTORE hCertStore,
  [in]      DWORD      dwEncodingType,
  [in]      DWORD      dwSaveAs,
  [in]      DWORD      dwSaveTo,
  [in, out] void       *pvSaveToPara,
  [in]      DWORD      dwFlags
);

参数

[in] hCertStore

要保存的证书存储的句柄。

[in] dwEncodingType

指定证书编码类型和消息编码类型。 仅当 dwSaveAs 包含 CERT_STORE_SAVE_AS_PKCS7时才使用编码。 否则,不使用 dwMsgAndCertEncodingType 参数。

此参数可以是以下一个或多个值的组合。

含义
PKCS_7_ASN_ENCODING
65536 (0x10000)
指定 PKCS 7 消息编码。
X509_ASN_ENCODING
1 (0x1)
指定 X.509 证书编码。

[in] dwSaveAs

指定如何保存证书存储区。

此参数的取值可为下列值之一:

含义
CERT_STORE_SAVE_AS_PKCS7
2
证书存储可以另存为不包含其他属性的 PKCS #7 签名消息。 dwEncodingType 参数指定消息编码类型。
CERT_STORE_SAVE_AS_STORE
1
除了编码证书、 证书吊销列表 (CRL) ,证书 信任列表 (CTL) 外,证书存储还可以另存为包含属性的序列化存储。 将忽略 dwEncodingType 参数。
注意CERT_KEY_CONTEXT_PROP_ID 属性以及相关的CERT_KEY_PROV_HANDLE_PROP_IDCERT_KEY_SPEC_PROP_ID值不会保存到序列化存储中。
 

[in] dwSaveTo

指定保存证书存储的位置和方式。 此参数的内容确定 pvSaveToPara 参数的格式。

此参数的取值可为下列值之一:

含义
CERT_STORE_SAVE_TO_FILE
1
函数将证书存储保存到文件中。 pvSaveToPara 参数包含以前使用 CreateFile 函数获取的文件的句柄。 必须使用写入权限打开文件。 成功保存操作后,文件指针位于最后一次写入操作之后。
CERT_STORE_SAVE_TO_FILENAME
4
函数将证书存储保存到文件中。 pvSaveToPara 参数包含指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要保存到的文件的路径和文件名。 函数将打开文件,将其保存到该文件,然后关闭该文件。
CERT_STORE_SAVE_TO_FILENAME_A
3
函数将证书存储保存到文件中。 pvSaveToPara 参数包含指向以 null 结尾的 ANSI 字符串的指针,该字符串包含要保存到的文件的路径和文件名。 函数将打开文件,将其保存到该文件,然后关闭该文件。
CERT_STORE_SAVE_TO_FILENAME_W
4
函数将证书存储保存到文件中。 pvSaveToPara 参数包含指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要保存到的文件的路径和文件名。 函数将打开文件,将其保存到该文件,然后关闭该文件。
CERT_STORE_SAVE_TO_MEMORY
2
函数将证书存储保存到内存 BLOB。 pvSaveToPara 参数包含指向CERT_BLOB结构的指针。 在使用之前,必须初始化 CERT_BLOBpbDatacbData 成员。 返回后, cbData 将更新为实际长度。 对于仅长度计算, pbData 必须设置为 NULL。 如果 pbData 不为 NULLcbData 不够大,则该函数返回零,最后一个错误代码为 ERROR_MORE_DATA

[in, out] pvSaveToPara

一个指针,表示存储应保存到的位置。 此参数的内容取决于 dwSaveTo 参数的值。

[in] dwFlags

此参数保留供将来使用,必须设置为零。

返回值

如果函数成功,则函数返回非零值。

如果函数失败,则返回零。 有关扩展的错误信息,请调用 GetLastError

请注意, CreateFileWriteFile 错误可以传播到此函数。 一个可能的错误代码是 CRYPT_E_FILE_ERROR 指示写入文件时出错。

要求

   
最低受支持的客户端 Windows XP [桌面应用 | UWP 应用]
最低受支持的服务器 Windows Server 2003 [桌面应用 | UWP 应用]
目标平台 Windows
标头 wincrypt.h
Library Crypt32.lib
DLL Crypt32.dll

另请参阅

CertCloseStore

CertOpenStore

证书存储函数

CreateFile

WriteFile