1From 577ae0352d191fa604f861ea2f0847e7c5eda617 Mon Sep 17 00:00:00 2001 2From: Frank Denis <github@pureftpd.org> 3Date: Wed, 1 Jul 2020 22:51:43 +0200 4Subject: [PATCH] Add support for Apple silicon 5 6[Retrieved from: 7https://github.com/angt/aegis256/commit/577ae0352d191fa604f861ea2f0847e7c5eda617] 8Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> 9--- 10 aegis256.c | 8 +++++++- 11 1 file changed, 7 insertions(+), 1 deletion(-) 12 13diff --git a/mud/aegis256/aegis256.c b/mud/aegis256/aegis256.c 14index 9a580bf..75a772c 100644 15--- a/mud/aegis256/aegis256.c 16+++ b/mud/aegis256/aegis256.c 17@@ -36,7 +36,7 @@ typedef __m128i x128; 18 #define store128(X,Y) _mm_storeu_si128((x128 *)(X), (Y)) 19 #define set2x64(X,Y) _mm_set_epi64x((long long)(X), (long long)(Y)) 20 21-#elif defined(__linux__) && (defined(__ARM_NEON_FP) || defined(__aarch64__)) 22+#elif (defined(__APPLE__) || defined(__linux__)) && (defined(__ARM_NEON_FP) || defined(__aarch64__)) 23 24 #ifdef __clang__ 25 #pragma clang attribute push (__attribute__((target("crypto"))),apply_to=function) 26@@ -48,7 +48,9 @@ typedef __m128i x128; 27 #endif 28 29 #ifdef __ARM_FEATURE_CRYPTO 30+#ifdef __linux__ 31 #include <sys/auxv.h> 32+#endif 33 #include <arm_neon.h> 34 35 typedef uint8x16_t x128; 36@@ -62,11 +64,15 @@ typedef uint8x16_t x128; 37 int 38 aegis256_is_available(void) 39 { 40+#ifdef __linux__ 41 return (getauxval(AT_HWCAP) & HWCAP_AES) 42 #ifdef HWCAP2_AES 43 || (getauxval(AT_HWCAP2) & HWCAP2_AES) 44 #endif 45 ; 46+#else // __APPLE__ 47+ return 1; 48+#endif 49 } 50 51 #endif // __ARM_FEATURE_CRYPTO 52