Función BCryptDeriveKeyPBKDF2 (bcrypt.h)

La función BCryptDeriveKeyPBKDF2 deriva una clave de un valor hash mediante el algoritmo de derivación de claves PBKDF2 tal y como se define en RFC 2898.

Sintaxis

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
);

Parámetros

[in] hPrf

Identificador de un proveedor de algoritmos que proporciona la función pseudoaleatoriedad. Debe ser un proveedor de algoritmos que realice un cálculo de código de autenticación de mensajes. Cuando se usa el proveedor de algoritmos predeterminado de Microsoft, se puede usar cualquier algoritmo hash abierto mediante la marca BCRYPT_ALG_HANDLE_HMAC_FLAG .

Nota Solo se pueden usar algoritmos que implementan la propiedad BCRYPT_IS_KEYED_HASH para rellenar este parámetro.
 

[in, optional] pbPassword

Puntero a un búfer que contiene el parámetro de contraseña para el algoritmo de derivación de claves PBKDF2.

Nota Cualquier información secreta usada en la derivación de claves debe pasarse en este búfer.

 

[in] cbPassword

Longitud, en bytes, de los datos del búfer al que apunta el parámetro pbPassword .

[in, optional] pbSalt

Puntero a un búfer que contiene el argumento salt para el algoritmo de derivación de claves PBKDF2.

Nota Cualquier información que no sea secreta y que se use en la derivación de claves debe pasarse en este búfer.
 

[in] cbSalt

Longitud, en bytes, del argumento salt al que apunta el parámetro pbSalt .

[in] cIterations

Recuento de iteraciones para el algoritmo de derivación de claves PBKDF2.

[out] pbDerivedKey

Puntero a un búfer que recibe la clave derivada.

[in] cbDerivedKey

Longitud, en bytes, de la clave derivada devuelta en el búfer 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 códigos de retorno posibles 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 hPrf no es válido.
STATUS_INVALID_PARAMETER
Uno o más parámetros no son válidos.
STATUS_NO_MEMORY
Error de asignación de memoria.

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