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