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