Commit Graph

30 Commits

Author SHA1 Message Date
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 915638b163 Log negotiated parms at info level
Useful when debug disabled.
2018-09-12 15:48:47 +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 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 ecbad85b4a Discard 0 keep-alive interval 2018-09-08 00:06:19 +02:00
Davide De Rosa e5918d1b05 Override framing with pushed if available 2018-09-07 15:11:44 +02:00
Davide De Rosa 55cdd6227c Interpret 0 reneg seconds as never 2018-09-07 14:58:56 +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 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 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 5bf7813d56 Forward compound SessionReply to delegate
Improves extensibility.
2018-08-30 18:02:12 +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 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 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 9f54e624ee Expose LZO framing option 2018-08-24 00:27:45 +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