From 7bb805364552117926a17ab40374b8f95329e292 Mon Sep 17 00:00:00 2001 From: Jens Wiklander Date: Wed, 22 Nov 2017 11:52:42 +0100 Subject: [PATCH] [review] core: AES-GCM: import table based GF-mult Sets CFG_AES_GCM_TABLE_BASED to default y unless CFG_CRYPTO_WITH_CE is y, then CFG_AES_GCM_TABLE_BASED forced n. With tables performance is on HiKey960 (CFG_CRYPTO_WITH_CE=n): xtest --aes-perf -m GCM (CFG_AES_GCM_TABLE_BASED=n) min=69.27us max=86.458us mean=70.5695us stddev=0.955826us (cv 1.35445%) (13.8383MiB/s) (CFG_AES_GCM_TABLE_BASED=y) min=41.666us max=53.646us mean=42.138us stddev=0.621345us (cv 1.47455%) (23.1753MiB/s) Signed-off-by: Jens Wiklander --- core/crypto.mk | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/core/crypto.mk b/core/crypto.mk index 2dc24d9ec17..df5f7d57e56 100644 --- a/core/crypto.mk +++ b/core/crypto.mk @@ -41,6 +41,7 @@ CFG_CRYPTO_AES_GCM_FROM_CRYPTOLIB ?= n endif + ifeq ($(CFG_WITH_PAGER),y) ifneq ($(CFG_CRYPTO_SHA256),y) $(warning Warning: Enabling CFG_CRYPTO_SHA256 [required by CFG_WITH_PAGER]) @@ -49,17 +50,27 @@ endif endif ifeq ($(CFG_CRYPTO_WITH_CE),y) + +$(call force,CFG_AES_GCM_TABLE_BASED,n,conflicts with CFG_CRYPTO_WITH_CE) + ifeq ($(CFG_ARM32_core),y) CFG_CRYPTO_AES_ARM32_CE ?= $(CFG_CRYPTO_AES) CFG_CRYPTO_SHA1_ARM32_CE ?= $(CFG_CRYPTO_SHA1) CFG_CRYPTO_SHA256_ARM32_CE ?= $(CFG_CRYPTO_SHA256) endif + ifeq ($(CFG_ARM64_core),y) CFG_CRYPTO_AES_ARM64_CE ?= $(CFG_CRYPTO_AES) CFG_CRYPTO_SHA1_ARM64_CE ?= $(CFG_CRYPTO_SHA1) CFG_CRYPTO_SHA256_ARM64_CE ?= $(CFG_CRYPTO_SHA256) endif -endif + +else #CFG_CRYPTO_WITH_CE + +CFG_AES_GCM_TABLE_BASED ?= y + +endif #!CFG_CRYPTO_WITH_CE + # Cryptographic extensions can only be used safely when OP-TEE knows how to # preserve the VFP context