Функция 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

Флаг может быть равен нулю или побитовой или из следующих значений.

Значение Значение
NCRYPT_SILENT_FLAG
Запрашивает, чтобы поставщик службы ключей не отображал пользовательский интерфейс.
NCRYPT_UNPROTECT_NO_DECRYPT
Декодирует только заголовок защищенного большого двоичного объекта данных. Фактическая расшифровка не выполняется.

[in] pbProtectedBlob

Указатель на массив байтов, содержащий данные для расшифровки.

cbProtectedBlob

Число байтов в массиве, на который указывает параметр pbProtectedBlob .

[in, optional] pMemPara

Указатель на структуру NCRYPT_ALLOC_PARA , которую можно использовать для указания пользовательских функций управления памятью. Если для этого аргумента задано значение NULL, функция LocalAlloc используется внутренне для выделения памяти, и приложение должно вызвать LocalFree , чтобы освободить память, на которую указывает параметр ppbData .

[in, optional] hWnd

Дескриптор к родительскому окну пользовательского интерфейса, если таковой есть, для отображения.

[out] ppbData

Адрес переменной, получающей указатель на расшифрованные данные.

[out] pcbData

Указатель на переменную ULONG , содержащую размер в байтах расшифрованных данных, на которые указывает переменная ppbData .

Возвращаемое значение

Возвращает код состояния, указывающий на успешное или неудачное выполнение функции. Возможные коды возврата включают, помимо прочего, следующие.

Код возврата Описание
ERROR_SUCCESS
Функция выполнена успешно.
NTE_BAD_FLAGS
Параметр dwFlags может содержать только NCRYPT_SILENT_FLAG или NCRYPT_UNPROTECT_NO_DECRYPT.
NTE_INVALID_PARAMETER
Параметры pbProtectedBlob, ppbData и pcbData не могут иметь значение NULL.

Параметр cbData не может быть меньше единицы.

Комментарии

Используйте функцию NCryptUnprotectSecret для расшифровки ключей, материала ключа и паролей. Используйте функции NCryptStreamOpenToUnprotect и NCryptStreamUpdate для расшифровки больших сообщений.

Требования

Требование Значение
Минимальная версия клиента Windows 8 [только классические приложения]
Минимальная версия сервера Windows Server 2012 [только классические приложения]
Целевая платформа Windows
Header ncryptprotect.h
Библиотека NCrypt.lib
DLL NCrypt.dll

См. также раздел

Функции DPAPI CNG

NCryptProtectSecret