NCryptStreamOpenToUnprotect, fonction (ncryptprotect.h)

La fonction NCryptStreamOpenToUnprotect ouvre un objet stream qui peut être utilisé pour déchiffrer de grandes quantités de données dans le même descripteur de protection que celui utilisé pour le chiffrement. Appelez NCryptStreamUpdate pour effectuer le déchiffrement. Pour déchiffrer des messages plus petits tels que des clés et des mots de passe, appelez NCryptUnprotectSecret.

Syntaxe

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

Paramètres

[in] pStreamInfo

Pointeur vers une structure de NCRYPT_PROTECT_STREAM_INFO qui contient l’adresse d’une fonction de rappel définie par l’utilisateur pour recevoir les données déchiffrées et un pointeur vers des données de contexte définies par l’utilisateur.

dwFlags

Indicateur qui spécifie des informations supplémentaires pour le fournisseur de services de clé. Il peut s’agir de zéro ou de la valeur suivante.

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

[in, optional] hWnd

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

[out] phStream

Pointeur vers le handle du flux de données déchiffré.

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_BAD_FLAGS
Le paramètre dwFlags doit contenir zéro (0) ou NCRYPT_SILENT_FLAG.
NTE_INVALID_PARAMETER
Les paramètres phStream et pStreamInfo ne peuvent pas être NULL.

La fonction de rappel pointée par le membre pfnStreamOutput de la structure NCRYPT_PROTECT_STREAM_INFO pointée par le paramètre pStreamInfo ne peut pas être NULL.

NTE_NO_MEMORY
La mémoire était insuffisante pour allouer un flux de données.

Remarques

La fonction NCryptStreamOpenToUnprotect crée un objet de flux interne qui peut être utilisé pour chiffrer des messages volumineux. Vous ne pouvez pas utiliser l’objet directement. Au lieu de cela, vous devez utiliser le handle d’objet retourné par cette fonction.

Appelez cette fonction avant d’appeler la fonction NCryptStreamUpdate . Si vous chiffrez un fichier volumineux, utilisez NCryptStreamUpdate dans une boucle qui avance dans le fichier bloc par bloc, en chiffrant chaque bloc à mesure qu’il avance et en informant votre rappel lorsque chaque bloc est terminé. Pour plus d’informations, consultez NCryptStreamUpdate.

La fonction NCryptStreamOpenToUnprotect récupère la chaîne de règle de descripteur de protection non chiffrée à partir de l’en-tête de flux. La chaîne de règle est placée dans l’en-tête par la fonction NCryptStreamOpenToUnprotect .

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

NCRYPT_PROTECT_STREAM_INFO

NCryptStreamClose

NCryptStreamOpenToProtect

NCryptStreamUpdate