CryptSetHashParam, fonction (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 CryptSetHashParam personnalise les opérations d’un objet de hachage, notamment la configuration du contenu de hachage initial et la sélection d’un algorithme de hachage spécifique.

Syntaxe

BOOL CryptSetHashParam(
  [in] HCRYPTHASH hHash,
  [in] DWORD      dwParam,
  [in] const BYTE *pbData,
  [in] DWORD      dwFlags
);

Paramètres

[in] hHash

Handle de l’objet de hachage sur lequel définir des paramètres.

[in] dwParam

Ce paramètre peut prendre les valeurs suivantes.

Valeur Signification
HP_HMAC_INFO.
Pointeur vers une structure HMAC_INFO qui spécifie l’algorithme de hachage de chiffrement et les chaînes internes et externes à utiliser.
HP_HASHVAL.
Tableau d’octets qui contient une valeur de hachage à placer directement dans l’objet de hachage. Avant de définir cette valeur, la taille de la valeur de hachage doit être déterminée à l’aide de la fonction CryptGetHashParam pour lire la valeur HP_HASHSIZE.

Certains fournisseurs de services de chiffrement (CSP) ne prennent pas en charge cette fonctionnalité.

 
Note Certains types csp peuvent ajouter des valeurs supplémentaires qui peuvent être définies à l’aide de cette fonction.
 

[in] pbData

Mémoire tampon de données de valeur. Placez les données de valeur dans cette mémoire tampon avant d’appeler CryptSetHashParam. La forme de ces données varie en fonction du nombre de valeurs.

[in] dwFlags

Ce paramètre est réservé à une utilisation ultérieure et doit être défini sur zéro.

Valeur retournée

Si la fonction réussit, la fonction retourne TRUE.

Si la fonction échoue, elle retourne 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_BUSY
Le contexte CSP est actuellement utilisé par un autre processus.
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.
NTE_BAD_FLAGS
Le paramètre dwFlags est différent de zéro ou la mémoire tampon pbData contient une valeur qui n’est pas valide.
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 une valeur inconnue.
NTE_BAD_UID
Le contexte CSP qui a été spécifié lors de la création de la clé hKey est introuvable.
NTE_FAIL
La fonction a échoué d’une manière inattendue.

Remarques

Parfois, une valeur de hachage qui a été générée ailleurs doit être signée. Pour ce faire, utilisez la séquence d’opérations suivante :

  1. Créez un objet de hachage à l’aide de CryptCreateHash.
  2. Définissez la valeur HP_HASHVAL.
  3. Signez la valeur de hachage à l’aide de CryptSignHash et obtenez un bloc de signature numérique.
  4. Détruisez l’objet de hachage à l’aide de CryptDestroyHash.

Configuration requise

Condition requise Valeur
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

CryptCreateHash

CryptDestroyHash

CryptGetHashParam

CryptSetKeyParam

CryptSignHash

HMAC_INFO

Fonctions de hachage et de signature numérique