fixes for armasm:

configure.ac: set DEFAULT_ENABLED_ALL_ASM=no if FIPS <v6 and not on amd64 (i.e. if ARM);

tests/api/test_sha256.c: skip test_wc_Sha256_Flags() and test_wc_Sha224_Flags() if armasm and FIPS <v7;

wolfssl/wolfcrypt/settings.h: define WOLFSSL_SP_INT_DIGIT_ALIGN for ARM (needed on BE, and no effect on LE).
This commit is contained in:
Daniel Pouzzner
2025-05-15 21:20:10 -05:00
parent 8a8a2b5bb1
commit 77bebff341
3 changed files with 19 additions and 7 deletions

View File

@@ -1174,6 +1174,15 @@ else
DEFAULT_ENABLED_ALL_ASM=no DEFAULT_ENABLED_ALL_ASM=no
fi fi
if test "$ENABLED_FIPS" = "yes" && test "$HAVE_FIPS_VERSION" -lt 6
then
case "$host_cpu" in
*x86_64*|*amd64*) ;;
*) DEFAULT_ENABLED_ALL_ASM=no
;;
esac
fi
AC_ARG_ENABLE([all-asm], AC_ARG_ENABLE([all-asm],
[AS_HELP_STRING([--enable-all-asm],[Enable all applicable assembly accelerations (default: disabled)])], [AS_HELP_STRING([--enable-all-asm],[Enable all applicable assembly accelerations (default: disabled)])],
[ ENABLED_ALL_ASM=$enableval ], [ ENABLED_ALL_ASM=$enableval ],

View File

@@ -217,7 +217,8 @@ int test_wc_Sha256Transform(void)
int test_wc_Sha256_Flags(void) int test_wc_Sha256_Flags(void)
{ {
EXPECT_DECLS; EXPECT_DECLS;
#if !defined(NO_SHA256) && defined(WOLFSSL_HASH_FLAGS) #if !defined(NO_SHA256) && defined(WOLFSSL_HASH_FLAGS) && \
(!defined(WOLFSSL_ARMASM) || !defined(HAVE_FIPS) || FIPS_VERSION3_GE(7,0,0))
DIGEST_FLAGS_TEST(wc_Sha256, Sha256); DIGEST_FLAGS_TEST(wc_Sha256, Sha256);
#endif #endif
return EXPECT_RESULT(); return EXPECT_RESULT();
@@ -363,7 +364,8 @@ int test_wc_Sha224GetHash(void)
int test_wc_Sha224_Flags(void) int test_wc_Sha224_Flags(void)
{ {
EXPECT_DECLS; EXPECT_DECLS;
#if defined(WOLFSSL_SHA224) && defined(WOLFSSL_HASH_FLAGS) #if defined(WOLFSSL_SHA224) && defined(WOLFSSL_HASH_FLAGS) && \
(!defined(WOLFSSL_ARMASM) || !defined(HAVE_FIPS) || FIPS_VERSION3_GE(7,0,0))
DIGEST_FLAGS_TEST(wc_Sha224, Sha224); DIGEST_FLAGS_TEST(wc_Sha224, Sha224);
#endif #endif
return EXPECT_RESULT(); return EXPECT_RESULT();

View File

@@ -2795,14 +2795,15 @@ extern void uITRON4_free(void *p) ;
#endif #endif
#if defined(__mips) || defined(__mips64) || \ #if defined(__mips) || defined(__mips64) || \
defined(WOLFSSL_SP_MIPS64) || defined(WOLFSSL_SP_MIPS) defined(WOLFSSL_SP_MIPS64) || defined(WOLFSSL_SP_MIPS) || \
#undef WOLFSSL_SP_INT_DIGIT_ALIGN defined(__sparc) || defined(__arm__) || defined(__aarch64__)
#define WOLFSSL_SP_INT_DIGIT_ALIGN /* This setting currently only affects big endian targets, currently
#endif * only in sp_read_unsigned_bin().
#if defined(__sparc) */
#undef WOLFSSL_SP_INT_DIGIT_ALIGN #undef WOLFSSL_SP_INT_DIGIT_ALIGN
#define WOLFSSL_SP_INT_DIGIT_ALIGN #define WOLFSSL_SP_INT_DIGIT_ALIGN
#endif #endif
#if defined(__APPLE__) || defined(WOLF_C89) #if defined(__APPLE__) || defined(WOLF_C89)
#define WOLFSSL_SP_NO_DYN_STACK #define WOLFSSL_SP_NO_DYN_STACK
#endif #endif