Funzione CryptHashMessage (wincrypt.h)
La funzione CryptHashMessage crea un hash del messaggio.
Sintassi
BOOL CryptHashMessage(
[in] PCRYPT_HASH_MESSAGE_PARA pHashPara,
[in] BOOL fDetachedHash,
[in] DWORD cToBeHashed,
[in] const BYTE * [] rgpbToBeHashed,
[in] DWORD [] rgcbToBeHashed,
[out] BYTE *pbHashedBlob,
[in, out] DWORD *pcbHashedBlob,
[out, optional] BYTE *pbComputedHash,
[in, out, optional] DWORD *pcbComputedHash
);
Parametri
[in] pHashPara
Puntatore a una struttura CRYPT_HASH_MESSAGE_PARA contenente i parametri hash.
[in] fDetachedHash
Se questo parametro è impostato su TRUE, viene codificato solo pbComputedHash in pbHashedBlob. In caso contrario, sia rgpbToBeHashed che pbComputedHash sono codificati.
[in] cToBeHashed
Numero di elementi di matrice in rgpbToBeHashed e rgcbToBeHashed. Questo parametro può essere solo uno a meno che fDetachedHash sia impostato su TRUE.
[in] rgpbToBeHashed
Matrice di puntatori ai buffer che contengono il contenuto da hashare.
[in] rgcbToBeHashed
Matrice di dimensioni, in byte, dei buffer a cui punta rgpbToBeHashed.
[out] pbHashedBlob
Puntatore a un buffer per ricevere il messaggio hash codificato per la trasmissione.
Questo parametro può essere NULL se il messaggio hash non è necessario per l'elaborazione aggiuntiva o per impostare le dimensioni del messaggio hash per scopi di allocazione della memoria. Un messaggio hash non verrà restituito se questo parametro è NULL. Per altre informazioni, vedere Recupero dei dati di lunghezza sconosciuta.
[in, out] pcbHashedBlob
Puntatore a un DWORD che specifica le dimensioni, in byte, del buffer a cui punta il parametro pbHashedBlob . Quando la funzione restituisce, questa variabile contiene le dimensioni, in byte, del messaggio decrittografato copiato in pbHashedBlob. Questo parametro deve essere l'indirizzo di una DWORD e non NULL o la lunghezza del buffer non verrà restituita.
[out, optional] pbComputedHash
Puntatore a un buffer per ricevere il valore hash appena creato. Questo parametro può essere NULL se l'hash appena creato non è necessario per l'elaborazione aggiuntiva o per impostare le dimensioni dell'hash a scopo di allocazione di memoria. Per altre informazioni, vedere Recupero dei dati di lunghezza sconosciuta.
[in, out, optional] pcbComputedHash
Puntatore a un DWORD che specifica le dimensioni, in byte, del buffer a cui punta il parametro pbComputedHash . Quando la funzione restituisce, questa DWORD contiene le dimensioni, in byte, dell'hash appena creato copiato in pbComputedHash.
Valore restituito
Se la funzione ha esito positivo, la funzione restituisce non zero (TRUE).
Se la funzione ha esito negativo, restituisce zero (FALSE). Per informazioni sull'errore estese, chiamare GetLastError.
Codice restituito | Descrizione |
---|---|
|
Il tipo di codifica del messaggio non è valido. Attualmente è supportato solo PKCS_7_ASN_ENCODING. CbSize in *pHashPara non è valido. |
|
Se il buffer specificato dal parametro pbHashedBlob non è sufficiente per contenere i dati restituiti, la funzione imposta il codice di ERROR_MORE_DATA e archivia le dimensioni del buffer necessarie, in byte, nella variabile puntata da pbHashedBlob. |
Se la funzione ha esito negativo, GetLastError potrebbe restituire un errore di codifica astratta Notation One (ASN.1). Per informazioni su questi errori, vedere Codifica ASN.1/Decodifica dei valori restituiti.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | wincrypt.h |
Libreria | Crypt32.lib |
DLL | Crypt32.dll |