Commit Graph

9 Commits (4d453dab2120082b00bf6e63ab4aaeeda6b8d8a3)

Author SHA1 Message Date
Yawning Angel c0898c2d3b Fix missing field size in obfs4-spec.txt
Thanks to @SudoHenk on github for pointing out the issue long ago.
6 years ago
Yawning Angel 0f038ca4fa Document the obfs4 NaCl secretbox nonce generation.
Forgot to include this in the spec, though it was documented as a
comment in the framing code.
10 years ago
Yawning Angel 94d3fe9a08 Change the TYPE_PRNG_SEED length to 24.
This matches what the code actually sends.  It's shorter than the
ScrambleSuit PRNG seed, but that's because the SipHash-2-4 based
Hash_DRBG has 24 bytes of internal state (key + initial output).
10 years ago
Yawning Angel 5bdc376e2a Change how the length obfsucation mask is derived.
Instead of using the nonce for the secret box, just use SipHash-2-4 in
OFB mode instead.  The IV is generated as part of the KDF.  This
simplifies the code a decent amount and also is better on the off
chance that SipHash-2-4 does not avalanche as well as it is currently
assumed.

While here, also decouple the fact that *this implementation* of obfs4
uses a PRNG with 24 bytes of internal state for protocol polymorphism
instead of 32 bytes (that the spec requires).

THIS CHANGE BREAKS WIRE PROTCOL COMPATIBILITY.
10 years ago
Yawning Angel 272fb852e7 Change the maximm handshake length to 8192 bytes.
* handhake_ntor_test now is considerably more comprehensive.
 * The padding related constants in the spec were clarified.

This breaks wireprotocol compatibility.
10 years ago
Yawning Angel f4b3821292 Fix constants in the spec to reflect the code. 10 years ago
Yawning Angel 19f34317ba Change the MSS to 1448 bytes, because timestamps are a thing.
This breaks wireprotocol compatibility.
10 years ago
Yawning Angel a60f92cf95 Update the spec with feedback from arma (No functional changes). 10 years ago
Yawning Angel b4f445233c Add a protocol specification.
This fixes #4.
10 years ago