Commit Graph

419 Commits

Author SHA1 Message Date
Roopesh Chander 8ca3993804 Bump deployment target to iOS 12.0
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander ede2a82c3b Use IPAddressRange in the Configuration model
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander 0ce6b9e79e Model for an IP Address range
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander 3630543be5 Models for tunnel, interface and peer
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander 78251e9a50 Configure the split-view controller to work in both iPhone and iPad
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander 8d62cb3c1b Change copyright to WireGuard LLC
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander 5fe60a8bef Use a split-view controller as the main (root) view controller
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander c76e5933e2 Move UI code into a separate platform-specific folder
Later, we hope to have a UI/macOS folder for developing a macOS client
from this codebase.

Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander dd672d3dac Prepare for rewrite: Move WireGuardNetworkExtension into the new project folder
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander 5776523bd2 Use APP_ID in xcconfig rather than PRODUCT_BUNDLE_IDENTIFIER
This is required because when we add an app extension to the
project, there will be two PRODUCT_BUNDLE_IDENTIFIER fields
in our project file, so we cannot use xcconfig to set that
key directly.

Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander 6fe8b8dbe4 Enable Network Extensions capability
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander e2022d3e00 Move App ID to Developer.xcconfig as well
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander 700c7221a9 Remove storyboard and create UI from code
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander b6f4806fd6 Move DEVELOPMENT_TEAM into an xcconfig out of the git repo
This is so that other developers can work on this codebase
by copying Developer.xcconfig.template to Developer.xcconfig
and setting the DEVELOPMENT_TEAM to their respective Team IDs.
The Team IDs need not be checked into source control.

Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander 6ada0a2857 Create a new project in Xcode
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Roopesh Chander cc26734d5d Prepare for rewrite: Remove UI and model code
Signed-off-by: Roopesh Chander <roop@roopc.net>
2018-10-27 15:13:01 +05:30
Jeroen Leenarts 6346bad069 Better handling of CIDR values.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-03 21:34:51 +02:00
Jeroen Leenarts 24f7dcb7d6 Disable auto corrects and related helpers on UITextfields.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-03 10:54:41 +02:00
Jeroen Leenarts 6cf4c49e21 Export qr scanned config to system settings.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-03 10:48:49 +02:00
Jason A. Donenfeld c10532acd9 Remove extra comment cruft
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-03 01:21:59 +02:00
Jeroen Leenarts 12e33681c1 Remove a few prints, add some whitespace.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-02 22:36:39 +02:00
Jeroen Leenarts bc279b1e79 Add some form of image for when no configurations are available.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-02 21:33:24 +02:00
Jeroen Leenarts 9906e6ba04 Dismiss qr scan vc on cancel.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-02 21:23:52 +02:00
Jeroen Leenarts 37be243317 Handle persistentKeepAlive better.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-02 21:19:27 +02:00
Jeroen Leenarts c9a88ac29c Add Wireguard logo to bottom of settings.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-02 21:14:47 +02:00
Jeroen Leenarts eadb09eda8 Extract WireGuardGo version at build time.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-02 21:14:18 +02:00
Jeroen Leenarts 589bba60b1 Deal with type body length warning.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-02 19:53:56 +02:00
Jeroen Leenarts 7f6a7481c8 Copy public key through context menu.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-02 19:39:26 +02:00
Jason A. Donenfeld cd86ba92ec Rewrite bridge build system
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-02 19:15:03 +02:00
Jeroen Leenarts 33cdc14070 Don't crash on failure to obtain version info and inform user on what is needed to be able to retrieve version info from the Go client.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-01 15:37:15 +02:00
Jeroen Leenarts 86646448ac Check and clear old configs on app start and app foreground.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-10-01 15:36:11 +02:00
Jeroen Leenarts dd02986a78 Add switch to info view controller.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-29 22:29:34 +02:00
Jeroen Leenarts ff1337d5ad Deal with zero or empty input better.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-26 11:43:13 +02:00
Jeroen Leenarts 8e0a52a132 Use trash instead of edit icon.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-26 11:27:24 +02:00
Jeroen Leenarts 18d82d07af Use message to extension to obtain version info.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-26 11:26:52 +02:00
Jeroen Leenarts 47a75bbd57 Fixe base 64 regex format.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-26 11:23:13 +02:00
Jeroen Leenarts cc4bd254a2 Add explicit cast to supress conversion warning.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-26 11:22:15 +02:00
Jeroen Leenarts a55eefcd5d Fixe file/function related warnings.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-26 11:21:53 +02:00
Jeroen Leenarts cd6c9a1203 Not a gear but dots.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-26 10:24:52 +02:00
Jeroen Leenarts 7042e36fb5 Present alert for title.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-25 22:30:16 +02:00
Jeroen Leenarts df4e8e1fca Remove default zeroes for listenPort and mtu.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-25 21:15:50 +02:00
Jeroen Leenarts ad28815bef Ask for title when scaning a QR.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-25 20:59:15 +02:00
Jeroen Leenarts edaeaf732d Move copy button a bit up towards title line.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-25 20:15:44 +02:00
Jeroen Leenarts 7aaa63d8e5 Settnings icon.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-25 20:10:29 +02:00
Jeroen Leenarts 19a4339a27 Report the correct number of rows in the info table view.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-20 00:44:24 +02:00
Jeroen Leenarts 659a24250a Get rid of a few cosmetic lines.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-20 00:43:57 +02:00
Jeroen Leenarts 06f61cbc99 Make sure a scanned config is actually saved and displayed.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-20 00:43:43 +02:00
Jeroen Leenarts 7c608cc3be Support some form of rotation.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-20 00:28:07 +02:00
Jeroen Leenarts 74ad02132a Make sure correct layering is used to make sure hint remains visible.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-20 00:27:49 +02:00
Jeroen Leenarts f993c3172e Add add from file within app.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-19 16:02:20 +02:00
Jeroen Leenarts c9974f9119 Add edit/done buttons to have a more discoverable way to remove tunnels.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-18 22:46:28 +02:00
Jeroen Leenarts 411c919cbf Move add button to bottom toolbar.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-18 22:19:03 +02:00
Jeroen Leenarts 089315ddc5 Add settings screen. Move export as zip to settings screen.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-18 21:49:59 +02:00
Jeroen Leenarts 9d45f6e4b0 Spelling improvement in log statement.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-16 22:43:31 +02:00
Jeroen Leenarts 8326735fcb Show public key on interface. Do not generate public key on peer on generate. Add public key copy buttons.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-16 22:38:32 +02:00
Jeroen Leenarts c863adce85 Start a new peer without an allowed ips entry.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-16 21:23:20 +02:00
Jeroen Leenarts d6e0838677 New peers should begin with zero peers.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-16 21:22:00 +02:00
Jeroen Leenarts 0af4dadd70 Back button for tunnel table view renamed to "Tunnels"
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-16 21:19:14 +02:00
Jeroen Leenarts 484bef1777 Clean up old school headers.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-16 21:17:54 +02:00
Jeroen Leenarts 878f6c54d1 We do not support "on demand" right now.
On demand has the effect of the VPN tunnel being started "on demand" based on a set of triggering criteria. Currently there are no criteria in place, so it always triggers.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-15 21:26:07 +02:00
Jeroen Leenarts 6104546fc6 Add intermediate "Info" screen.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-15 21:24:52 +02:00
Jeroen Leenarts 3a8f8ef9e6 Prevent crash on add and deletion of config.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-15 21:23:47 +02:00
Jeroen Leenarts b8abaa5283 Re-center app icon.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-15 20:29:28 +02:00
Jeroen Leenarts 3802a5c50b Rename "WireGuard tunnels" to "WireGuard".
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-15 20:27:14 +02:00
Jeroen Leenarts 3dcaaa4e6c Fix provisioning.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-15 20:26:17 +02:00
Jason A. Donenfeld e379854dcb Update bundle names
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-15 02:22:10 +02:00
Jeroen Leenarts 1379d97bbe Switch copyright assignment from Jason to WireGuard LLC.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-06 07:42:23 +02:00
Jeroen Leenarts d729a7686e Working zip import.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-05 20:25:54 +02:00
Jeroen Leenarts 24623c4ea3 Remove item from provider managers on delete.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-05 20:25:32 +02:00
Jeroen Leenarts b7755b97a3 Make sure to refresh provider managers after saving.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-05 20:10:09 +02:00
Jeroen Leenarts 56c543f1fc Import of zip.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-03 00:08:34 +02:00
Jeroen Leenarts 8766750bb8 Zip export.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-02 22:47:41 +02:00
Jeroen Leenarts 2572c4781c Add import and export logic.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-09-01 00:18:12 +02:00
Jeroen Leenarts 4950254013 Add addresses, dns and mtu to export string.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-31 21:40:24 +02:00
Jeroen Leenarts b1aadaf82c Add string conversion for tunnel config.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-29 15:01:59 +02:00
Jeroen Leenarts 2e9a12c63f Initial merge of rc's work.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-27 22:32:47 +02:00
Jeroen Leenarts 56362ebd68 Move, modify and add key generation functions to project.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-27 13:38:50 +02:00
Eric Kuck fc1ddc8b12 Reworked main tableview switch layout & logic
Signed-off-by: Eric Kuck <eric@bluelinelabs.com>
2018-08-22 13:34:08 -05:00
Jeroen Leenarts e93e562f38 Use a Switch on each tunnel cell.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-21 22:27:44 +02:00
Jeroen Leenarts dc1a3865af Line selection configures the tunnel.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-21 20:04:14 +02:00
Eric Kuck 39ae9db11c Added ability to add tunnels with a QR code scan. Logic in place to parse conf files as well.
Signed-off-by: Eric Kuck <eric@bluelinelabs.com>
2018-08-21 11:00:41 -05:00
Jeroen Leenarts 5a7e67b53c Extend validators to work for DNS entries as well.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-16 22:41:45 +02:00
Jeroen Leenarts bf3510765a Use `commaSeparatedToArray` utility everywhere.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-16 22:39:08 +02:00
Jeroen Leenarts 603953a8b8 If the selected tunnel is not "enabled", make it enabled.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-16 22:05:22 +02:00
Jeroen Leenarts a95212fcc8 Add on demand rule.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-16 22:04:35 +02:00
Jeroen Leenarts 0adb454bd6 Do not perform optional try, this ate errors in the addressess and DNS input.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-16 22:03:40 +02:00
Eric Kuck b306149222 Added validation before saving any tunnels
Signed-off-by: Eric Kuck <eric@bluelinelabs.com>
2018-08-15 17:34:16 -05:00
Jeroen Leenarts 04454b8451 Remove old import.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-15 19:41:19 +02:00
Jeroen Leenarts a81e8dcf3c Log on VPNStatusDidChange.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-12 21:50:54 +02:00
Jeroen Leenarts 41f9a64d9f Config tweaking.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-12 21:49:38 +02:00
Jeroen Leenarts d38a81c301 Add back addresses.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-12 21:37:56 +02:00
Jeroen Leenarts 9e8feb05f3 Fix config generation.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-09 22:45:28 +02:00
Jeroen Leenarts bee5363dfa Switch from using a single VPN manager to a VPN manager per configuration.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-08 07:04:42 +02:00
Jeroen Leenarts 2b7aa04d40 Add tunnel provider identifier.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-08 06:59:56 +02:00
Jeroen Leenarts 762618ee5a Generate split allowed IPs in protocol configuration.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-07 21:33:19 +02:00
Jeroen Leenarts 4eca5e814c Remove Address and related code.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-06 23:28:52 +02:00
Jeroen Leenarts 7a4cbfa609 Remove incorrect core data model fields.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-06 09:04:54 +02:00
Jeroen Leenarts 5697d6e7e2 Add provider configuration generation.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-06 09:04:29 +02:00
Jeroen Leenarts b2950694d3 Fix binding.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-05 19:05:41 +02:00
Jeroen Leenarts a1a5e73a5d Add default allowed IPs.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-05 15:58:01 +02:00
Jeroen Leenarts 2307bf25b5 Assign correct copyright.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-05 07:48:36 +02:00
Jeroen Leenarts 54c9305ae4 A server address is required for proper saving of protocol configuration.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-04 22:49:37 +02:00
Jeroen Leenarts 675227bac5 Remove some silly TODOs.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-04 22:49:03 +02:00
Jeroen Leenarts 2ae7984629 Add NETunnelProviderManager management to AppCoordinator.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-08-04 21:28:19 +02:00
Jeroen Leenarts f3bccfb5cc Change copyright notice.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-07-15 11:55:41 +02:00
Jeroen Leenarts b7cf84b7fa Start wire-up of logging and tunnel system.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-07-07 22:54:44 +02:00
Jason A. Donenfeld 5fa1283466 Fix bizarre name
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-23 02:15:43 +02:00
Jeroen Leenarts f30f0d1a7b Objective-C wrapper around WireguardGo.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-06-22 08:23:39 +02:00
Jeroen Leenarts f7cbe841b7 Allow adding and deleting peers.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-29 22:47:52 +02:00
Jeroen Leenarts db7b24dd02 Allow adding unvalidated config.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-29 22:21:44 +02:00
Jeroen Leenarts 1407090f94 Wire up TunnelConfigurationTableViewController.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-27 22:38:44 +02:00
Jeroen Leenarts 14cb55dd8b A config having zero peers is allowed.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-27 14:23:36 +02:00
Jeroen Leenarts 49538c412e We are dealing with not just any tunnel, but with WireGuard tunnels.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-27 14:23:13 +02:00
Jeroen Leenarts ef67aa7dc4 Deal with final folder name issues due to Apple's case insensitive case preserving behavior.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-27 14:20:15 +02:00
Jeroen Leenarts e14faf6fea Add trash can icon.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-26 09:41:19 +02:00
Jeroen Leenarts ed28691e4c Some casing trouble in WireGuard strings.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-26 09:41:09 +02:00
Jeroen Leenarts 15e62d7f02 Everything is a tunnel.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-26 09:17:36 +02:00
Jeroen Leenarts 9724073447 Add bare bones `ProfileConfigurationTableViewController`.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-24 22:07:04 +02:00
Jeroen Leenarts e6c6fd0b34 Basic setup of ConnectionsTableViewController.
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
2018-05-24 20:16:17 +02:00