Commit Graph

534 Commits

Author SHA1 Message Date
Davide De Rosa c4bfa12079 Update compatibility in README 2018-09-26 12:37:15 +02:00
Davide De Rosa c1b62810ca Fix typo 2018-09-26 12:18:18 +02:00
Davide De Rosa 4ad88daec6 Fix OpenSSL version in README 2018-09-26 12:07:24 +02:00
Davide De Rosa 860dc7fe84 Merge branch 'release-metadata' 2018-09-26 12:05:04 +02:00
Davide De Rosa d68bbac566 Set 1.1.0 release date 2018-09-26 11:54:40 +02:00
Davide De Rosa 0d6959acd4 Mention keep-alive behavior in CHANGELOG 2018-09-26 11:54:40 +02:00
Davide De Rosa 03ac05b9cf Fix case in repository URL 2018-09-26 11:54:40 +02:00
Davide De Rosa 5ea81e5b32 Add Swift version to podspec 2018-09-26 11:54:40 +02:00
Davide De Rosa 1d3071bdc4 Set podspec version statically
Podspecs are standalone files.

Partially reverts 4cbf935dea.
2018-09-26 11:54:40 +02:00
Davide De Rosa 4582579d42
Merge pull request #25 from keeshux/drop-32bit-support
Drop 32-bit support and raise iOS target to 11
2018-09-26 11:53:59 +02:00
Davide De Rosa b0ff73df59 Add Gemfile to lock CocoaPods
Skip 1.5, has a few issues.
2018-09-26 11:52:39 +02:00
Davide De Rosa b348e456a5 Upgrade OpenSSL-Apple to raise iOS target to 11 2018-09-26 11:30:04 +02:00
Davide De Rosa ee017c0c6c Merge branch 'automate-versioning' 2018-09-24 10:28:50 +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 4cbf935dea Pick version from shared file
Reuse for podspec.
2018-09-24 10:26:43 +02:00
Davide De Rosa 657cb566cd Automate version/build numbers 2018-09-24 10:26:43 +02:00
Davide De Rosa ea3ad35757 Add proper changelog 2018-09-23 14:31:17 +02:00
Davide De Rosa d6958ed28d Revert LZO deprecation, still widely used 2018-09-23 14:23:52 +02:00
Davide De Rosa 23ce387b69
Merge pull request #23 from keeshux/sync-swifty-beaver
Sync with SwiftyBeaver queue
2018-09-23 14:15:29 +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 b2dba4822a Upgrade to Swift 4.2 (Xcode 10) 2018-09-22 10:11:19 +02:00
Davide De Rosa 668474d75c Indent negotiated parameters in log 2018-09-21 19:53:38 +02:00
Davide De Rosa 1ba7e73e9c Merge branch 'refactor-encryption' 2018-09-20 23:21:43 +02:00
Davide De Rosa cd923ea8c9 Test client/server asymmetrical crypto 2018-09-20 23:20:08 +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 9d6c7c846f Merge branch 'refactor-control-channel' 2018-09-20 09:01:23 +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 d83584e428 Update README with recently added algorithms 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 aa3aa52350 Merge branch 'add-more-peer-info' 2018-09-12 15:50:59 +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