Commit Graph

252 Commits

Author SHA1 Message Date
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