Udostępnij przez


DecryptMessage (Kerberos), funkcja

Funkcja DecryptMessage (Kerberos) odszyfrowuje komunikat. Niektóre pakiety nie szyfrują i odszyfrowywają wiadomości, ale wykonują i sprawdzają skrót integralności.

Uwaga

Funkcja EncryptMessage (Kerberos) i DecryptMessage (Kerberos) może być wywoływana jednocześnie z dwóch różnych wątków w kontekście jednego interfejsu dostawcy obsługi zabezpieczeń (SSPI), jeśli jeden wątek jest szyfrujący, a drugi odszyfrowuje. Jeśli więcej niż jeden wątek jest szyfrowane lub więcej niż jeden wątek jest odszyfrowywać, każdy wątek powinien uzyskać unikatowy kontekst.

Składnia

SECURITY_STATUS SEC_Entry DecryptMessage(
  _In_    PCtxtHandle    phContext,
  _Inout_ PSecBufferDesc pMessage,
  _In_    ULONG          MessageSeqNo,
  _Out_   PULONG         pfQOP
);

Parametry

phContext [w]

Dojście do kontekstu zabezpieczeń , który ma być używany do odszyfrowania wiadomości.

pMessage [wejście, wyjście]

Wskaźnik do struktury SecBufferDesc . W danych wejściowych struktura odwołuje się do co najmniej jednej struktury SecBuffer , która może być typu SECBUFFER_DATA. Bufor zawiera zaszyfrowany komunikat. Zaszyfrowana wiadomość jest odszyfrowywane, zastępując oryginalną zawartość buforu.

MessageSeqNo [w]

Numer sekwencji oczekiwany przez aplikację transportu, jeśli istnieje. Jeśli aplikacja transportowa nie obsługuje numerów sekwencji, ten parametr musi być ustawiony na zero.

pfQOP [wyjście]

Wskaźnik do zmiennej typu ULONG , która odbiera flagi specyficzne dla pakietu, które wskazują jakość ochrony.

Ten parametr może być następującą flagą.

Wartość Znaczenie
SECQOP_WRAP_NO_ENCRYPT wiadomość nie została zaszyfrowana, ale utworzono nagłówek lub przyczepę.

Uwaga

KERB_WRAP_NO_ENCRYPT ma tę samą wartość i to samo znaczenie.

Wartość zwracana

Jeśli funkcja sprawdza, czy komunikat został odebrany w odpowiedniej sekwencji, funkcja zwraca SEC_E_OK.

Jeśli funkcja nie może odszyfrować komunikatu, zwraca jeden z następujących kodów błędów.

Kod powrotny Opis
SEC_E_INCOMPLETE_MESSAGE Dane w buforze wejściowym są niekompletne. Aplikacja musi odczytać więcej danych z serwera i ponownie wywołać DecryptMessage (Kerberos).
SEC_E_OUT_OF_SEQUENCE Komunikat nie został odebrany w prawidłowej kolejności.

Uwagi

Czasami aplikacja odczytuje dane ze strony zdalnej, próbuje je odszyfrować przy użyciu funkcji DecryptMessage (Kerberos) i odnajduje, że funkcja DecryptMessage (Kerberos) zakończyła się pomyślnie, ale wyjściowe są puste. Jest to normalne zachowanie, a aplikacje muszą mieć do czynienia z nim.

Aby uzyskać informacje na temat współdziałania z interfejsem GSSAPI, zobacz SSPI/Kerberos Interoperability with GSSAPI (Współdziałanie interfejsu SSPI/Kerberos z interfejsem GSSAPI).

Windows XP: Ta funkcja była również znana jako UnsealMessage. Aplikacje powinny teraz używać tylko funkcji DecryptMessage (Kerberos).

Wymagania

Wymaganie Wartość
Minimalny obsługiwany klient Windows XP [tylko aplikacje klasyczne]
Minimalny obsługiwany serwer Windows Server 2003 [tylko aplikacje klasyczne]
Nagłówek Sspi.h (w tym Security.h)
Biblioteka Secur32.lib powiedział:
DLL Secur32.dll

Zobacz też