Funzione CryptSetHashParam (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 CryptSetHashParam personalizza le operazioni di un oggetto hash, inclusa la configurazione del contenuto hash iniziale e la selezione di un algoritmo hash specifico.

Sintassi

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

Parametri

[in] hHash

Handle per l'oggetto hash in cui impostare i parametri.

[in] dwParam

Questo parametro può avere uno dei valori seguenti.

Valore Significato
HP_HMAC_INFO.
Puntatore a una struttura HMAC_INFO che specifica l'algoritmo hash crittografico e le stringhe interne ed esterne da usare.
HP_HASHVAL.
Matrice di byte che contiene un valore hash da inserire direttamente nell'oggetto hash. Prima di impostare questo valore, è necessario determinare le dimensioni del valore hash usando la funzione CryptGetHashParam per leggere il valore HP_HASHSIZE.

Alcuni provider di servizi di crittografia (CSP) non supportano questa funzionalità.

 
Nota Alcuni tipi di provider di servizi di configurazione possono aggiungere valori aggiuntivi che possono essere impostati usando questa funzione.
 

[in] pbData

Buffer di dati di valore. Inserire i dati del valore in questo buffer prima di chiamare CryptSetHashParam. La forma di questi dati varia a seconda del numero di valore.

[in] dwFlags

Questo parametro è riservato per uso futuro e deve essere impostato su zero.

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce TRUE.

Se la funzione ha esito negativo, restituisce 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_BUSY
Il contesto CSP è attualmente usato da un altro processo.
ERROR_INVALID_PARAMETER
Uno dei parametri contiene un valore non valido. Si tratta più spesso di un puntatore che non è valido.
NTE_BAD_FLAGS
Il parametro dwFlags è diverso da zero o il buffer pbData contiene un valore non valido.
NTE_BAD_HASH
L'oggetto hash specificato dal parametro hHash non è valido.
NTE_BAD_TYPE
Il parametro dwParam specifica un valore sconosciuto.
NTE_BAD_UID
Impossibile trovare il contesto CSP specificato quando è stata creata la chiave hKey .
NTE_FAIL
La funzione non è riuscita in modo imprevisto.

Commenti

In alcuni casi, è necessario firmare un valore hash generato altrove. Questa operazione può essere eseguita usando la sequenza di operazioni seguente:

  1. Creare un oggetto hash usando CryptCreateHash.
  2. Impostare il valore HP_HASHVAL.
  3. Firmare il valore hash usando CryptSignHash e ottenere un blocco di firma digitale.
  4. Eliminare definitivamente l'oggetto hash usando CryptDestroyHash.

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

CryptDestroyHash

CryptGetHashParam

CryptSetKeyParam

CryptSignHash

HMAC_INFO

Funzioni hash e firma digitale