Davide De Rosa
|
a3fe740ad9
|
Assert ambiguity about HMAC key length
|
2018-09-12 15:21:25 +02:00 |
Davide De Rosa
|
d53e7add10
|
Allow HMAC verify with nil cipher in CryptoCBC
|
2018-09-12 15:21:25 +02:00 |
Davide De Rosa
|
401d999b3d
|
Expose HMAC digestLength where available
|
2018-09-12 15:21:25 +02:00 |
Davide De Rosa
|
4af0ce8739
|
Refactor duplicate keep-alive code
|
2018-09-09 00:52:16 +02:00 |
Davide De Rosa
|
3a02557b5e
|
Override keep-alive with pushed interval
|
2018-09-09 00:52:16 +02:00 |
Davide De Rosa
|
4bf02198d1
|
Parse ping from PUSH_REPLY
|
2018-09-09 00:52:16 +02:00 |
Davide De Rosa
|
66864da51b
|
Default to no keep-alive if unset
For consistency with other optional flags.
Updates #20
|
2018-09-08 12:56:40 +02:00 |
Davide De Rosa
|
01f65b2a7e
|
Always shut down on known tunnel error
Not recoverable by default (e.g algorithm mismatch).
|
2018-09-08 00:10:35 +02:00 |
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
|
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
|
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
|
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
|
55cdd6227c
|
Interpret 0 reneg seconds as never
|
2018-09-07 14:58:56 +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
|
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
|
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 |
Davide De Rosa
|
fe7a2c6941
|
Drop a few old commented lines
|
2018-08-23 18:51:36 +02:00 |
Davide De Rosa
|
2459fe1bfd
|
Move a few classes inside SessionProxy
- Authenticator
- EncryptionBridge (formerly EncryptionProxy)
- PushReply
- SessionKey
They only make sense there. Content unchanged.
|
2018-08-23 18:51:36 +02:00 |
Davide De Rosa
|
6d5e9f68a9
|
Move cipher/digest enums to Core
Restrict choice to supported OpenSSL algorithms.
|
2018-08-23 18:51:36 +02:00 |
Davide De Rosa
|
8a9e99e6a9
|
Wrap SessionProxy configuration in a builder
|
2018-08-23 18:51:36 +02:00 |
Davide De Rosa
|
897e824340
|
Enforce use of non-preset CA certificates
|
2018-08-23 12:11:55 +02:00 |
Davide De Rosa
|
dfac465c1d
|
Drop support for PIA HARD_RESET patch
|
2018-08-23 12:11:55 +02:00 |
Davide De Rosa
|
4d03df7066
|
Finish up renaming in headers and prefixes
|
2018-08-23 12:10:56 +02:00 |
Davide De Rosa
|
fe665e8ad5
|
Rename library to TunnelKit
|
2018-08-23 12:10:41 +02:00 |