github sleep3r/mtproto.zig v1.1.1

latest releases: v1.15.2, v1.15.1, v1.15.0...
3 months ago
🇷🇺 Что нового (RU)

Что чинит этот релиз

v1.1.1 — патч к v1.1.0: чинит проверку пригодности fronting-домена, которая ломалась на каждой установке на Ubuntu 20.04 (focal — ОС, поддержку которой как раз добавили в 1.1.0).

В чём была проблема

Установщик проверяет, что tls_domain договаривается о single-round x25519 (иначе наш FakeTLS-ServerHello не совпадёт), через openssl s_client -groups x25519. OpenSSL 1.1.1 (focal) отвергает имя группы в нижнем регистре с ошибкой Error with command: "-groups x25519" — проба не давала вывода, и проверка срабатывала ложно на любом домене: предупреждала, что рекомендуемый по умолчанию rutube.ru «не удалось подтвердить», и в том же сообщении советовала… rutube.ru. (OpenSSL 3.x принимает нижний регистр, поэтому раньше это работало только на новых ОС.)

Что исправлено

  • x25519X25519 (верхний регистр) — принимается и 1.1.1f, и 3.0.13. Проверено в реальных контейнерах: rutube/ozon/vk договариваются о X25519, 253 bits за один раунд; wb.ru подключается, но temp-ключа не отдаёт.
  • Понятный вывод вместо одного пугающего предупреждения — три случая: домен подходит (молча), доступен, но отвергает x25519 (настоящее предупреждение — и советуем другие домены, не тот, что упал), недоступен (мягкая заметка «пропускаю — это связность, а не плохой домен»). Список рекомендаций больше не включает домен, который только что не прошёл проверку.

Проверено

  • Проба на OpenSSL 1.1.1f и 3.0.13 (поведение good/bad/unreachable) в реальных контейнерах.
  • Сквозной installer-e2e на ubuntu:20.04: проверка домена теперь проходит чисто для rutube.ru — без противоречивого предупреждения.
  • Юнит-тест на список рекомендаций; CI на 5 ОС, zig build test, zig fmt — зелёные.

🇬🇧 Release notes (EN)

What this release fixes

v1.1.1 patches v1.1.0: the fronting-domain suitability check broke on every Ubuntu 20.04 install (focal — the OS support 1.1.0 just added).

The bug

The installer verifies that tls_domain negotiates single-round x25519 (else our FakeTLS ServerHello won't match) via openssl s_client -groups x25519. OpenSSL 1.1.1 (focal) rejects the lowercase group name with Error with command: "-groups x25519", so the probe produced no output and the check mis-fired on every domain — warning that the recommended default rutube.ru "could not be confirmed" while recommending rutube.ru in the same message. (3.x accepts lowercase, so it only ever worked on newer OSes.)

The fix

  • x25519X25519 (uppercase) — accepted by both 1.1.1f and 3.0.13. Verified in real containers: rutube/ozon/vk negotiate X25519, 253 bits single-round; wb.ru connects but yields no temp key.
  • Clearer output instead of one scary catch-all — three cases: domain is suitable (silent), reachable but rejects x25519 (the real warning, recommending other domains — not the one that failed), couldn't reach (a soft "skipping — connectivity, not a bad domain" note). The recommendation list no longer includes the domain that just failed.

Verified

  • Real-container probe across OpenSSL 1.1.1f and 3.0.13 (good/bad/unreachable behaviors).
  • End-to-end installer-e2e on ubuntu:20.04: the domain check now passes cleanly for rutube.ru — no contradictory warning.
  • Unit test for the recommendation list; 5-OS CI, zig build test, zig fmt — green.

Changelog

  • fix(install): fronting-domain x25519 check works on OpenSSL 1.1.1 + clearer output (#319) (28e40fb)

Don't miss a new mtproto.zig release

NewReleases is sending notifications on new releases.