DecryptMessage (NTLM) (fonction)

La fonction DecryptMessage (NTLM) déchiffre un message. Certains packages ne chiffrent et ne déchiffrent pas les messages, mais effectuent et vérifient plutôt un hachaged’intégrité.

Notes

EncryptMessage (NTLM) et DecryptMessage (NTLM) peuvent être appelés en même temps à partir de deux threads différents dans un contexte SSPI ( Security Support Provider Interface ) unique si un thread est en cours de chiffrement et que l’autre déchiffre. Si plusieurs threads chiffrent, ou si plusieurs threads déchiffrent, chaque thread doit obtenir un contexte unique.

Syntaxe

SECURITY_STATUS SEC_Entry DecryptMessage(
  _In_    PCtxtHandle    phContext,
  _Inout_ PSecBufferDesc pMessage,
  _In_    ULONG          MessageSeqNo,
  _Out_   PULONG         pfQOP
);

Paramètres

phContext [ dans]

Handle du contexte de sécurité à utiliser pour déchiffrer le message.

pMessage [ in, out]

Pointeur vers une structure SecBufferDesc . En entrée, la structure fait référence à une ou plusieurs structures SecBuffer . Au moins une de ces données doit être de type SECBUFFER _ . Cette mémoire tampon contient le message chiffré. Le message chiffré est déchiffré sur place, remplaçant le contenu d’origine de sa mémoire tampon.

MessageSeqNo [ dans]

Numéro de séquence attendu par l’application de transport, le cas échéant. Si l’application de transport ne conserve pas les numéros séquentiels, ce paramètre doit avoir la valeur zéro.

pfQOP [ à]

Pointeur vers une variable de type ULong qui reçoit des indicateurs spécifiques au package qui indiquent la qualité de la protection.

Ce paramètre peut être l’indicateur suivant.

Valeur Signification
SECQOP_WRAP_NO_ENCRYPT
Le message n’a pas été chiffré, mais un en-tête ou un code de fin a été créé.
[!Note]
KERB_WRAP_NO_ENCRYPT a la même valeur et la même signification.

Valeur de retour

Si la fonction vérifie que le message a été reçu dans l’ordre correct, la fonction retourne SEC _ E _ OK.

Si la fonction ne parvient pas à déchiffrer le message, elle retourne l’un des codes d’erreur suivants.

Code de retour Description
s _ E _ message incomplet _ Les données de la mémoire tampon d’entrée sont incomplètes. L’application doit lire plus de données à partir du serveur et appeler DecryptMessage (NTLM) .
SEC _ E _ hors _ _ séquence Le message n’a pas été reçu dans l’ordre correct.

Remarques

Parfois, une application lit les données du tiers distant, tente de les déchiffrer à l’aide de DecryptMessage (NTLM) et découvre que DecryptMessage (NTLM) a réussi, mais les tampons de sortie sont vides. Il s’agit d’un comportement normal, et les applications doivent être en mesure de les gérer.

Windows XP : Cette fonction était également connue sous le nom de UnsealMessage. Les applications doivent désormais utiliser uniquement DecryptMessage (NTLM) .

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows [Applications de bureau XP uniquement]
Serveur minimal pris en charge Windows Serveur 2003 [ applications de bureau uniquement]
En-tête SSPI. h (include Security. h)
Bibliothèque Secur32. lib
DLL Secur32.dll

Voir aussi