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


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

Функция BCryptDeriveKeyCapi наследует ключ от хэш-значения.

Эта функция предоставляется в качестве вспомогательной функции, помогающей перенести устаревшие приложения на основе API шифрования (CAPI) для использования API шифрования следующего поколения (CNG). Функция BCryptDeriveKeyCapi выполняет наследование ключа способом, совместимым с функцией CAPI CryptDeriveKey .

Синтаксис

NTSTATUS BCryptDeriveKeyCapi(
  [in]           BCRYPT_HASH_HANDLE hHash,
  [in, optional] BCRYPT_ALG_HANDLE  hTargetAlg,
  [out]          PUCHAR             pbDerivedKey,
  [in]           ULONG              cbDerivedKey,
  [in]           ULONG              dwFlags
);

Параметры

[in] hHash

Дескриптор хэш-объекта. Дескриптор получается путем вызова функции BCryptCreateHash . Завершив использование дескриптора, необходимо освободить его, вызвав функцию BCryptDeкислоумHash .

[in, optional] hTargetAlg

Дескриптор объекта алгоритма. Это может быть ALG_ID значение, совместимое с функцией CryptDeriveKey .

Примечание Ограничения CAPI и расширения ключа не позволяют использовать хэш-алгоритм, который создает выходные данные размером более 512 бит.
 

[out] pbDerivedKey

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

[in] cbDerivedKey

Размер (в символах) производного ключа, на который указывает параметр pbDerivedKey .

[in] dwFlags

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

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

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

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

Код возврата Описание
STATUS_SUCCESS
Функция выполнена успешно.
STATUS_INVALID_HANDLE
Дескриптор в параметре hHash или hTargetAlg недопустим.
STATUS_INVALID_PARAMETER
Значение в параметре cbDerivedKey больше чем в два раза превышает размер выходных данных хэш-функции.
STATUS_NO_MEMORY
Произошел сбой выделения памяти.

Комментарии

Эта функция не поддерживает функциональность соли PK функции CAPI CryptDeriveKey .

Требования

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