From ae4add868124a32d4e54da10f9cd99240aecc0aa Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Sun, 4 Oct 2020 15:24:03 +0200 Subject: [PATCH] Repair AEGIS on aarch64 fixes #999 --- .../aegis128l/armcrypto/aead_aegis128l_armcrypto.c | 6 +++--- .../aegis256/armcrypto/aead_aegis256_armcrypto.c | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/libsodium/crypto_aead/aegis128l/armcrypto/aead_aegis128l_armcrypto.c b/src/libsodium/crypto_aead/aegis128l/armcrypto/aead_aegis128l_armcrypto.c index 4de148b2..7c31a4f7 100644 --- a/src/libsodium/crypto_aead/aegis128l/armcrypto/aead_aegis128l_armcrypto.c +++ b/src/libsodium/crypto_aead/aegis128l/armcrypto/aead_aegis128l_armcrypto.c @@ -63,9 +63,9 @@ crypto_aead_aegis128l_init(const unsigned char *key, const unsigned char *nonce, state[2] = c2; state[3] = c1; state[4] = veorq_u8(k, n); - state[5] = veorq_u8(k1, c2); - state[6] = veorq_u8(k1, c1); - state[7] = veorq_u8(k1, c2); + state[5] = veorq_u8(k, c2); + state[6] = veorq_u8(k, c1); + state[7] = veorq_u8(k, c2); for (i = 0; i < 10; i++) { crypto_aead_aegis128l_update(state, n, k); } diff --git a/src/libsodium/crypto_aead/aegis256/armcrypto/aead_aegis256_armcrypto.c b/src/libsodium/crypto_aead/aegis256/armcrypto/aead_aegis256_armcrypto.c index 1763b677..325c1e0c 100644 --- a/src/libsodium/crypto_aead/aegis256/armcrypto/aead_aegis256_armcrypto.c +++ b/src/libsodium/crypto_aead/aegis256/armcrypto/aead_aegis256_armcrypto.c @@ -51,8 +51,8 @@ crypto_aead_aegis256_init(const unsigned char *key, const unsigned char *nonce, k1 = vld1q_u8(&key[0]); k2 = vld1q_u8(&key[16]); - kxn3 = veorq_u8(k1, vld1q_u8(&nonce[0])); - kxn4 = veorq_u8(k2, vld1q_u8(&nonce[16])); + kxn1 = veorq_u8(k1, vld1q_u8(&nonce[0])); + kxn2 = veorq_u8(k2, vld1q_u8(&nonce[16])); state[0] = kxn1; state[1] = kxn2;