From c3277317db13bcefbdec59d49650c87bcb9c8ae0 Mon Sep 17 00:00:00 2001 From: Daniel Pouzzner Date: Thu, 23 Jul 2026 19:02:37 -0500 Subject: [PATCH] wolfcrypt/src/aes.c: implement WC_C_DYNAMIC_FALLBACK for AES-NI in wc_AesGcmInit(). --- wolfcrypt/src/aes.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/wolfcrypt/src/aes.c b/wolfcrypt/src/aes.c index 46a89a6ad8..729ae65af7 100644 --- a/wolfcrypt/src/aes.c +++ b/wolfcrypt/src/aes.c @@ -13992,9 +13992,19 @@ int wc_AesGcmInit(Aes* aes, const byte* key, word32 len, const byte* iv, #ifdef WOLFSSL_AESNI if (aes->use_aesni) { - SAVE_VECTOR_REGISTERS(return _svr_ret;); - ret = AesGcmInit_aesni(aes, iv, ivSz); - RESTORE_VECTOR_REGISTERS(); + ret = SAVE_VECTOR_REGISTERS2(); + if (ret == 0) { + ret = AesGcmInit_aesni(aes, iv, ivSz); + RESTORE_VECTOR_REGISTERS(); + } + else { +#ifdef WC_C_DYNAMIC_FALLBACK + aes->use_aesni = 0; + ret = AesGcmInit_C(aes, iv, ivSz); +#else + return ret; +#endif + } } else #elif defined(__aarch64__) && defined(WOLFSSL_ARMASM) && \