Commit Graph

8 Commits (b3d17c327b3d0f8cfd3ebf91e776e1f99bb81004)

Author SHA1 Message Date
Yawning Angel b3f0f51775 Move utils.go to csrand/csrand.go, and clean up the interface.
All of the obfs4 code except unit tests now uses the csrand wrapper
routines.
10 years ago
Yawning Angel efb9d17c8c Change the server failure close delay/discard length to be consistent.
It will vary per bridge as it is based off the DRBG, but ever attempt
at poking at any given bridge will exhibit consistent behavior.
10 years ago
Yawning Angel f4877920f8 Change the handshake wire format.
* HMAC-SHA256 -> HMAC-SHA256-128.
 * Mark/MAC are now both caluclated using Public Key | NodeID.

This breaks wire protocol compatibility.
10 years ago
Yawning Angel 6f875c99a9 Load the drbg-seed from the ServerTransportOptions args.
This also adds the drgb-seed option to the `-gen` obfs4proxy output.
10 years ago
Yawning Angel f1b1dcdb10 Change hashDrbg to take a drbgSeed for initialization.
This paves the way for having servers use the same seed for all
incoming connections, across multiple startup/shutdown cycles.  As
opposed to the current situation where each Obfs4Listener will
randomly generate it's seed at creation time.

Additionally, use 256 bit seeds (128 bit SipHash-2-4 key + 16 bytes of
initial material).
10 years ago
Yawning Angel 64212e1029 Add vim modelines to some files (No functional changes). 10 years ago
Yawning Angel 7a7b2af516 Fix e-mail address in the copyright notice. 10 years ago
Yawning Angel 9bfdd77f72 Add preliminary support for packet length obfuscation.
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.
10 years ago