Funzione NCryptDecrypt (ncrypt.h)
La funzione NCryptDecrypt decrittografa un blocco di dati crittografati.
Sintassi
SECURITY_STATUS NCryptDecrypt(
[in] NCRYPT_KEY_HANDLE hKey,
[in] PBYTE pbInput,
[in] DWORD cbInput,
[in, optional] VOID *pPaddingInfo,
[out] PBYTE pbOutput,
[in] DWORD cbOutput,
[out] DWORD *pcbResult,
[in] DWORD dwFlags
);
Parametri
[in] hKey
Handle della chiave da usare per decrittografare i dati.
[in] pbInput
Indirizzo di un buffer che contiene i dati da decrittografare. Il parametro cbInput contiene le dimensioni dei dati da decrittografare. Per altre informazioni, vedere la sezione Osservazioni.
[in] cbInput
Numero di byte nel buffer pbInput da decrittografare.
[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.
[out] pbOutput
Indirizzo di un buffer che riceverà i dati decrittografati generati da questa funzione. Il parametro cbOutput contiene le dimensioni di questo buffer. Per altre informazioni, vedere la sezione Osservazioni.
Se questo parametro è NULL, questa funzione calcola le dimensioni necessarie per i dati decrittografati e restituisce le dimensioni nella posizione a cui punta il parametro pcbResult .
[in] cbOutput
Dimensioni, in byte, del buffer pbOutput . Questo parametro viene ignorato se il parametro pbOutput è NULL.
[out] pcbResult
Puntatore a una variabile DWORD che riceve il numero di byte copiati nel buffer pbOutput . Se pbOutput è NULL, questa riceve le dimensioni, in byte, necessarie per i dati decrittografati.
[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 asimmetrica, questo può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Non è stato usato alcun riempimento quando i dati sono stati crittografati. Il parametro pPaddingInfo non viene usato. |
|
Lo schema OAEP (Optimal Asymmetric Encryption Padding) è stato usato quando i dati sono stati crittografati. Il parametro pPaddingInfo è un puntatore a una struttura BCRYPT_OAEP_PADDING_INFO . |
|
I dati sono stati riempiti con un numero casuale per arrotondare le dimensioni del blocco quando i dati sono stati crittografati. Il parametro pPaddingInfo non viene usato. |
Il valore seguente può essere usato per qualsiasi chiave.
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. |
|
Il parametro dwFlags contiene un valore non valido. |
|
Le dimensioni specificate dal parametro cbOutput non sono sufficienti per contenere i dati decrittografati. |
|
Il parametro hKey non è valido. |
|
Uno o più parametri non sono validi. |
|
Impossibile usare la chiave identificata dal parametro hKey per la decrittografia. |
Commenti
I parametri pbInput e pbOutput possono puntare allo stesso buffer. In questo caso, questa funzione eseguirà la decrittografia sul posto.
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 |