cryptDestroyKey 函数 (wincrypt.h)
重要 此 API 已弃用。 新的和现有的软件应开始使用 加密下一代 API。 Microsoft 可能会在将来的版本中删除此 API。
如果句柄引用会话密钥,或已导入加密 服务提供程序 (CSP) 通过 CryptImportKey 的公钥,则此函数会销毁密钥并释放该密钥使用的内存。 许多 CSP 会在释放密钥之前覆盖保存密钥的内存。 但是,此函数不会销毁基础 公钥/私钥对 。 仅销毁句柄。
语法
BOOL CryptDestroyKey(
[in] HCRYPTKEY hKey
);
参数
[in] hKey
要销毁的密钥的句柄。
返回值
如果该函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 有关扩展的错误信息,请调用 GetLastError。
以“NTE”开头的错误代码由使用的特定 CSP 生成。 下表列出了一些可能的错误代码。
返回代码 | 说明 |
---|---|
|
hKey 指定的密钥对象当前正在使用,无法销毁。 |
|
hKey 参数指定无效的句柄。 |
|
hKey 参数包含无效的值。 |
|
hKey 参数不包含密钥的有效句柄。 |
|
找不到创建密钥时指定的 CSP 上下文。 |
注解
密钥同时占用操作系统的内存空间和 CSP 的内存空间。 某些 CSP 是在内存资源有限的硬件中实现的。 应用程序必须在使用 CryptDestroyKey 函数时销毁所有密钥。
在使用 CryptReleaseContext 函数释放该 CSP 句柄之前,必须先销毁使用特定 CSP 创建或导入的所有密钥句柄。
示例
有关使用 CryptDestroyKey 函数的示例,请参阅 示例 C 程序:创建和哈希处理会话密钥。
要求
最低受支持的客户端 | Windows XP [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2003 [仅限桌面应用] |
目标平台 | Windows |
标头 | wincrypt.h |
Library | Advapi32.lib |
DLL | Advapi32.dll |