Davide De Rosa
093774535d
Make CA non-optional
...
Fix up nullability qualifiers in TLSBox.
Fixes #26
2018-10-06 15:53:22 +02:00
Davide De Rosa
09210b727a
Use compression framing description
2018-09-28 08:40:14 +02:00
Davide De Rosa
7b96247c72
Fix interpretation of 0 seconds
...
0 keep-alive = never
0 reneg seconds = never
2018-09-28 08:39:57 +02:00
Davide De Rosa
24dabe2739
Set peer-info version from bundle
...
Omit build number for now, seems more complex than expected to
accomplish with CocoaPods.
2018-09-24 10:26:43 +02:00
Davide De Rosa
d6958ed28d
Revert LZO deprecation, still widely used
2018-09-23 14:23:52 +02:00
Davide De Rosa
58726a67d7
Update SwiftyBeaver for MemoryDestination
...
See for reference:
- https://github.com/pia-foss/tunnel-apple/pull/15
- https://github.com/SwiftyBeaver/SwiftyBeaver/pull/299
2018-09-23 14:14:25 +02:00
Davide De Rosa
668474d75c
Indent negotiated parameters in log
2018-09-21 19:53:38 +02:00
Davide De Rosa
44fc38e8ef
Rename encryption headers for consistency
...
The shared prefix makes it easier to associate them with
implementation files.
2018-09-20 09:03:33 +02:00
Davide De Rosa
600c93be55
Drop overheadLength, only used in one place
2018-09-20 09:03:33 +02:00
Davide De Rosa
dd02c92aa5
Expose methods for capacity prediction
...
Encapsulate encrypt/decrypt buffer capacity calculation.
2018-09-20 09:03:33 +02:00
Davide De Rosa
f6ee187db7
Use symbolic data header length
2018-09-20 09:03:33 +02:00
Davide De Rosa
aa39414a77
Rename packet header to opcode (first byte)
2018-09-20 09:03:31 +02:00
Davide De Rosa
fe92fcd91c
Remove NSData versions from Encrypter/Decrypter
...
Move to test target. Conversely, bring ZeroingData.data extension
into main targets.
2018-09-20 09:01:44 +02:00
Davide De Rosa
1099d9adbf
Improve control channel log readability
...
- Use consistent convention in id logging.
- Describe packet codes.
- Encapsulate packet logging.
2018-09-20 09:00:11 +02:00
Davide De Rosa
ce94a594f9
Bring code/key deserialization into serializer
...
Duplicates first byte parsing but makes testing more meaningful,
because there's no need to provide a bogus code/key pair.
2018-09-20 08:59:50 +02:00
Davide De Rosa
11cb312c02
Move control channel logic to PlainSerializer
2018-09-19 22:04:52 +02:00
Davide De Rosa
595cae3563
Add strategy for control channel serialization
2018-09-19 22:04:52 +02:00
Davide De Rosa
3608860b9d
Move sessionId and remoteSessionId
2018-09-19 22:04:52 +02:00
Davide De Rosa
1573b2070a
Move control queue management
...
- Out packets
- In packets
- Acks
2018-09-19 22:04:52 +02:00
Davide De Rosa
e6dd4de472
Move control data parsing
2018-09-19 22:04:52 +02:00
Davide De Rosa
19ce7de819
Encapsulate control state into ControlChannel
...
First step: variables + mutating funcs.
2018-09-19 22:04:52 +02:00
Davide De Rosa
d80c0b5460
Move in/out states to a generic struct
2018-09-19 22:04:52 +02:00
Davide De Rosa
2bd9484a43
Move ControlPacket serialization to Obj-C
...
Additionally, make sessionId non-optional in control packets. They
must have it, therefore treat a missing sessionId as a programming
error instead.
Reuse routines for acks to make PacketMacros the only point of
packets serialization.
2018-09-19 22:04:52 +02:00
Davide De Rosa
92dbb57666
Revert CommonPacket name to ControlPacket
2018-09-19 22:04:52 +02:00
Davide De Rosa
856fa9e12e
Take PacketStream out and make public
...
Useful for reuse in TCP streams.
2018-09-19 22:04:52 +02:00
Davide De Rosa
cba6f6f959
Clean up some documentation metadata
...
- Reorder fields in SessionProxy.Configuration*
- Add new classes to .yml
2018-09-19 22:04:52 +02:00
Davide De Rosa
6ffdcec47b
Return optional from String/IPv4 conversion
2018-09-19 22:03:46 +02:00
Davide De Rosa
da2727b003
Apply both IPv4 and IPv6 settings
...
Best choice to cope with "hybrid" environments.
2018-09-15 19:42:43 +02:00
Davide De Rosa
ac3582c0fa
Fix ignored OpenSSL code
2018-09-14 02:04:36 +02:00
Davide De Rosa
b9243c9f0b
Add some more peer-info
...
- IV_PLAT
- IV_UI_VER
- IV_SSL
2018-09-12 15:50:36 +02:00
Davide De Rosa
02a20b5308
Indent TunnelKitProvider.Configuration log
...
Gives more context.
2018-09-12 15:49:41 +02:00
Davide De Rosa
915638b163
Log negotiated parms at info level
...
Useful when debug disabled.
2018-09-12 15:48:47 +02:00
Davide De Rosa
aef7daec51
Fix and clean up redundant nullability specifiers
2018-09-12 15:38:52 +02:00
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