v1.1.1

sleep3r/mtproto.zigv1.1.1Jun 8, 2026by sleep3r

Upgrading?

AI Summary

Patch for v1.1.0 to fix the fronting-domain x25519 check compatibility with Ubuntu 20.04 (OpenSSL 1.1.1).

Key Highlights

  • Fixed OpenSSL 1.1.1 compatibility for x25519 group negotiation
  • Changed group name from `x25519` to `X25519`
  • Improved output messages for domain checks
  • Fixed false positive warnings on Ubuntu 20.04

New Features

  • OpenSSL 1.1.1 compatibility fix
  • Improved domain check messaging

Full Release Notes

<details open>
<summary>🇷🇺 Что нового (RU)</summary>

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

`v1.1.1` — патч к [v1.1.0](https://github.com/sleep3r/mtproto.zig/releases/tag/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 принимает нижний регистр, поэтому раньше это работало только на новых ОС.)

### Что исправлено
- **`x25519` → `X25519`** (верхний регистр) — принимается и 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` — зелёные.

</details>

---

<details>
<summary>🇬🇧 Release notes (EN)</summary>

## What this release fixes

`v1.1.1` patches [v1.1.0](https://github.com/sleep3r/mtproto.zig/releases/tag/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
- **`x25519` → `X25519`** (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.

</details>

## Changelog

* fix(install): fronting-domain x25519 check works on OpenSSL 1.1.1 + clearer output ([#319](https://github.com/sleep3r/mtproto.zig/pull/319)) ([28e40fb](https://github.com/sleep3r/mtproto.zig/commit/28e40fb))

Related Repositories