- May 14, 2014
-
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
In theory this is easier on the garbage collector. Probably could reuse more of the intermediary buffers by stashing them in the connection state, but that makes the code kind of messy. This should be an improvement.
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
-
- May 13, 2014
-
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
This should fix sockets getting stuck in CLOSE_WAIT.
-
Yawning Angel authored
-
Yawning Angel authored
The same algorithm as ScrambleSuit is used, except: * SipHash-2-4 in OFB mode is used to create the distribution. * The system CSPRNG is used when sampling the distribution. This fixes most of #3, all that remains is generating and sending a persistent distribution on the server side to the client.
-
- May 12, 2014
-
-
Yawning Angel authored
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.
-
Yawning Angel authored
This fixes #1.
-
Yawning Angel authored
-
Yawning Angel authored
This adds preliminary support for data padding by adding another layer of encapsulation inside each AEAD frame containing a type and length. For now, data is still sent unpadded, but the infrastructure for supporting it is mostly there. Additionally, use log.Panic[f]() instead of panic through out the code so that some panics are logged.
-
Yawning Angel authored
Write timeouts are obnoxious to handle as the frame encoder state already is updated to cover the entire payload for the Write() call that timed out. In theory it is possible to buffer the pending data, but that causes Write() to voilate the semantics of the interface.
-
Yawning Angel authored
-
Yawning Angel authored
The current timeout value before the server fails the handshake is 15 s. This may need to be increased for clients over slow links.
-
Yawning Angel authored
Like ScrambleSuit, a random interval between 1x and 5x of additional data from the peer is read and immediately discarded before closing. Additionally, obfs4 will close off invalid connections anywhere between 0 and 60 seconds after it determines that the incoming connection will never complete the handshake successfully.
-
Yawning Angel authored
-
Yawning Angel authored
-
Yawning Angel authored
* 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.
-
- May 11, 2014
-
-
Yawning Angel authored
-
- May 09, 2014
-
-
Yawning Angel authored
-
Yawning Angel authored
-