| From 577ae0352d191fa604f861ea2f0847e7c5eda617 Mon Sep 17 00:00:00 2001 |
| From: Frank Denis <github@pureftpd.org> |
| Date: Wed, 1 Jul 2020 22:51:43 +0200 |
| Subject: [PATCH] Add support for Apple silicon |
| |
| [Retrieved from: |
| https://github.com/angt/aegis256/commit/577ae0352d191fa604f861ea2f0847e7c5eda617] |
| Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com> |
| --- |
| aegis256.c | 8 +++++++- |
| 1 file changed, 7 insertions(+), 1 deletion(-) |
| |
| diff --git a/mud/aegis256/aegis256.c b/mud/aegis256/aegis256.c |
| index 9a580bf..75a772c 100644 |
| --- a/mud/aegis256/aegis256.c |
| +++ b/mud/aegis256/aegis256.c |
| @@ -36,7 +36,7 @@ typedef __m128i x128; |
| #define store128(X,Y) _mm_storeu_si128((x128 *)(X), (Y)) |
| #define set2x64(X,Y) _mm_set_epi64x((long long)(X), (long long)(Y)) |
| |
| -#elif defined(__linux__) && (defined(__ARM_NEON_FP) || defined(__aarch64__)) |
| +#elif (defined(__APPLE__) || defined(__linux__)) && (defined(__ARM_NEON_FP) || defined(__aarch64__)) |
| |
| #ifdef __clang__ |
| #pragma clang attribute push (__attribute__((target("crypto"))),apply_to=function) |
| @@ -48,7 +48,9 @@ typedef __m128i x128; |
| #endif |
| |
| #ifdef __ARM_FEATURE_CRYPTO |
| +#ifdef __linux__ |
| #include <sys/auxv.h> |
| +#endif |
| #include <arm_neon.h> |
| |
| typedef uint8x16_t x128; |
| @@ -62,11 +64,15 @@ typedef uint8x16_t x128; |
| int |
| aegis256_is_available(void) |
| { |
| +#ifdef __linux__ |
| return (getauxval(AT_HWCAP) & HWCAP_AES) |
| #ifdef HWCAP2_AES |
| || (getauxval(AT_HWCAP2) & HWCAP2_AES) |
| #endif |
| ; |
| +#else // __APPLE__ |
| + return 1; |
| +#endif |
| } |
| |
| #endif // __ARM_FEATURE_CRYPTO |