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