Share via


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

旗標可以是零或下列值。

意義
NCRYPT_SILENT_FLAG
要求金鑰服務提供者未顯示使用者介面。

[in] pbData

要保護的位元組陣組指標。

[in] cbData

pbData 參數所指定二進位數組中的位元元組數目。

[in, optional] pMemPara

可用來指定自定義記憶體管理功能 之NCRYPT_ALLOC_PARA 結構的指標。 如果您將此自變數設定為 NULL,LocalAlloc 函式會在內部用來配置記憶體,而且您的應用程式必須呼叫 LocalFree 來釋放 ppbProtectedBlob 參數所指向的記憶體。

[in, optional] hWnd

使用者介面的父視窗句柄,如果有的話,就會顯示。

[out] ppbProtectedBlob

接收加密數據的指標的變數位址。

[out] pcbProtectedBlob

ULONG 變數的指標,其中包含ppbProtectedBlob變數所指向之加密數據的大小,以位元組為單位。

傳回值

傳回狀態代碼,指出函式的成功或失敗。 可能的傳回碼包括但不限於下列各項。

傳回碼 Description
ERROR_SUCCESS
函式成功。
NTE_INVALID_PARAMETER
pbDatappbProtectedBlobbsProtectedBlob 參數不能是 NULL

cbData 參數不能小於一個。

NTE_NO_MEMORY
記憶體不足,無法設定內容加密金鑰。
NTE_INVALID_HANDLE
hDescriptor 參數指定的句柄無效。

備註

使用 NCryptProtectSecret 函式來保護密鑰、金鑰數據和密碼。 使用 NCryptStreamOpenToProtectNCryptStreamUpdate 函式來加密較大的訊息。

規格需求

需求
最低支援的用戶端 Windows 8 [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2012 [僅限傳統型應用程式]
目標平台 Windows
標頭 ncryptprotect.h
程式庫 NCrypt.lib
Dll NCrypt.dll

另請參閱

CNG DPAPI 函式

NCryptCreateProtectionDescriptor

NCryptUnprotectSecret