From 8b67c22b057e158f61c9fdd5b01f37195c6f5ca4 Mon Sep 17 00:00:00 2001 From: Alexander Kanavin Date: Wed, 18 Dec 2019 12:29:50 +0100 Subject: [PATCH] freebl: add a configure option to disable ARM HW crypto Not all current hardware supports it, particularly anything prior to armv8 does not. Upstream-Status: Pending Signed-off-by: Alexander Kanavin --- nss/lib/freebl/Makefile | 3 +++ nss/lib/freebl/gcm.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile index fe8c526..922f67c 100644 --- a/nss/lib/freebl/Makefile +++ b/nss/lib/freebl/Makefile @@ -125,6 +125,8 @@ else DEFINES += -DNSS_X86 endif endif +ifdef NSS_USE_ARM_HW_CRYPTO + DEFINES += -DNSS_USE_ARM_HW_CRYPTO ifeq ($(CPU_ARCH),aarch64) ifdef CC_IS_CLANG DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 @@ -166,6 +168,7 @@ endif endif endif endif +endif ifeq ($(OS_TARGET),OSF1) DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD diff --git a/nss/lib/freebl/gcm.c b/nss/lib/freebl/gcm.c index c2cc18d..b77f573 100644 --- a/nss/lib/freebl/gcm.c +++ b/nss/lib/freebl/gcm.c @@ -18,6 +18,7 @@ #include +#ifdef NSS_USE_ARM_HW_CRYPTO /* old gcc doesn't support some poly64x2_t intrinsic */ #if defined(__aarch64__) && defined(IS_LITTLE_ENDIAN) && \ (defined(__clang__) || defined(__GNUC__) && __GNUC__ > 6) @@ -27,6 +28,7 @@ /* We don't test on big endian platform, so disable this on big endian. */ #define USE_ARM_GCM #endif +#endif /* Forward declarations */ SECStatus gcm_HashInit_hw(gcmHashContext *ghash);