Funzione CryptHashData (wincrypt.h)

Importante Questa API è deprecata. Il software nuovo e esistente deve iniziare a usare le API di nuova generazione di crittografia. Microsoft può rimuovere questa API nelle versioni future.
 
La funzione CryptHashData aggiunge dati a un oggetto hash specificato. Questa funzione e CryptHashSessionKey possono essere chiamate più volte per calcolare l'hash di flussi di dati lunghi o discontinui.

Prima di chiamare questa funzione, CryptCreateHash deve essere chiamato per creare un handle di un oggetto hash.

Sintassi

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

Parametri

[in] hHash

Handle dell'oggetto hash.

[in] pbData

Puntatore a un buffer che contiene i dati da aggiungere all'oggetto hash.

[in] dwDataLen

Numero di byte di dati da aggiungere. Questo deve essere zero se il flag di CRYPT_USERDATA è impostato.

[in] dwFlags

I valori di flag seguenti sono definiti.

Valore Significato
CRYPT_OWF_REPL_LM_HASH
0x00000001
Questo flag non viene usato.
CRYPT_USERDATA
1 (0x1)
Tutti i provider di crittografia Microsoft ignorano questo parametro. Per qualsiasi CSP che non ignora questo parametro, se questo flag è impostato, il CSP richiede all'utente di immettere direttamente i dati. Questi dati vengono aggiunti all'hash. L'applicazione non è consentita l'accesso ai dati. Questo flag può essere usato per consentire all'utente di immettere un PIN nel sistema.

Valore restituito

Se la funzione ha esito positivo, il valore restituito è TRUE.

Se la funzione ha esito negativo, il valore restituito è FALSE. Per informazioni sull'errore estese, chiamare GetLastError.

I codici di errore preceduti da "NTE" vengono generati dal particolare CSP usato. Alcuni codici di errore possibili seguono.

Codice restituito Descrizione
ERROR_INVALID_HANDLE
Uno dei parametri specifica un handle non valido.
ERROR_INVALID_PARAMETER
Uno dei parametri contiene un valore non valido. Questo è più spesso un puntatore che non è valido.
NTE_BAD_ALGID
L'handle hHash specifica un algoritmo che questo CSP non supporta.
NTE_BAD_FLAGS
Il parametro dwFlags contiene un valore non valido.
NTE_BAD_HASH
L'oggetto hash specificato dal parametro hHash non è valido.
NTE_BAD_HASH_STATE
È stato eseguito un tentativo di aggiungere dati a un oggetto hash già contrassegnato come "completato".
NTE_BAD_KEY
Viene usato un algoritmo hash con chiave, ma la chiave di sessione non è più valida. Questo errore viene generato se la chiave di sessione viene eliminata prima del completamento dell'operazione di hashing.
NTE_BAD_LEN
Il CSP non ignora il flag CRYPT_USERDATA, il flag è impostato e il parametro dwDataLen ha un valore diverso da zero.
NTE_BAD_UID
Impossibile trovare il contesto CSP specificato quando l'oggetto hash è stato creato.
NTE_FAIL
La funzione non è riuscita in modo imprevisto.
NTE_NO_MEMORY
Il provider di servizi di rete ha esaurito la memoria durante l'operazione.

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

Vedi anche

CryptCreateHash

CryptHashSessionKey

CryptSignHash

Funzioni hash e firma digitale