summaryrefslogtreecommitdiff
path: root/handshake_ntor_test.go
AgeCommit message (Collapse)Author
2014-06-01Move the server keypair generation to right after Accept().Yawning Angel
Instead of threading the code, move the keypair generation to right after Accept() is called. This should mask the timing differential due to the rejection sampling with the noise from the variablity in how long it takes for the server to get around to pulling a connection out of the backlog, and the time taken for the client to send it's portion of the handshake. The downside is that anyone connecting to the obfs4 port does force us to do a bunch of math, but the obfs4 math is relatively cheap compared to it's precursors. Fixes #9.
2014-06-01Generate client keypairs before connecting, instead of after.Yawning Angel
Part of issue #9.
2014-05-23Change the maximm handshake length to 8192 bytes.Yawning Angel
* handhake_ntor_test now is considerably more comprehensive. * The padding related constants in the spec were clarified. This breaks wireprotocol compatibility.
2014-05-22Add replay detection to handshakes.Yawning Angel
This is done by maintaining a map keyed off the SipHash-2-4 digest of the MAC_C component of the handshake. Collisions, while possible are unlikely in the extreme and are thus treated as replays. In concept this is fairly similar to the ScrambleSuit `replay.py` code, with a few modifications: * There is a upper bound on how large the replay filter can grow. Currently this is set to 102400 entries, though it is unlikely that this limit will be hit. * A doubly linked list is also maintained parallel to the map, so the filter compaction process does not need to iterate over the entire filter.
2014-05-09Initial import.Yawning Angel