From 0d7d3ed09bd58367b10e7648c0e1af4d65524664 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Niels=20M=C3=B6ller?= <nisse@lysator.liu.se>
Date: Thu, 25 Jan 2024 21:27:18 +0100
Subject: [PATCH] Update arm64 aes decrypt.

---
 arm64/crypto/aes128-decrypt.asm | 36 +++++++++++------------
 arm64/crypto/aes192-decrypt.asm | 44 ++++++++++++++--------------
 arm64/crypto/aes256-decrypt.asm | 52 ++++++++++++++++-----------------
 3 files changed, 66 insertions(+), 66 deletions(-)

diff --git a/arm64/crypto/aes128-decrypt.asm b/arm64/crypto/aes128-decrypt.asm
index aadfc480..70f2a64e 100644
--- a/arm64/crypto/aes128-decrypt.asm
+++ b/arm64/crypto/aes128-decrypt.asm
@@ -73,16 +73,16 @@ PROLOGUE(nettle_aes128_decrypt)
 L4B_loop:
     ld1            {S0.16b,S1.16b,S2.16b,S3.16b},[SRC],#64
     
-    AESD_ROUND_4B(S0,S1,S2,S3,K0)
-    AESD_ROUND_4B(S0,S1,S2,S3,K1)
-    AESD_ROUND_4B(S0,S1,S2,S3,K2)
-    AESD_ROUND_4B(S0,S1,S2,S3,K3)
-    AESD_ROUND_4B(S0,S1,S2,S3,K4)
-    AESD_ROUND_4B(S0,S1,S2,S3,K5)
-    AESD_ROUND_4B(S0,S1,S2,S3,K6)
-    AESD_ROUND_4B(S0,S1,S2,S3,K7)
+    AESD_ROUND_4B(S0,S1,S2,S3,K10)
+    AESD_ROUND_4B(S0,S1,S2,S3,K9)
     AESD_ROUND_4B(S0,S1,S2,S3,K8)
-    AESD_LAST_ROUND_4B(S0,S1,S2,S3,K9,K10)
+    AESD_ROUND_4B(S0,S1,S2,S3,K7)
+    AESD_ROUND_4B(S0,S1,S2,S3,K6)
+    AESD_ROUND_4B(S0,S1,S2,S3,K5)
+    AESD_ROUND_4B(S0,S1,S2,S3,K4)
+    AESD_ROUND_4B(S0,S1,S2,S3,K3)
+    AESD_ROUND_4B(S0,S1,S2,S3,K2)
+    AESD_LAST_ROUND_4B(S0,S1,S2,S3,K1,K0)
 
     st1            {S0.16b,S1.16b,S2.16b,S3.16b},[DST],#64
 
@@ -97,16 +97,16 @@ L1B:
 L1B_loop:
     ld1            {S0.16b},[SRC],#16
     
-    AESD_ROUND_1B(S0,K0)
-    AESD_ROUND_1B(S0,K1)
-    AESD_ROUND_1B(S0,K2)
-    AESD_ROUND_1B(S0,K3)
-    AESD_ROUND_1B(S0,K4)
-    AESD_ROUND_1B(S0,K5)
-    AESD_ROUND_1B(S0,K6)
-    AESD_ROUND_1B(S0,K7)
+    AESD_ROUND_1B(S0,K10)
+    AESD_ROUND_1B(S0,K9)
     AESD_ROUND_1B(S0,K8)
-    AESD_LAST_ROUND_1B(S0,K9,K10)
+    AESD_ROUND_1B(S0,K7)
+    AESD_ROUND_1B(S0,K6)
+    AESD_ROUND_1B(S0,K5)
+    AESD_ROUND_1B(S0,K4)
+    AESD_ROUND_1B(S0,K3)
+    AESD_ROUND_1B(S0,K2)
+    AESD_LAST_ROUND_1B(S0,K1,K0)
 
     st1            {S0.16b},[DST],#16
 
diff --git a/arm64/crypto/aes192-decrypt.asm b/arm64/crypto/aes192-decrypt.asm
index 769edd15..b8eb30fd 100644
--- a/arm64/crypto/aes192-decrypt.asm
+++ b/arm64/crypto/aes192-decrypt.asm
@@ -76,18 +76,18 @@ PROLOGUE(nettle_aes192_decrypt)
 L4B_loop:
     ld1            {S0.16b,S1.16b,S2.16b,S3.16b},[SRC],#64
     
-    AESD_ROUND_4B(S0,S1,S2,S3,K0)
-    AESD_ROUND_4B(S0,S1,S2,S3,K1)
-    AESD_ROUND_4B(S0,S1,S2,S3,K2)
-    AESD_ROUND_4B(S0,S1,S2,S3,K3)
-    AESD_ROUND_4B(S0,S1,S2,S3,K4)
-    AESD_ROUND_4B(S0,S1,S2,S3,K5)
-    AESD_ROUND_4B(S0,S1,S2,S3,K6)
-    AESD_ROUND_4B(S0,S1,S2,S3,K7)
-    AESD_ROUND_4B(S0,S1,S2,S3,K8)
-    AESD_ROUND_4B(S0,S1,S2,S3,K9)
+    AESD_ROUND_4B(S0,S1,S2,S3,K12)
+    AESD_ROUND_4B(S0,S1,S2,S3,K11)
     AESD_ROUND_4B(S0,S1,S2,S3,K10)
-    AESD_LAST_ROUND_4B(S0,S1,S2,S3,K11,K12)
+    AESD_ROUND_4B(S0,S1,S2,S3,K9)
+    AESD_ROUND_4B(S0,S1,S2,S3,K8)
+    AESD_ROUND_4B(S0,S1,S2,S3,K7)
+    AESD_ROUND_4B(S0,S1,S2,S3,K6)
+    AESD_ROUND_4B(S0,S1,S2,S3,K5)
+    AESD_ROUND_4B(S0,S1,S2,S3,K4)
+    AESD_ROUND_4B(S0,S1,S2,S3,K3)
+    AESD_ROUND_4B(S0,S1,S2,S3,K2)
+    AESD_LAST_ROUND_4B(S0,S1,S2,S3,K1,K0)
 
     st1            {S0.16b,S1.16b,S2.16b,S3.16b},[DST],#64
 
@@ -102,18 +102,18 @@ L1B:
 L1B_loop:
     ld1            {S0.16b},[SRC],#16
     
-    AESD_ROUND_1B(S0,K0)
-    AESD_ROUND_1B(S0,K1)
-    AESD_ROUND_1B(S0,K2)
-    AESD_ROUND_1B(S0,K3)
-    AESD_ROUND_1B(S0,K4)
-    AESD_ROUND_1B(S0,K5)
-    AESD_ROUND_1B(S0,K6)
-    AESD_ROUND_1B(S0,K7)
-    AESD_ROUND_1B(S0,K8)
-    AESD_ROUND_1B(S0,K9)
+    AESD_ROUND_1B(S0,K12)
+    AESD_ROUND_1B(S0,K11)
     AESD_ROUND_1B(S0,K10)
-    AESD_LAST_ROUND_1B(S0,K11,K12)
+    AESD_ROUND_1B(S0,K9)
+    AESD_ROUND_1B(S0,K8)
+    AESD_ROUND_1B(S0,K7)
+    AESD_ROUND_1B(S0,K6)
+    AESD_ROUND_1B(S0,K5)
+    AESD_ROUND_1B(S0,K4)
+    AESD_ROUND_1B(S0,K3)
+    AESD_ROUND_1B(S0,K2)
+    AESD_LAST_ROUND_1B(S0,K1,K0)
 
     st1            {S0.16b},[DST],#16
 
diff --git a/arm64/crypto/aes256-decrypt.asm b/arm64/crypto/aes256-decrypt.asm
index d787a74a..dc163315 100644
--- a/arm64/crypto/aes256-decrypt.asm
+++ b/arm64/crypto/aes256-decrypt.asm
@@ -78,20 +78,20 @@ PROLOGUE(nettle_aes256_decrypt)
 L4B_loop:
     ld1            {S0.16b,S1.16b,S2.16b,S3.16b},[SRC],#64
     
-    AESD_ROUND_4B(S0,S1,S2,S3,K0)
-    AESD_ROUND_4B(S0,S1,S2,S3,K1)
-    AESD_ROUND_4B(S0,S1,S2,S3,K2)
-    AESD_ROUND_4B(S0,S1,S2,S3,K3)
-    AESD_ROUND_4B(S0,S1,S2,S3,K4)
-    AESD_ROUND_4B(S0,S1,S2,S3,K5)
-    AESD_ROUND_4B(S0,S1,S2,S3,K6)
-    AESD_ROUND_4B(S0,S1,S2,S3,K7)
-    AESD_ROUND_4B(S0,S1,S2,S3,K8)
-    AESD_ROUND_4B(S0,S1,S2,S3,K9)
-    AESD_ROUND_4B(S0,S1,S2,S3,K10)
-    AESD_ROUND_4B(S0,S1,S2,S3,K11)
+    AESD_ROUND_4B(S0,S1,S2,S3,K14)
+    AESD_ROUND_4B(S0,S1,S2,S3,K13)
     AESD_ROUND_4B(S0,S1,S2,S3,K12)
-    AESD_LAST_ROUND_4B(S0,S1,S2,S3,K13,K14)
+    AESD_ROUND_4B(S0,S1,S2,S3,K11)
+    AESD_ROUND_4B(S0,S1,S2,S3,K10)
+    AESD_ROUND_4B(S0,S1,S2,S3,K9)
+    AESD_ROUND_4B(S0,S1,S2,S3,K8)
+    AESD_ROUND_4B(S0,S1,S2,S3,K7)
+    AESD_ROUND_4B(S0,S1,S2,S3,K6)
+    AESD_ROUND_4B(S0,S1,S2,S3,K5)
+    AESD_ROUND_4B(S0,S1,S2,S3,K4)
+    AESD_ROUND_4B(S0,S1,S2,S3,K3)
+    AESD_ROUND_4B(S0,S1,S2,S3,K2)
+    AESD_LAST_ROUND_4B(S0,S1,S2,S3,K1,K0)
 
     st1            {S0.16b,S1.16b,S2.16b,S3.16b},[DST],#64
 
@@ -106,20 +106,20 @@ L1B:
 L1B_loop:
     ld1            {S0.16b},[SRC],#16
     
-    AESD_ROUND_1B(S0,K0)
-    AESD_ROUND_1B(S0,K1)
-    AESD_ROUND_1B(S0,K2)
-    AESD_ROUND_1B(S0,K3)
-    AESD_ROUND_1B(S0,K4)
-    AESD_ROUND_1B(S0,K5)
-    AESD_ROUND_1B(S0,K6)
-    AESD_ROUND_1B(S0,K7)
-    AESD_ROUND_1B(S0,K8)
-    AESD_ROUND_1B(S0,K9)
-    AESD_ROUND_1B(S0,K10)
-    AESD_ROUND_1B(S0,K11)
+    AESD_ROUND_1B(S0,K14)
+    AESD_ROUND_1B(S0,K13)
     AESD_ROUND_1B(S0,K12)
-    AESD_LAST_ROUND_1B(S0,K13,K14)
+    AESD_ROUND_1B(S0,K11)
+    AESD_ROUND_1B(S0,K10)
+    AESD_ROUND_1B(S0,K9)
+    AESD_ROUND_1B(S0,K8)
+    AESD_ROUND_1B(S0,K7)
+    AESD_ROUND_1B(S0,K6)
+    AESD_ROUND_1B(S0,K5)
+    AESD_ROUND_1B(S0,K4)
+    AESD_ROUND_1B(S0,K3)
+    AESD_ROUND_1B(S0,K2)
+    AESD_LAST_ROUND_1B(S0,K1,K0)
 
     st1            {S0.16b},[DST],#16
 
-- 
GitLab