summaryrefslogtreecommitdiff
path: root/arm64/crypto
diff options
context:
space:
mode:
authorMamone Tarsha <maamoun.tk@googlemail.com>2021-08-01 14:23:11 +0300
committerMamone Tarsha <maamoun.tk@googlemail.com>2021-08-01 14:23:11 +0300
commitf7bc3e1bc2783d6c1bb9eb64e99ff96264e20fcc (patch)
tree5802a9d093a15dae97b79563fb025f6d5343e58f /arm64/crypto
parent39d1e2a36bd50bd63e9a81e54e6dadd4c4ef515e (diff)
downloadnettle-f7bc3e1bc2783d6c1bb9eb64e99ff96264e20fcc.tar.gz
[AArch64] Move AES round macros to machine.m4
Diffstat (limited to 'arm64/crypto')
-rw-r--r--arm64/crypto/aes128-decrypt.asm80
-rw-r--r--arm64/crypto/aes128-encrypt.asm80
-rw-r--r--arm64/crypto/aes192-decrypt.asm88
-rw-r--r--arm64/crypto/aes192-encrypt.asm88
-rw-r--r--arm64/crypto/aes256-decrypt.asm96
-rw-r--r--arm64/crypto/aes256-encrypt.asm96
6 files changed, 144 insertions, 384 deletions
diff --git a/arm64/crypto/aes128-decrypt.asm b/arm64/crypto/aes128-decrypt.asm
index f459bb15..cd970471 100644
--- a/arm64/crypto/aes128-decrypt.asm
+++ b/arm64/crypto/aes128-decrypt.asm
@@ -57,46 +57,6 @@ define(`K8', `v24')
define(`K9', `v25')
define(`K10', `v26')
-C AES decryption round of 4-blocks
-C AESD_ROUND_4B(KEY)
-define(`AESD_ROUND_4B', m4_assert_numargs(1)`
- aesd S0.16b,$1.16b
- aesimc S0.16b,S0.16b
- aesd S1.16b,$1.16b
- aesimc S1.16b,S1.16b
- aesd S2.16b,$1.16b
- aesimc S2.16b,S2.16b
- aesd S3.16b,$1.16b
- aesimc S3.16b,S3.16b
-')
-
-C AES last decryption round of 4-blocks
-C AESD_LAST_ROUND_4B(KEY)
-define(`AESD_LAST_ROUND_4B', m4_assert_numargs(2)`
- aesd S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
- aesd S1.16b,$1.16b
- eor S1.16b,S1.16b,$2.16b
- aesd S2.16b,$1.16b
- eor S2.16b,S2.16b,$2.16b
- aesd S3.16b,$1.16b
- eor S3.16b,S3.16b,$2.16b
-')
-
-C AES decryption round of 1-block
-C AESD_ROUND_1B(KEY)
-define(`AESD_ROUND_1B', m4_assert_numargs(1)`
- aesd S0.16b,$1.16b
- aesimc S0.16b,S0.16b
-')
-
-C AES last decryption round of 1-block
-C AESD_LAST_ROUND_1B(KEY)
-define(`AESD_LAST_ROUND_1B', m4_assert_numargs(2)`
- aesd S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
-')
-
C void
C aes128_decrypt(const struct aes128_ctx *ctx,
C size_t length, uint8_t *dst,
@@ -114,16 +74,16 @@ PROLOGUE(nettle_aes128_decrypt)
L4B_loop:
ld1 {S0.16b,S1.16b,S2.16b,S3.16b},[SRC],#64
- AESD_ROUND_4B(K0)
- AESD_ROUND_4B(K1)
- AESD_ROUND_4B(K2)
- AESD_ROUND_4B(K3)
- AESD_ROUND_4B(K4)
- AESD_ROUND_4B(K5)
- AESD_ROUND_4B(K6)
- AESD_ROUND_4B(K7)
- AESD_ROUND_4B(K8)
- AESD_LAST_ROUND_4B(K9,K10)
+ 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_LAST_ROUND_4B(S0,S1,S2,S3,K9,K10)
st1 {S0.16b,S1.16b,S2.16b,S3.16b},[DST],#64
@@ -142,16 +102,16 @@ L1B:
L1B_loop:
ld1 {S0.16b},[SRC],#16
- AESD_ROUND_1B(K0)
- AESD_ROUND_1B(K1)
- AESD_ROUND_1B(K2)
- AESD_ROUND_1B(K3)
- AESD_ROUND_1B(K4)
- AESD_ROUND_1B(K5)
- AESD_ROUND_1B(K6)
- AESD_ROUND_1B(K7)
- AESD_ROUND_1B(K8)
- AESD_LAST_ROUND_1B(K9,K10)
+ 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_LAST_ROUND_1B(S0,K9,K10)
st1 {S0.16b},[DST],#16
diff --git a/arm64/crypto/aes128-encrypt.asm b/arm64/crypto/aes128-encrypt.asm
index b3c3b9ce..5db609e5 100644
--- a/arm64/crypto/aes128-encrypt.asm
+++ b/arm64/crypto/aes128-encrypt.asm
@@ -57,46 +57,6 @@ define(`K8', `v24')
define(`K9', `v25')
define(`K10', `v26')
-C AES encryption round of 4-blocks
-C AESE_ROUND_4B(KEY)
-define(`AESE_ROUND_4B', m4_assert_numargs(1)`
- aese S0.16b,$1.16b
- aesmc S0.16b,S0.16b
- aese S1.16b,$1.16b
- aesmc S1.16b,S1.16b
- aese S2.16b,$1.16b
- aesmc S2.16b,S2.16b
- aese S3.16b,$1.16b
- aesmc S3.16b,S3.16b
-')
-
-C AES last encryption round of 4-blocks
-C AESE_LAST_ROUND_4B(KEY)
-define(`AESE_LAST_ROUND_4B', m4_assert_numargs(2)`
- aese S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
- aese S1.16b,$1.16b
- eor S1.16b,S1.16b,$2.16b
- aese S2.16b,$1.16b
- eor S2.16b,S2.16b,$2.16b
- aese S3.16b,$1.16b
- eor S3.16b,S3.16b,$2.16b
-')
-
-C AES encryption round of 1-block
-C AESE_ROUND_1B(KEY)
-define(`AESE_ROUND_1B', m4_assert_numargs(1)`
- aese S0.16b,$1.16b
- aesmc S0.16b,S0.16b
-')
-
-C AES last encryption round of 1-block
-C AESE_LAST_ROUND_1B(KEY)
-define(`AESE_LAST_ROUND_1B', m4_assert_numargs(2)`
- aese S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
-')
-
C void
C aes128_encrypt(const struct aes128_ctx *ctx,
C size_t length, uint8_t *dst,
@@ -114,16 +74,16 @@ PROLOGUE(nettle_aes128_encrypt)
L4B_loop:
ld1 {S0.16b,S1.16b,S2.16b,S3.16b},[SRC],#64
- AESE_ROUND_4B(K0)
- AESE_ROUND_4B(K1)
- AESE_ROUND_4B(K2)
- AESE_ROUND_4B(K3)
- AESE_ROUND_4B(K4)
- AESE_ROUND_4B(K5)
- AESE_ROUND_4B(K6)
- AESE_ROUND_4B(K7)
- AESE_ROUND_4B(K8)
- AESE_LAST_ROUND_4B(K9,K10)
+ AESE_ROUND_4B(S0,S1,S2,S3,K0)
+ AESE_ROUND_4B(S0,S1,S2,S3,K1)
+ AESE_ROUND_4B(S0,S1,S2,S3,K2)
+ AESE_ROUND_4B(S0,S1,S2,S3,K3)
+ AESE_ROUND_4B(S0,S1,S2,S3,K4)
+ AESE_ROUND_4B(S0,S1,S2,S3,K5)
+ AESE_ROUND_4B(S0,S1,S2,S3,K6)
+ AESE_ROUND_4B(S0,S1,S2,S3,K7)
+ AESE_ROUND_4B(S0,S1,S2,S3,K8)
+ AESE_LAST_ROUND_4B(S0,S1,S2,S3,K9,K10)
st1 {S0.16b,S1.16b,S2.16b,S3.16b},[DST],#64
@@ -142,16 +102,16 @@ L1B:
L1B_loop:
ld1 {S0.16b},[SRC],#16
- AESE_ROUND_1B(K0)
- AESE_ROUND_1B(K1)
- AESE_ROUND_1B(K2)
- AESE_ROUND_1B(K3)
- AESE_ROUND_1B(K4)
- AESE_ROUND_1B(K5)
- AESE_ROUND_1B(K6)
- AESE_ROUND_1B(K7)
- AESE_ROUND_1B(K8)
- AESE_LAST_ROUND_1B(K9,K10)
+ AESE_ROUND_1B(S0,K0)
+ AESE_ROUND_1B(S0,K1)
+ AESE_ROUND_1B(S0,K2)
+ AESE_ROUND_1B(S0,K3)
+ AESE_ROUND_1B(S0,K4)
+ AESE_ROUND_1B(S0,K5)
+ AESE_ROUND_1B(S0,K6)
+ AESE_ROUND_1B(S0,K7)
+ AESE_ROUND_1B(S0,K8)
+ AESE_LAST_ROUND_1B(S0,K9,K10)
st1 {S0.16b},[DST],#16
diff --git a/arm64/crypto/aes192-decrypt.asm b/arm64/crypto/aes192-decrypt.asm
index 8d6bca79..87a4ca73 100644
--- a/arm64/crypto/aes192-decrypt.asm
+++ b/arm64/crypto/aes192-decrypt.asm
@@ -59,46 +59,6 @@ define(`K10', `v26')
define(`K11', `v27')
define(`K12', `v28')
-C AES decryption round of 4-blocks
-C AESD_ROUND_4B(KEY)
-define(`AESD_ROUND_4B', m4_assert_numargs(1)`
- aesd S0.16b,$1.16b
- aesimc S0.16b,S0.16b
- aesd S1.16b,$1.16b
- aesimc S1.16b,S1.16b
- aesd S2.16b,$1.16b
- aesimc S2.16b,S2.16b
- aesd S3.16b,$1.16b
- aesimc S3.16b,S3.16b
-')
-
-C AES last decryption round of 4-blocks
-C AESD_LAST_ROUND_4B(KEY)
-define(`AESD_LAST_ROUND_4B', m4_assert_numargs(2)`
- aesd S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
- aesd S1.16b,$1.16b
- eor S1.16b,S1.16b,$2.16b
- aesd S2.16b,$1.16b
- eor S2.16b,S2.16b,$2.16b
- aesd S3.16b,$1.16b
- eor S3.16b,S3.16b,$2.16b
-')
-
-C AES decryption round of 1-block
-C AESD_ROUND_1B(KEY)
-define(`AESD_ROUND_1B', m4_assert_numargs(1)`
- aesd S0.16b,$1.16b
- aesimc S0.16b,S0.16b
-')
-
-C AES last decryption round of 1-block
-C AESD_LAST_ROUND_1B(KEY)
-define(`AESD_LAST_ROUND_1B', m4_assert_numargs(2)`
- aesd S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
-')
-
C void
C aes192_decrypt(const struct aes192_ctx *ctx,
C size_t length, uint8_t *dst,
@@ -117,18 +77,18 @@ PROLOGUE(nettle_aes192_decrypt)
L4B_loop:
ld1 {S0.16b,S1.16b,S2.16b,S3.16b},[SRC],#64
- AESD_ROUND_4B(K0)
- AESD_ROUND_4B(K1)
- AESD_ROUND_4B(K2)
- AESD_ROUND_4B(K3)
- AESD_ROUND_4B(K4)
- AESD_ROUND_4B(K5)
- AESD_ROUND_4B(K6)
- AESD_ROUND_4B(K7)
- AESD_ROUND_4B(K8)
- AESD_ROUND_4B(K9)
- AESD_ROUND_4B(K10)
- AESD_LAST_ROUND_4B(K11,K12)
+ 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_LAST_ROUND_4B(S0,S1,S2,S3,K11,K12)
st1 {S0.16b,S1.16b,S2.16b,S3.16b},[DST],#64
@@ -148,18 +108,18 @@ L1B:
L1B_loop:
ld1 {S0.16b},[SRC],#16
- AESD_ROUND_1B(K0)
- AESD_ROUND_1B(K1)
- AESD_ROUND_1B(K2)
- AESD_ROUND_1B(K3)
- AESD_ROUND_1B(K4)
- AESD_ROUND_1B(K5)
- AESD_ROUND_1B(K6)
- AESD_ROUND_1B(K7)
- AESD_ROUND_1B(K8)
- AESD_ROUND_1B(K9)
- AESD_ROUND_1B(K10)
- AESD_LAST_ROUND_1B(K11,K12)
+ 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_LAST_ROUND_1B(S0,K11,K12)
st1 {S0.16b},[DST],#16
diff --git a/arm64/crypto/aes192-encrypt.asm b/arm64/crypto/aes192-encrypt.asm
index 5a71786d..ad6be9b5 100644
--- a/arm64/crypto/aes192-encrypt.asm
+++ b/arm64/crypto/aes192-encrypt.asm
@@ -59,46 +59,6 @@ define(`K10', `v26')
define(`K11', `v27')
define(`K12', `v28')
-C AES encryption round of 4-blocks
-C AESE_ROUND_4B(KEY)
-define(`AESE_ROUND_4B', m4_assert_numargs(1)`
- aese S0.16b,$1.16b
- aesmc S0.16b,S0.16b
- aese S1.16b,$1.16b
- aesmc S1.16b,S1.16b
- aese S2.16b,$1.16b
- aesmc S2.16b,S2.16b
- aese S3.16b,$1.16b
- aesmc S3.16b,S3.16b
-')
-
-C AES last encryption round of 4-blocks
-C AESE_LAST_ROUND_4B(KEY)
-define(`AESE_LAST_ROUND_4B', m4_assert_numargs(2)`
- aese S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
- aese S1.16b,$1.16b
- eor S1.16b,S1.16b,$2.16b
- aese S2.16b,$1.16b
- eor S2.16b,S2.16b,$2.16b
- aese S3.16b,$1.16b
- eor S3.16b,S3.16b,$2.16b
-')
-
-C AES encryption round of 1-block
-C AESE_ROUND_1B(KEY)
-define(`AESE_ROUND_1B', m4_assert_numargs(1)`
- aese S0.16b,$1.16b
- aesmc S0.16b,S0.16b
-')
-
-C AES last encryption round of 1-block
-C AESE_LAST_ROUND_1B(KEY)
-define(`AESE_LAST_ROUND_1B', m4_assert_numargs(2)`
- aese S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
-')
-
C void
C aes192_encrypt(const struct aes192_ctx *ctx,
C size_t length, uint8_t *dst,
@@ -117,18 +77,18 @@ PROLOGUE(nettle_aes192_encrypt)
L4B_loop:
ld1 {S0.16b,S1.16b,S2.16b,S3.16b},[SRC],#64
- AESE_ROUND_4B(K0)
- AESE_ROUND_4B(K1)
- AESE_ROUND_4B(K2)
- AESE_ROUND_4B(K3)
- AESE_ROUND_4B(K4)
- AESE_ROUND_4B(K5)
- AESE_ROUND_4B(K6)
- AESE_ROUND_4B(K7)
- AESE_ROUND_4B(K8)
- AESE_ROUND_4B(K9)
- AESE_ROUND_4B(K10)
- AESE_LAST_ROUND_4B(K11,K12)
+ AESE_ROUND_4B(S0,S1,S2,S3,K0)
+ AESE_ROUND_4B(S0,S1,S2,S3,K1)
+ AESE_ROUND_4B(S0,S1,S2,S3,K2)
+ AESE_ROUND_4B(S0,S1,S2,S3,K3)
+ AESE_ROUND_4B(S0,S1,S2,S3,K4)
+ AESE_ROUND_4B(S0,S1,S2,S3,K5)
+ AESE_ROUND_4B(S0,S1,S2,S3,K6)
+ AESE_ROUND_4B(S0,S1,S2,S3,K7)
+ AESE_ROUND_4B(S0,S1,S2,S3,K8)
+ AESE_ROUND_4B(S0,S1,S2,S3,K9)
+ AESE_ROUND_4B(S0,S1,S2,S3,K10)
+ AESE_LAST_ROUND_4B(S0,S1,S2,S3,K11,K12)
st1 {S0.16b,S1.16b,S2.16b,S3.16b},[DST],#64
@@ -148,18 +108,18 @@ L1B:
L1B_loop:
ld1 {S0.16b},[SRC],#16
- AESE_ROUND_1B(K0)
- AESE_ROUND_1B(K1)
- AESE_ROUND_1B(K2)
- AESE_ROUND_1B(K3)
- AESE_ROUND_1B(K4)
- AESE_ROUND_1B(K5)
- AESE_ROUND_1B(K6)
- AESE_ROUND_1B(K7)
- AESE_ROUND_1B(K8)
- AESE_ROUND_1B(K9)
- AESE_ROUND_1B(K10)
- AESE_LAST_ROUND_1B(K11,K12)
+ AESE_ROUND_1B(S0,K0)
+ AESE_ROUND_1B(S0,K1)
+ AESE_ROUND_1B(S0,K2)
+ AESE_ROUND_1B(S0,K3)
+ AESE_ROUND_1B(S0,K4)
+ AESE_ROUND_1B(S0,K5)
+ AESE_ROUND_1B(S0,K6)
+ AESE_ROUND_1B(S0,K7)
+ AESE_ROUND_1B(S0,K8)
+ AESE_ROUND_1B(S0,K9)
+ AESE_ROUND_1B(S0,K10)
+ AESE_LAST_ROUND_1B(S0,K11,K12)
st1 {S0.16b},[DST],#16
diff --git a/arm64/crypto/aes256-decrypt.asm b/arm64/crypto/aes256-decrypt.asm
index 6191d7b6..758bb143 100644
--- a/arm64/crypto/aes256-decrypt.asm
+++ b/arm64/crypto/aes256-decrypt.asm
@@ -61,46 +61,6 @@ define(`K12', `v28')
define(`K13', `v29')
define(`K14', `v30')
-C AES decryption round of 4-blocks
-C AESD_ROUND_4B(KEY)
-define(`AESD_ROUND_4B', m4_assert_numargs(1)`
- aesd S0.16b,$1.16b
- aesimc S0.16b,S0.16b
- aesd S1.16b,$1.16b
- aesimc S1.16b,S1.16b
- aesd S2.16b,$1.16b
- aesimc S2.16b,S2.16b
- aesd S3.16b,$1.16b
- aesimc S3.16b,S3.16b
-')
-
-C AES last decryption round of 4-blocks
-C AESD_LAST_ROUND_4B(KEY)
-define(`AESD_LAST_ROUND_4B', m4_assert_numargs(2)`
- aesd S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
- aesd S1.16b,$1.16b
- eor S1.16b,S1.16b,$2.16b
- aesd S2.16b,$1.16b
- eor S2.16b,S2.16b,$2.16b
- aesd S3.16b,$1.16b
- eor S3.16b,S3.16b,$2.16b
-')
-
-C AES decryption round of 1-block
-C AESD_ROUND_1B(KEY)
-define(`AESD_ROUND_1B', m4_assert_numargs(1)`
- aesd S0.16b,$1.16b
- aesimc S0.16b,S0.16b
-')
-
-C AES last decryption round of 1-block
-C AESD_LAST_ROUND_1B(KEY)
-define(`AESD_LAST_ROUND_1B', m4_assert_numargs(2)`
- aesd S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
-')
-
C void
C aes256_decrypt(const struct aes256_ctx *ctx,
C size_t length, uint8_t *dst,
@@ -119,20 +79,20 @@ PROLOGUE(nettle_aes256_decrypt)
L4B_loop:
ld1 {S0.16b,S1.16b,S2.16b,S3.16b},[SRC],#64
- AESD_ROUND_4B(K0)
- AESD_ROUND_4B(K1)
- AESD_ROUND_4B(K2)
- AESD_ROUND_4B(K3)
- AESD_ROUND_4B(K4)
- AESD_ROUND_4B(K5)
- AESD_ROUND_4B(K6)
- AESD_ROUND_4B(K7)
- AESD_ROUND_4B(K8)
- AESD_ROUND_4B(K9)
- AESD_ROUND_4B(K10)
- AESD_ROUND_4B(K11)
- AESD_ROUND_4B(K12)
- AESD_LAST_ROUND_4B(K13,K14)
+ 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,K12)
+ AESD_LAST_ROUND_4B(S0,S1,S2,S3,K13,K14)
st1 {S0.16b,S1.16b,S2.16b,S3.16b},[DST],#64
@@ -152,20 +112,20 @@ L1B:
L1B_loop:
ld1 {S0.16b},[SRC],#16
- AESD_ROUND_1B(K0)
- AESD_ROUND_1B(K1)
- AESD_ROUND_1B(K2)
- AESD_ROUND_1B(K3)
- AESD_ROUND_1B(K4)
- AESD_ROUND_1B(K5)
- AESD_ROUND_1B(K6)
- AESD_ROUND_1B(K7)
- AESD_ROUND_1B(K8)
- AESD_ROUND_1B(K9)
- AESD_ROUND_1B(K10)
- AESD_ROUND_1B(K11)
- AESD_ROUND_1B(K12)
- AESD_LAST_ROUND_1B(K13,K14)
+ 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,K12)
+ AESD_LAST_ROUND_1B(S0,K13,K14)
st1 {S0.16b},[DST],#16
diff --git a/arm64/crypto/aes256-encrypt.asm b/arm64/crypto/aes256-encrypt.asm
index 4a53c0c1..c02cb679 100644
--- a/arm64/crypto/aes256-encrypt.asm
+++ b/arm64/crypto/aes256-encrypt.asm
@@ -61,46 +61,6 @@ define(`K12', `v28')
define(`K13', `v29')
define(`K14', `v30')
-C AES encryption round of 4-blocks
-C AESE_ROUND_4B(KEY)
-define(`AESE_ROUND_4B', m4_assert_numargs(1)`
- aese S0.16b,$1.16b
- aesmc S0.16b,S0.16b
- aese S1.16b,$1.16b
- aesmc S1.16b,S1.16b
- aese S2.16b,$1.16b
- aesmc S2.16b,S2.16b
- aese S3.16b,$1.16b
- aesmc S3.16b,S3.16b
-')
-
-C AES last encryption round of 4-blocks
-C AESE_LAST_ROUND_4B(KEY)
-define(`AESE_LAST_ROUND_4B', m4_assert_numargs(2)`
- aese S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
- aese S1.16b,$1.16b
- eor S1.16b,S1.16b,$2.16b
- aese S2.16b,$1.16b
- eor S2.16b,S2.16b,$2.16b
- aese S3.16b,$1.16b
- eor S3.16b,S3.16b,$2.16b
-')
-
-C AES encryption round of 1-block
-C AESE_ROUND_1B(KEY)
-define(`AESE_ROUND_1B', m4_assert_numargs(1)`
- aese S0.16b,$1.16b
- aesmc S0.16b,S0.16b
-')
-
-C AES last encryption round of 1-block
-C AESE_LAST_ROUND_1B(KEY)
-define(`AESE_LAST_ROUND_1B', m4_assert_numargs(2)`
- aese S0.16b,$1.16b
- eor S0.16b,S0.16b,$2.16b
-')
-
C void
C aes256_encrypt(const struct aes256_ctx *ctx,
C size_t length, uint8_t *dst,
@@ -119,20 +79,20 @@ PROLOGUE(nettle_aes256_encrypt)
L4B_loop:
ld1 {S0.16b,S1.16b,S2.16b,S3.16b},[SRC],#64
- AESE_ROUND_4B(K0)
- AESE_ROUND_4B(K1)
- AESE_ROUND_4B(K2)
- AESE_ROUND_4B(K3)
- AESE_ROUND_4B(K4)
- AESE_ROUND_4B(K5)
- AESE_ROUND_4B(K6)
- AESE_ROUND_4B(K7)
- AESE_ROUND_4B(K8)
- AESE_ROUND_4B(K9)
- AESE_ROUND_4B(K10)
- AESE_ROUND_4B(K11)
- AESE_ROUND_4B(K12)
- AESE_LAST_ROUND_4B(K13,K14)
+ AESE_ROUND_4B(S0,S1,S2,S3,K0)
+ AESE_ROUND_4B(S0,S1,S2,S3,K1)
+ AESE_ROUND_4B(S0,S1,S2,S3,K2)
+ AESE_ROUND_4B(S0,S1,S2,S3,K3)
+ AESE_ROUND_4B(S0,S1,S2,S3,K4)
+ AESE_ROUND_4B(S0,S1,S2,S3,K5)
+ AESE_ROUND_4B(S0,S1,S2,S3,K6)
+ AESE_ROUND_4B(S0,S1,S2,S3,K7)
+ AESE_ROUND_4B(S0,S1,S2,S3,K8)
+ AESE_ROUND_4B(S0,S1,S2,S3,K9)
+ AESE_ROUND_4B(S0,S1,S2,S3,K10)
+ AESE_ROUND_4B(S0,S1,S2,S3,K11)
+ AESE_ROUND_4B(S0,S1,S2,S3,K12)
+ AESE_LAST_ROUND_4B(S0,S1,S2,S3,K13,K14)
st1 {S0.16b,S1.16b,S2.16b,S3.16b},[DST],#64
@@ -152,20 +112,20 @@ L1B:
L1B_loop:
ld1 {S0.16b},[SRC],#16
- AESE_ROUND_1B(K0)
- AESE_ROUND_1B(K1)
- AESE_ROUND_1B(K2)
- AESE_ROUND_1B(K3)
- AESE_ROUND_1B(K4)
- AESE_ROUND_1B(K5)
- AESE_ROUND_1B(K6)
- AESE_ROUND_1B(K7)
- AESE_ROUND_1B(K8)
- AESE_ROUND_1B(K9)
- AESE_ROUND_1B(K10)
- AESE_ROUND_1B(K11)
- AESE_ROUND_1B(K12)
- AESE_LAST_ROUND_1B(K13,K14)
+ AESE_ROUND_1B(S0,K0)
+ AESE_ROUND_1B(S0,K1)
+ AESE_ROUND_1B(S0,K2)
+ AESE_ROUND_1B(S0,K3)
+ AESE_ROUND_1B(S0,K4)
+ AESE_ROUND_1B(S0,K5)
+ AESE_ROUND_1B(S0,K6)
+ AESE_ROUND_1B(S0,K7)
+ AESE_ROUND_1B(S0,K8)
+ AESE_ROUND_1B(S0,K9)
+ AESE_ROUND_1B(S0,K10)
+ AESE_ROUND_1B(S0,K11)
+ AESE_ROUND_1B(S0,K12)
+ AESE_LAST_ROUND_1B(S0,K13,K14)
st1 {S0.16b},[DST],#16