diff --git a/shadowstream/packet.go b/shadowstream/packet.go index 8bbb27b5..b266f581 100644 --- a/shadowstream/packet.go +++ b/shadowstream/packet.go @@ -71,6 +71,10 @@ func (c *packetConn) ReadFrom(b []byte) (int, net.Addr, error) { if err != nil { return n, addr, err } - b, err = Unpack(b, b[:n], c.Cipher) + bb, err := Unpack(b[c.IVSize():], b[:n], c.Cipher) + if err != nil { + return n, addr, err + } + copy(b, bb) return len(b), addr, err }