Arm1.ru

WeVPN (2020)

WeVPN WeVPN

Весной 2020 года я начал работать на клиентом для VPN-сервиса WeVPN. На тот момент у них была первая версия всего с одним стандартным для iOS протоколом.

Моей задачей было добавить новые протоколы и новый функционал, что оказалось не таким уж лёгким делом для iOS. Удалось реализовать:

  • поддержка Wireguard;
  • поддержка OpenVPN (TCP и UDP) на разных портах и разным MTU;
  • поддержка Shadowsocks;
  • поддержка DNSCrypt;
  • логика для on demand rules;
  • SSL pinning и Certificate Transparency;
  • много работы с Network Extension Framework;
  • логика для автоматического выбора протокола если какой-то из протоколов не сработал;
  • установка в iOS профилей для DNS over TLS и DNS over HTTPS;
  • кастомные команды для Siri (подключить к такому-то серверу);
  • подсчёт трафика на стороне Network Extension;
  • виджет для iOS/iPadOS;
  • Unit-тесты;
  • UI-тесты, которые проверяют, что регистрация, авторизация, онбординг и внутренние покупки работают.

В 2022 году сервис закрылся.

Swift, iOS, iPadOS, UIKit.

keyboard_return back