Commit Graph

486 Commits

Author SHA1 Message Date
Davide De Rosa 70f8c6cc2b Reorganize VPNProvider related components
Reuse most code for native or custom providers.
2021-09-20 18:34:45 +02:00
Davide De Rosa e6e37cd528 Relax protocol type in base VPN configuration
NETunnelProviderProtocol -> NEVPNProtocol
2021-08-25 18:00:48 +02:00
Davide De Rosa 9a00befca9 Move configuration implementation to single file 2021-08-25 18:00:25 +02:00
Davide De Rosa 65774c9a09 Update CHANGELOG
Move XOR PR credits to README.
2021-07-22 10:55:57 +02:00
sam e69079d1f6 Add xormask option 2021-07-22 10:55:57 +02:00
Davide De Rosa 642a6763d1 Bump version 2021-07-20 10:31:41 +02:00
Davide De Rosa 7a6e97da36 Merge branch 'support-stub-v2' 2021-07-18 22:50:30 +02:00
Davide De Rosa a98943728f Relax handling of .ovpn whitespaces 2021-07-17 09:46:32 +02:00
Davide De Rosa 4dc3eeeeea Handle stub/stub-v2 as viable --compress arguments 2021-07-17 09:44:38 +02:00
Davide De Rosa 6020ee2251 Bump version 2021-07-16 21:24:57 +02:00
Davide De Rosa 0a1f33823a Return error in install completion handler
Fixes #206
2021-07-02 11:23:58 +02:00
Davide De Rosa 7f84d8338c Upgrade Xcode project 2021-06-26 11:00:24 +02:00
Davide De Rosa f4b2cb1227 Bump version 2021-03-02 15:01:11 +01:00
Roopesh Chander d8ed0c7d41 Cleanup cached PEMs at the end of a Session 2021-03-01 13:11:51 +05:30
Roopesh Chander 433e3f8dc9 Keychain: Enable correct keychain sharing in macOS
To enable sharing of keychain items using access groups in macOS,
the kSecUseDataProtectionKeychain attribute should be set.
This key has effect only in macOS, and is unavailable in iOS 12,
so we set it only in macOS.
2021-02-12 01:07:43 +01:00
Davide De Rosa 123f4d658e Bump vesion 2021-02-11 23:14:14 +01:00
Davide De Rosa 1620fb0f99
Merge pull request #201 from passepartoutvpn/reference-passwords-in-app-group
Keychain: Use app group when dereferencing a password reference
2021-02-11 22:44:50 +01:00
Davide De Rosa 3ba63e9a88 Extend peer info with IV_PLAT_VER
Will then make them conditional based on --push-peer-info

See #202
2021-02-11 22:23:47 +01:00
Roopesh Chander 2b3eb5412c Keychain: Use app group when dereferencing a password reference
Co-authored-by: Davide De Rosa <keeshux@gmail.com>

Better retain access group every time keychain is written to or
read from, there is no good reason to omit it. Requires Keychain
method to be reverted to non-static.

Partially revert 4490f0c116, based
on wrong assumptions about password references.
2021-02-11 13:44:00 +01:00
Davide De Rosa 4114605520 Fix keychain method in Demo
Fixes #199
2021-02-02 09:03:18 +01:00
Davide De Rosa 1343fa592f Log time intervals better 2021-01-27 02:15:18 +01:00
Davide De Rosa 4490f0c116 Pick tunnel password reference from existing item
Assume that credentials already exist elsewhere for reuse as
password reference. Avoids a redundant keychain entry.
2021-01-27 01:28:27 +01:00
Jose Blaya 4b3f3dee5f
Check if cfg.sessionConfiguration.dnsServers is empty (#198) 2021-01-26 16:31:57 +01:00
Davide De Rosa 790ec276db Restrain DNS servers according to protocol
- Cleartext: pick any available
- HTTPS/TLS: only pick local servers, secure DNS may NEVER come
  from VPN server

Require for TLS, not for HTTPS (not even sure about their need).
2021-01-26 11:20:01 +01:00
Davide De Rosa 3abb7cbccc Fix up misleading log from condition in latest commit 2021-01-26 10:59:37 +01:00
Davide De Rosa 0f097d50af Fall back to network settings when no DNS servers
Rather than forcing CloudFlare (by default).

Fixes #197
2021-01-26 10:18:04 +01:00
Davide De Rosa fd9d34b49c Print description of new DNS settings 2021-01-22 21:14:38 +01:00
Davide De Rosa dd81ad7a99 Pick proper DNS settings according to protocol 2021-01-22 21:14:38 +01:00
Davide De Rosa 3c92e18c0e Add DNSProtocol 2021-01-22 21:14:38 +01:00
Davide De Rosa e388842d37 Add fallback compression algorithm
Disabled.
2021-01-13 08:10:33 +01:00
Davide De Rosa c15d6f521a Parse dataCiphersFallback as last resort
Prioritize over deprecate cipher.
2021-01-08 19:50:28 +01:00
Davide De Rosa 7ea088e4a1 Make peerInfo dynamic to add IV_CIPHERS
Fixes #193
2021-01-08 19:41:16 +01:00
Davide De Rosa 119d2f02e4 Add OpenVPN dataCiphers field 2021-01-08 19:26:20 +01:00
Davide De Rosa e6a0622cc2 Bump version 2021-01-08 19:15:49 +01:00
Davide De Rosa f4cc06adfd Bump copyright 2021-01-03 19:47:25 +01:00
Davide De Rosa 80472a6cd3 Move Demo into main project 2021-01-03 19:47:25 +01:00
Davide De Rosa 4670a5e634 Reorganize files hierarchy 2021-01-03 19:47:25 +01:00
Davide De Rosa 13af9338ae Share some resources across targets 2021-01-03 19:47:25 +01:00
Davide De Rosa 80d99cab6c Refactor legacy parsing of provider configuration
Leverage Codable implementation of OpenVPN*.Configuration
2021-01-03 10:47:06 +01:00
Davide De Rosa e923382c81 Default to unspecified MTU
Hardcode control channel packets to 1000 bytes.
2020-12-28 16:04:15 +01:00
Davide De Rosa 1966143fe9 Parse MTU from --tun-mtu 2020-12-28 13:07:19 +01:00
Davide De Rosa 6cb04da05d Add MTU to OpenVPN layer 2020-12-28 13:02:09 +01:00
Davide De Rosa e3ce38e47e Remove MTU from AppExtension layer 2020-12-27 22:51:58 +01:00
Davide De Rosa ba3ead13a3 Update copyright 2020-12-27 17:29:39 +01:00
Davide De Rosa 663cab34c9 Centralize reconnection delay 2020-12-20 19:43:23 +01:00
Davide De Rosa 304d0215b6 Use keychain service as item context
Primary key = (context, username)
2020-12-20 10:57:06 +01:00
Davide De Rosa 4a5bc92fcb Remove password inside try/catch 2020-12-18 19:11:52 +01:00
Davide De Rosa ecb2c951a8 Handle keychain cancelation
E.g. stop on "Deny" button.
2020-12-18 19:11:52 +01:00
Davide De Rosa 6b8d88fef5 Consider last appearing DOMAIN option 2020-12-15 13:59:06 +01:00
Davide De Rosa 7535458339 Parse domain option 2020-12-11 17:09:15 +01:00