Commit Graph

85 Commits

Author SHA1 Message Date
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
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