Partager via


Fonction NCryptDecrypt (ncrypt.h)

La fonction NCryptDecrypt déchiffre un bloc de données chiffrées.

Syntaxe

SECURITY_STATUS NCryptDecrypt(
  [in]           NCRYPT_KEY_HANDLE hKey,
  [in]           PBYTE             pbInput,
  [in]           DWORD             cbInput,
  [in, optional] VOID              *pPaddingInfo,
  [out]          PBYTE             pbOutput,
  [in]           DWORD             cbOutput,
  [out]          DWORD             *pcbResult,
  [in]           DWORD             dwFlags
);

Paramètres

[in] hKey

Handle de la clé à utiliser pour déchiffrer les données.

[in] pbInput

Adresse d’une mémoire tampon qui contient les données à déchiffrer. Le paramètre cbInput contient la taille des données à déchiffrer. Pour plus d'informations, consultez la section Notes.

[in] cbInput

Nombre d’octets dans la mémoire tampon pbInput à déchiffrer.

[in, optional] pPaddingInfo

Pointeur vers une structure qui contient des informations de remplissage. Le type réel de structure vers lequel pointe ce paramètre dépend de la valeur du paramètre dwFlags . Ce paramètre est utilisé uniquement avec des clés asymétriques et doit être NULL dans le cas contraire.

[out] pbOutput

Adresse d’une mémoire tampon qui recevra les données déchiffrées produites par cette fonction. Le paramètre cbOutput contient la taille de cette mémoire tampon. Pour plus d'informations, consultez la section Notes.

Si ce paramètre a la valeur NULL, cette fonction calcule la taille nécessaire pour les données déchiffrées et retourne la taille à l’emplacement indiqué par le paramètre pcbResult .

[in] cbOutput

Taille, en octets, de la mémoire tampon pbOutput . Ce paramètre est ignoré si le paramètre pbOutput a la valeur NULL.

[out] pcbResult

Pointeur vers une variable DWORD qui reçoit le nombre d’octets copiés dans la mémoire tampon pbOutput . Si pbOutput a la valeur NULL, il reçoit la taille, en octets, requise pour les données déchiffrées.

[in] dwFlags

Indicateurs qui modifient le comportement de la fonction. Le jeu d’indicateurs autorisé dépend du type de clé spécifié par le paramètre hKey .

Si la clé est une clé asymétrique, il peut s’agir de l’une des valeurs suivantes.

Valeur Signification
NCRYPT_NO_PADDING_FLAG
Aucun remplissage n’a été utilisé lorsque les données ont été chiffrées. Le paramètre pPaddingInfo n’est pas utilisé.
NCRYPT_PAD_OAEP_FLAG
Le schéma OAEP (Optimal Asymmetric Encryption Padding) a été utilisé lorsque les données ont été chiffrées. Le paramètre pPaddingInfo est un pointeur vers une structure BCRYPT_OAEP_PADDING_INFO .
NCRYPT_PAD_PKCS1_FLAG
Les données ont été complétées avec un nombre aléatoire pour compléter la taille du bloc lorsque les données ont été chiffrées. Le paramètre pPaddingInfo n’est pas utilisé.
 

La valeur suivante peut être utilisée pour n’importe quelle clé.

Valeur Signification
NCRYPT_SILENT_FLAG
Demande que le fournisseur de services de clé (KSP) n’affiche aucune interface utilisateur. Si le fournisseur doit afficher l’interface utilisateur pour fonctionner, l’appel échoue et le KSP doit définir le code d’erreur NTE_SILENT_CONTEXT comme dernière erreur.

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 contient une valeur qui n’est pas valide.
NTE_BUFFER_TOO_SMALL
La taille spécifiée par le paramètre cbOutput n’est pas assez grande pour contenir les données déchiffrées.
NTE_INVALID_HANDLE
Le paramètre hKey n’est pas valide.
NTE_INVALID_PARAMETER
Un ou plusieurs paramètres ne sont pas valides.
NTE_PERM
La clé identifiée par le paramètre hKey ne peut pas être utilisée pour le déchiffrement.

Remarques

Les paramètres pbInput et pbOutput peuvent pointer vers la même mémoire tampon. Dans ce cas, cette fonction effectue le déchiffrement sur place.

Un service ne doit pas appeler cette fonction à partir de sa fonction StartService. Si un service appelle cette fonction à partir de sa fonction StartService, un blocage peut se produire et le service peut cesser de répondre.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista [applications de bureau | applications UWP]
Serveur minimal pris en charge Windows Server 2008 [applications de bureau | applications UWP]
Plateforme cible Windows
En-tête ncrypt.h
Bibliothèque Ncrypt.lib
DLL Ncrypt.dll

Voir aussi

NCryptEncrypt