diff --git a/shadowaead/packet.go b/shadowaead/packet.go index d8f20a40..ae5f84d4 100644 --- a/shadowaead/packet.go +++ b/shadowaead/packet.go @@ -88,6 +88,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) - return len(b), addr, err + bb, err := Unpack(b[c.Cipher.SaltSize():], b[:n], c) + if err != nil { + return n, addr, err + } + copy(b, bb) + return len(bb), addr, err } diff --git a/shadowstream/packet.go b/shadowstream/packet.go index b266f581..0defa110 100644 --- a/shadowstream/packet.go +++ b/shadowstream/packet.go @@ -76,5 +76,5 @@ func (c *packetConn) ReadFrom(b []byte) (int, net.Addr, error) { return n, addr, err } copy(b, bb) - return len(b), addr, err + return len(bb), addr, err }