Procházet zdrojové kódy

More optimal byte reversing

tags/0.9
9seconds před 7 roky
rodič
revize
7b43766a08
1 změnil soubory, kde provedl 7 přidání a 3 odebrání
  1. 7
    3
      mtproto/wrappers/crypt.go

+ 7
- 3
mtproto/wrappers/crypt.go Zobrazit soubor

@@ -95,9 +95,13 @@ func makeEncrypterDecrypter(key, iv []byte) (cipher.BlockMode, cipher.BlockMode)
95 95
 }
96 96
 
97 97
 func reverseBytes(data []byte) []byte {
98
-	rv := make([]byte, len(data))
99
-	for k, v := range data {
100
-		rv[len(data)-1-k] = v
98
+	dataLen := len(data)
99
+	rv := make([]byte, dataLen)
100
+
101
+	rv[dataLen/2] = data[dataLen/2]
102
+	for i := dataLen/2 - 1; i >= 0; i-- {
103
+		opp := dataLen - i - 1
104
+		rv[i], rv[opp] = data[opp], data[i]
101 105
 	}
102 106
 
103 107
 	return rv

Načítá se…
Zrušit
Uložit