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) {
|
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 {
|
if err != nil {
|
||||||
// Wrap err in quicError so that public reset is sent by session
|
// Wrap err in quicError so that public reset is sent by session
|
||||||
return nil, qerr.Error(qerr.DecryptionFailure, err.Error())
|
return nil, qerr.Error(qerr.DecryptionFailure, err.Error())
|
||||||
}
|
}
|
||||||
r := bytes.NewReader(data)
|
r := bytes.NewReader(decrypted)
|
||||||
|
|
||||||
// read private flag byte, for QUIC Version < 34
|
// read private flag byte, for QUIC Version < 34
|
||||||
var entropyBit bool
|
var entropyBit bool
|
||||||
|
|||||||
Reference in New Issue
Block a user