diff options
author | Yawning Angel <yawning@schwanenlied.me> | 2014-05-15 20:21:46 +0000 |
---|---|---|
committer | Yawning Angel <yawning@schwanenlied.me> | 2014-05-15 20:21:46 +0000 |
commit | 77090696177d7b0a9dfd5a11c0ac7dbaa3623d6b (patch) | |
tree | fc974b73e245d9e3af6f30ff3cbe2f8d5c45d900 /packet.go | |
parent | 6f875c99a9047d8a04a9ac2db9c6305dee3e2901 (diff) |
Send the DRBG seed as a packetTypePrngSeed post server handshake.
This fixes #3, and brings the code to be on par with the delopyed
versions of ScrambleSuit in terms of features.
Diffstat (limited to 'packet.go')
-rw-r--r-- | packet.go | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -37,9 +37,10 @@ import ( ) const ( - packetOverhead = 2 + 1 - maxPacketPayloadLength = framing.MaximumFramePayloadLength - packetOverhead - maxPacketPaddingLength = maxPacketPayloadLength + packetOverhead = 2 + 1 + maxPacketPayloadLength = framing.MaximumFramePayloadLength - packetOverhead + maxPacketPaddingLength = maxPacketPayloadLength + seedPacketPayloadLength = DrbgSeedLength consumeReadSize = framing.MaximumSegmentLength * 16 ) @@ -173,9 +174,9 @@ func (c *Obfs4Conn) consumeFramedPackets(w io.Writer) (n int, err error) { } case packetTypePrngSeed: // Only regenerate the distribution if we are the client. - if len(payload) >= DrbgSeedLength && !c.isServer { + if len(payload) == seedPacketPayloadLength && !c.isServer { var seed *DrbgSeed - seed, err = DrbgSeedFromBytes(payload[:DrbgSeedLength]) + seed, err = DrbgSeedFromBytes(payload) if err != nil { break } |