Fonction CryptHashToBeSigned (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 CryptHashToBeSigned calcule le hachage du contenu encodé à partir d’un certificat signé et encodé. Le hachage est effectué uniquement sur le contenu encodé « à signer » et sa signature.

Syntaxe

BOOL CryptHashToBeSigned(
  [in]      HCRYPTPROV_LEGACY hCryptProv,
  [in]      DWORD             dwCertEncodingType,
  [in]      const BYTE        *pbEncoded,
  [in]      DWORD             cbEncoded,
  [out]     BYTE              *pbComputedHash,
  [in, out] DWORD             *pcbComputedHash
);

Paramètres

[in] hCryptProv

Ce paramètre n’est pas utilisé et doit être défini sur NULL.

Windows Server 2003 et Windows XP : Handle du fournisseur de services de chiffrement (CSP) à utiliser pour calculer le hachage. Le type de données de ce paramètre est HCRYPTPROV.

Sauf s’il existe une raison forte de passer un fournisseur de chiffrement spécifique dans hCryptProv, zéro est passé. La transmission de zéro entraîne l’acquisition du fournisseur RSA ou DSS ( Digital Signature Standard ) par défaut avant d’effectuer des opérations de hachage, de vérification de signature ou de chiffrement de destinataire.

[in] dwCertEncodingType

Spécifie le type d’encodage utilisé. Il est toujours acceptable de spécifier les types d’encodage de certificat et de message en les combinant avec une opération OR au niveau du bit, comme illustré dans l’exemple suivant :

X509_ASN_ENCODING | PKCS_7_ASN_ENCODING

Les types d’encodage actuellement définis sont les suivants :

  • X509_ASN_ENCODING
  • PKCS_7_ASN_ENCODING

[in] pbEncoded

Adresse d’une mémoire tampon qui contient le contenu à hacher. Il s’agit de la forme encodée d’un CERT_SIGNED_CONTENT_INFO.

[in] cbEncoded

Taille en octets de la mémoire tampon.

[out] pbComputedHash

Pointeur vers une mémoire tampon pour recevoir le hachage calculé.

Ce paramètre peut être NULL pour définir la taille de ces informations à des fins d’allocation de mémoire. Pour plus d’informations, consultez Récupération de données de longueur inconnue.

[in, out] pcbComputedHash

Pointeur vers un DWORD qui contient la taille, en octets, de la mémoire tampon pointée par le paramètre pbComputedHash . Lorsque la fonction retourne, le DWORD contient le nombre d’octets stockés dans la mémoire tampon.

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. Lors de l’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 tiennent 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.
 

Valeur retournée

Si la fonction réussit, la fonction retourne une valeur différente de zéro (TRUE).

Si la fonction échoue, elle retourne zéro (FALSE). Pour obtenir des informations d’erreur étendues, appelez GetLastError.

Note Les erreurs des fonctions appelées CryptCreateHash, CryptGetHashParam et CryptHashData peuvent être propagées à cette fonction. Cette fonction contient les codes d’erreur suivants.
 
Code de retour Description
ERROR_MORE_DATA
Si la mémoire tampon spécifiée par le paramètre pbComputedHash n’est pas suffisamment 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 pcbComputedHash.
ERROR_FILE_NOT_FOUND
Type d’encodage de certificat non valide. Actuellement, seule X509_ASN_ENCODING est prise en charge.
NTE_BAD_ALGID
L’identificateur d’objet (OID) de l’algorithme de signature ne correspond pas à un algorithme de hachage connu ou pris en charge.
 

Si la fonction échoue, GetLastError peut renvoyer une erreur d’encodage/décodage ASN.1 ( Abstract Syntax Notation One ). Pour plus d’informations sur ces erreurs, consultez Valeurs de retour d’encodage/décodage ASN.1.

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 Crypt32.lib
DLL Crypt32.dll

Voir aussi

CryptHashCertificate

CryptHashPublicKeyInfo

Gestion des données Functions