Funzione NCryptStreamOpenToUnprotect (ncryptprotect.h)

La funzione NCryptStreamOpenToUnprotect apre un oggetto di flusso che può essere usato per decrittografare grandi quantità di dati allo stesso descrittore di protezione usato per la crittografia. Chiamare NCryptStreamUpdate per eseguire la decrittografia. Per decrittografare messaggi più piccoli, ad esempio chiavi e password, chiamare NCryptUnprotectSecret.

Sintassi

SECURITY_STATUS NCryptStreamOpenToUnprotect(
  [in]           NCRYPT_PROTECT_STREAM_INFO *pStreamInfo,
                 DWORD                      dwFlags,
  [in, optional] HWND                       hWnd,
  [out]          NCRYPT_STREAM_HANDLE       *phStream
);

Parametri

[in] pStreamInfo

Puntatore a una struttura NCRYPT_PROTECT_STREAM_INFO che contiene l'indirizzo di una funzione di callback definita dall'utente per ricevere i dati decrittografati e un puntatore ai dati di contesto definiti dall'utente.

dwFlags

Flag che specifica informazioni aggiuntive per il provider di servizi chiave. Questo valore può essere zero o il valore seguente.

Valore Significato
NCRYPT_SILENT_FLAG
Richiede che il provider di servizi chiave non visualizzi un'interfaccia utente.

[in, optional] hWnd

Gestire la finestra padre dell'interfaccia utente, se presente, da visualizzare.

[out] phStream

Puntatore all'handle del flusso decrittografato dei dati.

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_FLAGS
Il parametro dwFlags deve contenere zero (0) o NCRYPT_SILENT_FLAG.
NTE_INVALID_PARAMETER
I parametri phStream e pStreamInfo non possono essere NULL.

La funzione di callback a cui fa riferimento il membro pfnStreamOutput della struttura NCRYPT_PROTECT_STREAM_INFO puntata dal parametro pStreamInfo non può essere NULL.

NTE_NO_MEMORY
Memoria insufficiente per allocare un flusso di dati.

Commenti

La funzione NCryptStreamOpenToUnprotect crea un oggetto flusso interno che può essere usato per crittografare messaggi di grandi dimensioni. Non è possibile usare direttamente l'oggetto. È invece necessario usare l'handle dell'oggetto restituito da questa funzione.

Chiamare questa funzione prima di chiamare la funzione NCryptStreamUpdate . Se si crittografa un file di grandi dimensioni, usare NCryptStreamUpdate in un ciclo che avanza attraverso il blocco di file, crittografando ogni blocco durante l'avanzamento e notificando il callback al termine di ogni blocco. Per altre informazioni, vedere NCryptStreamUpdate.

La funzione NCryptStreamOpenToUnprotect recupera la stringa di regola di protezione non crittografata dall'intestazione di flusso. La stringa di regola viene inserita nell'intestazione dalla funzione NCryptStreamOpenToUnprotect .

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione ncryptprotect.h
Libreria NCrypt.lib
DLL NCrypt.dll

Vedi anche

Funzioni DPAPI CNG

NCRYPT_PROTECT_STREAM_INFO

NCryptStreamClose

NCryptStreamOpenToProtect

NCryptStreamUpdate