Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La fonction DecryptMessage (Kerberos) déchiffre un message. Certains packages ne chiffrent pas et déchiffrent les messages, mais effectuent et vérifient plutôt un hachage d’intégrité.
Remarque
EncryptMessage (Kerberos) et DecryptMessage (Kerberos) 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 chiffré et que l’autre déchiffre. Si plusieurs threads chiffrent ou plusieurs threads sont déchiffrés, 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 vers le contexte de sécurité à utiliser pour déchiffrer le message.
pMessage [entrée, sortie]
Pointeur vers une structure SecBufferDesc . Lors de l’entrée, la structure fait référence à une ou plusieurs structures SecBuffer qui peuvent être de type SECBUFFER_DATA. La mémoire tampon contient le message chiffré. Le message chiffré est déchiffré en place, en 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 de numéros de séquence, ce paramètre doit être défini sur zéro.
pfQOP [sortie]
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 | Sens |
|---|---|
| SECQOP_WRAP_NO_ENCRYPT | il n’a pas été chiffré, mais un en-tête ou une bande-annonce a été produit. |
Remarque
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 la séquence correcte, 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 | Descriptif |
|---|---|
| SEC_E_INCOMPLETE_MESSAGE | Les données de la mémoire tampon d’entrée sont incomplètes. L’application doit lire davantage de données à partir du serveur et appeler à nouveau DecryptMessage (Kerberos). |
| SEC_E_OUT_OF_SEQUENCE | Le message n’a pas été reçu dans la séquence correcte. |
Remarques
Parfois, une application lit les données de la partie distante, tente de la déchiffrer à l’aide de DecryptMessage (Kerberos) et découvre que DecryptMessage (Kerberos) a réussi, mais que les mémoires tampons de sortie sont vides. Il s’agit d’un comportement normal, et les applications doivent être en mesure de les traiter.
Pour plus d’informations sur l’interopérabilité avec GSSAPI, consultez L’interopérabilité SSPI/Kerberos avec GSSAPI.
Windows XP : Cette fonction était également appelée UnsealMessage. Les applications doivent désormais utiliser DecryptMessage (Kerberos) uniquement.
Spécifications
| Besoin | Valeur |
|---|---|
| Client minimum pris en charge | Windows XP [applications de bureau uniquement] |
| Serveur minimum pris en charge | Windows Server 2003 [applications de bureau uniquement] |
| En-tête de page | Sspi.h (inclure Security.h) |
| Bibliothèque | Secur32.lib |
| DLL | Secur32.dll |