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 消息编码。 |
|
指定 X.509 证书编码。 |
[in] dwSaveAs
指定如何保存证书存储区。
此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
证书存储可以另存为不包含其他属性的 PKCS #7 签名消息。 dwEncodingType 参数指定消息编码类型。 |
|
除了编码证书、 证书吊销列表 (CRL) ,证书 信任列表 (CTL) 外,证书存储还可以另存为包含属性的序列化存储。 将忽略 dwEncodingType 参数。
注意CERT_KEY_CONTEXT_PROP_ID 属性以及相关的CERT_KEY_PROV_HANDLE_PROP_ID和CERT_KEY_SPEC_PROP_ID值不会保存到序列化存储中。
|
[in] dwSaveTo
指定保存证书存储的位置和方式。 此参数的内容确定 pvSaveToPara 参数的格式。
此参数的取值可为下列值之一:
值 | 含义 |
---|---|
|
函数将证书存储保存到文件中。 pvSaveToPara 参数包含以前使用 CreateFile 函数获取的文件的句柄。 必须使用写入权限打开文件。 成功保存操作后,文件指针位于最后一次写入操作之后。 |
|
函数将证书存储保存到文件中。 pvSaveToPara 参数包含指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要保存到的文件的路径和文件名。 函数将打开文件,将其保存到该文件,然后关闭该文件。 |
|
函数将证书存储保存到文件中。 pvSaveToPara 参数包含指向以 null 结尾的 ANSI 字符串的指针,该字符串包含要保存到的文件的路径和文件名。 函数将打开文件,将其保存到该文件,然后关闭该文件。 |
|
函数将证书存储保存到文件中。 pvSaveToPara 参数包含指向以 null 结尾的 Unicode 字符串的指针,该字符串包含要保存到的文件的路径和文件名。 函数将打开文件,将其保存到该文件,然后关闭该文件。 |
|
函数将证书存储保存到内存 BLOB。 pvSaveToPara 参数包含指向CERT_BLOB结构的指针。 在使用之前,必须初始化 CERT_BLOB的 pbData 和 cbData 成员。 返回后, cbData 将更新为实际长度。 对于仅长度计算, pbData 必须设置为 NULL。 如果 pbData 不为 NULL 且 cbData 不够大,则该函数返回零,最后一个错误代码为 ERROR_MORE_DATA。 |
[in, out] pvSaveToPara
一个指针,表示存储应保存到的位置。 此参数的内容取决于 dwSaveTo 参数的值。
[in] dwFlags
此参数保留供将来使用,必须设置为零。
返回值
如果函数成功,则函数返回非零值。
如果函数失败,则返回零。 有关扩展的错误信息,请调用 GetLastError。
请注意, CreateFile 或 WriteFile 错误可以传播到此函数。 一个可能的错误代码是 CRYPT_E_FILE_ERROR 指示写入文件时出错。
要求
最低受支持的客户端 | Windows XP [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2003 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Crypt32.lib |
DLL | Crypt32.dll |