NCryptUnprotectSecret 函数 (ncryptprotect.h)
NCryptUnprotectSecret 函数将数据解密到指定的保护描述符。 调用 NCryptProtectSecret 来加密数据。
语法
SECURITY_STATUS NCryptUnprotectSecret(
[out, optional] NCRYPT_DESCRIPTOR_HANDLE *phDescriptor,
[in] DWORD dwFlags,
[in] const BYTE *pbProtectedBlob,
ULONG cbProtectedBlob,
[in, optional] const NCRYPT_ALLOC_PARA *pMemPara,
[in, optional] HWND hWnd,
[out] BYTE **ppbData,
[out] ULONG *pcbData
);
参数
[out, optional] phDescriptor
指向保护描述符句柄的指针。
[in] dwFlags
标志可以是零,也可以是以下值的按位 OR。
值 | 含义 |
---|---|
|
请求密钥服务提供程序不显示用户界面。 |
|
仅解码受保护数据 Blob 的标头。 不会进行实际解密。 |
[in] pbProtectedBlob
指向包含要解密的数据的字节数组的指针。
cbProtectedBlob
pbProtectedBlob 参数指向的数组中的字节数。
[in, optional] pMemPara
指向可用于指定自定义内存管理功能 的NCRYPT_ALLOC_PARA 结构的指针。 如果将此参数设置为 NULL, 则 LocalAlloc 函数在内部用于分配内存,并且应用程序必须调用 LocalFree 来释放 ppbData 参数指向的内存。
[in, optional] hWnd
要显示的用户界面的父窗口的句柄(如果有)。
[out] ppbData
接收指向解密数据的指针的变量的地址。
[out] pcbData
指向 ULONG 变量的指针,该变量包含 ppbData 变量指向的解密数据的大小(以字节为单位)。
返回值
返回指示函数成功或失败的状态代码。 可能的返回代码包括但不限于以下内容。
返回代码 | 说明 |
---|---|
|
函数成功。 |
|
dwFlags 参数只能包含 NCRYPT_SILENT_FLAG 或 NCRYPT_UNPROTECT_NO_DECRYPT。 |
|
pbProtectedBlob、ppbData 和 pbData 参数不能为 NULL。
cbData 参数不能小于 1。 |
注解
使用 NCryptUnprotectSecret 函数解密密钥、密钥材料和密码。 使用 NCryptStreamOpenToUnprotect 和 NCryptStreamUpdate 函数解密较大的消息。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 8 [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2012 [仅限桌面应用] |
目标平台 | Windows |
标头 | ncryptprotect.h |
Library | NCrypt.lib |
DLL | NCrypt.dll |