Funzione BCryptFinishHash (bcrypt.h)
La funzione BCryptFinishHash recupera il valore hash o Message Authentication Code (MAC) per i dati accumulati dalle chiamate precedenti a BCryptHashData.
Sintassi
NTSTATUS BCryptFinishHash(
[in, out] BCRYPT_HASH_HANDLE hHash,
[out] PUCHAR pbOutput,
[in] ULONG cbOutput,
[in] ULONG dwFlags
);
Parametri
[in, out] hHash
Handle dell'oggetto hash o MAC da usare per calcolare l'hash o MAC. Questo handle viene ottenuto chiamando la funzione BCryptCreateHash . Dopo aver chiamato questa funzione, l'handle hash passato a questa funzione non può essere usato di nuovo tranne in una chiamata a BCryptDestroyHash.
[out] pbOutput
Puntatore a un buffer che riceve il valore hash o MAC. Il parametro cbOutput contiene le dimensioni di questo buffer.
[in] cbOutput
Dimensioni, in byte, del buffer pbOutput . Questa dimensione deve corrispondere esattamente alle dimensioni del valore hash o MAC.
Le dimensioni possono essere ottenute chiamando la funzione BCryptGetProperty per ottenere la proprietà BCRYPT_HASH_LENGTH . In questo modo verranno fornite le dimensioni del valore hash o MAC per l'algoritmo specificato.
[in] dwFlags
Set di flag che modificano il comportamento di questa funzione. Non sono attualmente definiti flag, quindi questo parametro deve essere zero.
Valore restituito
Restituisce un codice di stato che indica l'esito positivo o negativo della funzione.
I codici restituiti possibili includono, ma non sono limitati a, i seguenti.
Codice restituito | Descrizione |
---|---|
|
La funzione ha avuto esito positivo. |
|
L'handle hash nel parametro hHash non è valido. Dopo che la funzione BCryptFinishHash è stata chiamata per un handle hash, tale handle non può essere riutilizzato. |
|
Uno o più parametri non sono validi. Ciò include il caso in cui cbOutput non è la stessa dimensione dell'hash. |
Commenti
A seconda delle modalità di processore supportate da un provider, È possibile chiamare BCryptFinishHash dalla modalità utente o dalla modalità kernel. I chiamanti in modalità kernel possono essere eseguiti in PASSIVE_LEVELIRQL o DISPATCH_LEVEL IRQL. Se il livello IRQL corrente è DISPATCH_LEVEL, l'handle fornito nel parametro hHash deve essere derivato da un handle di algoritmo restituito da un provider aperto usando il flag BCRYPT_PROV_DISPATCH e tutti i puntatori passati alla funzione BCryptFinishHash devono fare riferimento a memoria non paginata (o bloccata).
Per chiamare questa funzione in modalità kernel, usare Cng.lib, che fa parte del Driver Development Kit (DDK). Windows Server 2008 e Windows Vista: Per chiamare questa funzione in modalità kernel, usare Ksecdd.lib.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | bcrypt.h |
Libreria | Bcrypt.lib |
DLL | Bcrypt.dll |