Funzione NCryptSignHash (ncrypt.h)
La funzione NCryptSignHash crea una firma di un valore hash.
Sintassi
SECURITY_STATUS NCryptSignHash(
[in] NCRYPT_KEY_HANDLE hKey,
[in, optional] VOID *pPaddingInfo,
[in] PBYTE pbHashValue,
[in] DWORD cbHashValue,
[out] PBYTE pbSignature,
[in] DWORD cbSignature,
[out] DWORD *pcbResult,
[in] DWORD dwFlags
);
Parametri
[in] hKey
Handle della chiave da usare per firmare l'hash.
[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
Puntatore a un buffer contenente il valore hash da firmare. Il parametro cbInput contiene le dimensioni di questo buffer.
[in] cbHashValue
Numero di byte nel buffer pbHashValue da firmare.
[out] pbSignature
Indirizzo di un buffer per ricevere la firma prodotta da questa funzione. Il parametro cbSignature contiene le dimensioni di questo buffer.
Se questo parametro è NULL, questa funzione calcola le dimensioni necessarie per la firma e restituisce le dimensioni nella posizione a cui punta il parametro pcbResult .
[in] cbSignature
Dimensioni, in byte, del buffer pbSignature . Questo parametro viene ignorato se il parametro pbSignature è NULL.
[out] pcbResult
Puntatore a una variabile DWORD che riceve il numero di byte copiati nel buffer pbSignature .
Se pbSignature è NULL, questa riceve le dimensioni, in byte, necessarie per 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 impostato su zero.
Se la chiave è una chiave asimmetrica, questo può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Usare lo schema di riempimento PKCS1. Il parametro pPaddingInfo è un puntatore a una struttura BCRYPT_PKCS1_PADDING_INFO . |
|
Usare lo schema di riempimento della firma probabilistica (PSS). Il parametro pPaddingInfo è un puntatore a una struttura BCRYPT_PSS_PADDING_INFO . |
|
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 |
---|---|
|
La funzione ha avuto esito positivo. |
|
La chiave rappresentata dal parametro hKey non supporta la firma. |
|
Il parametro dwFlags contiene un valore non valido. |
|
Il parametro hKey non è valido. |
|
Uno o più parametri non sono validi. |
|
Si è verificato un errore di allocazione della memoria. |
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 |