Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame^] | 1 | From 7c8f367faf8848a43a414079189e10270d6c0fcc 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 |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame^] | 18 | index 7ee8736..f9b4925 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 |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame^] | 21 | @@ -142,6 +142,8 @@ endif |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 22 | endif |
| 23 | endif |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 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 |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame^] | 30 | @@ -183,6 +185,7 @@ endif |
Andrew Geissler | 82c905d | 2020-04-13 13:39:40 -0500 | [diff] [blame] | 31 | endif |
| 32 | endif |
| 33 | endif |
| 34 | +endif |
| 35 | |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame^] | 36 | ifeq (OS2,$(OS_TARGET)) |
| 37 | ASFILES = mpi_x86_os2.s |
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 |
Patrick Williams | 03514f1 | 2024-04-05 07:04:11 -0500 | [diff] [blame^] | 39 | index 2dae724..9ee7fc8 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); |