Funzione NCryptEncrypt (ncrypt.h)
La funzione NCryptEncrypt crittografa un blocco di dati.
Sintassi
SECURITY_STATUS NCryptEncrypt(
[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 crittografare i dati.
[in] pbInput
Indirizzo di un buffer che contiene i dati da crittografare. Il parametro cbInput contiene le dimensioni dei dati da crittografare. Per altre informazioni, vedere la sezione Osservazioni.
[in] cbInput
Numero di byte nel buffer pbInput da crittografare.
[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 crittografati 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 crittografati 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 il testo di crittografia.
[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 usare spaziatura interna. Il parametro pPaddingInfo non viene usato.
Se si specifica la NCRYPT_NO_PADDING_FLAG, la funzione NCryptEncrypt crittografa solo i primi bit N, dove N è la lunghezza della chiave passata come parametro hKey . Tutti i bit dopo i primi bit N vengono ignorati. |
|
Usare lo schema OAEP (Optimal Asymmetric Encryption Padding). Il parametro pPaddingInfo è un puntatore a una struttura BCRYPT_OAEP_PADDING_INFO . |
|
I dati verranno riempiti con un numero casuale per arrotondare le dimensioni del blocco. Il parametro pPaddingInfo non viene usato. |
|
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. |
|
Il parametro dwFlags contiene un valore non valido. |
|
La chiave identificata dal parametro hKey non è stata completata o è incompleta. |
|
Le dimensioni specificate dal parametro cbOutput non sono sufficienti per contenere i dati crittografati. |
|
Il parametro hKey non è valido. |
|
Uno o più parametri non sono validi. |
Commenti
I parametri pbInput e pbOutput possono puntare allo stesso buffer. In questo caso, questa funzione eseguirà la crittografia sul posto. È possibile che le dimensioni dei dati crittografate siano maggiori delle dimensioni dei dati non crittografate, pertanto il buffer deve essere abbastanza grande per contenere i dati crittografati.
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 |