From c60c6d8ddbd3b9f256c58cadbbf9b1c1b9ad5bd8 Mon Sep 17 00:00:00 2001 From: Andy Wang Date: Mon, 28 Dec 2020 01:25:22 +0000 Subject: [PATCH] Avoid assigning functions to variables in hot path --- internal/multiplex/obfs.go | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/internal/multiplex/obfs.go b/internal/multiplex/obfs.go index 8ec0d5b..91c9a76 100644 --- a/internal/multiplex/obfs.go +++ b/internal/multiplex/obfs.go @@ -11,11 +11,6 @@ import ( "golang.org/x/crypto/salsa20" ) -var u32 = binary.BigEndian.Uint32 -var u64 = binary.BigEndian.Uint64 -var putU32 = binary.BigEndian.PutUint32 -var putU64 = binary.BigEndian.PutUint64 - const frameHeaderLength = 14 const salsa20NonceSize = 8 @@ -98,8 +93,8 @@ func (o *Obfuscator) obfuscate(f *Frame, buf []byte, payloadOffsetInBuf int) (in } header := buf[:frameHeaderLength] - putU32(header[0:4], f.StreamID) - putU64(header[4:12], f.Seq) + binary.BigEndian.PutUint32(header[0:4], f.StreamID) + binary.BigEndian.PutUint64(header[4:12], f.Seq) header[12] = f.Closing header[13] = byte(extraLen) @@ -130,8 +125,8 @@ func (o *Obfuscator) deobfuscate(f *Frame, in []byte) error { nonce := in[len(in)-salsa20NonceSize:] salsa20.XORKeyStream(header, header, nonce, &o.SessionKey) - streamID := u32(header[0:4]) - seq := u64(header[4:12]) + streamID := binary.BigEndian.Uint32(header[0:4]) + seq := binary.BigEndian.Uint64(header[4:12]) closing := header[12] extraLen := header[13]