summaryrefslogtreecommitdiff
path: root/packet.go
diff options
context:
space:
mode:
authorYawning Angel <yawning@schwanenlied.me>2014-05-15 20:21:46 +0000
committerYawning Angel <yawning@schwanenlied.me>2014-05-15 20:21:46 +0000
commit77090696177d7b0a9dfd5a11c0ac7dbaa3623d6b (patch)
treefc974b73e245d9e3af6f30ff3cbe2f8d5c45d900 /packet.go
parent6f875c99a9047d8a04a9ac2db9c6305dee3e2901 (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.go11
1 files changed, 6 insertions, 5 deletions
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
}