Partager via


Fonction BCryptDeriveKeyCapi (bcrypt.h)

La fonction BCryptDeriveKeyCapi dérive une clé d’une valeur de hachage.

Cette fonction est fournie en tant que fonction d’assistance pour faciliter la migration d’applications basées sur l’API de chiffrement (CAPI) héritées pour utiliser l’API de chiffrement : Nouvelle génération (CNG). La fonction BCryptDeriveKeyCapi effectue la dérivation de clé d’une manière compatible avec la fonction CAPI CryptDeriveKey .

Syntaxe

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

Paramètres

[in] hHash

Handle de l’objet de hachage. Le handle est obtenu en appelant la fonction BCryptCreateHash . Une fois que vous avez terminé d’utiliser le handle, vous devez le libérer en appelant la fonction BCryptDestroyHash .

[in, optional] hTargetAlg

Handle de l’objet algorithme. Il peut s’agir d’une valeur ALG_ID compatible avec la fonction CryptDeriveKey .

Note Les limitations de CAPI et d’extension de clé empêchent l’utilisation de tout algorithme de hachage qui génère une sortie supérieure à 512 bits.
 

[out] pbDerivedKey

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

[in] cbDerivedKey

Taille, en caractères, de la clé dérivée pointée vers 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 hHash ou hTargetAlg n’est pas valide.
STATUS_INVALID_PARAMETER
La valeur dans le paramètre cbDerivedKey est supérieure à deux fois la taille de sortie de la fonction de hachage.
STATUS_NO_MEMORY
Un échec d’allocation de mémoire s’est produit.

Remarques

Cette fonction ne prend pas en charge la fonctionnalité de sel PK de la fonction CryptDeriveKey CAPI.

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