Condividi tramite


Funzione NCryptVerifySignature (ncrypt.h)

La funzione NCryptVerifySignature verifica che la firma specificata corrisponda all'hash specificato.

Sintassi

SECURITY_STATUS NCryptVerifySignature(
  [in]           NCRYPT_KEY_HANDLE hKey,
  [in, optional] VOID              *pPaddingInfo,
  [in]           PBYTE             pbHashValue,
  [in]           DWORD             cbHashValue,
  [in]           PBYTE             pbSignature,
  [in]           DWORD             cbSignature,
  [in]           DWORD             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 NCryptSignHash .

[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] pbHashValue

Indirizzo di un buffer contenente l'hash dei dati. Il parametro cbHash contiene le dimensioni di questo buffer.

[in] cbHashValue

Dimensioni, in byte, del buffer pbHash .

[in] pbSignature

Indirizzo di un buffer contenente l'hash firmato dei dati. La funzione NCryptSignHash 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 NCryptSignHash viene usata per creare la firma.

[in] dwFlags

Contrassegni che modificano il comportamento della 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
NCRYPT_PAD_PKCS1_FLAG
Lo schema di riempimento PKCS1 è stato usato quando è stata creata la firma. Il parametro pPaddingInfo è un puntatore a una struttura BCRYPT_PKCS1_PADDING_INFO .
NCRYPT_PAD_PSS_FLAG
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 .
NCRYPT_SILENT_FLAG
Richiede che il provider di servizi chiave (KSP) non visualizzi alcuna interfaccia utente. Se il provider deve visualizzare l'interfaccia utente da operare, la chiamata ha esito negativo e il KSP deve impostare il codice di errore NTE_SILENT_CONTEXT come ultimo errore.

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
ERROR_SUCCESS
La funzione ha avuto esito positivo.
NTE_BAD_SIGNATURE
La firma non è stata verificata.
NTE_INVALID_HANDLE
Il parametro hKey non è valido.
NTE_NO_MEMORY
Si è verificato un errore di allocazione della memoria.
NTE_NOT_SUPPORTED
Il provider di algoritmi usato per creare l'handle di chiavi specificato dal parametro hKey non è un algoritmo di firma.

Commenti

Un servizio non deve chiamare questa funzione dalla funzione StartService. Se un servizio chiama questa funzione dalla funzione StartService, può verificarsi un deadlock e il servizio potrebbe interrompere la risposta.

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 ncrypt.h
Libreria Ncrypt.lib
DLL Ncrypt.dll

Vedi anche

NCryptSignHash