Davide De Rosa
9445b825d0
Make AppExtension generic
...
- Make AppExtension a standalone util subspec
- Move OpenVPN tunnel provider to OpenVPN subspec
- Move Utils to Core subspec
- Depend OpenVPN on Core + AppExtension
2019-05-24 10:41:26 +02:00
Davide De Rosa
821cf66d79
Restore tests with recent changes
2019-05-19 15:50:30 +02:00
Davide De Rosa
d057e9645b
Restore AppExtension with recent changes
2019-05-19 15:50:12 +02:00
Davide De Rosa
6ebf025859
Take Session protocol out of OpenVPNSession
...
Fix some doc.
2019-05-19 15:08:43 +02:00
Davide De Rosa
313d076ddf
Move Error extension to Core
2019-05-19 14:34:27 +02:00
Davide De Rosa
c4a84a5ade
Prefix top-level entities with OpenVPN*
2019-05-19 14:34:23 +02:00
Davide De Rosa
9c7ae47679
Make SessionProxy* top level
...
Drop redundant SessionReply.
2019-05-19 14:17:18 +02:00
Davide De Rosa
465e08e42f
Wrap OpenVPN entities in pseudonamespace
...
Temporarily exclude AppExtension and tests.
2019-05-19 14:05:02 +02:00
Davide De Rosa
50d492096f
Move a few generic entities to Core
...
- IPv4Settings
- IPv6Settings
- Proxy
- EndpointProtocol (Codable)
2019-05-19 12:40:20 +02:00
Davide De Rosa
9da7fa9667
Split Core into Core+OpenVPN
...
Two Obj-C modules:
- __TunnelKitCore
- __TunnelKitOpenVPN
Seems the only way to do it in multiple module maps.
Move OpenVPN specifics out of CoreConfiguration.
2019-05-19 12:22:32 +02:00
Davide De Rosa
4295e63c98
Read relevant routing table
2019-05-03 15:14:25 +02:00
Davide De Rosa
edd15f661e
Bump version
2019-05-01 11:14:38 +02:00
Davide De Rosa
295d5fa713
Bump minor version
...
Makes sense, lot of fixes.
2019-04-28 16:23:38 +02:00
Davide De Rosa
31d9019f1a
Read system-wide DNS servers
...
Add libresolv to podspec.
2019-04-25 16:36:16 +02:00
Davide De Rosa
1b8647bcac
Convert PacketSteram to Obj-C
...
For better TCP efficiency.
2019-04-25 12:42:29 +02:00
Davide De Rosa
65f6f8938c
Bump version
2019-04-17 16:16:52 +02:00
Davide De Rosa
14567ac50f
Bump version
2019-04-09 20:35:25 +02:00
Davide De Rosa
9f358d6326
Accept nil cipher/digest in AppExtension
...
Reorganize code for clarity.
2019-04-07 08:35:40 +02:00
Davide De Rosa
4dc9539260
Rename OptionsError to ConfigurationError
2019-04-04 18:51:06 +02:00
Davide De Rosa
a2250686b6
Merge OptionsBundle into Configuration
...
FIXME: issues with non-optional .cipher and .compressionFraming
Because:
- No pushed cipher (nil) is NOT .aes128cbc
- No pushed framing (nil) is NOT .disabled
Breaks conditions on pushed cipher/framing via PUSH_REPLY.
2019-04-04 18:51:06 +02:00
Davide De Rosa
b48575a13a
Split tests related to options parsing
2019-04-03 13:22:55 +02:00
Davide De Rosa
42232804ca
Rename file to public entity
2019-04-03 13:19:47 +02:00
Davide De Rosa
b9b9c4db60
Parse basic options in OptionsBundle
...
- Handle isEncrypted inside CryptoContainer
- Rename ParsingError to OptionsError
Reuse OptionsBundle in ConfigurationParser.
2019-04-03 13:19:16 +02:00
Davide De Rosa
bc0fb71064
Bump minor version
2019-04-03 12:20:53 +02:00
Davide De Rosa
22f80735ca
Strip certificate preamble
...
Fixes #78
2019-04-02 00:55:58 +02:00
Davide De Rosa
670c4c31ba
Bump version
2019-04-02 00:40:50 +02:00
Davide De Rosa
559bb6607c
Add and test PKCS#8 decryption
...
Fixes #80
2019-04-02 00:34:23 +02:00
Davide De Rosa
47b80d5361
Refactor to decrypt generic key
2019-04-02 00:31:54 +02:00
Davide De Rosa
5120bcae0a
Migrate to Swift 5
2019-03-30 23:18:45 +01:00
Davide De Rosa
182a5fa02f
Bump version
2019-03-26 00:37:35 +01:00
Davide De Rosa
e5393f81b8
Test decrypt .pem with encrypted private key
2019-03-25 18:45:01 +01:00
Davide De Rosa
6245b5d28d
Bump version
2019-03-20 17:57:48 +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
3621b5dab2
Bump minor version
2019-03-18 22:51:20 +01:00
Davide De Rosa
147cbb8376
Bump version and update CHANGELOG
2019-03-08 13:37:09 +01:00
Davide De Rosa
c05a4798ce
Bump version
2019-02-28 17:20:13 +01:00
Davide De Rosa
e4dc6ea2ea
Bump version
2019-02-25 11:16:27 +01:00
Davide De Rosa
0e891a1029
Fix OpenSSL version in pod and podspec
...
And bump spec to 1.4.1
2019-02-23 23:19:06 +01:00
Davide De Rosa
0302803d3e
Test configuration parser
2018-11-10 10:58:06 +01:00
Davide De Rosa
40fd2c7ede
Parse configuration from .ovpn file
2018-11-10 10:58:06 +01:00
Davide De Rosa
f91db4cbf1
Move EndpointProtocol/SocketType to Core
2018-11-10 10:48:17 +01:00
Davide De Rosa
0800c943a8
Add shortcut extension for creating regexes
...
Also expose enumeration methods for internal reuse.
2018-11-10 10:47:58 +01:00
Davide De Rosa
a6bd33ae83
Bump minor version
2018-11-10 10:41:42 +01:00
Davide De Rosa
3a6efaecc6
Reuse tests for macOS target
2018-11-05 18:37:15 +01:00
Davide De Rosa
d5b292c61d
Bump version
2018-11-05 15:48:27 +01:00
Davide De Rosa
ca77858bf0
Move CryptoContainer to Core
2018-10-25 18:34:02 +02:00
Davide De Rosa
60ac9fc672
Bump minor version
2018-10-25 18:33:44 +02:00
Davide De Rosa
617a72fbea
Bump version and fix latest CHANGELOG
2018-10-24 21:06:04 +02:00
Davide De Rosa
bbaa60c3bd
Bump version and update CHANGELOG
2018-10-22 15:47:36 +02:00
Davide De Rosa
29ec39f151
Bump minor version
2018-10-19 17:25:11 +02:00
Davide De Rosa
fbd3f977d5
Parse static key from file
2018-10-19 17:22:26 +02:00
Davide De Rosa
55e0aa5c5a
Implement and test crypt serializer
2018-10-19 17:06:26 +02:00
Davide De Rosa
3ec4a7d292
Implement AES-CTR encryption
2018-10-19 16:56:20 +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
5c8c361fce
Add StaticKey class for static OpenVPN keys
2018-10-19 16:11:35 +02:00
Davide De Rosa
eb8a8b38c2
Restore PIA HARD_RESET code
2018-10-18 12:45:32 +02:00
Davide De Rosa
872e20a95a
Add function to compute MD5 from certificate
2018-10-18 12:32:22 +02:00
Davide De Rosa
11e9160acb
Bump version again
2018-10-10 22:23:26 +02:00
Davide De Rosa
20d6d6747e
Bump version
...
Take from command line, not file (unused after `1d3071b`).
2018-10-10 18:59:50 +02:00
Davide De Rosa
ab050c6c00
Upgrade/fix demo project
...
- Target
- Pods
- Entitlements
- Swift 4.2
- License headers
2018-10-06 16:22:02 +02:00
Davide De Rosa
b0ff73df59
Add Gemfile to lock CocoaPods
...
Skip 1.5, has a few issues.
2018-09-26 11:52:39 +02:00
Davide De Rosa
b348e456a5
Upgrade OpenSSL-Apple to raise iOS target to 11
2018-09-26 11:30:04 +02:00
Davide De Rosa
657cb566cd
Automate version/build numbers
2018-09-24 10:26:43 +02:00
Davide De Rosa
b2dba4822a
Upgrade to Swift 4.2 (Xcode 10)
2018-09-22 10:11:19 +02:00
Davide De Rosa
44fc38e8ef
Rename encryption headers for consistency
...
The shared prefix makes it easier to associate them with
implementation files.
2018-09-20 09:03:33 +02:00
Davide De Rosa
595cae3563
Add strategy for control channel serialization
2018-09-19 22:04:52 +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
2bd9484a43
Move ControlPacket serialization to Obj-C
...
Additionally, make sessionId non-optional in control packets. They
must have it, therefore treat a missing sessionId as a programming
error instead.
Reuse routines for acks to make PacketMacros the only point of
packets serialization.
2018-09-19 22:04:52 +02:00
Davide De Rosa
7aa4a0cc04
Fix a few annoyances with C headers
...
Do not compile headers, FFS.
2018-09-07 00:30:53 +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
b050110e60
Bridge CompressionFraming to Swift
...
Avoid exposing __TunnelKitNative module for using it.
2018-08-31 01:40:58 +02:00
Davide De Rosa
de6b22349e
Test IPv4 <-> String conversions
2018-08-31 01:06:38 +02:00
Davide De Rosa
b0758412a0
Add PUSH_REPLY unit tests
2018-08-30 18:04:12 +02:00
Davide De Rosa
68810d9497
Add description to framing enum
2018-08-30 13:59:47 +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
8e70567c83
Remove forgotten stale certificates
2018-08-28 12:53:14 +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
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