From 38efa84e9c2679bf78ec7e61940c3b50b037bd75 Mon Sep 17 00:00:00 2001 From: Marten Seemann Date: Wed, 4 Apr 2018 14:56:45 +0700 Subject: [PATCH] use in place decryption for unpacking packets --- mint_utils.go | 6 +----- packet_unpacker.go | 5 +---- 2 files changed, 2 insertions(+), 9 deletions(-) diff --git a/mint_utils.go b/mint_utils.go index 0f5a48e47..2d56490c8 100644 --- a/mint_utils.go +++ b/mint_utils.go @@ -108,11 +108,7 @@ func tlsToMintConfig(tlsConf *tls.Config, pers protocol.Perspective) (*mint.Conf // unpackInitialOrRetryPacket unpacks packets Initial and Retry packets // These packets must contain a STREAM_FRAME for the crypto stream, starting at offset 0. func unpackInitialPacket(aead crypto.AEAD, hdr *wire.Header, data []byte, logger utils.Logger, version protocol.VersionNumber) (*wire.StreamFrame, error) { - buf := *getPacketBuffer() - buf = buf[:0] - defer putPacketBuffer(&buf) - - decrypted, err := aead.Open(buf, data, hdr.PacketNumber, hdr.Raw) + decrypted, err := aead.Open(data[:0], data, hdr.PacketNumber, hdr.Raw) if err != nil { return nil, err } diff --git a/packet_unpacker.go b/packet_unpacker.go index 1d78b9924..994979072 100644 --- a/packet_unpacker.go +++ b/packet_unpacker.go @@ -63,10 +63,7 @@ func newPacketUnpackerGQUIC(aead gQUICAEAD, version protocol.VersionNumber) unpa } func (u *packetUnpackerGQUIC) Unpack(headerBinary []byte, hdr *wire.Header, data []byte) (*unpackedPacket, error) { - buf := *getPacketBuffer() - buf = buf[:0] - defer putPacketBuffer(&buf) - decrypted, encryptionLevel, err := u.aead.Open(buf, data, hdr.PacketNumber, headerBinary) + decrypted, encryptionLevel, err := u.aead.Open(data[:0], data, hdr.PacketNumber, headerBinary) if err != nil { // Wrap err in quicError so that public reset is sent by session return nil, qerr.Error(qerr.DecryptionFailure, err.Error())