Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Funktionen DecryptMessage (Digest) dekrypterar ett meddelande. Vissa paket krypterar och dekrypterar inte meddelanden utan utför och kontrollerar snarare en integritetshash.
Digest Security Support Provider (SSP) tillhandahåller krypterings- och dekrypteringssekretess för meddelanden som utbyts mellan klient och server som en SASL-mekanism.
Anmärkning
EncryptMessage (Digest) och DecryptMessage (Digest) kan anropas samtidigt från två olika trådar i en enda SSPI-kontext ( Security Support Provider Interface ) om en tråd krypteras och den andra dekrypterar. Om mer än en tråd krypteras, eller om mer än en tråd dekrypterar, bör varje tråd få en unik kontext.
Syntax
SECURITY_STATUS SEC_ENTRY DecryptMessage(
PCtxtHandle phContext,
PSecBufferDesc pMessage,
unsigned long MessageSeqNo,
unsigned long *pfQOP
);
Parameterar
phContext [i]
En referens till säkerhetskontexten som ska användas för att dekryptera meddelandet.
pMessage [in, ut]
En pekare till en SecBufferDesc-struktur . Vid indata refererar strukturen till en eller flera SecBuffer-strukturer . Minst en av dessa måste vara av typen SECBUFFER_DATA. Bufferten innehåller det krypterade meddelandet. Det krypterade meddelandet dekrypteras på plats och skriver över det ursprungliga innehållet i bufferten.
När du använder Digest SSP refererar strukturen vid indata till en eller flera SecBuffer-strukturer . En av dessa måste vara av typen SECBUFFER_DATA eller SECBUFFER_STREAM och måste innehålla det krypterade meddelandet.
MessageSeqNo [i]
Sekvensnumret som förväntas av transportprogrammet, om det finns något. Om transportprogrammet inte underhåller sekvensnummer måste den här parametern anges till noll.
När du använder Digest SSP måste den här parametern vara inställd på noll. Digest SSP hanterar sekvensnumrering internt.
pfQOP [ut]
En pekare till en variabel av typen ULONG som tar emot paketspecifika flaggor som anger skyddets kvalitet.
Den här parametern kan vara en av följande flaggor.
| Värde | Innebörd |
|---|---|
|
SECQOP_WRAP_NO_ENCRYPT |
Meddelandet krypterades inte, men en rubrik eller trailer skapades. Not: KERB_WRAP_NO_ENCRYPT har samma värde och samma betydelse. |
|
När du använder Digest SSP använder du den här flaggan när säkerhetskontexten är inställd på att endast verifiera signaturen . Mer information finns i Skydd av hög kvalitet. |
Returvärde
Om funktionen verifierar att meddelandet togs emot i rätt sekvens returnerar funktionen SEC_E_OK.
Om funktionen inte dekrypterar meddelandet returneras någon av följande felkoder.
| Returkod | Beskrivning |
|---|---|
| SEC_E_BUFFER_TOO_SMALL | Meddelandebufferten är för liten. Används med sammanfattad SSP. |
| SEC_E_CRYPTO_SYSTEM_INVALID | Det chiffer som valts för säkerhetskontexten stöds inte. Används med sammanfattad SSP. |
| SEC_E_INCOMPLETE_MESSAGE | Data i indatabufferten är ofullständiga. Programmet måste läsa mer data från servern och anropa DecryptMessage (Digest) igen. |
| SEC_E_INVALID_HANDLE | En kontextreferens som inte är giltig angavs i parametern phContext . Används med sammanfattad SSP. |
| SEC_E_MESSAGE_ALTERED | Meddelandet har ändrats. Används med sammanfattad SSP. |
| SEC_E_OUT_OF_SEQUENCE | Meddelandet togs inte emot i rätt ordning. |
| SEC_E_QOP_NOT_SUPPORTED | Varken konfidentialitet eller integritet stöds av säkerhetskontexten. Används med sammanfattad SSP. |
Anmärkningar
Ibland läser ett program data från fjärrparten, försöker dekryptera dem med hjälp av DecryptMessage (Digest) och upptäcker att DecryptMessage (Digest) lyckades men utdatabuffertarna är tomma. Det här är ett normalt beteende och program måste kunna hantera det.
Windows XP: Den här funktionen kallades även UnsealMessage. Program bör nu endast använda DecryptMessage (Digest).
Krav
| Krav | Värde |
|---|---|
| Lägsta klient som stöds | Windows XP [endast skrivbordsappar] |
| Lägsta server som stöds | Windows Server 2003 [endast skrivbordsappar] |
| Rubrik | Sspi.h (inkludera Security.h) |
| Bibliotek | Secur32.lib |
| DLL | Secur32.dll |