| Предыдущий | Следующий |
| 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 на время воспроизведения и сопоставьте события с сетевой трассировкой.
- Проверяйте пакет безопасности отдельно на минимальном клиенте с теми же параметрами.
Ссылки по этому результату
Нужно найти другой код? Найти другой код состояния или ошибки.
