ARMv8 Crypto Extensions compile logic
diff --git a/include/mbedtls/check_config.h b/include/mbedtls/check_config.h
index 120c1d3..43dae12 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 1e6e052..c3cfdb1 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
@@ -2150,6 +2151,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
  *
  * Enable the AES block cipher.
diff --git a/library/CMakeLists.txt b/library/CMakeLists.txt
index 33e2cfc..223ac88 100644
--- a/library/CMakeLists.txt
+++ b/library/CMakeLists.txt
@@ -15,6 +15,7 @@
     aesni.c
     arc4.c
     aria.c
+    armv8ce_aes.c
     asn1parse.c
     asn1write.c
     base64.c
diff --git a/library/Makefile b/library/Makefile
index b76a84b..d49c3cd 100644
--- a/library/Makefile
+++ b/library/Makefile
@@ -72,6 +72,7 @@
 	     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 d2840fa..cf29582 100644
--- a/library/version_features.c
+++ b/library/version_features.c
@@ -600,6 +600,9 @@
 #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 */