Funzione BCryptVerifySignature (bcrypt.h)
La funzione BCryptVerifySignature verifica che la firma specificata corrisponda all'hash specificato.
Sintassi
NTSTATUS BCryptVerifySignature(
[in] BCRYPT_KEY_HANDLE hKey,
[in, optional] VOID *pPaddingInfo,
[in] PUCHAR pbHash,
[in] ULONG cbHash,
[in] PUCHAR pbSignature,
[in] ULONG cbSignature,
[in] ULONG dwFlags
);
Parametri
[in] hKey
Handle della chiave da usare per decrittografare la firma. Questa deve essere una chiave identica o la parte pubblica della coppia di chiavi usata per firmare i dati con la funzione BCryptSignHash .
[in, optional] pPaddingInfo
Puntatore a una struttura che contiene informazioni di riempimento. Il tipo effettivo di struttura a cui punta questo parametro dipende dal valore del parametro dwFlags . Questo parametro viene usato solo con chiavi asimmetriche e deve essere NULL in caso contrario.
[in] pbHash
Indirizzo di un buffer contenente l'hash dei dati. Il parametro cbHash contiene le dimensioni di questo buffer.
[in] cbHash
Dimensioni, in byte, del buffer pbHash .
[in] pbSignature
Indirizzo di un buffer contenente l'hash firmato dei dati. La funzione BCryptSignHash viene usata per creare la firma. Il parametro cbSignature contiene le dimensioni di questo buffer.
[in] cbSignature
Dimensioni, in byte, del buffer pbSignature . La funzione BCryptSignHash viene usata per creare la firma.
[in] dwFlags
Set di flag che modificano il comportamento di questa funzione. Il set consentito di flag dipende dal tipo di chiave specificato dal parametro hKey .
Se la chiave è una chiave simmetrica, questo parametro non viene usato e deve essere zero.
Se la chiave è una chiave asimmetrica, questo può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Lo schema di riempimento PKCS1 è stato usato quando è stata creata la firma. Il parametro pPaddingInfo è un puntatore a una struttura BCRYPT_PKCS1_PADDING_INFO . |
|
Lo schema di spaziatura della firma probabilistica (PSS) è stato usato quando è stata creata la firma. Il parametro pPaddingInfo è un puntatore a una struttura BCRYPT_PSS_PADDING_INFO . |
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. |
|
La firma non è stata verificata. |
|
Si è verificato un errore di allocazione della memoria. |
|
Uno dei parametri forniti non è valido. |
|
L'handle della chiave specificato dal parametro hKey non è valido. |
|
Il provider di algoritmi usato per creare l'handle di chiavi specificato dal parametro hKey non è un algoritmo di firma. |
Commenti
Questa funzione calcola la firma con la chiave specificata e quindi confronta il valore della firma calcolata con il valore di firma specificato.
Per usare questa funzione, è necessario eseguire l'hash dei dati usando lo stesso algoritmo hash usato per creare il valore hash firmato. Se applicabile, è necessario specificare anche lo stesso schema di riempimento specificato al momento della creazione della firma.
A seconda delle modalità di processore supportate da un provider, È possibile chiamare BCryptVerifySignature 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 hKey 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 BCryptVerifySignature 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 |