From ae4add868124a32d4e54da10f9cd99240aecc0aa Mon Sep 17 00:00:00 2001 From: Frank Denis Date: Sun, 4 Oct 2020 15:24:03 +0200 Subject: [PATCH 1/2] 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; From b3fafe1291aeac53ce3918b5d4f9a8408c1244be Mon Sep 17 00:00:00 2001 From: Tim Gates Date: Mon, 12 Oct 2020 20:37:24 +1100 Subject: [PATCH 2/2] docs: fix simple typo, interoperatibility -> interoperability (#1002) There is a small typo in src/libsodium/include/sodium/crypto_hash.h, src/libsodium/include/sodium/crypto_hash_sha256.h, src/libsodium/include/sodium/crypto_hash_sha512.h. Should read `interoperability` rather than `interoperatibility`. --- src/libsodium/include/sodium/crypto_hash.h | 2 +- src/libsodium/include/sodium/crypto_hash_sha256.h | 2 +- src/libsodium/include/sodium/crypto_hash_sha512.h | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/libsodium/include/sodium/crypto_hash.h b/src/libsodium/include/sodium/crypto_hash.h index 8752f9ca..767d5480 100644 --- a/src/libsodium/include/sodium/crypto_hash.h +++ b/src/libsodium/include/sodium/crypto_hash.h @@ -2,7 +2,7 @@ #define crypto_hash_H /* - * WARNING: Unless you absolutely need to use SHA512 for interoperatibility, + * WARNING: Unless you absolutely need to use SHA512 for interoperability, * purposes, you might want to consider crypto_generichash() instead. * Unlike SHA512, crypto_generichash() is not vulnerable to length * extension attacks. diff --git a/src/libsodium/include/sodium/crypto_hash_sha256.h b/src/libsodium/include/sodium/crypto_hash_sha256.h index b18217e1..c47982af 100644 --- a/src/libsodium/include/sodium/crypto_hash_sha256.h +++ b/src/libsodium/include/sodium/crypto_hash_sha256.h @@ -2,7 +2,7 @@ #define crypto_hash_sha256_H /* - * WARNING: Unless you absolutely need to use SHA256 for interoperatibility, + * WARNING: Unless you absolutely need to use SHA256 for interoperability, * purposes, you might want to consider crypto_generichash() instead. * Unlike SHA256, crypto_generichash() is not vulnerable to length * extension attacks. diff --git a/src/libsodium/include/sodium/crypto_hash_sha512.h b/src/libsodium/include/sodium/crypto_hash_sha512.h index 8efa7193..5b690fb2 100644 --- a/src/libsodium/include/sodium/crypto_hash_sha512.h +++ b/src/libsodium/include/sodium/crypto_hash_sha512.h @@ -2,7 +2,7 @@ #define crypto_hash_sha512_H /* - * WARNING: Unless you absolutely need to use SHA512 for interoperatibility, + * WARNING: Unless you absolutely need to use SHA512 for interoperability, * purposes, you might want to consider crypto_generichash() instead. * Unlike SHA512, crypto_generichash() is not vulnerable to length * extension attacks.