Condividi tramite


Funzione CryptGetHashParam (wincrypt.h)

Importante Questa API è deprecata. Il software nuovo ed esistente deve iniziare a usare le API cryptography next generation. Microsoft potrebbe rimuovere questa API nelle versioni future.
 
La funzione CryptGetHashParam recupera i dati che regolano le operazioni di un oggetto hash. È possibile recuperare il valore hash effettivo usando questa funzione.

Sintassi

BOOL CryptGetHashParam(
  [in]      HCRYPTHASH hHash,
  [in]      DWORD      dwParam,
  [out]     BYTE       *pbData,
  [in, out] DWORD      *pdwDataLen,
  [in]      DWORD      dwFlags
);

Parametri

[in] hHash

Handle dell'oggetto hash su cui eseguire query.

[in] dwParam

Tipo di query. Questo parametro può essere impostato su una delle query seguenti.

Valore Significato
HP_ALGID
Algoritmo hash
Un ALG_ID che indica l'algoritmo specificato al momento della creazione dell'oggetto hash. Per un elenco degli algoritmi hash, vedere CryptCreateHash.
HP_HASHSIZE
Dimensioni del valore hash
Valore DWORD che indica il numero di byte nel valore hash. Questo valore varia a seconda dell'algoritmo hash. Le applicazioni devono recuperare questo valore subito prima del valore HP_HASHVAL in modo che sia possibile allocare la quantità corretta di memoria.
HP_HASHVAL
Valore hash
Valore hash o hash del messaggio per l'oggetto hash specificato da hHash. Questo valore viene generato in base ai dati forniti all'oggetto hash in precedenza tramite le funzioni CryptHashData e CryptHashSessionKey.

La funzione CryptGetHashParam completa l'hash. Dopo aver chiamato CryptGetHashParam , non è possibile aggiungere altri dati all'hash. Le chiamate aggiuntive a CryptHashData o CryptHashSessionKey hanno esito negativo. Al termine dell'applicazione con l'hash, CryptDestroyHash deve essere chiamato per eliminare definitivamente l'oggetto hash.

 
Nota I provider di servizi di configurazione possono aggiungere altri valori su cui questa funzione può eseguire query.
 

[out] pbData

Puntatore a un buffer che riceve i dati di valore specificati. La forma di questi dati varia a seconda del numero di valore.

Questo parametro può essere NULL per determinare le dimensioni di memoria necessarie.

[in, out] pdwDataLen

Puntatore a un valore DWORD che specifica le dimensioni, in byte, del buffer pbData . Quando la funzione viene restituita, il valore DWORD contiene il numero di byte archiviati nel buffer.

Se pbData è NULL, impostare il valore di pdwDataLen su zero.

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

[in] dwFlags

Riservato per uso futuro e deve essere zero.

Valore restituito

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

Se la funzione ha esito negativo, il valore restituito è FALSE. Per informazioni sugli errori estesi, chiamare GetLastError.

I codici di errore preceduti da "NTE" vengono generati dal CSP specifico in uso. Di seguito sono riportati alcuni possibili codici di errore.

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. Si tratta più spesso di un puntatore che non è valido.
ERROR_MORE_DATA
Se il buffer specificato dal parametro pbData non è sufficientemente grande da contenere i dati restituiti, la funzione imposta il codice ERROR_MORE_DATA e archivia le dimensioni del buffer necessarie, in byte, nella variabile a cui punta pdwDataLen.
NTE_BAD_FLAGS
Il parametro dwFlags è diverso da zero.
NTE_BAD_HASH
L'oggetto hash specificato dal parametro hHash non è valido.
NTE_BAD_TYPE
Il parametro dwParam specifica un numero di valore sconosciuto.
NTE_BAD_UID
Impossibile trovare il contesto CSP specificato al momento della creazione dell'hash.

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

Vedi anche

ALG_ID

CryptCreateHash

CryptDestroyHash

CryptGetKeyParam

CryptHashData

CryptHashSessionKey

CryptSetHashParam

Funzioni hash e firma digitale