Delen via


DecryptMessage -functie (Digest)

Met de functie DecryptMessage (Digest) wordt een bericht ontsleuteld. Sommige pakketten versleutelen en ontsleutelen berichten niet, maar voeren een integriteits-hash uit en controleren.

De Digest-provider voor beveiligingsondersteuning (SSP) biedt alleen vertrouwelijkheid van versleuteling en ontsleuteling voor berichten die worden uitgewisseld tussen client en server als SASL-mechanisme.

Opmerking

EncryptMessage (Digest) en DecryptMessage (Digest) kunnen tegelijkertijd worden aangeroepen vanuit twee verschillende threads in één SSPI-context ( Security Support Provider Interface ) als één thread wordt versleuteld en de andere wordt ontsleuteld. Als meer dan één thread wordt versleuteld of meer dan één thread ontsleutelt, moet elke thread een unieke context verkrijgen.

Syntaxis

SECURITY_STATUS SEC_ENTRY DecryptMessage(
  PCtxtHandle    phContext,
  PSecBufferDesc pMessage,
  unsigned long  MessageSeqNo,
  unsigned long  *pfQOP
);

Parameterwaarden

phContext [in]

Een ingang voor de beveiligingscontext die moet worden gebruikt om het bericht te ontsleutelen.

pMessage [in, uit]

Een aanwijzer naar een SecBufferDesc-structuur . Bij invoer verwijst de structuur naar een of meer SecBuffer-structuren . Ten minste één van deze moet van het type SECBUFFER_DATA zijn. Deze buffer bevat het versleutelde bericht. Het versleutelde bericht wordt op zijn plaats ontsleuteld, waarbij de oorspronkelijke inhoud van de buffer wordt overschreven.

Wanneer u de digest-SSP gebruikt, verwijst de structuur bij invoer naar een of meer SecBuffer-structuren . Een van deze moet van het type SECBUFFER_DATA of SECBUFFER_STREAM zijn en moet het versleutelde bericht bevatten.

MessageSeqNo [in]

Het volgnummer dat wordt verwacht door de transporttoepassing, indien van toepassing. Als de transporttoepassing geen volgnummers onderhoudt, moet deze parameter worden ingesteld op nul.

Wanneer u de Digest-SSP gebruikt, moet deze parameter worden ingesteld op nul. De Digest SSP beheert de volgnummering intern.

pfQOP [uit]

Een aanwijzer naar een variabele van het type ULONG die pakketspecifieke vlaggen ontvangt die de kwaliteit van de beveiliging aangeven.

Deze parameter kan een van de volgende vlaggen zijn.

Waarde Betekenis
SECQOP_WRAP_NO_ENCRYPT
Het bericht is niet versleuteld, maar er is een koptekst of trailer geproduceerd.
Notitie: KERB_WRAP_NO_ENCRYPT heeft dezelfde waarde en dezelfde betekenis.
SIGN_ONLY
Wanneer u de digest-SSP gebruikt, gebruikt u deze vlag wanneer de beveiligingscontext is ingesteld om alleen de handtekening te controleren. Zie Quality of Protection voor meer informatie.

Retourwaarde

Als de functie controleert of het bericht in de juiste volgorde is ontvangen, retourneert de functie SEC_E_OK.

Als de functie het bericht niet kan ontsleutelen, wordt een van de volgende foutcodes geretourneerd.

Retourcode Beschrijving
SEC_E_BUFFER_TOO_SMALL De berichtbuffer is te klein. Wordt gebruikt met de Digest-SSP.
SEC_E_CRYPTO_SYSTEM_INVALID De gekozen codering voor de beveiligingscontext wordt niet ondersteund. Wordt gebruikt met de Digest-SSP.
SEC_E_INCOMPLETE_MESSAGE De gegevens in de invoerbuffer zijn onvolledig. De applicatie moet meer gegevens van de server lezen en DecryptMessage (Digest) opnieuw aanroepen.
SEC_E_INVALID_HANDLE Er is een contextgreep opgegeven die niet geldig is in de parameter phContext . Wordt gebruikt met de Digest-SSP.
SEC_E_MESSAGE_ALTERED Het bericht is gewijzigd. Wordt gebruikt met de Digest-SSP.
SEC_E_OUT_OF_SEQUENCE Het bericht is niet in de juiste volgorde ontvangen.
SEC_E_QOP_NOT_SUPPORTED Vertrouwelijkheid en integriteit worden niet ondersteund door de beveiligingscontext. Wordt gebruikt met de Digest-SSP.

Opmerkingen

Soms leest een toepassing gegevens van de externe partij, probeert deze te ontsleutelen met behulp van DecryptMessage (Digest) en ontdekt dat DecryptMessage (Digest) is geslaagd, maar de uitvoerbuffers leeg zijn. Dit is normaal gedrag en toepassingen moeten ermee kunnen omgaan.

Windows XP: Deze functie werd ook wel UnsealMessage genoemd. Toepassingen mogen nu alleen DecryptMessage (Digest) gebruiken.

Vereisten

Voorwaarde Waarde
Minimaal ondersteunde client Windows XP [alleen desktop-apps]
Minimaal ondersteunde server Windows Server 2003 [alleen desktop-apps]
Koptekst Sspi.h (inclusief Security.h)
Bibliotheek Secur32.lib
DLL Secur32.dll

Zie ook