Commit Graph

45 Commits

Author SHA1 Message Date
Roopesh Chander 43024dfcbb Swift 5 migration: Handle changes in Data's pointer interface 2019-04-09 11:25:04 +05:30
Roopesh Chander 283462dc9b Swift 5 migration: Fix switch warnings
We now get a warning when switching over enums from system
frameworks even when we handle all public cases because
there can be future cases that aren't handled.

When such a future case is introduced, we'll get a warning.
2019-04-09 11:25:04 +05:30
Roopesh Chander fb4dca6018 macOS: Better handling of tunnels created by another user
Previously, the tunnels just got deleted.
2019-04-03 19:04:12 +05:30
Jason A. Donenfeld 1d768d4e9d wg-quick parser: trim \r as well
The influx of Windows users has already begun to infect our nice
project.

Reported-by: Cosku Bas <cosku.bas@gmail.com>
2019-03-11 14:05:16 -06:00
Roopesh Chander 74f55febab Log migration of tunnel configuration 2019-02-12 19:17:32 +05:30
Roopesh Chander 078780a3ba Don't migrate in asTunnelConfiguration()
It causes problems when installing a tunnel through a
Configuration Profile on macOS and activating it first through
Network Preferences.
2019-02-12 17:37:27 +05:30
Roopesh Chander 3cea15f6f2 Fix writing of preshared key to config format 2019-02-09 14:57:24 +05:30
Jason A. Donenfeld 6134817b23 Global: fix swiftlint issues 2019-02-08 17:07:28 +01:00
Jason A. Donenfeld 98866b323b KeyEncoding: rename file to match extension filename style 2019-02-08 16:15:10 +01:00
Jason A. Donenfeld 9852a75f01 Key: we already do len checking in C 2019-02-08 14:39:59 +01:00
Jason A. Donenfeld 7ebf36d0f4 Key: Use C implementation instead
Swift compiles so slowly and it's unclear all of the insane type punning
was even correct.
2019-02-08 03:23:15 +01:00
Jason A. Donenfeld e2c717212b Key: Constant time encoding 2019-02-08 03:23:15 +01:00
Jason A. Donenfeld c005893fe7 PrivateDataConfirmation: prompt with touch/face/pin/password ID for viewing/exporting keys 2019-02-06 06:20:23 +01:00
Jason A. Donenfeld 30576a1fe6 LegacyConfig: Remove and support plaintext for .mobileconfig 2019-02-06 06:20:23 +01:00
Jason A. Donenfeld 0407d41005 Keychain: store configurations in keychain instead of providerConfig 2019-02-06 06:20:23 +01:00
Roopesh Chander 4ac1437c4b wg-quick conf parser: Handle inline comments correctly 2019-02-05 16:45:32 +05:30
Roopesh Chander e95cb6e6bd Config file parsing: Fix bug when there are comments at the end 2019-01-24 16:23:07 +05:30
Jason A. Donenfeld fef3e80472 Tunnel: support getting runtime configuration 2019-01-24 01:37:57 +01:00
Roopesh Chander 728b3ef61f Parsing: Always error on unrecognized keys 2019-01-14 14:52:34 +05:30
Roopesh Chander bc9f050d7f Parsing: Error on duplicate entries 2019-01-14 14:52:34 +05:30
Roopesh Chander 309d06217f macOS: Refactor config file parsing
- To report more fine grained errors
 - To make the parse errors conform to WireGuardAppError
2019-01-14 14:52:34 +05:30
Jason A. Donenfeld 7bf3d7b09d Update copyright 2019-01-07 19:23:39 -05:00
Roopesh Chander 2e37d511db Don't set username on NETunnelProviderProtocol
The username corresponds to the Account field in iOS system VPN UI,
but if we don't set it, the field is not shown, so setting it isn't
really required.
2018-12-22 16:13:31 +05:30
Eric Kuck 8fb8d9a9d2 All models now Equatable 2018-12-21 22:57:17 -06:00
Jason A. Donenfeld 0b2d91a7f4 Localize remaining strings in network extension 2018-12-22 03:42:01 +01:00
Jason A. Donenfeld 30cf9a1d1d Move model helpers to model directory 2018-12-22 01:36:42 +01:00
Jason A. Donenfeld e1c3d9b57a Move name from interface to tunnel 2018-12-22 00:28:18 +01:00
Jason A. Donenfeld 775e174967 Nuke trailing spaces 2018-12-21 23:34:56 +01:00
Eric Kuck c62c56da13 providerConfiguration is now a WgQuickConfig 2018-12-21 16:32:08 -06:00
Eric Kuck d7a27426e9 All migration stuff moved to one gross file 2018-12-21 12:51:14 -06:00
Eric Kuck f39893685f Updated NETunnelProvider save format 2018-12-21 16:42:16 +01:00
Roopesh Chander 8f46713b0d Remove non-helpful comments 2018-12-19 18:35:53 +05:30
Eric Kuck b06a43e2a2 Most similar views now shared between ViewControllers 2018-12-14 17:15:22 -06:00
Eric Kuck 42aeb8636c More formatting nits and cyclomatic complexity fixes 2018-12-12 21:09:52 -06:00
Eric Kuck ea29a0c7d1 Tons more swiftlint warnings fixed. Still a few remaining. 2018-12-12 12:28:27 -06:00
Eric Kuck fa558a4019 Added swiftlint and fixed all errors (and a bunch, but not all, warnings) 2018-12-12 11:40:57 -06:00
Roopesh Chander af018988b4 Model: Declare keyLength constant and use that wherever applicable 2018-12-09 14:07:03 +05:30
Roopesh Chander c0eb34c755 Model, Tunnels manager: Rewrite the model for VPN-on-demand
The VPN-on-demand settings should not be part of the tunnel
configuration. Rather, the onDemandRules stored in the
tunnel provider configuration serve as the one place
where the VPN-on-demand settings are stored.
2018-11-12 19:24:13 +05:30
Roopesh Chander 049e9f0b05 Model: Add activationType to tunnel configuration
We make sure existing tunnel serializations can be deserialized correctly.

We also bump up the tunnelConfigurationVersion, because the tunnel
configuration contents have changed.
2018-11-11 01:17:36 +05:30
Roopesh Chander 75474acb59 Model: ActivityType enum to represent VPN-on-demand options 2018-11-10 19:17:24 +05:30
Roopesh Chander ae627c5e5d Model: TunnelConfiguration: Add explicit conformance to Decodable 2018-11-10 19:01:34 +05:30
Roopesh Chander 0db19f187b Model: Ensure that a TunnelConfiguration always has a valid array of peers 2018-11-10 17:02:30 +05:30
Roopesh Chander 8f35d70482 Model: Endpoint.hostname() 2018-11-08 17:52:11 +05:30
Roopesh Chander 2afb2244ff Model: Move InterfaceConfiguration.publicKey to Curve25519.swift
The code for public key calculation need not be shared with the extension
2018-11-08 14:48:25 +05:30
Roopesh Chander f438f3ef6b Move logic to extension: Move model files to Shared 2018-11-08 13:56:50 +05:30