Функция 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
Флаг может быть равен нулю или следующему значению.
Значение | Значение |
---|---|
|
Запрашивает, чтобы поставщик службы ключей не отображал пользовательский интерфейс. |
[in] pbData
Указатель на защищаемый массив байтов.
[in] cbData
Число байтов в двоичном массиве, заданное параметром pbData .
[in, optional] pMemPara
Указатель на структуру NCRYPT_ALLOC_PARA , которую можно использовать для указания пользовательских функций управления памятью. Если для этого аргумента задано значение NULL, функция LocalAlloc используется для внутреннего выделения памяти, и приложение должно вызвать LocalFree , чтобы освободить память, на которую указывает параметр ppbProtectedBlob .
[in, optional] hWnd
Дескриптор в родительском окне пользовательского интерфейса, если таковой есть, для отображения.
[out] ppbProtectedBlob
Адрес переменной, получающей указатель на зашифрованные данные.
[out] pcbProtectedBlob
Указатель на переменную ULONG , содержащую размер зашифрованных данных в байтах, на которые указывает переменная ppbProtectedBlob .
Возвращаемое значение
Возвращает код состояния, указывающий на успешное или неудачное выполнение функции. Возможные коды возврата включают, помимо прочего, следующие.
Код возврата | Описание |
---|---|
|
Функция выполнена успешно. |
|
Параметры pbData, ppbProtectedBlob и pcbProtectedBlob не могут иметь значение NULL.
Параметр cbData не может быть меньше единицы. |
|
Для выделения ключа шифрования содержимого недостаточно памяти. |
|
Дескриптор, указанный параметром hDescriptor , недопустим. |
Комментарии
Используйте функцию NCryptProtectSecret для защиты ключей, материала ключей и паролей. Используйте функции NCryptStreamOpenToProtect и NCryptStreamUpdate для шифрования сообщений большего размера.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 8 [только классические приложения] |
Минимальная версия сервера | Windows Server 2012 [только классические приложения] |
Целевая платформа | Windows |
Header | ncryptprotect.h |
Библиотека | NCrypt.lib |
DLL | NCrypt.dll |