Skip to content
Barry O'Rourke edited this page Feb 29, 2016 · 5 revisions

AARCH64 and Cryptography Extension Support

This fork of mbedTLS implements an extension to provide performance enhancements targeting high-end ARM Cortex-A processors.

There are 2 classes of optimization. First we added compilation time detection of Aarch64 code generation for the big number multiply functions. This enables the use the C implementation with appropriate 64 bit data types rather than the ARMv3 to allow the use of wider multiplies. This improves the performance across most Public Key operations as shown below for a Cortex-A53 device built with the Linaro toolchain.

For devices which implement the optional cryptography extensions to the the ARMv8 instruction set we have reimplemented AES, SHA-1 and SHA-256 algorithms to make use of this hardware acceleration. Note that again this functionality is only enabled for AArch64 in the current implementation. The performance improvements are summarized below.

Crypto extension support is configurable and is enabled by defining MBEDTLS_ARM_CRYTO_C in include/mbedtls/config.h

Clone this wiki locally