Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция DecryptMessage (Kerberos) расшифровывает сообщение. Некоторые пакеты не шифруют и расшифровывают сообщения, а выполняют и проверяют хэш целостности.
Примечание.
EncryptMessage (Kerberos) и DecryptMessage (Kerberos) можно вызывать одновременно из двух разных потоков в одном контексте интерфейса поставщика поддержки безопасности (SSPI), если один поток шифруется, а другой расшифровывается. Если шифрование нескольких потоков или несколько потоков расшифровываются, каждый поток должен получить уникальный контекст.
Синтаксис
SECURITY_STATUS SEC_Entry DecryptMessage(
_In_ PCtxtHandle phContext,
_Inout_ PSecBufferDesc pMessage,
_In_ ULONG MessageSeqNo,
_Out_ PULONG pfQOP
);
Параметры
phContext [в]
Дескриптор контекста безопасности , который будет использоваться для расшифровки сообщения.
pMessage [входящий, исходящий]
Указатель на структуру SecBufferDesc . Во входных данных структура ссылается на одну или несколько структур SecBuffer , которые могут быть типа SECBUFFER_DATA. Буфер содержит зашифрованное сообщение. Зашифрованное сообщение расшифровывается на месте, перезаписыв исходное содержимое буфера.
MessageSeqNo [в]
Порядковый номер, ожидаемый приложением транспорта, если он есть. Если приложение транспорта не поддерживает порядковые номера, этот параметр должен иметь значение нулю.
pfQOP [выход]
Указатель на переменную типа ULONG , которая получает флаги, относящиеся к пакету, которые указывают на качество защиты.
Этот параметр может быть следующим флагом.
| Ценность | Значение |
|---|---|
| SECQOP_WRAP_NO_ENCRYPT | он не был зашифрован, но был создан заголовок или трейлер. |
Примечание.
KERB_WRAP_NO_ENCRYPT имеет то же значение и то же значение.
Возвращаемое значение
Если функция проверяет, получено ли сообщение в правильной последовательности, функция возвращает SEC_E_OK.
Если функция не расшифровывает сообщение, он возвращает один из следующих кодов ошибок.
| Код возврата | Описание |
|---|---|
| SEC_E_INCOMPLETE_MESSAGE | Данные во входном буфере неполны. Приложению необходимо прочитать больше данных с сервера и снова вызвать DecryptMessage (Kerberos). |
| SEC_E_OUT_OF_SEQUENCE | Сообщение не получено в правильной последовательности. |
Замечания
Иногда приложение считывает данные из удаленной стороны, пытается расшифровать его с помощью DecryptMessage (Kerberos) и обнаруживает, что decryptMessage (Kerberos) выполнен успешно, но выходные буферы пусты. Это нормальное поведение, и приложения должны иметь возможность справиться с ним.
Сведения о взаимодействии с GSSAPI см. в разделе SSPI/Kerberos, взаимодействие с GSSAPI.
Windows XP: Эта функция также называется UnsealMessage. Теперь приложения должны использовать только DecryptMessage (Kerberos).
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows XP [только классические приложения] |
| Минимальный поддерживаемый сервер | Windows Server 2003 [только классические приложения] |
| Заголовок | Sspi.h (включая Security.h) |
| Библиотека | Веб-сайт Secur32.lib |
| Библиотека dll | Secur32.dll |