fix packet unpacker in-place encryption

This commit is contained in:
Lucas Clemente
2016-08-04 23:34:59 +02:00
parent 3fa0c12954
commit f5315af4db

View File

@@ -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