Commit Graph

58 Commits

Author SHA1 Message Date
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
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
3aebedf5b8 Encapsulate complex serialization 2018-09-04 15:59:22 +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
3543f7aab3 Omit sensitive data from PUSH_REPLY log
Namely auth-token.
2018-09-02 12:48:45 +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
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
b050110e60 Bridge CompressionFraming to Swift
Avoid exposing __TunnelKitNative module for using it.
2018-08-31 01:40:58 +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
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
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
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
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
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
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
Davide De Rosa
94890c08cf Do not deprecate until replacement
Implement new compression framing later.
2018-08-24 00:48:17 +02:00
Davide De Rosa
9f54e624ee Expose LZO framing option 2018-08-24 00:27:45 +02:00
Davide De Rosa
8836d2b175 Deprecate LZO compression framing
Prepend NO_COMPRESS if enabled, omit if not (default).
2018-08-24 00:18:42 +02:00