Freigeben über


NCryptProtectSecret-Funktion (ncryptprotect.h)

Die NCryptProtectSecret-Funktion verschlüsselt Daten in einen angegebenen Schutzdeskriptor. Rufen Sie NCryptUnprotectSecret auf, um die Daten zu entschlüsseln.

Syntax

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
);

Parameter

[in] hDescriptor

Handle des Schutzdeskriptorobjekts. Erstellen Sie das Handle, indem Sie NCryptCreateProtectionDescriptor aufrufen.

[in] dwFlags

Das Flag kann null oder der folgende Wert sein.

Wert Bedeutung
NCRYPT_SILENT_FLAG
Fordert an, dass der Schlüsseldienstanbieter keine Benutzeroberfläche anzeigt.

[in] pbData

Zeiger auf das zu schützende Bytearray.

[in] cbData

Anzahl der Bytes in dem binären Array, das durch den pbData-Parameter angegeben wird.

[in, optional] pMemPara

Zeiger auf eine NCRYPT_ALLOC_PARA Struktur, die Sie verwenden können, um benutzerdefinierte Speicherverwaltungsfunktionen anzugeben. Wenn Sie dieses Argument auf NULL festlegen, wird die LocalAlloc-Funktion intern verwendet, um Arbeitsspeicher zuzuweisen, und Ihre Anwendung muss LocalFree aufrufen, um Arbeitsspeicher freizugeben, auf den der ppbProtectedBlob-Parameter verweist.

[in, optional] hWnd

Handle bis zum übergeordneten Fenster der Benutzeroberfläche, falls vorhanden, das angezeigt werden soll.

[out] ppbProtectedBlob

Adresse einer Variablen, die einen Zeiger auf die verschlüsselten Daten empfängt.

[out] pcbProtectedBlob

Zeiger auf eine ULONG-Variable , die die Größe der verschlüsselten Daten in Bytes enthält, auf die die Variable ppbProtectedBlob verweist.

Rückgabewert

Gibt einen status Code zurück, der den Erfolg oder Fehler der Funktion angibt. Mögliche Rückgabecodes sind u. a. die folgenden:

Rückgabecode Beschreibung
ERROR_SUCCESS
Die Funktion war erfolgreich.
NTE_INVALID_PARAMETER
Die Parameter pbData, ppbProtectedBlob und pcbProtectedBlob können nicht NULL sein.

Der cbData-Parameter darf nicht kleiner als eins sein.

NTE_NO_MEMORY
Es ist nicht genügend Arbeitsspeicher vorhanden, um den Inhaltsverschlüsselungsschlüssel zuzuweisen.
NTE_INVALID_HANDLE
Das vom hDescriptor-Parameter angegebene Handle ist ungültig.

Hinweise

Verwenden Sie die NCryptProtectSecret-Funktion , um Schlüssel, Schlüsselmaterial und Kennwörter zu schützen. Verwenden Sie die Funktionen NCryptStreamOpenToProtect und NCryptStreamUpdate , um größere Nachrichten zu verschlüsseln.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 8 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2012 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile ncryptprotect.h
Bibliothek NCrypt.lib
DLL NCrypt.dll

Weitere Informationen

CNG DPAPI-Funktionen

NCryptCreateProtectionDescriptor

NCryptUnprotectSecret