Что означает код HRESULT 0x80090329 (SEC_E_ENCRYPT_FAILURE)?

 
Предыдущий Следующий
SEC_E_CERT_EXPIRED SEC_E_ALGORITHM_MISMATCH

SEC_E_ENCRYPT_FAILURE

SEC_E_ENCRYPT_FAILURE: смысл кода и диагностика

SEC_E_ENCRYPT_FAILURE — Пакет безопасности не смог зашифровать данные в текущем контексте аутентификации.

Статус возник на уровне пакета безопасности Windows. Он не всегда означает неверный пароль: возможны ошибки времени жизни контекста, алгоритма, маршалинга и завершения TLS.

Что проверить в первую очередь

Статус относится к криптографическому материалу или его представлению. сверяйте алгоритм, назначение ключа, кодировку и поставщика как единую комбинацию.

  • Проверьте происхождение ключа/сертификата, выбранный алгоритм и точный формат входного блока.
  • Проверьте владельца и время жизни CredHandle/CtxtHandle, а также границы impersonation и потока.
  • для Schannel сохраните TLS-версию, cipher suite, сертификаты сторон и факт получения close_notify.
  • Не переиспользуйте истёкший или завершённый контекст; создайте новый handshake.
  • Запишите имя пакет безопасности, функцию SSPI, входные/выходные флаги и состояние handshake.

Какие данные собрать

  • Сохраните первый SECURITY_STATUS и результат последующего CompleteAuthToken/EncryptMessage/DecryptMessage.
  • Включите журнал Schannel на время воспроизведения и сопоставьте события с сетевой трассировкой.
  • Проверяйте пакет безопасности отдельно на минимальном клиенте с теми же параметрами.

Ссылки по этому результату


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