Commit Graph

90 Commits

Author SHA1 Message Date
Davide De Rosa
92bc00e1fd
Skip notifications without a bundle identifier
Would raise fatalError in notification getter.
2023-12-27 17:45:49 +01:00
Davide De Rosa
6101e92c3b
Add tvOS support
- Upgrade OpenSSL for tvOS Simulator on arm64
- Use own WireGuard fork on develop

Closes #337
2023-12-27 17:28:02 +01:00
Davide De Rosa
c56bfd7224
Attach user data to VPN configuration (#400) 2023-12-24 00:40:42 +01:00
Evgeny
bda84bf569
Add WireGuard RX/TX data statistics (#341)
Co-authored-by: Yevgeny <y.yezub@gmail.com>
Co-authored-by: Davide De Rosa <keeshux@gmail.com>
2023-12-14 22:01:26 +01:00
Davide De Rosa
b885689d8e
Drop broken/unused routing table code (#350) 2023-12-13 22:04:06 +01:00
Davide De Rosa
f56dfa313c
Use OpenSSL 3 (#347)
- Replace deprecated peer cert calls
- Use atomic HMAC
- Upgrade HMAC to EVP_MAC
2023-12-13 21:17:38 +01:00
Davide De Rosa
8ca928a13b
Convert encryption tests to proper unit tests (#348) 2023-12-13 09:59:57 +01:00
Davide De Rosa
d69899bbc0
Fix keychain error escaping catch block (#326) 2023-07-06 12:03:31 +02:00
Davide De Rosa
729e8973cf
Hide errors behind façade TunnelKit*Error (#325) 2023-07-02 11:56:40 +02:00
Davide De Rosa
0c77062add
Add SwiftLint (#318) 2023-04-20 21:52:45 +02:00
Davide De Rosa
c62fc4adaa
Drop #available(iOS 14) (#317) 2023-04-20 21:44:32 +02:00
Davide De Rosa
422f3163d3
Reuse native WireGuard error as ConfigurationError (#316)
There was a duplicate ConfigurationError.
2023-04-02 23:42:05 +02:00
Davide De Rosa
7ce254be02
Extend WireGuard with DoH/DoT options (#314) 2023-03-19 08:22:30 +01:00
Davide De Rosa
e0c0cc137f
Split DNS domain and search domains (#313) 2023-03-17 20:22:21 +01:00
Davide De Rosa
11ae9e4141
Delay tunnel disposal (#311)
Postpone reconnection due to on-demand trigger.
2023-03-17 20:20:44 +01:00
Davide De Rosa
d7fbeb0d90 Update copyright 2023-03-17 16:58:36 +01:00
Davide De Rosa
3d226a20f3 Drop some extra return 2022-11-10 07:16:05 +01:00
Davide De Rosa
47281cafc9 Move kill switch to configuration extras 2022-11-10 07:11:57 +01:00
Tejas Mehta
5ecd732cc2
Add Complete XOR Patch Functionality (#255)
Co-authored-by: Davide De Rosa <keeshux@gmail.com>
2022-11-06 17:46:10 +01:00
Davide De Rosa
e225ca15ff Prefix local options output in OpenVPN provider
Lost in the refactoring.
2022-11-02 20:50:34 +01:00
Davide De Rosa
0d21731e12
Set includeAllNetworks for best-effort kill switch (#300)
* Update CHANGELOG

* Make kill switch an option
2022-10-30 09:07:17 +01:00
Davide De Rosa
a3b85430fd Unmask more safe things
- IPv4/6 address and default gateway within VPN

- Route destination and gateway
2022-10-29 20:29:36 +02:00
Davide De Rosa
6b42048d6a Drop leftover TODO 2022-10-29 20:24:29 +02:00
Davide De Rosa
cae371bb40
Split IPv4/6 settings and routes (#298)
* Postpone setting route gateway

Resolve in NetworkSettingsBuilder.

* Store routes separately from IP*Settings

Parse as optionals to avoid empty arrays.

* Deprecate routes stored in IP*Settings

* Apply routes from new fields

* Update CHANGELOG
2022-10-29 12:24:28 +02:00
Davide De Rosa
703d1416ad
Deal with remote options properly (#297)
Some take over, some are merged.

Also:

- Drop non-existing DOMAIN-SEARCH dhcp-option

- Only first DNS domain was parsed
2022-10-29 11:00:39 +02:00
Davide De Rosa
8ac21771e3 Fix default gateway not set when --route-nopull
The "no pull" flag is already accounted for when routingPolicies is
computed (e.g. default gateway). Evaluate it properly for routes
instead.

See 31db8ebb9d
2022-10-28 15:38:29 +02:00
Davide De Rosa
65c41c257b
Unify logging of local/remote options (#295) 2022-10-27 00:40:46 +02:00
Davide De Rosa
fa5aa86399 Use keypath in .map occurrences 2022-10-27 00:37:24 +02:00
Davide De Rosa
5913b801a9 Simplify hasGateway check 2022-10-27 00:23:57 +02:00
Davide De Rosa
7b6aca479b Fix dumb regression on endpoint address
Was only parsing IPv4/6 addresses, not generic hostnames.
2022-10-26 19:02:46 +02:00
Davide De Rosa
7659057888
Parse IPv6 enpdoints properly (#294)
* Fix incorrect parsing of IPv6 address in endpoint

* Use better names for space-based regex extensions
2022-10-25 11:29:36 +02:00
Davide De Rosa
31db8ebb9d
Delegate network settings to ad-hoc builder (#292)
* Delegate network settings to ad-hoc builder

- Assert network settings nil or non-empty, NOT precondition

- Fix log about local DNS, only if not gateway

- Remove non-working block-local code

Fixes #289, fixes #290

* Unmask safe and helpful network settings
2022-10-25 08:58:34 +02:00
Davide De Rosa
17c272d733
Support --remote-random-hostname (#286) 2022-10-17 09:00:23 +02:00
Davide De Rosa
769a79c4c0 Refine mock VPN actions and events 2022-10-15 08:44:39 +02:00
Davide De Rosa
36f0b2c03d Extend description of link remote with protocol 2022-10-14 08:23:23 +02:00
Davide De Rosa
f17bb110c2 Adjust log of DNS settings according to gateway 2022-10-13 18:34:31 +02:00
Davide De Rosa
192f4643c2
Fix mock VPN implementation (#285) 2022-10-12 22:35:02 +02:00
Davide De Rosa
080ee35e61
Replace continuations with natively async methods (#284) 2022-10-12 22:28:33 +02:00
Davide De Rosa
a3822678cf
Support --route-nopull (#280)
* Parse --route-no-pull

When provided, pull everything except:

- Routes
- DNS
- Proxy

Implement with higher granularity compared to OpenVPN.

* Apply no-pull mask in tunnel settings

Pull server settings by default to match standard OpenVPN
behavior. Library was prioritizing client over server.

* Add link in CHANGELOG
2022-10-08 08:54:55 +02:00
Davide De Rosa
9f5de0fc55 Fix misplaced tab 2022-09-30 21:43:33 +02:00
Davide De Rosa
5c84c15416 Use localOptions to clarify context
localOptions = cfg.configuration
2022-09-25 17:23:13 +02:00
Davide De Rosa
6018c30cc4 Add fallback for compression algorithm 2022-09-23 23:01:57 +02:00
Davide De Rosa
64b3fa47af Add some missing documentation 2022-09-23 21:45:04 +02:00
Davide De Rosa
6dc1140d5b Revert "Work around segfault in Xcode 13.3 "Release""
This reverts commit 02e702d97b.
2022-09-23 16:11:37 +02:00
Davide De Rosa
0db3f52931 Add methods to remove WireGuard default gateways 2022-09-14 22:07:46 +02:00
Davide De Rosa
e2aaffc06f Reconnect with current manager and configuration 2022-08-05 07:38:53 +02:00
Davide De Rosa
83a2842214 Customize app extension log path
Store path into App Group. Do not read it from UserDefaults in
app extension because value is immediately available in provider
configuration.
2022-06-17 09:19:54 +02:00
Davide De Rosa
4eb9a92c2e Hide setters of shared provider defaults
Tunnel values were overwritable by app.

Instead:

- Write from app extension with "private" setter (_appexSet*)

- Read from app with public getter
2022-06-17 09:18:28 +02:00
Davide De Rosa
178dda56ac Simplify .configureLogging() in app extensions 2022-06-17 09:16:41 +02:00
Davide De Rosa
6e0471a55b Report vpnIsEnabled = false on install error 2022-04-27 15:44:40 +02:00