Fonction CryptGetHashParam (wincrypt.h)

Important Cette API est déconseillée. Les logiciels nouveaux et existants doivent commencer à utiliser les API de nouvelle génération de chiffrement. Microsoft peut supprimer cette API dans les versions ultérieures.
 
La fonction CryptGetHashParam récupère les données qui régissent les opérations d’un objet de hachage. La valeur de hachage réelle peut être récupérée à l’aide de cette fonction.

Syntaxe

BOOL CryptGetHashParam(
  [in]      HCRYPTHASH hHash,
  [in]      DWORD      dwParam,
  [out]     BYTE       *pbData,
  [in, out] DWORD      *pdwDataLen,
  [in]      DWORD      dwFlags
);

Paramètres

[in] hHash

Handle de l’objet de hachage à interroger.

[in] dwParam

Type de requête. Ce paramètre peut être défini sur l’une des requêtes suivantes.

Valeur Signification
HP_ALGID
Algorithme de hachage
Une ALG_ID qui indique l’algorithme spécifié lors de la création de l’objet de hachage. Pour obtenir la liste des algorithmes de hachage, consultez CryptCreateHash.
HP_HASHSIZE
Taille de la valeur de hachage
Valeur DWORD indiquant le nombre d’octets dans la valeur de hachage. Cette valeur varie en fonction de l’algorithme de hachage. Les applications doivent récupérer cette valeur juste avant la valeur HP_HASHVAL afin que la quantité de mémoire appropriée puisse être allouée.
HP_HASHVAL
Valeur de hachage
Valeur de hachage ou hachage de message pour l’objet de hachage spécifié par hHash. Cette valeur est générée en fonction des données fournies à l’objet de hachage précédemment via les fonctions CryptHashData et CryptHashSessionKey .

La fonction CryptGetHashParam termine le hachage. Une fois que CryptGetHashParam a été appelé, plus aucune donnée ne peut être ajoutée au hachage. Les appels supplémentaires à CryptHashData ou CryptHashSessionKey échouent. Une fois l’application terminée avec le hachage, CryptDestroyHash doit être appelé pour détruire l’objet de hachage.

 
Note Les fournisseurs de solutions cloud peuvent ajouter d’autres valeurs que cette fonction peut interroger.
 

[out] pbData

Pointeur vers une mémoire tampon qui reçoit les données de valeur spécifiées. La forme de ces données varie en fonction du nombre de valeurs.

Ce paramètre peut avoir la valeur NULL pour déterminer la taille de mémoire requise.

[in, out] pdwDataLen

Pointeur vers une valeur DWORD spécifiant la taille, en octets, de la mémoire tampon pbData . Lorsque la fonction retourne, la valeur DWORD contient le nombre d’octets stockés dans la mémoire tampon.

Si pbData a la valeur NULL, définissez la valeur de pdwDataLen sur zéro.

Note Lors du traitement des données retournées dans la mémoire tampon, les applications doivent utiliser la taille réelle des données retournées. La taille réelle peut être légèrement inférieure à la taille de la mémoire tampon spécifiée lors de l’entrée. (En entrée, les tailles de mémoire tampon sont généralement spécifiées suffisamment grandes pour garantir que les données de sortie les plus volumineuses possibles s’intègrent dans la mémoire tampon.) En sortie, la variable pointée par ce paramètre est mise à jour pour refléter la taille réelle des données copiées dans la mémoire tampon.
 

[in] dwFlags

Réservé à une utilisation future et doit être égal à zéro.

Valeur retournée

Si la fonction réussit, la valeur de retour est TRUE.

Si la fonction échoue, la valeur de retour est FALSE. Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Les codes d’erreur préfacés par « NTE » sont générés par le fournisseur de solutions cloud que vous utilisez. Certains codes d’erreur possibles suivent.

Code de retour Description
ERROR_INVALID_HANDLE
L’un des paramètres spécifie un handle qui n’est pas valide.
ERROR_INVALID_PARAMETER
L’un des paramètres contient une valeur qui n’est pas valide. Il s’agit le plus souvent d’un pointeur qui n’est pas valide.
ERROR_MORE_DATA
Si la mémoire tampon spécifiée par le paramètre pbData n’est pas assez grande pour contenir les données retournées, la fonction définit le code ERROR_MORE_DATA et stocke la taille de mémoire tampon requise, en octets, dans la variable pointée par pdwDataLen.
NTE_BAD_FLAGS
Le paramètre dwFlags est différent de zéro.
NTE_BAD_HASH
L’objet de hachage spécifié par le paramètre hHash n’est pas valide.
NTE_BAD_TYPE
Le paramètre dwParam spécifie un numéro de valeur inconnu.
NTE_BAD_UID
Le contexte CSP spécifié lors de la création du hachage est introuvable.

Configuration requise

   
Client minimal pris en charge Windows XP [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2003 [applications de bureau uniquement]
Plateforme cible Windows
En-tête wincrypt.h
Bibliothèque Advapi32.lib
DLL Advapi32.dll

Voir aussi

ALG_ID

CryptCreateHash

CryptDestroyHash

CryptGetKeyParam

CryptHashData

CryptHashSessionKey

CryptSetHashParam

Fonctions de hachage et de signature numérique