From b1048870420bef0294b495e4b88871aa4e3c78ee Mon Sep 17 00:00:00 2001 From: Sean Parkinson Date: Thu, 27 Feb 2025 09:25:13 +1000 Subject: [PATCH] SHA256: Intel flags has SHA but not AVX1 or AVX2 Reversal of bytes when IS_INTEL_SHA only is same as when AVX1 or AVX2. --- wolfcrypt/src/sha256.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/wolfcrypt/src/sha256.c b/wolfcrypt/src/sha256.c index 93b6afc54..31a557c8d 100644 --- a/wolfcrypt/src/sha256.c +++ b/wolfcrypt/src/sha256.c @@ -209,7 +209,8 @@ on the specific device platform. #define SHA256_UPDATE_REV_BYTES(ctx) (sha256->sha_method == SHA256_C) #else #define SHA256_UPDATE_REV_BYTES(ctx) \ - (!IS_INTEL_AVX1(intel_flags) && !IS_INTEL_AVX2(intel_flags)) + (!IS_INTEL_AVX1(intel_flags) && !IS_INTEL_AVX2(intel_flags) && \ + !IS_INTEL_SHA(intel_flags)) #endif #elif defined(FREESCALE_MMCAU_SHA) #define SHA256_UPDATE_REV_BYTES(ctx) 0 /* reverse not needed on update */ @@ -1652,7 +1653,8 @@ static int InitSha256(wc_Sha256* sha256) #ifdef WC_C_DYNAMIC_FALLBACK if (sha256->sha_method != SHA256_C) #else - if (IS_INTEL_AVX1(intel_flags) || IS_INTEL_AVX2(intel_flags)) + if (IS_INTEL_AVX1(intel_flags) || IS_INTEL_AVX2(intel_flags) || + IS_INTEL_SHA(intel_flags)) #endif #endif {