Andrew Geissler | 748a483 | 2020-07-24 16:24:21 -0500 | [diff] [blame] | 1 | From 8b67c22b057e158f61c9fdd5b01f37195c6f5ca4 Mon Sep 17 00:00:00 2001 |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 2 | From: Alexander Kanavin <alex.kanavin@gmail.com> |
| 3 | Date: Wed, 18 Dec 2019 12:29:50 +0100 |
| 4 | Subject: [PATCH] freebl: add a configure option to disable ARM HW crypto |
| 5 | |
| 6 | Not all current hardware supports it, particularly anything |
| 7 | prior to armv8 does not. |
| 8 | |
| 9 | Upstream-Status: Pending |
| 10 | Signed-off-by: Alexander Kanavin <alex.kanavin@gmail.com> |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 11 | |
Andrew Geissler | 748a483 | 2020-07-24 16:24:21 -0500 | [diff] [blame] | 12 | --- |
Andrew Geissler | bbbd5f4 | 2020-10-30 15:42:48 -0500 | [diff] [blame^] | 13 | nss/lib/freebl/Makefile | 3 +++ |
Andrew Geissler | 748a483 | 2020-07-24 16:24:21 -0500 | [diff] [blame] | 14 | nss/lib/freebl/gcm.c | 2 ++ |
Andrew Geissler | bbbd5f4 | 2020-10-30 15:42:48 -0500 | [diff] [blame^] | 15 | 2 files changed, 5 insertions(+) |
Andrew Geissler | 748a483 | 2020-07-24 16:24:21 -0500 | [diff] [blame] | 16 | |
Andrew Geissler | bbbd5f4 | 2020-10-30 15:42:48 -0500 | [diff] [blame^] | 17 | diff --git a/nss/lib/freebl/Makefile b/nss/lib/freebl/Makefile |
| 18 | index fe8c526..922f67c 100644 |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 19 | --- a/nss/lib/freebl/Makefile |
| 20 | +++ b/nss/lib/freebl/Makefile |
Andrew Geissler | bbbd5f4 | 2020-10-30 15:42:48 -0500 | [diff] [blame^] | 21 | @@ -125,6 +125,8 @@ else |
| 22 | DEFINES += -DNSS_X86 |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 23 | endif |
| 24 | endif |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 25 | +ifdef NSS_USE_ARM_HW_CRYPTO |
| 26 | + DEFINES += -DNSS_USE_ARM_HW_CRYPTO |
| 27 | ifeq ($(CPU_ARCH),aarch64) |
Andrew Geissler | bbbd5f4 | 2020-10-30 15:42:48 -0500 | [diff] [blame^] | 28 | ifdef CC_IS_CLANG |
| 29 | DEFINES += -DUSE_HW_AES -DUSE_HW_SHA1 -DUSE_HW_SHA2 |
| 30 | @@ -166,6 +168,7 @@ endif |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 31 | endif |
| 32 | endif |
| 33 | endif |
| 34 | +endif |
| 35 | |
| 36 | ifeq ($(OS_TARGET),OSF1) |
| 37 | DEFINES += -DMP_ASSEMBLY_MULTIPLY -DMP_NO_MP_WORD |
Andrew Geissler | bbbd5f4 | 2020-10-30 15:42:48 -0500 | [diff] [blame^] | 38 | diff --git a/nss/lib/freebl/gcm.c b/nss/lib/freebl/gcm.c |
| 39 | index c2cc18d..b77f573 100644 |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 40 | --- a/nss/lib/freebl/gcm.c |
| 41 | +++ b/nss/lib/freebl/gcm.c |
Andrew Geissler | bbbd5f4 | 2020-10-30 15:42:48 -0500 | [diff] [blame^] | 42 | @@ -18,6 +18,7 @@ |
| 43 | |
| 44 | #include <limits.h> |
| 45 | |
| 46 | +#ifdef NSS_USE_ARM_HW_CRYPTO |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 47 | /* old gcc doesn't support some poly64x2_t intrinsic */ |
| 48 | #if defined(__aarch64__) && defined(IS_LITTLE_ENDIAN) && \ |
| 49 | (defined(__clang__) || defined(__GNUC__) && __GNUC__ > 6) |
Andrew Geissler | bbbd5f4 | 2020-10-30 15:42:48 -0500 | [diff] [blame^] | 50 | @@ -27,6 +28,7 @@ |
Andrew Geissler | d688a01 | 2020-09-18 13:36:00 -0500 | [diff] [blame] | 51 | /* We don't test on big endian platform, so disable this on big endian. */ |
Andrew Geissler | bbbd5f4 | 2020-10-30 15:42:48 -0500 | [diff] [blame^] | 52 | #define USE_ARM_GCM |
| 53 | #endif |
| 54 | +#endif |
| 55 | |
| 56 | /* Forward declarations */ |
| 57 | SECStatus gcm_HashInit_hw(gcmHashContext *ghash); |