# 0.6.1 — Android SASL authentication Исправлена воспроизводимая несовместимость с выбором channel binding в Conversations при TLS 1.2. Раньше сервер рекламировал только tls-exporter для обеих версий TLS. Android selector выбирает exporter только при TLS 1.3, при TLS 1.2 без другого совместимого типа выбирает обычный SCRAM с GS2 y,,. Сервер отклонял это как downgrade, а клиент видел not-authorized. Добавлены tls-server-end-point на TLS 1.2/1.3 и exporter на TLS 1.3. Тип из GS2 выбирается из фактически доступных на соединении; проверка binding и proof не ослаблена. SSDP подписывает полный список объявленных типов. Digest сертификата соответствует RFC5929: MD5/SHA1 заменяются SHA256; SHA224/256/384/512, RSA/DSA/ECDSA и RSA-PSS поддержаны. Неизвестные алгоритмы, EdDSA и неопределённые multi-hash варианты возвращают ошибку; произвольный SHA256 fallback не применяется. TLS1.3 exporter остаётся доступен независимо от возможности вычислить certificate binding. Исправлен отдельный SSDP edge для WebSocket: при отсутствии CB-типа хеш не должен содержать пустую CB-секцию с завершающим 0x1f. При явном отключении всех PLUS-механизмов CB не рекламируется, обычный SCRAM с y,, допускается. Отказы SCRAM оставляют безопасную диагностику mechanism/stage без credentials. Добавлены независимые сетевые проверки Android selector, настоящего TLS exporter, certificate binding, WSS SCRAM, SSDP и неправильного binding. Старый 0.6.0 воспроизводит обе найденные ошибки; 0.6.1 проходит новые сценарии. В latest monocles есть собственный fallback через n,, и обязательный SSDP; поведение конкретной установленной версии на устройстве не проверено. Исправления не доказывают, что любой not-authorized имел эту причину. Рабочие пароли/данные не изменялись. Полная замена Prosody ещё не подтверждена.