From 41aae56ab8bb6963fd7b25a1e93544a42d80f5a7 Mon Sep 17 00:00:00 2001 From: Sean Parkinson Date: Thu, 9 Apr 2026 21:52:14 +1000 Subject: [PATCH] ARM ASM: AES-GCM small table without NEON Non-neon GCM_gmult_len requires M0 which is not available with a small build. Fix to have C implementation when M0 and NEON not available. --- wolfcrypt/src/aes.c | 14 +++----------- 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/wolfcrypt/src/aes.c b/wolfcrypt/src/aes.c index 41b01031c4..afdd9bcaa4 100644 --- a/wolfcrypt/src/aes.c +++ b/wolfcrypt/src/aes.c @@ -7954,8 +7954,8 @@ void GHASH(Gcm* gcm, const byte* a, word32 aSz, const byte* c, while (0) #endif /* WOLFSSL_AESGCM_STREAM */ -#if defined(WOLFSSL_ARMASM) && !defined(__aarch64__) && \ - !defined(WOLFSSL_ARMASM_NO_HW_CRYPTO) +#if defined(WOLFSSL_ARMASM) && (!defined(__aarch64__) || \ + defined(WOLFSSL_ARMASM_NO_NEON)) static void GCM_gmult_len_armasm_C( byte* x, const byte* h, const unsigned char* a, unsigned long len) { @@ -7986,17 +7986,9 @@ static void GCM_gmult_len_armasm_C( #define GCM_GMULT_LEN(gcm, x, a, len) \ GCM_gmult_len_armasm_C(x, (gcm)->H, a, len) -#endif /* WOLFSSL_ARMASM && !__aarch64__ && !WOLFSSL_ARMASM_NO_HW_CRYPTO */ - -#if defined(WOLFSSL_ARMASM) && (defined(__aarch64__) || \ - defined(WOLFSSL_ARMASM_NO_HW_CRYPTO)) -#if !defined(WOLFSSL_ARMASM_NO_NEON) && defined(__aarch64__) +#elif defined(WOLFSSL_ARMASM) #define GCM_GMULT_LEN(gcm, x, a, len) \ GCM_gmult_len_NEON(x, (const byte*)((gcm)->H), a, len) -#else -#define GCM_GMULT_LEN(gcm, x, a, len) \ - GCM_gmult_len(x, (const byte**)((gcm)->M0), a, len) -#endif #endif #elif defined(GCM_TABLE)