Partager via


Fonction NCryptProtectSecret (ncryptprotect.h)

La fonction NCryptProtectSecret chiffre les données dans un descripteur de protection spécifié. Appelez NCryptUnprotectSecret pour déchiffrer les données.

Syntaxe

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

Paramètres

[in] hDescriptor

Handle de l’objet de descripteur de protection. Créez le handle en appelant NCryptCreateProtectionDescriptor.

[in] dwFlags

L’indicateur peut être égal à zéro ou à la valeur suivante.

Valeur Signification
NCRYPT_SILENT_FLAG
Demande que le fournisseur de services de clé n’affiche pas d’interface utilisateur.

[in] pbData

Pointeur vers le tableau d’octets à protéger.

[in] cbData

Nombre d’octets dans le tableau binaire spécifié par le paramètre pbData .

[in, optional] pMemPara

Pointeur vers une structure NCRYPT_ALLOC_PARA que vous pouvez utiliser pour spécifier des fonctions de gestion de mémoire personnalisées. Si vous définissez cet argument sur NULL, la fonction LocalAlloc est utilisée en interne pour allouer la mémoire et votre application doit appeler LocalFree pour libérer la mémoire pointée vers le paramètre ppbProtectedBlob .

[in, optional] hWnd

Gérez la fenêtre parente de l’interface utilisateur, le cas échéant, à afficher.

[out] ppbProtectedBlob

Adresse d’une variable qui reçoit un pointeur vers les données chiffrées.

[out] pcbProtectedBlob

Pointeur vers une variable ULONG qui contient la taille, en octets, des données chiffrées pointées par la variable ppbProtectedBlob .

Valeur retournée

Retourne un code status qui indique la réussite ou l’échec de la fonction. Les codes de retour possibles incluent, sans s’y limiter, les éléments suivants.

Code de retour Description
ERROR_SUCCESS
La fonction a réussi.
NTE_INVALID_PARAMETER
Les paramètres pbData, ppbProtectedBlob et pcbProtectedBlob ne peuvent pas être NULL.

Le paramètre cbData ne peut pas être inférieur à un.

NTE_NO_MEMORY
La mémoire est insuffisante pour allouer la clé de chiffrement de contenu.
NTE_INVALID_HANDLE
Le handle spécifié par le paramètre hDescriptor n’est pas valide.

Remarques

Utilisez la fonction NCryptProtectSecret pour protéger les clés, le matériel de clé et les mots de passe. Utilisez les fonctions NCryptStreamOpenToProtect et NCryptStreamUpdate pour chiffrer des messages plus volumineux.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 8 [applications de bureau uniquement]
Serveur minimal pris en charge Windows Server 2012 [applications de bureau uniquement]
Plateforme cible Windows
En-tête ncryptprotect.h
Bibliothèque NCrypt.lib
DLL NCrypt.dll

Voir aussi

Fonctions DPAPI CNG

NCryptCreateProtectionDescriptor

NCryptUnprotectSecret