Delen via


DecryptMessage -functie (Kerberos)

De functie DecryptMessage (Kerberos) ontsleutelt een bericht. Sommige pakketten versleutelen en ontsleutelen berichten niet, maar voeren een integriteits-hash uit en controleren.

Opmerking

EncryptMessage (Kerberos) en DecryptMessage (Kerberos) 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(
  _In_    PCtxtHandle    phContext,
  _Inout_ PSecBufferDesc pMessage,
  _In_    ULONG          MessageSeqNo,
  _Out_   PULONG         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 die van het type SECBUFFER_DATA kunnen zijn. De buffer bevat het versleutelde bericht. Het versleutelde bericht wordt op zijn plaats ontsleuteld, waarbij de oorspronkelijke inhoud van de buffer wordt overschreven.

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.

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 de volgende vlag zijn.

Waarde Betekenis
SECQOP_WRAP_NO_ENCRYPT hij was niet versleuteld, maar er werd een koptekst of trailer geproduceerd.

Opmerking

KERB_WRAP_NO_ENCRYPT heeft dezelfde waarde en dezelfde betekenis.

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_INCOMPLETE_MESSAGE De gegevens in de invoerbuffer zijn onvolledig. De applicatie moet meer gegevens van de server lezen en DecryptMessage (Kerberos) opnieuw aanroepen.
SEC_E_OUT_OF_SEQUENCE Het bericht is niet in de juiste volgorde ontvangen.

Opmerkingen

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

Zie SSPI/Kerberos Interoperability met GSSAPI voor meer informatie over samenwerking met GSSAPI.

Windows XP: Deze functie werd ook wel UnsealMessage genoemd. Toepassingen mogen nu alleen DecryptMessage (Kerberos) 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