BCryptDeriveKeyPBKDF2, fonction (bcrypt.h)

La fonction BCryptDeriveKeyPBKDF2 dérive une clé d’une valeur de hachage à l’aide de l’algorithme de dérivation de clé PBKDF2 tel que défini par RFC 2898.

Syntaxe

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

Paramètres

[in] hPrf

Handle d’un fournisseur d’algorithme qui fournit la fonction pseudo-aléatoire. Il doit s’agir d’un fournisseur d’algorithme qui effectue un calcul de code d’authentification de message . Lorsque vous utilisez le fournisseur d’algorithme Microsoft par défaut, tout algorithme de hachage ouvert à l’aide de l’indicateur BCRYPT_ALG_HANDLE_HMAC_FLAG peut être utilisé.

Note Seuls les algorithmes qui implémentent la propriété BCRYPT_IS_KEYED_HASH peuvent être utilisés pour remplir ce paramètre.
 

[in, optional] pbPassword

Pointeur vers une mémoire tampon qui contient le paramètre de mot de passe pour l’algorithme de dérivation de clé PBKDF2.

Note Toutes les informations secrètes utilisées dans la dérivation de clé doivent être passées dans cette mémoire tampon.

 

[in] cbPassword

Longueur, en octets, des données dans la mémoire tampon pointées par le paramètre pbPassword .

[in, optional] pbSalt

Pointeur vers une mémoire tampon qui contient l’argument salt pour l’algorithme de dérivation de clé PBKDF2.

Note Toutes les informations qui ne sont pas secrètes et qui sont utilisées dans la dérivation de clé doivent être passées dans cette mémoire tampon.
 

[in] cbSalt

Longueur, en octets, de l’argument salt pointé vers le paramètre pbSalt .

[in] cIterations

Nombre d’itérations pour l’algorithme de dérivation de clé PBKDF2.

[out] pbDerivedKey

Pointeur vers une mémoire tampon qui reçoit la clé dérivée.

[in] cbDerivedKey

Longueur, en octets, de la clé dérivée retournée dans la mémoire tampon vers laquelle pointe le paramètre pbDerivedKey .

[in] dwFlags

Ce paramètre est réservé et doit être défini sur zéro.

Valeur retournée

Retourne un code status qui indique la réussite ou l’échec de la fonction.

Les codes de retour possibles incluent, sans s’y limiter, les éléments suivants.

Code de retour Description
STATUS_SUCCESS
La fonction a réussi.
STATUS_INVALID_HANDLE
Le handle dans le paramètre hPrf n’est pas valide.
STATUS_INVALID_PARAMETER
Un ou plusieurs paramètres ne sont pas valides.
STATUS_NO_MEMORY
Un échec d’allocation de mémoire s’est produit.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 7 [applications de bureau | Applications UWP]
Serveur minimal pris en charge Windows Server 2008 R2 [applications de bureau | Applications UWP]
Plateforme cible Windows
En-tête bcrypt.h
Bibliothèque Bcrypt.lib
DLL Bcrypt.dll