Funzione BCryptSignHash (bcrypt.h)
La funzione BCryptSignHash crea una firma di un valore hash.
Sintassi
NTSTATUS BCryptSignHash(
[in] BCRYPT_KEY_HANDLE hKey,
[in, optional] VOID *pPaddingInfo,
[in] PUCHAR pbInput,
[in] ULONG cbInput,
[out] PUCHAR pbOutput,
[in] ULONG cbOutput,
[out] ULONG *pcbResult,
[in] ULONG dwFlags
);
Parametri
[in] hKey
Handle della chiave da usare per firmare l'hash.
[in, optional] pPaddingInfo
Puntatore a una struttura che contiene informazioni sulla spaziatura interna. 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] pbInput
Puntatore a un buffer contenente il valore hash da firmare. Il parametro cbInput contiene le dimensioni di questo buffer.
[in] cbInput
Numero di byte nel buffer pbInput da firmare.
[out] pbOutput
Indirizzo di un buffer per ricevere la firma prodotta da questa funzione. Il parametro cbOutput contiene le dimensioni di questo buffer.
Se questo parametro è NULL, questa funzione calcolerà le dimensioni necessarie per la firma e restituirà le dimensioni nella posizione a cui punta il parametro pcbResult .
[in] cbOutput
Dimensione, in byte, del buffer pbOutput . Questo parametro viene ignorato se il parametro pbOutput è NULL.
[out] pcbResult
Puntatore a una variabile ULONG che riceve il numero di byte copiati nel buffer pbOutput .
Se pbOutput è NULL, riceve le dimensioni, in byte, necessarie per la firma.
[in] dwFlags
Set di flag che modificano il comportamento di questa funzione. Il set di flag consentito dipende dal tipo di chiave specificato dal parametro hKey .
Può trattarsi di uno dei valori seguenti.
Valore | Significato |
---|---|
|
Usare lo schema di spaziatura interna PKCS1. Il parametro pPaddingInfo è un puntatore a una struttura BCRYPT_PKCS1_PADDING_INFO . |
|
Utilizzare lo schema di spaziatura interna probabilistica (PSS). 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, a titolo esemplificativo, quanto segue.
Codice restituito | Descrizione |
---|---|
|
La funzione ha avuto esito positivo. |
|
L'handle di chiave specificato dal parametro hKey non è valido. |
|
Il provider di algoritmi usato per creare l'handle di chiave specificato dal parametro hKey non è un algoritmo di firma. |
|
Si è verificato un errore di allocazione della memoria. |
|
Le dimensioni della memoria specificate dal parametro cbOutput non sono sufficienti per contenere la firma. |
Commenti
Questa funzione crittograferà il valore hash con la chiave specificata per creare la firma.
Per verificare successivamente che la firma sia valida, chiamare la funzione BCryptVerifySignature con una chiave identica e un hash identico dei dati originali.
A seconda delle modalità del processore supportate da un provider, BCryptSignHash può essere chiamato 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 con il flag BCRYPT_PROV_DISPATCH e tutti i puntatori passati alla funzione BCryptSignHash devono fare riferimento a memoria non inpaginata (o bloccata).
Per chiamare questa funzione in modalità kernel, usare Cng.lib, che fa parte di 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 |
Vedi anche
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per