Davide De Rosa
|
8dfd5f23c1
|
Handle unknown enum defaults
|
2019-03-30 23:18:45 +01:00 |
Davide De Rosa
|
5120bcae0a
|
Migrate to Swift 5
|
2019-03-30 23:18:45 +01:00 |
Davide De Rosa
|
f686a0aee4
|
Fix Xcode warnings
|
2019-03-30 20:16:04 +01:00 |
Davide De Rosa
|
44fb5a5b48
|
Track data count in shared UserDefaults
Default disabled (dataCountInterval = 0).
|
2019-03-30 19:56:26 +01:00 |
Davide De Rosa
|
d03f1bd9af
|
Fix checksEKU not propagated to TunnelKitProvider
|
2019-03-26 00:37:35 +01:00 |
Davide De Rosa
|
54a477ce67
|
Randomize endpoints in ConnectionStrategy
Fixes #76
|
2019-03-25 10:32:23 +01:00 |
Davide De Rosa
|
42227fcc00
|
Add SessionProxy.Configuration.randomizeEndpoint
|
2019-03-25 10:32:08 +01:00 |
Davide De Rosa
|
04fbbb1fe1
|
XXX: Fix log glitch
|
2019-03-21 19:40:42 +01:00 |
Davide De Rosa
|
ac418f414a
|
Make masksPrivateData optional
Do not break Codable compatibility.
|
2019-03-21 19:32:06 +01:00 |
Davide De Rosa
|
fad20668b0
|
Override masksPrivateData via AppExtension
Unmask in demo.
Fixes #62
|
2019-03-21 19:19:22 +01:00 |
Davide De Rosa
|
f32c231b90
|
Remove deprecated API
Should have done so in 1.5.0
|
2019-03-21 18:30:40 +01:00 |
Davide De Rosa
|
0eb0e3e478
|
Parse compression from several places
- PUSH_REPLY
- .ovpn configuration
- TunnelKitProvider
|
2019-03-19 15:14:29 +01:00 |
Davide De Rosa
|
5cc32b1060
|
Wrap minilzo into dynamic Obj-C plugin
Handle library errors to some extent.
|
2019-03-19 15:12:46 +01:00 |
Davide De Rosa
|
7d69e09c53
|
Update copyright
|
2019-03-09 11:44:18 +01:00 |
Davide De Rosa
|
6b29c9e06c
|
Double check reasserting during reconnection
A forced shutdown might happen during the recovery interval (1s).
|
2019-03-08 13:19:52 +01:00 |
Davide De Rosa
|
70ed2a4d83
|
Reset reasserting flag on plain shutdown
|
2019-03-08 13:16:03 +01:00 |
Davide De Rosa
|
1c1547fc8f
|
Fix DNS servers not serialized to AppExtension
|
2019-03-03 10:51:36 +01:00 |
Davide De Rosa
|
86420ba8ea
|
Shut down on compressed data packet
Re-inforce #65 at the data path level. Should now cover all
compression scenarios.
|
2019-02-28 17:16:14 +01:00 |
Davide De Rosa
|
06a872c448
|
Add ProviderError.serverCompression mapping
|
2019-02-25 23:09:06 +01:00 |
Davide De Rosa
|
d6076b045a
|
Make checksEKU optional to fall back on decoding
|
2019-02-25 11:16:26 +01:00 |
Davide De Rosa
|
010da904fa
|
Parse EKU choice in .ovpn from remote-cert-tls
Fix unhandled extra spaces in dhcp-option DNS regex.
|
2019-02-25 11:16:26 +01:00 |
Davide De Rosa
|
13c41d80e7
|
Allow overriding DNS servers
Fall back to those in PUSH_REPLY.
|
2019-01-05 22:25:58 +01:00 |
Davide De Rosa
|
f91db4cbf1
|
Move EndpointProtocol/SocketType to Core
|
2018-11-10 10:48:17 +01:00 |
Davide De Rosa
|
e198e80595
|
Use standard inet_ntop/pton for IPv4 conversion
Swap endianness internally.
|
2018-11-05 20:21:10 +01:00 |
Davide De Rosa
|
b32c1848be
|
Unmask harmless destination port
|
2018-11-05 15:48:34 +01:00 |
Davide De Rosa
|
9c989dabf5
|
Fix IPv4/UInt32 calculations
|
2018-10-28 00:26:15 +02:00 |
Davide De Rosa
|
9e2bdd22ac
|
Pick default values from static constant
|
2018-10-26 11:07:46 +02:00 |
Davide De Rosa
|
84e216f56d
|
Deprecate lastErrorKey, encapsulate access
|
2018-10-25 22:36:31 +02:00 |
Davide De Rosa
|
3cc511822d
|
Deprecate debugLogKey, hardcode filename
|
2018-10-25 22:36:31 +02:00 |
Davide De Rosa
|
8f328709c8
|
Wrap TKP.Configuration fields in SP.Configuration
Take credentials out of SP.Configuration. Makes sense as they
never appear in e.g. an .ovpn file.
|
2018-10-25 18:34:03 +02:00 |
Davide De Rosa
|
197d29042c
|
Take a cache URL in SessionProxy to store PEMs
|
2018-10-25 18:34:03 +02:00 |
Davide De Rosa
|
3fd0329736
|
Use CryptoContainer in SessionConfiguration
Instead of paths.
|
2018-10-25 18:34:02 +02:00 |
Davide De Rosa
|
ca77858bf0
|
Move CryptoContainer to Core
|
2018-10-25 18:34:02 +02:00 |
Davide De Rosa
|
f1efac073c
|
Export and document log shortcuts in Configuration
|
2018-10-24 21:06:04 +02:00 |
Davide De Rosa
|
f5d12300f9
|
Save debug log to file in app group container
Don't bog UserDefaults. Reuse debugLogKey for the log filename.
|
2018-10-24 21:06:04 +02:00 |
Davide De Rosa
|
ae85337e91
|
Mask log.debug
|
2018-10-24 18:47:41 +02:00 |
Davide De Rosa
|
033763f372
|
Mask log.info
|
2018-10-24 18:47:41 +02:00 |
Davide De Rosa
|
b1a79d6451
|
Shut down on server-initiated HARD_RESET
Session is stale and not recoverable (lame duck).
|
2018-10-24 12:31:37 +02:00 |
Davide De Rosa
|
d829247e6e
|
Simplify socket shutdown code
Drop weird (old?) linkFailures check.
|
2018-10-24 09:42:18 +02:00 |
Davide De Rosa
|
91349fd780
|
Take shouldChangeProtocol out of GenericSocket
Behavior is not exactly similar in UDP and TCP.
|
2018-10-24 09:42:03 +02:00 |
Davide De Rosa
|
8b59fe6f4c
|
Use RawRepresentable where adequate
|
2018-10-24 09:19:50 +02:00 |
Davide De Rosa
|
c32185b524
|
Review/complete mapping to ProviderError
Errors from TunnelKitNative were not mapped. Also, move TLS CA
verification error to TLSBox domain.
|
2018-10-23 23:44:25 +02:00 |
Davide De Rosa
|
1ad4a62593
|
Report error status to shared defaults
Retain after disposal, unless manually stopped.
|
2018-10-22 01:04:36 +02:00 |
Davide De Rosa
|
7ffb997904
|
Add defaults key for last error
|
2018-10-22 01:04:36 +02:00 |
Davide De Rosa
|
4bf7f1a1fc
|
Bridge SessionError to public ProviderError
|
2018-10-22 01:04:36 +02:00 |
Davide De Rosa
|
6200a0bc1c
|
Split configuration and session errors
|
2018-10-22 01:04:36 +02:00 |
Davide De Rosa
|
f93634bd7a
|
Respect link MTU in TCP
Mitigates #39
|
2018-10-22 00:56:08 +02:00 |
Davide De Rosa
|
8ccc4c08a5
|
Add auth strategy
|
2018-10-19 16:20:56 +02:00 |
Davide De Rosa
|
66735ec118
|
Prepare API to enable TLS wrapping
Extensible TLSWrap parameter.
|
2018-10-19 16:11:35 +02:00 |
Davide De Rosa
|
9b785084e2
|
Customize HARD_RESET payload when PIA-patched
|
2018-10-18 13:31:11 +02:00 |
Davide De Rosa
|
98c5a015f3
|
Split endpoint and credentials
Basically drop AuthenticatedEndpoint.
|
2018-10-06 16:22:02 +02:00 |
Davide De Rosa
|
40b733db57
|
Make credentials optional
|
2018-10-06 16:21:59 +02:00 |
Davide De Rosa
|
093774535d
|
Make CA non-optional
Fix up nullability qualifiers in TLSBox.
Fixes #26
|
2018-10-06 15:53:22 +02:00 |
Davide De Rosa
|
7b96247c72
|
Fix interpretation of 0 seconds
0 keep-alive = never
0 reneg seconds = never
|
2018-09-28 08:39:57 +02:00 |
Davide De Rosa
|
58726a67d7
|
Update SwiftyBeaver for MemoryDestination
See for reference:
- https://github.com/pia-foss/tunnel-apple/pull/15
- https://github.com/SwiftyBeaver/SwiftyBeaver/pull/299
|
2018-09-23 14:14:25 +02:00 |
Davide De Rosa
|
19ce7de819
|
Encapsulate control state into ControlChannel
First step: variables + mutating funcs.
|
2018-09-19 22:04:52 +02:00 |
Davide De Rosa
|
d80c0b5460
|
Move in/out states to a generic struct
|
2018-09-19 22:04:52 +02:00 |
Davide De Rosa
|
856fa9e12e
|
Take PacketStream out and make public
Useful for reuse in TCP streams.
|
2018-09-19 22:04:52 +02:00 |
Davide De Rosa
|
6ffdcec47b
|
Return optional from String/IPv4 conversion
|
2018-09-19 22:03:46 +02:00 |
Davide De Rosa
|
da2727b003
|
Apply both IPv4 and IPv6 settings
Best choice to cope with "hybrid" environments.
|
2018-09-15 19:42:43 +02:00 |
Davide De Rosa
|
02a20b5308
|
Indent TunnelKitProvider.Configuration log
Gives more context.
|
2018-09-12 15:49:41 +02:00 |
Davide De Rosa
|
891c72caa1
|
Rearrange shutdown code rationally
|
2018-09-08 00:10:35 +02:00 |
Davide De Rosa
|
8adb9871c3
|
Dispose tunnel if can't try next protocol
Return boolean in socketShouldChangeProtocol indicating whether
another protocol is available.
|
2018-09-08 00:10:35 +02:00 |
Davide De Rosa
|
de09d0b5da
|
Only try upgrade socket on network error
|
2018-09-08 00:10:35 +02:00 |
Davide De Rosa
|
582ef4875d
|
Move default pingInterval to constructor
Use CoreConfiguration only within Core.
|
2018-09-08 00:00:07 +02:00 |
Davide De Rosa
|
65468207cb
|
Transfer keep-alive to SessionProxy
|
2018-09-07 22:14:57 +02:00 |
Davide De Rosa
|
fcfe1f3f68
|
Add keepAliveSeconds field in AppExtension
|
2018-09-07 22:13:40 +02:00 |
Davide De Rosa
|
14f5a68c12
|
Move appGroup out of Configuration
Decouple VPN parameters.
|
2018-09-07 00:25:21 +02:00 |
Davide De Rosa
|
802f7dc0f8
|
Fix debugLogFormat not copied to builder
|
2018-09-06 10:34:10 +02:00 |
Davide De Rosa
|
d6b80ea449
|
Implement Codable in public entities
Also rename CompressionFraming for being an extension of
SessionProxy.
|
2018-09-06 10:34:10 +02:00 |
Davide De Rosa
|
3aebedf5b8
|
Encapsulate complex serialization
|
2018-09-04 15:59:22 +02:00 |
Davide De Rosa
|
ec2950171b
|
Use AF_INET6 according to IPv6 availability
|
2018-08-31 01:59:08 +02:00 |
Davide De Rosa
|
373a36b9c1
|
Parse and apply IPv6 settings when available
IPv4 currently mandatory in PushReply (exception otherwise).
|
2018-08-31 01:59:08 +02:00 |
Davide De Rosa
|
b050110e60
|
Bridge CompressionFraming to Swift
Avoid exposing __TunnelKitNative module for using it.
|
2018-08-31 01:40:58 +02:00 |
Davide De Rosa
|
b81294f6e4
|
Parse IPv4 from String
|
2018-08-31 01:06:38 +02:00 |
Davide De Rosa
|
b0d264889c
|
Extend PUSH_REPLY parsing
- Topology
- Routes
Use the less confusing defaultGateway vs gatewayAddress.
|
2018-08-30 18:02:12 +02:00 |
Davide De Rosa
|
5bf7813d56
|
Forward compound SessionReply to delegate
Improves extensibility.
|
2018-08-30 18:02:12 +02:00 |
Davide De Rosa
|
209889b9d2
|
Make compression framing an enum option
- Disabled: no framing (default)
- CompLZO: NO_COMPRESS
- Compress: NO_COMPRESS_SWAP
|
2018-08-30 12:43:36 +02:00 |
Davide De Rosa
|
dee2956406
|
Rename Certificate to CryptoContainer
Makes more sense as it holds certs and keys. Can be other formats
than PEM in the future.
|
2018-08-28 12:55:27 +02:00 |
Davide De Rosa
|
e6f509a26c
|
Add client certificate to TunnelKitProvider
Refactor composition of temporary file URL.
Also fix missing LZOFraming from Configuration.builder().
|
2018-08-28 12:55:27 +02:00 |
Davide De Rosa
|
b172f79719
|
Re-license with proper per-file notices
Clarify explicitly the author/extent of the fork, with proper
credit to the original project's license and copyright holder.
|
2018-08-28 12:53:14 +02:00 |
Davide De Rosa
|
c4b0964c3c
|
Improve split naming
*Socket + *Link
|
2018-08-24 12:44:17 +02:00 |
Davide De Rosa
|
54cc811e47
|
Use MTU configuration for the link instead
Raise default link MTU from 1000 to 1250. Keep default for
tunnel MTU.
|
2018-08-24 12:37:09 +02:00 |
Davide De Rosa
|
6208fe8e21
|
Split GenericSocket and LinkInterface
Keep socket and link logic separated. Allows for setting MTU
specifically for the link.
- UDP: hardcoded 1000
- TCP: ignored (.max)
|
2018-08-24 12:36:35 +02:00 |
Davide De Rosa
|
94890c08cf
|
Do not deprecate until replacement
Implement new compression framing later.
|
2018-08-24 00:48:17 +02:00 |
Davide De Rosa
|
9f54e624ee
|
Expose LZO framing option
|
2018-08-24 00:27:45 +02:00 |
Davide De Rosa
|
2459fe1bfd
|
Move a few classes inside SessionProxy
- Authenticator
- EncryptionBridge (formerly EncryptionProxy)
- PushReply
- SessionKey
They only make sense there. Content unchanged.
|
2018-08-23 18:51:36 +02:00 |
Davide De Rosa
|
6d5e9f68a9
|
Move cipher/digest enums to Core
Restrict choice to supported OpenSSL algorithms.
|
2018-08-23 18:51:36 +02:00 |
Davide De Rosa
|
8a9e99e6a9
|
Wrap SessionProxy configuration in a builder
|
2018-08-23 18:51:36 +02:00 |
Davide De Rosa
|
897e824340
|
Enforce use of non-preset CA certificates
|
2018-08-23 12:11:55 +02:00 |
Davide De Rosa
|
dfac465c1d
|
Drop support for PIA HARD_RESET patch
|
2018-08-23 12:11:55 +02:00 |
Davide De Rosa
|
4d03df7066
|
Finish up renaming in headers and prefixes
|
2018-08-23 12:10:56 +02:00 |
Davide De Rosa
|
fe665e8ad5
|
Rename library to TunnelKit
|
2018-08-23 12:10:41 +02:00 |