Udostępnij przez


DecryptMessage (Digest), funkcja

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

Dostawca obsługi zabezpieczeń szyfrowanych (SSP) zapewnia poufność szyfrowania i odszyfrowywania komunikatów wymienianych między klientem a serwerem jako mechanizmem SASL.

Uwaga

Funkcja EncryptMessage (Skrót) i DecryptMessage (Skrót) 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 odszyfrowywać. 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(
  PCtxtHandle    phContext,
  PSecBufferDesc pMessage,
  unsigned long  MessageSeqNo,
  unsigned long  *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 . Co najmniej jeden z nich musi być typu SECBUFFER_DATA. Ten bufor zawiera zaszyfrowany komunikat. Zaszyfrowana wiadomość jest odszyfrowywane, zastępując oryginalną zawartość buforu.

W przypadku korzystania z dostawcy SSP skrótu w danych wejściowych struktura odwołuje się do co najmniej jednej struktury SecBuffer . Jeden z nich musi być typu SECBUFFER_DATA lub SECBUFFER_STREAM i musi zawierać zaszyfrowany komunikat.

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.

W przypadku korzystania z dostawcy usług udostępnionych skrótów ten parametr musi być ustawiony na zero. Skrót dostawcy usług udostępnionych zarządza numerowaniem sekwencji wewnętrznie.

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ć jedną z następujących flag.

Wartość Znaczenie
SECQOP_WRAP_NO_ENCRYPT
Wiadomość nie została zaszyfrowana, ale utworzono nagłówek lub przyczepę.
Nuta: KERB_WRAP_NO_ENCRYPT ma tę samą wartość i to samo znaczenie.
SIGN_ONLY
W przypadku korzystania z dostawcy SSP skrótu użyj tej flagi, gdy kontekst zabezpieczeń jest ustawiony, aby zweryfikować tylko podpis . Aby uzyskać więcej informacji, zobacz Jakość ochrony.

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_BUFFER_TOO_SMALL Bufor komunikatów jest za mały. Używany z dostawcą SSP skrótu.
SEC_E_CRYPTO_SYSTEM_INVALID Szyfr wybrany dla kontekstu zabezpieczeń nie jest obsługiwany. Używany z dostawcą SSP skrótu.
SEC_E_INCOMPLETE_MESSAGE Dane w buforze wejściowym są niekompletne. Aplikacja musi odczytać więcej danych z serwera i ponownie wywołać DecryptMessage (Digest).
SEC_E_INVALID_HANDLE Uchwyt kontekstu, który nie jest prawidłowy, został określony w parametrze phContext . Używany z dostawcą SSP skrótu.
SEC_E_MESSAGE_ALTERED Wiadomość została zmieniona. Używany z dostawcą SSP skrótu.
SEC_E_OUT_OF_SEQUENCE Komunikat nie został odebrany w prawidłowej kolejności.
SEC_E_QOP_NOT_SUPPORTED Ani poufność, ani integralność nie są obsługiwane przez kontekst zabezpieczeń. Używany z dostawcą SSP skrótu.

Uwagi

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

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

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ż