From acbf849b44006202337106b1a2ba3d4be813f605 Mon Sep 17 00:00:00 2001
From: zzz <zzz@i2pmail.org>
Date: Mon, 28 Mar 2022 08:08:22 -0400
Subject: [PATCH] Crypto: Micro-optimize AES encrypt loop

---
 core/java/src/net/i2p/crypto/CryptixAESEngine.java | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/core/java/src/net/i2p/crypto/CryptixAESEngine.java b/core/java/src/net/i2p/crypto/CryptixAESEngine.java
index e0ee108715..2a51fa1e5b 100644
--- a/core/java/src/net/i2p/crypto/CryptixAESEngine.java
+++ b/core/java/src/net/i2p/crypto/CryptixAESEngine.java
@@ -127,13 +127,12 @@ public final class CryptixAESEngine extends AESEngine {
             }
         }
 
-        int numblock = length / 16;
-        
         DataHelper.xor(iv, ivOffset, payload, payloadIndex, out, outIndex, 16);
         encryptBlock(out, outIndex, sessionKey, out, outIndex);
-        for (int x = 1; x < numblock; x++) {
-            DataHelper.xor(out, outIndex + (x-1) * 16, payload, payloadIndex + x * 16, out, outIndex + x * 16, 16);
-            encryptBlock(out, outIndex + x * 16, sessionKey, out, outIndex + x * 16);
+        for (int x = 16; x < length; x += 16) {
+            int off = outIndex + x;
+            DataHelper.xor(out, off - 16, payload, payloadIndex + x, out, off, 16);
+            encryptBlock(out, off, sessionKey, out, off);
         }
     }
     
-- 
GitLab