Files
2026-10-20 15:59:55 +07:00

4.0 KiB
Raw Permalink Blame History

Источники проверки Android SASL

Проверено 2026-10-20. Java source использовался для анализа выбора механизма; Android-приложения на устройстве не запускались. Python regression повторяет выбор из Conversations, не всю реализацию приложения.

Файлы fetched с mutable master. Следующие branch-head значения получены после fetch; это не доказательство скачивания каждого файла по commit pin:

Retrieved 2026-10-20 UTC from mutable master; no commit pin confirmed. https://codeberg.org/iNPUTmice/Conversations/raw/branch/master/src/main/java/eu/siacs/conversations/crypto/sasl/ API master commit observed after source fetch: bf3269cd128d4dbf0e479c091477fd9544a798b0 monocles master commit: 0bc8473a5d4597d1ffe5545055da692ef8b89d37

Локальные SHA256 загруженных исходников:

  • ChannelBinding.java: 88723522ed5bb53e947ad7afbc8cd0f8712ea4747d847347c3e5cd7b9aa41389
  • ChannelBindingMechanism.java: e8a492de0eb866fc93d673cbc46bd5fae18ecf4b7bb46e272e6dca9e8c086937
  • DowngradeProtection.java: a3fe98c2ccad998deb46f5748411a1a26506215cabb2a4e1d7adce0f51f2ac03
  • SaslMechanism.java: 9bec637e7d62cc86a7b09cb8353e6272c80fd7b5d94e305b936bcf8c5a611e73
  • ScramMechanism.java: aa5b2cdc5389a12e8de8fef562f0ee2de45fbdf61fa8fdbd33ea63a5b9299ae8
  • monocles-ChannelBinding.java: 88723522ed5bb53e947ad7afbc8cd0f8712ea4747d847347c3e5cd7b9aa41389
  • monocles-ScramMechanism.java: fea3687a12260d9280e204cc003d689043654950118e2d1dc84c058c736234e7

Conversations selector предпочитает exporter только на TLS1.3, затем unique на TLS≤1.2, затем endpoint. При отсутствии совместимого объявленного типа старый путь использует NONE/y,,. Monocles master содержит дополнительный continueWithoutChannelBinding с n,, и обязательным downgrade protection; его поведение зависит от версии и не полностью моделируется Python тестом.

Cached inline requests в 0.7.1

Полученный серверный журнал показывал TLS1.3 success и inline-request-malformed до sasl-attempt. В server 0.7.0 строка bind2 is disabled не совпадала с Bind2 is disabled в diagnostic mapper. В supplied конфигурации Bind2 явно не включён. Quickstart constructor в клиентских XmppConnection.java использует QUICKSTART_FEATURES, даже если на новом соединении Bind2 уже не объявлен. Это воспроизведено новым tests/sasl2_cached_inline.py на binary0.7.0.

В0.7.1 unavailable optional bind/resume не отклоняет credentials exchange. Bare authorization identifier и post-auth legacy bind позволяют клиентскому fallback продолжить вход; available Bind2 работает по прежнему. Это решение совместимости с фактическим client fallback, а не ссылка на явное MUST-ignore из XEP-0388. Wrong password и malformed enabled extensions не разрешаются.

Источники: Conversations и monocles src/main/java/eu/siacs/conversations/ xmpp/XmppConnection.java, im/conversations/android/xmpp/model/sm/Enable.java, полученные с mutable master 2026-10-20. Authentication success handler оставляет isBound=false без bound, затем processSecureStreamFeatures делает обычный bind.