Releases: Yawning/obfsclient
0.0.2 - Release
This is mostly a bug fix release that addresses issues found in testing/actual use. The code is quite stable now, and I have been using it for all of my tor for approximately 2 weeks.
Changes since 0.0.1:
- Change the command line arguments to match the obfsproxy counterparts.
This fixes issue #31. - Apply pushback between each side of the proxied connection to limit the
amount of data that can be buffered. This fixes issue #3. - Use bufferevent_write_buffer to save allocating/copying in obfs2/obfs3.
This fixes issue #24. - Fix assertions primarily seen on abrupt connection close by disabling all
reads on transition into the various SOCKS5 FLUSHING states. - Cleaned up the logging, and log SOCKS5 assertions to the log file.
- Send a TTL EXPIRED SOCKS5 error on connection timeouts.
- Fixed an assertion that occurred if the outgoing connection immediately
failed (Eg: Network interface being down). - Darwin build fixes, pointed out by Jeroen Massar.
- FreeBSD 8.x/9.0 build fix, pointed out by Fabian Keil.
Building on Darwin requires using tip of tree liballium as that also has a compilation fix but no release tag yet.
Tested on Arch Linux, FreeBSD 9.2, FreeBSD 10.0 as always.
0.0.1 - Release
This is the initial release of obfsclient.
Major changes since 0.0.1-rc2:
- Invalid padding lengths in obfs3/ScrambleSuit handshakes are now correctly handled.
- Handshake timeout is now set to a random interval between 60 and 120 seconds.
- The ScrambleSuit probability distributions are now closer to what obfsproxy generates.
- "--version" will now cause obfsclient to print the version and exit.
- Various code cleanups.
Some minor notes:
- The default binary size is rather large as debugging symbols are included. Stripped and dynamically linked the executable is < 300 KiB.
- A sizable number of ScrambleSuit bridges at this time are running obfsproxy-0.2.6. Handshakes may time out due to an obfsproxy bug that was corrected in obfsproxy-0.2.7. Reconnecting after the handshake times out will succeed.
Tested on:
- somme (ArchLinux x86_64, gcc 4.8.2, clang 3.4)
- ypres (FreeBSD 10.0-RELEASE x86_64, gcc 4.7.4, clang 3.3)
- verdun (FreeBSD 9.2-RELEASE x86_64, gcc 4.7.4)
Special thanks to Fabian Keil for help testing and fixing the various release candidates.
0.0.1-rc2 - Release Candiate
Release Candidate 2 for 0.0.1 release.
Major changes since 0.0.1-rc1:
- Use OpenSSL's CSPRNG instead of arc4random rng from libevent
- Use a CTR_DRBG instead of WELL512
- ScrambleSuit session tickets saved to disk also include a timestamp
- ScrambleSuit is better about discarding handshake data for sessions that authenticate
- ScrambleSuit IAT obfuscation is disabled by default (--enable-scramblesuit-iat)
- The SOCKS5 TTL Expired code is sent when the handshake takes too long instead of abruptly closing the session
- The Base32 decoder now accepts lower case input, and also will attempt to correct commonly mistyped characters (0,1,8)
- Fixed a bug which would cause rare assertion when using obfs2
Baring any surprises, this should end up as 0.0.1, though the actual release is on hold pending the next obfsproxy release.
0.0.1-rc1 - Release Candidate
Release Candidate 1 for 0.0.1 release
- Full support for obfs2, obfs3 and ScrambleSuit are present.
- A log is written to obfsclient.log in the state directory
- ScrambleSuit Session Tickets are written to obfsclient-tickets.txt in the state directory
- A handshake timeout of 60 seconds is used once the TCP/IP connection is established
Tested on:
- somme (ArchLinux x86_64, gcc 4.8.2, clang 3.4)
- ypres (FreeBSD 10.0-RELEASE x86_64, gcc 4.7.4, clang 3.3)
- verdun (FreeBSD 9.2-RELEASE x86_64, gcc 4.7.4)