From aeb44c53520f802f585d01ed10620b1b2a6e87ef Mon Sep 17 00:00:00 2001 From: Sean Parkinson Date: Fri, 16 Oct 2020 12:32:02 +1000 Subject: [PATCH] FIPS ARMASM: get build working --- configure.ac | 1 + src/include.am | 20 +++++++++++++++++++- wolfcrypt/src/port/arm/armv8-aes.c | 4 ++++ wolfcrypt/src/port/arm/armv8-sha256.c | 4 ++++ wolfcrypt/src/port/arm/armv8-sha512.c | 4 ++++ 5 files changed, 32 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac index a022b86ae..7a90c1891 100644 --- a/configure.ac +++ b/configure.ac @@ -5696,6 +5696,7 @@ AM_CONDITIONAL([BUILD_FIPS],[test "x$ENABLED_FIPS" = "xyes"]) AM_CONDITIONAL([BUILD_FIPS_V1],[test "x$FIPS_VERSION" = "xv1"]) AM_CONDITIONAL([BUILD_FIPS_V2],[test "x$FIPS_VERSION" = "xv2"]) AM_CONDITIONAL([BUILD_FIPS_RAND],[test "x$FIPS_VERSION" = "xrand"]) +AM_CONDITIONAL([BUILD_FIPS_READY],[test "x$FIPS_READY" = "xyes"]) AM_CONDITIONAL([BUILD_CMAC],[test "x$ENABLED_CMAC" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"]) AM_CONDITIONAL([BUILD_SELFTEST],[test "x$ENABLED_SELFTEST" = "xyes"]) AM_CONDITIONAL([BUILD_SHA224],[test "x$ENABLED_SHA224" = "xyes" || test "x$ENABLED_USERSETTINGS" = "xyes"]) diff --git a/src/include.am b/src/include.am index c03d04b93..20cca68ef 100644 --- a/src/include.am +++ b/src/include.am @@ -83,6 +83,11 @@ endif if BUILD_AES src_libwolfssl_la_SOURCES += wolfcrypt/src/aes.c +if BUILD_ARMASM +if BUILD_FIPS_READY +src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-aes.c +endif +endif endif if BUILD_AESNI @@ -98,13 +103,26 @@ endif if BUILD_SHA src_libwolfssl_la_SOURCES += wolfcrypt/src/sha.c +endif + +if BUILD_ARMASM +if BUILD_FIPS_READY +src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha256.c +endif +endif if BUILD_INTELASM src_libwolfssl_la_SOURCES += wolfcrypt/src/sha256_asm.S endif -endif if BUILD_SHA512 src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512.c +if BUILD_ARMASM +if BUILD_FIPS_READY +src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512.c +src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-sha512-asm.S +src_libwolfssl_la_SOURCES += wolfcrypt/src/port/arm/armv8-32-sha512-asm.S +endif +endif if BUILD_INTELASM src_libwolfssl_la_SOURCES += wolfcrypt/src/sha512_asm.S endif diff --git a/wolfcrypt/src/port/arm/armv8-aes.c b/wolfcrypt/src/port/arm/armv8-aes.c index 8c3796e18..021ee7963 100644 --- a/wolfcrypt/src/port/arm/armv8-aes.c +++ b/wolfcrypt/src/port/arm/armv8-aes.c @@ -34,6 +34,10 @@ #if !defined(NO_AES) && defined(WOLFSSL_ARMASM) +#ifdef HAVE_FIPS +#undef HAVE_FIPS +#endif + #include #include #include diff --git a/wolfcrypt/src/port/arm/armv8-sha256.c b/wolfcrypt/src/port/arm/armv8-sha256.c index cae12dd6a..264c8e8ed 100644 --- a/wolfcrypt/src/port/arm/armv8-sha256.c +++ b/wolfcrypt/src/port/arm/armv8-sha256.c @@ -29,6 +29,10 @@ #ifdef WOLFSSL_ARMASM #if !defined(NO_SHA256) || defined(WOLFSSL_SHA224) +#ifdef HAVE_FIPS +#undef HAVE_FIPS +#endif + #include #include #include diff --git a/wolfcrypt/src/port/arm/armv8-sha512.c b/wolfcrypt/src/port/arm/armv8-sha512.c index e909c7c25..83008d924 100644 --- a/wolfcrypt/src/port/arm/armv8-sha512.c +++ b/wolfcrypt/src/port/arm/armv8-sha512.c @@ -28,6 +28,10 @@ #ifdef WOLFSSL_ARMASM #if defined(WOLFSSL_SHA512) || defined(WOLFSSL_SHA384) +#ifdef HAVE_FIPS +#undef HAVE_FIPS +#endif + #include #include #include