NCryptEncrypt, fonction (ncrypt.h)
La fonction NCryptEncrypt chiffre un bloc de données.
Syntaxe
SECURITY_STATUS NCryptEncrypt(
[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 chiffrer les données.
[in] pbInput
Adresse d’une mémoire tampon qui contient les données à chiffrer. Le paramètre cbInput contient la taille des données à chiffrer. Pour plus d'informations, consultez la section Notes.
[in] cbInput
Nombre d’octets dans la mémoire tampon pbInput à chiffrer.
[in, optional] pPaddingInfo
Pointeur vers une structure qui contient des informations de remplissage. Le type réel de structure vers lequel ce paramètre pointe 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 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 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, cette opération reçoit la taille, en octets, requise pour le texte chiffré.
[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 |
---|---|
|
N’utilisez aucun remplissage. Le paramètre pPaddingInfo n’est pas utilisé.
Si vous spécifiez le NCRYPT_NO_PADDING_FLAG, la fonction NCryptEncrypt chiffre uniquement les N premiers bits, où N est la longueur de la clé passée en tant que paramètre hKey . Tous les bits après les N premiers bits sont ignorés. |
|
Utilisez le schéma OAEP (Optimal Asymmetric Encryption Padding). Le paramètre pPaddingInfo est un pointeur vers une structure BCRYPT_OAEP_PADDING_INFO . |
|
Les données seront complétées avec un nombre aléatoire pour compléter la taille du bloc. Le paramètre pPaddingInfo n’est pas utilisé. |
|
Demande que le fournisseur de services clés (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 |
---|---|
|
La fonction a réussi. |
|
Le paramètre dwFlags contient une valeur qui n’est pas valide. |
|
La clé identifiée par le paramètre hKey n’a pas été finalisée ou est incomplète. |
|
La taille spécifiée par le paramètre cbOutput n’est pas suffisamment grande pour contenir les données chiffrées. |
|
Le paramètre hKey n’est pas valide. |
|
Un ou plusieurs paramètres ne sont pas valides. |
Remarques
Les paramètres pbInput et pbOutput peuvent pointer vers la même mémoire tampon. Dans ce cas, cette fonction effectue le chiffrement en place. Il est possible que la taille des données chiffrées soit supérieure à la taille des données non chiffrées, de sorte que la mémoire tampon doit être suffisamment grande pour contenir les données chiffrées.
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 interblocage 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 |