Функция NCryptDecrypt (ncrypt.h)
Функция NCryptDecrypt расшифровывает блок зашифрованных данных.
Синтаксис
SECURITY_STATUS NCryptDecrypt(
[in] NCRYPT_KEY_HANDLE hKey,
[in] PBYTE pbInput,
[in] DWORD cbInput,
[in, optional] VOID *pPaddingInfo,
[out] PBYTE pbOutput,
[in] DWORD cbOutput,
[out] DWORD *pcbResult,
[in] DWORD dwFlags
);
Параметры
[in] hKey
Дескриптор ключа, используемого для расшифровки данных.
[in] pbInput
Адрес буфера, содержащего данные для расшифровки. Параметр cbInput содержит размер данных для расшифровки. Дополнительные сведения см. в подразделе "Примечания".
[in] cbInput
Число байтов в буфере pbInput для расшифровки.
[in, optional] pPaddingInfo
Указатель на структуру, содержащую сведения о заполнении. Фактический тип структуры, на который указывает этот параметр, зависит от значения параметра dwFlags . Этот параметр используется только с асимметричными ключами и в противном случае должен иметь значение NULL .
[out] pbOutput
Адрес буфера, который будет получать расшифрованные данные, созданные этой функцией. Параметр cbOutput содержит размер этого буфера. Дополнительные сведения см. в подразделе "Примечания".
Если этот параметр имеет значение NULL, эта функция вычислит размер, необходимый для расшифрованных данных, и вернет размер в расположении, на который указывает параметр pcbResult .
[in] cbOutput
Размер буфера pbOutput (в байтах). Этот параметр игнорируется, если параметр pbOutput имеет значение NULL.
[out] pcbResult
Указатель на переменную DWORD , которая получает количество байтов, скопированных в буфер pbOutput . Если pbOutput имеет значение NULL, он получает размер в байтах, необходимый для расшифрованных данных.
[in] dwFlags
Флаги, изменяющие поведение функции. Допустимый набор флагов зависит от типа ключа, указанного параметром hKey .
Если ключ является асимметричным, это может быть одно из следующих значений.
Значение | Значение |
---|---|
|
При шифровании данных не использовалось заполнение. Параметр pPaddingInfo не используется. |
|
При шифровании данных использовалась схема оптимального асимметричного шифрования (OAEP). Параметр pPaddingInfo является указателем на структуру BCRYPT_OAEP_PADDING_INFO . |
|
Данные были заполнены случайным числом для округления размера блока при шифровании данных. Параметр pPaddingInfo не используется. |
Следующее значение можно использовать для любого ключа.
Возвращаемое значение
Возвращает код состояния, указывающий на успешное или неудачное выполнение функции.
Возможные коды возврата включают, помимо прочего, следующие.
Код возврата | Описание |
---|---|
|
Функция выполнена успешно. |
|
Параметр dwFlags содержит недопустимое значение. |
|
Размер, заданный параметром cbOutput , недостаточно велик для хранения расшифрованных данных. |
|
Недопустимый параметр hKey . |
|
Один или несколько параметров недопустимы. |
|
Ключ, определенный параметром hKey, не может использоваться для расшифровки. |
Комментарии
Параметры pbInput и pbOutput могут указывать на один и тот же буфер. В этом случае эта функция выполнит расшифровку на месте.
Служба не должна вызывать эту функцию из функции StartService. Если служба вызывает эту функцию из функции StartService, может возникнуть взаимоблокировка, и служба может перестать отвечать.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows Server 2008 [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | ncrypt.h |
Библиотека | Ncrypt.lib |
DLL | Ncrypt.dll |