From 77090696177d7b0a9dfd5a11c0ac7dbaa3623d6b Mon Sep 17 00:00:00 2001 From: Yawning Angel Date: Thu, 15 May 2014 20:21:46 +0000 Subject: 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. --- packet.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'packet.go') diff --git a/packet.go b/packet.go index f1c0ab1..4112c9b 100644 --- a/packet.go +++ b/packet.go @@ -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 } -- cgit v1.2.3