Поделиться через


Функция NCryptStreamOpenToUnprotect (ncryptprotect.h)

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

Синтаксис

SECURITY_STATUS NCryptStreamOpenToUnprotect(
  [in]           NCRYPT_PROTECT_STREAM_INFO *pStreamInfo,
                 DWORD                      dwFlags,
  [in, optional] HWND                       hWnd,
  [out]          NCRYPT_STREAM_HANDLE       *phStream
);

Параметры

[in] pStreamInfo

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

dwFlags

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

Значение Значение
NCRYPT_SILENT_FLAG
Запрашивает, чтобы поставщик службы ключей не отображал пользовательский интерфейс.

[in, optional] hWnd

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

[out] phStream

Указатель на дескриптор расшифрованного потока данных.

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

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

Код возврата Описание
ERROR_SUCCESS
Функция выполнена успешно.
NTE_BAD_FLAGS
Параметр dwFlags должен содержать ноль (0) или NCRYPT_SILENT_FLAG.
NTE_INVALID_PARAMETER
Параметры phStream и pStreamInfo не могут иметь значение NULL.

Функция обратного вызова, на которую указывает член pfnStreamOutputструктуры NCRYPT_PROTECT_STREAM_INFO , на которую указывает параметр pStreamInfo, не может иметь значение NULL.

NTE_NO_MEMORY
Недостаточно памяти для выделения потока данных.

Комментарии

Функция NCryptStreamOpenToUnprotect создает внутренний объект потока, который можно использовать для шифрования больших сообщений. Нельзя использовать объект напрямую. Вместо этого необходимо использовать дескриптор объекта, возвращаемый этой функцией.

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

Функция NCryptStreamOpenToUnprotect извлекает строку правила дескриптора незашифрованной защиты из заголовка потока. Строка правила помещается в заголовок с помощью функции NCryptStreamOpenToUnprotect .

Требования

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

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

Функции DPAPI CNG

NCRYPT_PROTECT_STREAM_INFO

NCryptStreamClose

NCryptStreamOpenToProtect

NCryptStreamUpdate