Condividi tramite


Funzione NCryptProtectSecret (ncryptprotect.h)

La funzione NCryptProtectSecret crittografa i dati in un descrittore di protezione specificato. Chiamare NCryptUnprotectSecret per decrittografare i dati.

Sintassi

SECURITY_STATUS NCryptProtectSecret(
  [in]           NCRYPT_DESCRIPTOR_HANDLE hDescriptor,
  [in]           DWORD                    dwFlags,
  [in]           const BYTE               *pbData,
  [in]           ULONG                    cbData,
  [in, optional] const NCRYPT_ALLOC_PARA  *pMemPara,
  [in, optional] HWND                     hWnd,
  [out]          BYTE                     **ppbProtectedBlob,
  [out]          ULONG                    *pcbProtectedBlob
);

Parametri

[in] hDescriptor

Handle dell'oggetto descrittore di protezione. Creare l'handle chiamando NCryptCreateProtectionDescriptor.

[in] dwFlags

Il flag 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] pbData

Puntatore alla matrice di byte da proteggere.

[in] cbData

Numero di byte nella matrice binaria specificata dal parametro pbData .

[in, optional] pMemPara

Puntatore a una struttura NCRYPT_ALLOC_PARA che è possibile usare per specificare funzioni di gestione della memoria personalizzate. Se si imposta questo argomento su NULL, la funzione LocalAlloc viene usata internamente per allocare memoria e l'applicazione deve chiamare LocalFree per rilasciare la memoria a cui punta il parametro ppbProtectedBlob .

[in, optional] hWnd

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

[out] ppbProtectedBlob

Indirizzo di una variabile che riceve un puntatore ai dati crittografati.

[out] pcbProtectedBlob

Puntatore a una variabile ULONG contenente le dimensioni, in byte, dei dati crittografati a cui punta la variabile ppbProtectedBlob .

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
ERROR_SUCCESS
La funzione ha avuto esito positivo.
NTE_INVALID_PARAMETER
I parametri pbData, ppbProtectedBlob e pcbProtectedBlob non possono essere NULL.

Il parametro cbData non può essere minore di uno.

NTE_NO_MEMORY
Memoria insufficiente per allocare la chiave di crittografia del contenuto.
NTE_INVALID_HANDLE
L'handle specificato dal parametro hDescriptor non è valido.

Commenti

Usare la funzione NCryptProtectSecret per proteggere chiavi, materiale della chiave e password. Usare le funzioni NCryptStreamOpenToProtect e NCryptStreamUpdate per crittografare messaggi di dimensioni maggiori.

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

NCryptCreateProtectionDescriptor

NCryptUnprotectSecret