From d537f3010a4e8e4ab5afdbf782799c48d8f09272 Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Wed, 21 May 2025 23:11:26 +0200 Subject: [PATCH] Improve AES256-GCM performance on ARM --- .../aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c b/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c index f50eb6d7..8455f169 100644 --- a/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c +++ b/src/libsodium/crypto_aead/aes256gcm/armcrypto/aead_aes256gcm_armcrypto.c @@ -47,9 +47,9 @@ typedef uint64x2_t BlockVec; #define STORE128(a, b) vst1q_u64((uint64_t *) (void *) (a), (b)) #define AES_XENCRYPT(block_vec, rkey) \ vreinterpretq_u64_u8( \ - vaesmcq_u8(vaeseq_u8(vreinterpretq_u8_u64(block_vec), rkey))) + vaesmcq_u8(vaeseq_u8(rkey, vreinterpretq_u8_u64(block_vec)))) #define AES_XENCRYPTLAST(block_vec, rkey) \ - vreinterpretq_u64_u8(vaeseq_u8(vreinterpretq_u8_u64(block_vec), rkey)) + vreinterpretq_u64_u8(vaeseq_u8(rkey, vreinterpretq_u8_u64(block_vec))) #define XOR128(a, b) veorq_u64((a), (b)) #define AND128(a, b) vandq_u64((a), (b)) #define OR128(a, b) vorrq_u64((a), (b))