Función BCryptDeriveKeyCapi (bcrypt.h)

La función BCryptDeriveKeyCapi deriva una clave de un valor hash.

Esta función se proporciona como una función auxiliar para ayudar a migrar aplicaciones heredadas basadas en Cryptography API (CAPI) para usar Cryptography API: Next Generation (CNG). La función BCryptDeriveKeyCapi realiza la derivación de claves de una manera compatible con la función CAPI CryptDeriveKey .

Sintaxis

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

Parámetros

[in] hHash

Identificador del objeto hash. El identificador se obtiene mediante una llamada a la función BCryptCreateHash . Cuando haya terminado de usar el identificador, debe liberarlo llamando a la función BCryptDestroyHash .

[in, optional] hTargetAlg

Identificador del objeto de algoritmo. Puede ser un valor de ALG_ID compatible con la función CryptDeriveKey .

Nota Las limitaciones de CAPI y la expansión de claves impiden el uso de cualquier algoritmo hash que genere una salida superior a 512 bits.
 

[out] pbDerivedKey

Puntero al búfer que recibe la clave derivada.

[in] cbDerivedKey

Tamaño, en caracteres, de la clave derivada a la que apunta el parámetro pbDerivedKey .

[in] dwFlags

Este parámetro está reservado y debe establecerse en cero.

Valor devuelto

Devuelve un código de estado que indica el éxito o error de la función.

Entre los posibles códigos de retorno se incluyen, entre otros, los siguientes.

Código devuelto Descripción
STATUS_SUCCESS
La función se realizó correctamente.
STATUS_INVALID_HANDLE
El identificador del parámetro hHash o hTargetAlg no es válido.
STATUS_INVALID_PARAMETER
El valor del parámetro cbDerivedKey es mayor que el doble del tamaño de salida de la función hash.
STATUS_NO_MEMORY
Error de asignación de memoria.

Comentarios

Esta función no admite la funcionalidad de sal PK de la función CAPI CryptDeriveKey .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 7 [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows Server 2008 R2 [aplicaciones de escritorio | Aplicaciones para UWP]
Plataforma de destino Windows
Encabezado bcrypt.h
Library Bcrypt.lib
Archivo DLL Bcrypt.dll