| Предыдущий | Следующий |
| SEC_E_CONTEXT_EXPIRED | SEC_E_INCOMPLETE_CREDENTIALS |
SEC_E_INCOMPLETE_MESSAGE
Что означает SEC_E_INCOMPLETE_MESSAGE
SEC_E_INCOMPLETE_MESSAGE (0x80090318) — Получен не весь защищённый протоколом пакет; для обработки нужны дополнительные байты.
Код возникает на границе защищённого сетевого протокола и SSPI/Schannel. Сохраняйте первый HRESULT вместе с функцией, пакетом безопасности, target name, атрибутами контекста и фактическим состоянием TLS/транспорта; верхнеуровневое сообщение приложения часто теряет эту информацию.
Этот код не означает плохую подпись. Он говорит, что буфер закончился раньше полного security record/token; сетевой код должен сохранить хвост и дочитать данные, а не начинать новую аутентификацию.
Что проверить
- Сохраните размер входного SecBuffer и значение SECBUFFER_MISSING/EXTRA, если package его возвращает.
- Дочитайте недостающие bytes и повторите обработку полного record/token; не теряйте уже полученный prefix.
- Если transport фреймит данные отдельно, проверьте, что границы recv/read не принимаются за границы TLS/SSPI message.
Технические ссылки
Нужно найти другой код? Найти другой код состояния или ошибки.