diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h index 120c1d32f..43dae129b 100644 --- a/include/mbedtls/check_config.h +++ b/include/mbedtls/check_config.h @@ -73,6 +73,10 @@ #error "MBEDTLS_AESNI_C defined, but not all prerequisites" #endif +#if defined(MBEDTLS_ARMV8CE_AES_C) && !defined(MBEDTLS_HAVE_ASM) +#error "MBEDTLS_ARMV8CE_AES_C defined, but not all prerequisites" +#endif + #if defined(MBEDTLS_CTR_DRBG_C) && !defined(MBEDTLS_AES_C) #error "MBEDTLS_CTR_DRBG_C defined, but not all prerequisites" #endif @@ -879,3 +883,4 @@ typedef int mbedtls_iso_c_forbids_empty_translation_units; #endif /* MBEDTLS_CHECK_CONFIG_H */ + diff --git a/include/mbedtls/config.h b/include/mbedtls/config.h index 1e6e05275..c3cfdb12a 100644 --- a/include/mbedtls/config.h +++ b/include/mbedtls/config.h @@ -49,6 +49,7 @@ * library/aria.c * library/timing.c * include/mbedtls/bn_mul.h + * library/armv8ce_aes.c * * Required by: * MBEDTLS_AESNI_C @@ -2149,6 +2150,21 @@ */ #define MBEDTLS_AESNI_C +/** + * \def MBEDTLS_ARMV8CE_AES_C + * + * Enable ARMv8 Crypto Extensions for AES and GCM + * + * Module: library/aesni.c + * Caller: library/aes.c + * library/gcm.c + * + * Requires: MBEDTLS_HAVE_ASM + * + * This module utilizes ARMv8 Crypto Extensions for AES and GCM + */ +//#define MBEDTLS_ARMV8CE_AES_C + /** * \def MBEDTLS_AES_C * diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt index 33e2cfc85..223ac8804 100644 --- a/library/CMakeLists.txt +++ b/library/CMakeLists.txt @@ -15,6 +15,7 @@ set(src_crypto aesni.c arc4.c aria.c + armv8ce_aes.c asn1parse.c asn1write.c base64.c diff --git a/library/Makefile b/library/Makefile index b76a84bdd..d49c3cd57 100644 --- a/library/Makefile +++ b/library/Makefile @@ -72,6 +72,7 @@ OBJS_CRYPTO= \ aesni.o \ arc4.o \ aria.o \ + armv8ce_aes.o \ asn1parse.o \ asn1write.o \ base64.o \ diff --git a/library/version_features.c b/library/version_features.c index d2840fa3c..cf2958222 100644 --- a/library/version_features.c +++ b/library/version_features.c @@ -600,6 +600,9 @@ static const char * const features[] = { #if defined(MBEDTLS_AESNI_C) "MBEDTLS_AESNI_C", #endif /* MBEDTLS_AESNI_C */ +#if defined(MBEDTLS_ARMV8CE_AES_C) + "MBEDTLS_ARMV8CE_AES_C", +#endif /* MBEDTLS_ARMV8CE_AES_C */ #if defined(MBEDTLS_AES_C) "MBEDTLS_AES_C", #endif /* MBEDTLS_AES_C */