Funzione CryptVerifyMessageHash (wincrypt.h)

La funzione CryptVerifyMessageHash verifica l'hash del contenuto specificato.

Sintassi

BOOL CryptVerifyMessageHash(
  [in]                PCRYPT_HASH_MESSAGE_PARA pHashPara,
  [in]                BYTE                     *pbHashedBlob,
  [in]                DWORD                    cbHashedBlob,
  [out]               BYTE                     *pbToBeHashed,
  [in, out]           DWORD                    *pcbToBeHashed,
  [out, optional]     BYTE                     *pbComputedHash,
  [in, out, optional] DWORD                    *pcbComputedHash
);

Parametri

[in] pHashPara

Puntatore a una struttura CRYPT_HASH_MESSAGE_PARA contenente parametri hash.

[in] pbHashedBlob

Puntatore a un buffer contenente contenuto originale e il relativo hash.

[in] cbHashedBlob

Dimensioni, in byte, del buffer hash originale.

[out] pbToBeHashed

Puntatore a un buffer per ricevere il contenuto originale con hash.

Questo parametro può essere NULL se il contenuto originale non è necessario per l'elaborazione aggiuntiva o per impostare le dimensioni del contenuto originale per scopi di allocazione della memoria. Per altre informazioni, vedere Recupero dei dati di lunghezza sconosciuta.

[in, out] pcbToBeHashed

Puntatore a un DWORD che specifica le dimensioni, in byte, del buffer pbToBeHashed . Quando la funzione restituisce, questa variabile contiene le dimensioni, in byte, del contenuto originale copiato in pbToBeHashed. Il contenuto originale non verrà restituito se questo parametro è NULL.

Nota Quando si elaborano i dati restituiti, le applicazioni devono usare le dimensioni effettive dei dati restituiti. Le dimensioni effettive possono essere leggermente inferiori rispetto alle dimensioni del buffer specificato nell'input. In base all'input, le dimensioni del buffer vengono in genere specificate abbastanza grandi per garantire che i dati di output più grandi siano adatti al buffer. Nell'output la variabile a cui punta questo parametro viene aggiornata per riflettere le dimensioni effettive dei dati copiati nel buffer.
 

[out, optional] pbComputedHash

Puntatore a un buffer per ricevere l'hash calcolato. Questo parametro può essere NULL se l'hash creato non è necessario per l'elaborazione aggiuntiva o per impostare le dimensioni del contenuto originale per scopi di allocazione della 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 pbComputedHash . Quando la funzione restituisce, questa variabile contiene le dimensioni, in byte, dell'hash creato. L'hash non viene restituito se questo parametro è NULL.

Nota Quando si elaborano i dati restituiti, le applicazioni devono usare le dimensioni effettive dei dati restituiti. Le dimensioni effettive possono essere leggermente inferiori rispetto alle dimensioni del buffer specificato nell'input. In base all'input, le dimensioni del buffer vengono in genere specificate abbastanza grandi per garantire che i dati di output più grandi siano adatti al buffer. Nell'output la variabile a cui punta questo parametro viene aggiornata per riflettere le dimensioni effettive dei dati copiati nel buffer.
 

Valore restituito

Se la funzione ha esito positivo, il valore restituito è diverso da zero (TRUE).

Se la funzione ha esito negativo, il valore restituito è zero (FALSE).

Per informazioni sull'errore estese, chiamare GetLastError.

Di seguito sono elencati i codici di errore più comunemente restituiti dalla funzione GetLastError .

Codice restituito Descrizione
CRYPT_E_UNEXPECTED_MSG_TYPE
Non un messaggio crittografico hash.
E_INVALIDARG
Il tipo di codifica del messaggio non è valido. Attualmente è supportato solo PKCS_7_ASN_ENCODING. CbSize in *pHashPara non è valido.
ERROR_MORE_DATA
Se il buffer specificato dal parametro pbToBeHashed non è sufficiente per contenere i dati restituiti, la funzione imposta il codice ERROR_MORE_DATA e archivia le dimensioni del buffer necessarie, in byte, nella variabile puntata da pcbToBeHashed.
 
Nota Gli errori delle funzioni denominate CryptCreateHash, CryptHashData e CryptGetHashParam potrebbero essere propagati a questa funzione.

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

   
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

Vedi anche

CryptVerifyDetachedMessageHash

Funzioni di messaggio semplificate