Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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. |
|
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 |