Что означает код HRESULT 0x00090321 (SEC_I_RENEGOTIATE)?

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

SEC_I_RENEGOTIATE

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

SEC_I_RENEGOTIATE (0x00090321) — Защищённое соединение требует повторного согласования контекст безопасности с другой стороной.

Это информационный статус подсистемы безопасности, поэтому его нельзя обрабатывать как обычную ошибку HRESULT. Он сообщает, что текущий шаг имеет специальное продолжение; вызывающий код должен следовать контракту SSPI/Schannel и сохранить состояние текущего контекста.

Schannel может вернуть этот статус из DecryptMessage, когда peer инициировал renegotiation. После этого требуется снова пройти InitializeSecurityContext/AcceptSecurityContext с сохранением необработанных входных байтов.

Что проверить

  • Сохраните необработанные bytes, возвращённые вместе со статусом DecryptMessage, и передайте их в новый handshake цикл.
  • Повторно вызовите InitializeSecurityContext/AcceptSecurityContext согласно Schannel renegotiation contract.
  • Проверьте, кто инициировал renegotiation и не запрещена ли она policy/protocol version приложения.

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


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