Commit Graph

74 Commits

Author SHA1 Message Date
Davide De Rosa
7aec0637b2 Move endpoints inside SessionProxy.Configuration
Make optional.

TunnelKitProvider still gets hostname from .serverAddress rather
than SessionProxy.Configuration

Also drop useless Equatable implementations.
2019-04-04 13:09:50 +02:00
Davide De Rosa
370e68aa3f Parse search domain from dhcp-option DOMAIN 2019-04-03 14:29:09 +02:00
Davide De Rosa
b48575a13a Split tests related to options parsing 2019-04-03 13:22:55 +02:00
Davide De Rosa
9876c81de5 Parse PUSH_REPLY options in OptionsBundle
- auth-token
- peer-id
- Routing

Reorganize options by semantic.

Reuse OptionsBundle in PushReply.
2019-04-03 13:19:21 +02:00
Davide De Rosa
d22420c06b Rearrange some unit tests 2019-04-02 18:58:35 +02:00
Davide De Rosa
11fd418f82 Extend encrypted private key quick test
Test .ovpn didn't use an PKCS#8 key due to a slip-up. Fixing it
unveiled that isEncrypted returned false for PKCS#8 keys.

Fixes #80
2019-04-02 11:41:18 +02:00
Davide De Rosa
22f80735ca Strip certificate preamble
Fixes #78
2019-04-02 00:55:58 +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
0bfc1e08eb Fix retarded Swift pointer API somehow 2019-03-30 23:18:45 +01:00
Davide De Rosa
7b59276875 Comment out deprecated methods used in perf tests 2019-03-30 23:18:45 +01:00
Davide De Rosa
207a4f063a Replace deprecated Data(bytes:) 2019-03-30 23:18:45 +01:00
Davide De Rosa
596ec00943 Fix a wrong compression test
--compress lzo is indeed supported.
2019-03-30 23:18:45 +01:00
Davide De Rosa
b07ec88ff2 Add passphrase parameter to ConfigurationParser
Use it to decrypt encrypted PEMs.
2019-03-25 18:48:59 +01:00
Davide De Rosa
e5393f81b8 Test decrypt .pem with encrypted private key 2019-03-25 18:45:01 +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
197679057d Return NSData from parsePayloadWithBlock
More friendly to (de)compression stage.
2019-03-19 15:12:56 +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
e849e6c0da Reject <connection> blocks in .ovpn
- Use enumerateComponents for boolean test.
- Fix a test compile error on the way.
2019-03-04 17:39:37 +01:00
Davide De Rosa
9544e59fcf Fix missing try in test 2019-02-27 20:08:59 +01:00
Davide De Rosa
367e8b7e08 Track whether server pushed a compression option 2019-02-25 23:01:21 +01:00
Davide De Rosa
c244b29a8f Parse DNS servers from configuration 2019-01-05 22:29:16 +01:00
Davide De Rosa
0302803d3e Test configuration parser 2018-11-10 10:58:06 +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
9c989dabf5 Fix IPv4/UInt32 calculations 2018-10-28 00:26:15 +02:00
Davide De Rosa
3cc511822d Deprecate debugLogKey, hardcode filename 2018-10-25 22:36:31 +02:00
Davide De Rosa
917427fc0c Fix unit tests after refactoring 2018-10-25 18:34:03 +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
a430beb35f Improve Swift bridging of CryptoFlags 2018-10-19 16:56:20 +02:00
Davide De Rosa
31babe56f0 Fix tests formerly broken by flags.iv 2018-10-19 16:21:13 +02:00
Davide De Rosa
8ccc4c08a5 Add auth strategy 2018-10-19 16:20:56 +02:00
Davide De Rosa
bff9352c6e Handle encryption/peer-id in a stateless manner
Fixes #30
2018-10-19 15:54:55 +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
98c5a015f3 Split endpoint and credentials
Basically drop AuthenticatedEndpoint.
2018-10-06 16:22:02 +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
657cb566cd Automate version/build numbers 2018-09-24 10:26:43 +02:00
Davide De Rosa
cd923ea8c9 Test client/server asymmetrical crypto 2018-09-20 23:20:08 +02:00
Davide De Rosa
fe92fcd91c Remove NSData versions from Encrypter/Decrypter
Move to test target. Conversely, bring ZeroingData.data extension
into main targets.
2018-09-20 09:01:44 +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
856fa9e12e Take PacketStream out and make public
Useful for reuse in TCP streams.
2018-09-19 22:04:52 +02:00