From 7b43766a081d478f53c89bc5d87803675c13acaa Mon Sep 17 00:00:00 2001 From: 9seconds Date: Thu, 5 Jul 2018 10:58:58 +0300 Subject: [PATCH] More optimal byte reversing --- mtproto/wrappers/crypt.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/mtproto/wrappers/crypt.go b/mtproto/wrappers/crypt.go index fc9bf63..e28ad8e 100644 --- a/mtproto/wrappers/crypt.go +++ b/mtproto/wrappers/crypt.go @@ -95,9 +95,13 @@ func makeEncrypterDecrypter(key, iv []byte) (cipher.BlockMode, cipher.BlockMode) } func reverseBytes(data []byte) []byte { - rv := make([]byte, len(data)) - for k, v := range data { - rv[len(data)-1-k] = v + dataLen := len(data) + rv := make([]byte, dataLen) + + rv[dataLen/2] = data[dataLen/2] + for i := dataLen/2 - 1; i >= 0; i-- { + opp := dataLen - i - 1 + rv[i], rv[opp] = data[opp], data[i] } return rv