Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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. |
|
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 |