add: WireGuard entries in the ProtonVPN import #204
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/proton-wireguard-196"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Problem: The ProtonVPN import only produces OpenVPN entries, although the API already hands over everything WireGuard needs (#196).
Fix: The import registers an Ed25519 key at
POST /vpn/v1/certificate(Mode: persistent, 365 days - a dashboard-visible device named "aqomui"; Proton takes no raw WireGuard public key the way Mullvad does) and stagesprotonvpn_wg.confholding the key's X25519 form plus the fixed interface half (10.2.0.2/32, DNS10.2.0.1). Every logical whose physical server carries anX25519PublicKeygets a WireGuard sibling entry (<name>-WireGuard, port 51820) next to its OpenVPN one. A re-import keeps the registered key; an update replaces it - same contract as Mullvad'sgen_wg_key.The two Mullvad-only branches on the connect path generalize:
tunnel.wireguard()completes the staged template of any entry carryingpublic_key(found by the entry's type, so a renamed provider keeps working - the Mullvad hardcode already broke that case), andcatalog.connect_dictstops projecting the provider's selected OpenVPN protocol onto any WireGuard entry.Verification: 11 new tests - registration payload and staged conf, key-reuse on plain re-import, wg-tool-missing and no-X25519 degradation, renamed-provider template lookup, protocol-projection bypass, and an independent check of the Ed25519→X25519 conversion against the curve's birational map. Full suite 510 passed. Live import/connect still needs a run against a real Proton account.
Closes #196
🤖 Generated with Claude Code