forked from quic-go/quic-go
fix packet unpacker in-place encryption
This commit is contained in:
@@ -22,12 +22,14 @@ type packetUnpacker struct {
|
||||
}
|
||||
|
||||
func (u *packetUnpacker) Unpack(publicHeaderBinary []byte, hdr *PublicHeader, data []byte) (*unpackedPacket, error) {
|
||||
data, err := u.aead.Open(data[:0], data, hdr.PacketNumber, publicHeaderBinary)
|
||||
buf := getPacketBuffer()
|
||||
defer putPacketBuffer(buf)
|
||||
decrypted, err := u.aead.Open(buf, data, hdr.PacketNumber, publicHeaderBinary)
|
||||
if err != nil {
|
||||
// Wrap err in quicError so that public reset is sent by session
|
||||
return nil, qerr.Error(qerr.DecryptionFailure, err.Error())
|
||||
}
|
||||
r := bytes.NewReader(data)
|
||||
r := bytes.NewReader(decrypted)
|
||||
|
||||
// read private flag byte, for QUIC Version < 34
|
||||
var entropyBit bool
|
||||
|
||||
Reference in New Issue
Block a user