Commit Graph

869 Commits

Author SHA1 Message Date
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 11419ed28a
Merge pull request #20 from keeshux/customize-keep-alive-interval
Customize keep-alive interval
2018-09-08 00:09:54 +02:00
Davide De Rosa ecbad85b4a Discard 0 keep-alive interval 2018-09-08 00:06:19 +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 aeccabbb6d
Merge pull request #19 from keeshux/parse-compression-framing-from-push-reply
Parse compression framing from PUSH_REPLY
2018-09-07 15:25:30 +02:00
Davide De Rosa 7fe4e2f942 Fix typo in NCP unit test 2018-09-07 15:25:03 +02:00
Davide De Rosa e9032e5490 Leave nil if push option parsed but unrecognized
For whatever reason. Do not override with .disabled when not
necessarily intended.
2018-09-07 15:22:03 +02:00
Davide De Rosa 828d32beb8 Add unit test 2018-09-07 15:14:13 +02:00
Davide De Rosa e5918d1b05 Override framing with pushed if available 2018-09-07 15:11:44 +02:00
Davide De Rosa 0304c4a5eb Parse compression framing from PUSH_REPLY 2018-09-07 15:10:19 +02:00
Davide De Rosa 7898b940a1
Merge pull request #18 from keeshux/interpret-zero-reneg-seconds
Interpret 0 reneg seconds as never
2018-09-07 15:00:12 +02:00
Davide De Rosa 55cdd6227c Interpret 0 reneg seconds as never 2018-09-07 14:58:56 +02:00
Davide De Rosa 0b124af8fc
Merge pull request #17 from keeshux/decouple-provider-configuration
Decouple provider configuration
2018-09-07 14:58:40 +02:00
Davide De Rosa a1cd6de860 Update demo accordingly 2018-09-07 00:32:16 +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 14f5a68c12 Move appGroup out of Configuration
Decouple VPN parameters.
2018-09-07 00:25:21 +02:00
Davide De Rosa a54c767f57
Merge pull request #16 from keeshux/add-more-crypto-algorithms
Add more crypto algorithms
2018-09-06 12:18:39 +02:00
Davide De Rosa 1fbfe5b844 Document genericName method 2018-09-06 11:16:48 +02:00
Davide De Rosa 5b638ea5f6 Use different genericName for CBC/GCM 2018-09-06 11:16:14 +02:00
Davide De Rosa 0b28eacf0d Add more metadata to Cipher/Digest
- Ciphers are AES.
- Digests are HMAC.
2018-09-06 10:55:56 +02:00
Davide De Rosa ce6a41a218 Add more ciphers/digests
No-brainer, OpenSSL EVP supports them.
2018-09-06 10:38:18 +02:00
Davide De Rosa 3c3efd9a78
Merge pull request #15 from keeshux/implement-codable-serialization
Implement Codable serialization
2018-09-06 10:35:31 +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 43a5972737 Fix cipher regex in PUSH_REPLY
Breaks with NCP enabled when cipher is not last. Trailing comma
was erroneously included in parsed cipher name.

Fixes #11
2018-09-05 03:54:40 +02:00
Davide De Rosa d6ed402b19
Merge pull request #14 from keeshux/encapsulate-serialization
Encapsulate complex serialization
2018-09-04 16:06:43 +02:00
Davide De Rosa 3aebedf5b8 Encapsulate complex serialization 2018-09-04 15:59:22 +02:00
Davide De Rosa bae51c735e
Merge pull request #13 from keeshux/signal-digest-embedding
Signal digest embedding
2018-09-04 15:58:55 +02:00
Davide De Rosa e121555f82 Add Cipher.embedsDigest to signal digest embedding
Currently GCM ciphers do.
2018-09-04 15:57:07 +02:00
Davide De Rosa be97972f18
Merge pull request #12 from keeshux/omit-sensitive-push-reply
Omit sensitive data from PUSH_REPLY log
2018-09-02 12:51:11 +02:00
Davide De Rosa 3543f7aab3 Omit sensitive data from PUSH_REPLY log
Namely auth-token.
2018-09-02 12:48:45 +02:00
Davide De Rosa 7df229c115
Merge pull request #11 from keeshux/add-ncp-support
Add initial NCP support
2018-09-02 02:24:34 +02:00
Davide De Rosa e7e0e95892 Update README with NCP 2018-09-02 02:19:49 +02:00
Davide De Rosa 57b7457ad1 Fix DataPath unit tests 2018-09-02 02:09:20 +02:00
Davide De Rosa 201da9b69b Bump IV_VER to 2.4
Enough to claim.
2018-09-02 02:09:20 +02:00
Davide De Rosa bcc95ad510 Send NCP in peer-info 2018-09-02 02:09:20 +02:00
Davide De Rosa 81eb18619d Pick cipher from PUSH_REPLY if present 2018-09-02 02:09:20 +02:00
Davide De Rosa 31e694859f Cache aggregated PushReply object
- authToken
- peerId
- cipher

Retain across soft resets.
2018-09-02 02:09:20 +02:00
Davide De Rosa cff359fceb Parse pushed cipher if any 2018-09-02 02:09:20 +02:00
Davide De Rosa e900454504 Share connection completion code
Across hard and soft reset.
2018-09-02 02:09:20 +02:00
Davide De Rosa c930cda065 Consolidate DataPath with new flow 2018-09-02 02:09:20 +02:00
Davide De Rosa c01ac7e1e3 Postpone keys setup until after PUSH_REPLY
And rename to setupEncryption() for ambiguity with SessionKey.
2018-09-02 02:09:20 +02:00
Davide De Rosa 0360a32d33
Merge pull request #8 from keeshux/ipv6-support
IPv6 support
2018-09-02 02:08:52 +02:00
Davide De Rosa 474e633e48 Parse arguments from regexp extension
Further code simplification.
2018-09-02 01:14:37 +02:00
Davide De Rosa 208fc48dd7 Drop unused DataPath protocols array 2018-08-31 01:59:08 +02:00
Davide De Rosa ec2950171b Use AF_INET6 according to IPv6 availability 2018-08-31 01:59:08 +02:00