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


Функция BCryptDeriveKeyPBKDF2 (bcrypt.h)

Функция BCryptDeriveKeyPBKDF2 наследует ключ из хэш-значения с помощью алгоритма наследования ключа PBKDF2, как определено в RFC 2898.

Синтаксис

NTSTATUS BCryptDeriveKeyPBKDF2(
  [in]           BCRYPT_ALG_HANDLE hPrf,
  [in, optional] PUCHAR            pbPassword,
  [in]           ULONG             cbPassword,
  [in, optional] PUCHAR            pbSalt,
  [in]           ULONG             cbSalt,
  [in]           ULONGLONG         cIterations,
  [out]          PUCHAR            pbDerivedKey,
  [in]           ULONG             cbDerivedKey,
  [in]           ULONG             dwFlags
);

Параметры

[in] hPrf

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

Примечание Для заполнения этого параметра можно использовать только алгоритмы, реализующие свойство BCRYPT_IS_KEYED_HASH.
 

[in, optional] pbPassword

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

Примечание Все секретные сведения, используемые в производном ключе, должны передаваться в этот буфер.

 

[in] cbPassword

Длина данных в байтах в буфере, на который указывает параметр pbPassword .

[in, optional] pbSalt

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

Примечание Все сведения, которые не являются секретными и используются в производном ключе, должны передаваться в этот буфер.
 

[in] cbSalt

Длина (в байтах) аргумента соли, на который указывает параметр pbSalt .

[in] cIterations

Число итераций для алгоритма наследования ключа PBKDF2.

[out] pbDerivedKey

Указатель на буфер, получающий производный ключ.

[in] cbDerivedKey

Длина в байтах производного ключа, возвращаемого в буфере, на который указывает параметр pbDerivedKey .

[in] dwFlags

Этот параметр зарезервирован и должен иметь нулевое значение.

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

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

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

Код возврата Описание
STATUS_SUCCESS
Функция выполнена успешно.
STATUS_INVALID_HANDLE
Дескриптор в параметре hPrf недопустим.
STATUS_INVALID_PARAMETER
Один или несколько параметров являются недопустимыми.
STATUS_NO_MEMORY
Произошел сбой выделения памяти.

Требования

Требование Значение
Минимальная версия клиента Windows 7 [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 R2 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header bcrypt.h
Библиотека Bcrypt.lib
DLL Bcrypt.dll