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 |
---|---|
|
Aucun remplissage n’a été utilisé lorsque les données ont été chiffrées. Le paramètre pPaddingInfo n’est pas utilisé. |
|
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 . |
|
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 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 |
---|---|
|
La fonction a réussi. |
|
Le paramètre dwFlags contient une valeur qui n’est pas valide. |
|
La taille spécifiée par le paramètre cbOutput n’est pas assez grande pour contenir les données déchiffrées. |
|
Le paramètre hKey n’est pas valide. |
|
Un ou plusieurs paramètres ne sont pas valides. |
|
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 |