Commit Graph

425 Commits

Author SHA1 Message Date
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
Davide De Rosa 235c485cae Simplify regex matching with private extension 2018-08-31 01:59:08 +02:00
Davide De Rosa e6036095c9 Describe routes in IPv*Settings 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 ac0e7713d6 Parse IPv6 DNS servers
dhcp-option can be DN6 (older) or DNS (newer).
2018-08-31 01:59:08 +02:00
Davide De Rosa 97866e6f23 Set compression framing enum value by appearance
0 = none (oldest)
1 = comp-lzo
2 = compress (newest)
2018-08-31 01:58:18 +02:00
Davide De Rosa a4375ba08a
Merge pull request #10 from keeshux/bridge-compression-framing
Bridge CompressionFraming to Swift
2018-08-31 01:46:41 +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 e8b59fe05b
Merge pull request #9 from keeshux/complete-ipv4-string-conversion
Complete IPv4/String conversion
2018-08-31 01:07:25 +02:00
Davide De Rosa de6b22349e Test IPv4 <-> String conversions 2018-08-31 01:06:38 +02:00
Davide De Rosa b81294f6e4 Parse IPv4 from String 2018-08-31 01:06:38 +02:00
Davide De Rosa 7723a7fe7d Move compression magic bytes back to PacketMacros 2018-08-30 19:33:23 +02:00
Davide De Rosa 4dd9bd1f25
Merge pull request #7 from keeshux/enhance-routing
Enhance routing
2018-08-30 18:13:02 +02:00
Davide De Rosa b0758412a0 Add PUSH_REPLY unit tests 2018-08-30 18:04:12 +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 2f7d41a921
Merge pull request #6 from keeshux/block-based-payload-assembly
Block based payload assembly
2018-08-30 18:01:30 +02:00
Davide De Rosa 99068c0a2f Fix unit tests after refactoring 2018-08-30 17:52:54 +02:00
Davide De Rosa 3dabc254bc Improve naming in crypto classes
- Consistency in encryption/decryption flow
- Consistency in packet/payload
- DataPathChannel method names
2018-08-30 17:52:50 +02:00
Davide De Rosa 5166ac3813 Move compression framing to stateless blocks
Prepare payload blocks in DataPath.
2018-08-30 17:11:22 +02:00
Davide De Rosa 31924c6038 Make peerId stateless, imply from blocks
Will do the same with compressionFraming.
2018-08-30 14:56:03 +02:00
Davide De Rosa e57ef9fb86 Fix duplicate memcpy in AEAD crypto
Regression in #5
2018-08-30 14:55:26 +02:00
Davide De Rosa cdcbfdbbe4
Merge pull request #5 from keeshux/support-newer-compression-framing
Support newer compression framing
2018-08-30 14:46:28 +02:00
Davide De Rosa 68810d9497 Add description to framing enum 2018-08-30 13:59:47 +02:00
Davide De Rosa f2c892eb68 Fix Jazzy YAML after renamings 2018-08-30 12:44:06 +02:00
Davide De Rosa 34b3bcb509 Update README about compression framing 2018-08-30 12:43:36 +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 b2d4530f19
Merge pull request #3 from keeshux/client-certificate
Client certificate
2018-08-28 13:09:57 +02:00
Davide De Rosa 184b9987de Discourage CA trust in Demo 2018-08-28 12:55:27 +02:00
Davide De Rosa 48098486bf Rearrange feature list 2018-08-28 12:55:27 +02:00
Davide De Rosa ffddb682f7 Add client cert feature to README 2018-08-28 12:55:27 +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 a4c109a916 Bridge client cert from SessionProxy to TLSBox 2018-08-28 12:55:27 +02:00
Davide De Rosa b7a48d4f4f Support client certificate in TLSBox 2018-08-28 12:55:27 +02:00
Davide De Rosa 6a71ada1c8 Drop support for redundant EC curves 2018-08-28 12:55:27 +02:00
Davide De Rosa 8c3c7b614c Merge branch 'relicense-properly' 2018-08-28 12:54:05 +02:00
Davide De Rosa e2ede9485a Add bit about additional licenses 2018-08-28 12:53:14 +02:00
Davide De Rosa 8e70567c83 Remove forgotten stale certificates 2018-08-28 12:53:14 +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 fabd59f9e3 Add basic CLA 2018-08-28 12:53:12 +02:00
Davide De Rosa acc129bf3b
Merge pull request #4 from keeshux/split-socket-link
Split socket and link implementations
2018-08-24 12:00:07 +01: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