Функция 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
Флаг, указывающий дополнительные сведения для поставщика службы ключей. Это может быть ноль или следующее значение.
Значение | Значение |
---|---|
|
Запрашивает, чтобы поставщик службы ключей не отображал пользовательский интерфейс. |
[in, optional] hWnd
Дескриптор в родительском окне пользовательского интерфейса, если таковой есть, для отображения.
[out] phStream
Указатель на дескриптор расшифрованного потока данных.
Возвращаемое значение
Возвращает код состояния, указывающий на успешное или неудачное выполнение функции. Возможные коды возврата включают, помимо прочего, следующие.
Код возврата | Описание |
---|---|
|
Функция выполнена успешно. |
|
Параметр dwFlags должен содержать ноль (0) или NCRYPT_SILENT_FLAG. |
|
Параметры phStream и pStreamInfo не могут иметь значение NULL.
Функция обратного вызова, на которую указывает член pfnStreamOutputструктуры NCRYPT_PROTECT_STREAM_INFO , на которую указывает параметр pStreamInfo, не может иметь значение NULL. |
|
Недостаточно памяти для выделения потока данных. |
Комментарии
Функция NCryptStreamOpenToUnprotect создает внутренний объект потока, который можно использовать для шифрования больших сообщений. Нельзя использовать объект напрямую. Вместо этого необходимо использовать дескриптор объекта, возвращаемый этой функцией.
Вызовите эту функцию перед вызовом функции NCryptStreamUpdate . Если вы шифруете большой файл, используйте NCryptStreamUpdate в цикле, который перемещается по блоку файла за блоком, шифруя каждый блок по мере его продвижения и уведомляя обратный вызов после завершения каждого блока. Дополнительные сведения см. в разделе NCryptStreamUpdate.
Функция NCryptStreamOpenToUnprotect извлекает строку правила дескриптора незашифрованной защиты из заголовка потока. Строка правила помещается в заголовок с помощью функции NCryptStreamOpenToUnprotect .
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 [только классические приложения] |
Минимальная версия сервера | Windows Server 2012 [только классические приложения] |
Целевая платформа | Windows |
Header | ncryptprotect.h |
Библиотека | NCrypt.lib |
DLL | NCrypt.dll |