summaryrefslogtreecommitdiff
path: root/weighted_dist.go
AgeCommit message (Collapse)Author
2014-06-02Move the SipHash DRBG off into it's own package.Yawning Angel
2014-05-28Change the weighted distribution algorithm be uniform.Yawning Angel
The old way was biasted towards the earlier values. Thanks to asn for pointing this out and suggesting an alternative. As an additional tweak, do not reuse the drbg seed when calculating the IAT distribution, but instead run the seed through SHA256 first, for extra tinfoil goodness.
2014-05-24Move utils.go to csrand/csrand.go, and clean up the interface.Yawning Angel
All of the obfs4 code except unit tests now uses the csrand wrapper routines.
2014-05-18Change the server failure close delay/discard length to be consistent.Yawning Angel
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.
2014-05-16Change the handshake wire format.Yawning Angel
* HMAC-SHA256 -> HMAC-SHA256-128. * Mark/MAC are now both caluclated using Public Key | NodeID. This breaks wire protocol compatibility.
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-15Change hashDrbg to take a drbgSeed for initialization.Yawning Angel
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).
2014-05-13Add vim modelines to some files (No functional changes).Yawning Angel
2014-05-13Fix e-mail address in the copyright notice.Yawning Angel
2014-05-13Add preliminary support for packet length obfuscation.Yawning Angel
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.