summaryrefslogtreecommitdiff
path: root/obfs4proxy
AgeCommit message (Collapse)Author
2014-05-28Fix minor style issues pointed out by golint.Yawning Angel
2014-05-26Fix import lines so other people using go get works.Yawning Angel
2014-05-25Run go fmt on proxy_http.go (No functional changes).Yawning Angel
2014-05-25Add support for HTTP CONNECT proxies.Yawning Angel
Joining a SOCKS dialer on the list of things the Golang runtime really should have is a HTTP CONNECT dialer. There's a full fledged HTTP client and server there, but not this. Why? Who knows. This fixes issue #7.
2014-05-25Move the SOCKS4 code off into it's own little getto.Yawning Angel
Part of issue #7.
2014-05-25Add support for SOCKS4.Yawning Angel
Despite the unfortunate scheme name, this really is SOCKS4, and not 4a, as the torrc Socks4Proxy option only supports addresses and not FQDNs. Part of issue #7.
2014-05-25Rename to be consistent.Yawning Angel
2014-05-25Wire in go.net/proxy, enabling SOCKS5 via TOR_PT_PROXY.Yawning Angel
With tor patched to support 8402, obfs4 bootstraps via a SOCKSv5 proxy now. Other schemes will bail with a PROXY-ERROR, as the go.net/proxy package does not support them, and I have not gotten around to writing dialers for them yet (next on my TODO list). Part of issue #7.
2014-05-25Validate the host component of the proxy URI.Yawning Angel
Part of issue #7.
2014-05-25Parse TOR_PT_PROXY and support sending DONE/PROXY-ERROR.Yawning Angel
Currently obfs4proxy is hardcoded to always PROXY-ERROR, despite a valid proxy uri being passed in the env var. Once the dialer portion of the code is done, this will be changed. Part of issue #7.
2014-05-25Move the supplemental pt config routines to pt_extra.goYawning Angel
2014-05-23Add support for IAT obfuscation (disabled by default).Yawning Angel
When enabled, inter-packet delay will be randomized between 0 and 10 ms in 100 usec intervals. As experiences from ScrambleSuit (and back of the envelope math based on how networks work) show, this is extremely expensive and artificially limits the throughput of the link. When enabled, bulk transfer throughput will be limited to an average of 278 KiB/s.
2014-05-21Revert "Use the new goptlib goodies."Yawning Angel
This reverts commit 8d61c6bcc67e7acc5604f87ca2a7c7ec43fc46de. On second thought, don't do this. API not final, and some of the stuff might not be a good idea after all.
2014-05-21Use the new goptlib goodies.Yawning Angel
As of `15b960d55905877a840fe605a41a8139bffb5329` goptlib supports IsClient, IsServer, and handling the StateLocation. Yes this means you need to use goptlib out of git.
2014-05-21Add support for a log scrubber and log a session id.Yawning Angel
This fixes #6.
2014-05-21Finish adding godoc comments to all public interfaces.Yawning Angel
2014-05-20Allow logging to be disabled (default).Yawning Angel
Part of #6, still need to make logs nicer.
2014-05-15Send the DRBG seed as a packetTypePrngSeed post server handshake.Yawning Angel
This fixes #3, and brings the code to be on par with the delopyed versions of ScrambleSuit in terms of features.
2014-05-15Load the drbg-seed from the ServerTransportOptions args.Yawning Angel
This also adds the drgb-seed option to the `-gen` obfs4proxy output.
2014-05-15Make the output from "-gen" be more useful.Yawning Angel
2014-05-15Use os.MkdirAll() for creating the pt state directory.Yawning Angel
2014-05-14Remove a newline to make godoc work (No functional changes).Yawning Angel
2014-05-13Add vim modelines to some files (No functional changes).Yawning Angel
2014-05-13Fix up import.Yawning Angel
2014-05-13Fix copyLoop to break out the other goroutine on graceful exit.Yawning Angel
This should fix sockets getting stuck in CLOSE_WAIT.
2014-05-12Fix logging again.Yawning Angel
On second thought instead of using log.Panicf(), panic() and do the logging with recover(). This somewhat centralizes logging in obfs4proxy, which will be easier to change when I invariably decide to do logging differently in the future.
2014-05-12Log and propagate errors between the 2 goroutines in copyLoop.Yawning Angel
This fixes #1.
2014-05-12Clean up the logging a bit.Yawning Angel
2014-05-12Run go fmt on obfs4proxy.go (No functional changes).Yawning Angel
2014-05-12Move to a unified client/server binary, and fix bugs.Yawning Angel
* The old and the busted: obfs4-[client,server]. * The new hotness: obfs4client. * Add obfs4.ServerHandshake() that servers need to call after a successful return from Accept(). This allows implementations to move the handshake into a goroutine or whatever.