Commit Graph

223 Commits

Author SHA1 Message Date
Roopesh Chander f6620fed9a Import: Support for importing a config file from file providers 2018-10-27 15:13:02 +05:30
Roopesh Chander 9d340ab873 iPad: Fix modal presentation style 2018-10-27 15:13:02 +05:30
Roopesh Chander 9aa0c1b1f8 iPad: Make sure the navigation bar is visible in the detail view 2018-10-27 15:13:02 +05:30
Roopesh Chander b2ad15da55 Tunnel editing: Delegate should also report when editing is cancelled 2018-10-27 15:13:02 +05:30
Roopesh Chander 4e2a1aa07a Import: Support for opening a .conf file in the app 2018-10-27 15:13:02 +05:30
Roopesh Chander 44a2eff1e0 Tunnel editing: Separate init for creation and modification 2018-10-27 15:13:02 +05:30
Roopesh Chander d3a9e79149 Parser: Interface name can be added after parsing 2018-10-27 15:13:02 +05:30
Roopesh Chander db72e9522a Model: Allow creating an interface with empty name
But don't allow such a tunnel to be added to the tunnel manager.

(We'll need to create an interface with an empty name when we're reading QR codes.)
2018-10-27 15:13:02 +05:30
Roopesh Chander e8633b243d Info.plist: support for opening wg-quick config (.conf) files 2018-10-27 15:13:02 +05:30
Roopesh Chander 8561b0f84c Info.plist: Export the config file type declaration 2018-10-27 15:13:02 +05:30
Roopesh Chander ab3fab4024 Config file: Parsing a wg-quick config file 2018-10-27 15:13:01 +05:30
Roopesh Chander 903fd02eb2 Model: MTU should be a 16-bit integer 2018-10-27 15:13:01 +05:30
Roopesh Chander 8423814876 VPN: Tunnel container shall provide direct access to the configuration object 2018-10-27 15:13:01 +05:30
Roopesh Chander 34cc14fefa Tunnel editing: Modifying a tunnel configuration 2018-10-27 15:13:01 +05:30
Roopesh Chander 61cf3f8a5b Tunnel creation: After saving the new tunnel, show the detail view 2018-10-27 15:13:01 +05:30
Roopesh Chander ebb0dcd923 Tunnel detail: Don't show fields that have empty value 2018-10-27 15:13:01 +05:30
Roopesh Chander e2663822bb Tunnel creation: Public key is uneditable 2018-10-27 15:13:01 +05:30
Roopesh Chander ad9e9b6666 Tunnel creation: An uneditable field's value should be grey as well 2018-10-27 15:13:01 +05:30
Roopesh Chander 9120e27f2b Tunnel creation: Generate key pair 2018-10-27 15:13:01 +05:30
Roopesh Chander 423fc4f9e0 Tunnel creation: Compute public key from private key as the text is being edited 2018-10-27 15:13:01 +05:30
Roopesh Chander 91ea0fe7e5 Tunnel view model: Populate interface's public key 2018-10-27 15:13:01 +05:30
Roopesh Chander a4016afd7c Model: Interface: Add a public key computed property 2018-10-27 15:13:01 +05:30
Roopesh Chander 1f166c8d3e Crypto: Swift wrapper for the Curve25519 C code 2018-10-27 15:13:01 +05:30
Jeroen Leenarts 3bae6c6f01 Crypto: Curve25519: Add explicit cast to supress conversion warning. 2018-10-27 15:13:01 +05:30
Roopesh Chander c68c214cbf Crypto: Add Curve25519 C code to project 2018-10-27 15:13:01 +05:30
Jeroen Leenarts c2abe9f011 Crypto: Add key generation functions 2018-10-27 15:13:01 +05:30
Roopesh Chander e6eef48c69 Tunnel creation: Hide 'Exclude private IPs' switch till the feature is ready 2018-10-27 15:13:01 +05:30
Roopesh Chander 3adb6cc15f Set Xcode template for smaller copyright headers 2018-10-27 15:13:01 +05:30
Roopesh Chander e0a8aedc3d Smaller copyright headers 2018-10-27 15:13:01 +05:30
Roopesh Chander a8138efefe Tunnel detail: Start off with the tunnel detail view 2018-10-27 15:13:01 +05:30
Roopesh Chander cd7d6d5152 Tunnel view model: Add copy public key 2018-10-27 15:13:01 +05:30
Roopesh Chander 6d4151eafa Tunnel creation: Variable renaming
s/interfaceEditFieldsBySection/interfaceFieldsBySection/g;
s/peerEditFieldsBySection/peerFieldsBySection/g;
2018-10-27 15:13:01 +05:30
Roopesh Chander 63f96b928a Tunnel view model: The view model applies for both editing and viewing 2018-10-27 15:13:01 +05:30
Roopesh Chander e8350b689f Tunnels list: Update when a tunnel is added 2018-10-27 15:13:01 +05:30
Roopesh Chander 0324cebe2b Tunnel creation: Saving a configuration 2018-10-27 15:13:01 +05:30
Roopesh Chander e0ee01db78 Model: Use DNSServer in the Configuration model 2018-10-27 15:13:01 +05:30
Roopesh Chander bebbaeaa93 Model for DNS server 2018-10-27 15:13:01 +05:30
Roopesh Chander 1b5ab9a72f Model: Endpoint host should not have invalid characters 2018-10-27 15:13:01 +05:30
Roopesh Chander c8fa6850c2 Model: listenPort and persistentKeepAlive should be 16-bit integers 2018-10-27 15:13:01 +05:30
Roopesh Chander 0fa97c38ed Tunnel creation: Refactor by creating a separate view model 2018-10-27 15:13:01 +05:30
Roopesh Chander 9f252d4e37 Tunnel creation: Validate the data and prepare to save to a configuration 2018-10-27 15:13:01 +05:30
Roopesh Chander 42c3d63d13 Tunnel creation: Save typed values in a scratchpad 2018-10-27 15:13:01 +05:30
Roopesh Chander d831bd44c4 Tunnel creation: Fix Persistent Keepalive label's look 2018-10-27 15:13:01 +05:30
Roopesh Chander bbd13ad4cf Tunnel creation: Start off with tunnel creation 2018-10-27 15:13:01 +05:30
Roopesh Chander e337427eae Model: Make InterfaceConfiguration and PeerConfiguration structs 2018-10-27 15:13:01 +05:30
Roopesh Chander 3e72dcade8 Model: Make it impossible to create invalid interface / peer configuration instances 2018-10-27 15:13:01 +05:30
Roopesh Chander 255b579f4d Use Endpoint in the Configuration model 2018-10-27 15:13:01 +05:30
Roopesh Chander 7482ee8cf5 Model for an endpoint 2018-10-27 15:13:01 +05:30
Roopesh Chander 1d01d1f85d Model: IPAddressRange: Converting to and from String 2018-10-27 15:13:01 +05:30
Roopesh Chander 945953177e Model: Name should be part of the interface, not the tunnel 2018-10-27 15:13:01 +05:30
Roopesh Chander e00a577bba Tunnels list: Show an actions list when the '+' is tapped 2018-10-27 15:13:01 +05:30
Roopesh Chander 0593a77d7a Tunnels list: Show data from the tunnels manager 2018-10-27 15:13:01 +05:30
Roopesh Chander 052ece53a3 Tunnels list: Make the table view style explicit 2018-10-27 15:13:01 +05:30
Roopesh Chander b690de0d14 VPN: Add TunnelsManager to manage the tunnels in the app 2018-10-27 15:13:01 +05:30
Roopesh Chander 66307fd3c5 Bump deployment target to iOS 12.0 2018-10-27 15:13:01 +05:30
Roopesh Chander f6054775ca Use IPAddressRange in the Configuration model 2018-10-27 15:13:01 +05:30
Roopesh Chander 0948363d5b Model for an IP Address range 2018-10-27 15:13:01 +05:30
Roopesh Chander 995320b958 Models for tunnel, interface and peer 2018-10-27 15:13:01 +05:30
Roopesh Chander 9443ee7e30 Configure the split-view controller to work in both iPhone and iPad 2018-10-27 15:13:01 +05:30
Roopesh Chander 50d660851a Change copyright to WireGuard LLC 2018-10-27 15:13:01 +05:30
Roopesh Chander 0c7321e923 Use a split-view controller as the main (root) view controller 2018-10-27 15:13:01 +05:30
Roopesh Chander 887678bbf9 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.
2018-10-27 15:13:01 +05:30
Roopesh Chander 8bd289c32f Prepare for rewrite: Move WireGuardNetworkExtension into the new project folder 2018-10-27 15:13:01 +05:30
Roopesh Chander be06f33acc 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.
2018-10-27 15:13:01 +05:30
Roopesh Chander 62987e7a32 Enable Network Extensions capability 2018-10-27 15:13:01 +05:30
Roopesh Chander c33cf18a2f Move App ID to Developer.xcconfig as well 2018-10-27 15:13:01 +05:30
Roopesh Chander d15a2ee88e Remove storyboard and create UI from code 2018-10-27 15:13:01 +05:30
Roopesh Chander 732309b2fe 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.
2018-10-27 15:13:01 +05:30
Roopesh Chander c647572b18 Create a new project in Xcode 2018-10-27 15:13:01 +05:30
Roopesh Chander 8df3d72615 Prepare for rewrite: Remove UI and model code 2018-10-27 15:13:01 +05:30
Jeroen Leenarts 94afded0d2 Better handling of CIDR values. 2018-10-03 21:34:51 +02:00
Jeroen Leenarts f27b4483da Disable auto corrects and related helpers on UITextfields. 2018-10-03 10:54:41 +02:00
Jeroen Leenarts e96a5c803f Export qr scanned config to system settings. 2018-10-03 10:48:49 +02:00
Jason A. Donenfeld 0f553856b1 Remove extra comment cruft 2018-10-03 01:21:59 +02:00
Jeroen Leenarts ae1af569d6 Remove a few prints, add some whitespace. 2018-10-02 22:36:39 +02:00
Jeroen Leenarts 03c257cfcc Add some form of image for when no configurations are available. 2018-10-02 21:33:24 +02:00
Jeroen Leenarts d12542a0c2 Dismiss qr scan vc on cancel. 2018-10-02 21:23:52 +02:00
Jeroen Leenarts 2fac395700 Handle persistentKeepAlive better. 2018-10-02 21:19:27 +02:00
Jeroen Leenarts 25ce33aa1f Add Wireguard logo to bottom of settings. 2018-10-02 21:14:47 +02:00
Jeroen Leenarts 93b1f31d45 Extract WireGuardGo version at build time. 2018-10-02 21:14:18 +02:00
Jeroen Leenarts 6fa7d7bfbf Deal with type body length warning. 2018-10-02 19:53:56 +02:00
Jeroen Leenarts 9ad7a2d3bd Copy public key through context menu. 2018-10-02 19:39:26 +02:00
Jason A. Donenfeld 9d01829a98 Rewrite bridge build system 2018-10-02 19:15:03 +02:00
Jeroen Leenarts 41e0459521 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. 2018-10-01 15:37:15 +02:00
Jeroen Leenarts 07be1c5398 Check and clear old configs on app start and app foreground. 2018-10-01 15:36:11 +02:00
Jeroen Leenarts d8946babba Add switch to info view controller. 2018-09-29 22:29:34 +02:00
Jeroen Leenarts f29776d8e8 Deal with zero or empty input better. 2018-09-26 11:43:13 +02:00
Jeroen Leenarts f669dd2015 Use trash instead of edit icon. 2018-09-26 11:27:24 +02:00
Jeroen Leenarts 406d72d8d9 Use message to extension to obtain version info. 2018-09-26 11:26:52 +02:00
Jeroen Leenarts 189e5181a5 Fixe base 64 regex format. 2018-09-26 11:23:13 +02:00
Jeroen Leenarts ae7e655e37 Add explicit cast to supress conversion warning. 2018-09-26 11:22:15 +02:00
Jeroen Leenarts 3f9858a655 Fixe file/function related warnings. 2018-09-26 11:21:53 +02:00
Jeroen Leenarts e27a3addb9 Not a gear but dots. 2018-09-26 10:24:52 +02:00
Jeroen Leenarts 2dc9392904 Present alert for title. 2018-09-25 22:30:16 +02:00
Jeroen Leenarts 0342415705 Remove default zeroes for listenPort and mtu. 2018-09-25 21:15:50 +02:00
Jeroen Leenarts 44c5b62c63 Ask for title when scaning a QR. 2018-09-25 20:59:15 +02:00
Jeroen Leenarts c296d6ed01 Move copy button a bit up towards title line. 2018-09-25 20:15:44 +02:00
Jeroen Leenarts de82b9f0af Settnings icon. 2018-09-25 20:10:29 +02:00
Jeroen Leenarts 4fdc8244a1 Report the correct number of rows in the info table view. 2018-09-20 00:44:24 +02:00
Jeroen Leenarts 336f30e3c9 Get rid of a few cosmetic lines. 2018-09-20 00:43:57 +02:00