Что означает код HRESULT 0x00090317 (SEC_I_CONTEXT_EXPIRED)?

 
Предыдущий Следующий
SEC_I_LOCAL_LOGON SEC_I_INCOMPLETE_CREDENTIALS

SEC_I_CONTEXT_EXPIRED

Что означает SEC_I_CONTEXT_EXPIRED

SEC_I_CONTEXT_EXPIRED — информационный статус SSPI: контекст безопасности завершён и больше не должен использоваться для обычного обмена данными. В Schannel DecryptMessage может вернуть этот статус, когда удалённая сторона закончила работу с соединением и инициировала штатное TLS-закрытие.

Как интерпретировать результат

Сам по себе этот код не означает ошибку сертификата, cipher suite или credential handle. Если он получен после обмена прикладными данными, сначала рассматривайте его как событие жизненного цикла соединения, а не как неудачный handshake.

  • Зафиксируйте функцию SSPI, которая вернула статус, и фазу соединения: handshake, обмен данными или shutdown.
  • Для Schannel проверьте, был ли получен TLS close_notify и отправлен ли ответный shutdown token в соответствии с вашим протоколом закрытия.
  • После завершения контекста не вызывайте EncryptMessage/DecryptMessage как будто соединение остаётся активным. Создайте новый контекст для нового соединения.
  • Если закрытие неожиданно для приложения, выясняйте, почему peer завершил сессию: таймаут, штатное завершение запроса, перезапуск службы или собственная логика протокола.

Технические ссылки


Нужно найти другой код? Найти другой код состояния или ошибки.