Skip to content

[AArch64] Optimize AES with fat build support

Maamoun TK requested to merge mamonet/nettle:arm64-aes into master

This patch optimizes AES encrypt/decrypt functions with each key size has its own implementation to load the key expansion just once at function prologue which yields a considerable performance increase over loading the key expansion for every block iteration. The patch also adds fat build support for the AES functions. make check passes all tests. Benchmark of executing examples/nettle-benchmark:

Algorithm mode C (Mbyte/s) OpenSSL (Mbyte/s) This patch (Mbyte/s)
aes128 ECB encrypt 95.01 1037.85 2579.62
aes128 ECB decrypt 93.47 1005.15 2577.53
aes192 ECB encrypt 79.60 893.34 2205.53
aes192 ECB decrypt 78.34 889.17 2204.41
aes256 ECB encrypt 66.64 782.21 1925.73
aes256 ECB decrypt 65.81 781.37 1925.79

Merge request reports