openssl/providers/implementations
Fangming.Fang 31b59078c8 Optimize AES-GCM implementation on aarch64
Comparing to current implementation, this change can get more
performance improved by tunning the loop-unrolling factor in
interleave implementation as well as by enabling high level parallelism.

Performance(A72)

new
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes   16384 bytes
aes-128-gcm     113065.51k   375743.00k   848359.51k  1517865.98k  1964040.19k  1986663.77k
aes-192-gcm     110679.32k   364470.63k   799322.88k  1428084.05k  1826917.03k  1848967.17k
aes-256-gcm     104919.86k   352939.29k   759477.76k  1330683.56k  1663175.34k  1670430.72k

old
type             16 bytes     64 bytes    256 bytes   1024 bytes   8192 bytes   16384 bytes
aes-128-gcm     115595.32k   382348.65k   855891.29k  1236452.35k  1425670.14k  1429793.45k
aes-192-gcm     112227.02k   369543.47k   810046.55k  1147948.37k  1286288.73k  1296941.06k
aes-256-gcm     111543.90k   361902.36k   769543.59k  1070693.03k  1208576.68k  1207511.72k

Change-Id: I28a2dca85c001a63a2a942e80c7c64f7a4fdfcf7

Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/9818)
2019-12-19 12:36:07 +10:00
..
asymciphers Teach the RSA implementation about TLS RSA Key Transport 2019-12-05 16:12:18 +00:00
ciphers Optimize AES-GCM implementation on aarch64 2019-12-19 12:36:07 +10:00
digests Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
exchange Cleanup: move providers/common/include/internal/provider_args.h 2019-10-10 14:12:15 +02:00
include/prov PROV: Move AES_GCM specialisation away from common cipher header 2019-12-12 14:59:24 +01:00
kdfs kdfs: make free calls check for NULL. 2019-11-22 15:19:28 +10:00
keymgmt CORE & PROV: make export of key data leaner through callback 2019-11-14 10:53:14 +01:00
macs mac poly1305: add missing NULL check in new function. 2019-12-13 10:31:28 +10:00
serializers PROV SERIALIZER: add support for writing DSA keys and parameters 2019-11-29 20:55:16 +01:00
signature Cleanup: move remaining providers/common/include/internal/*.h 2019-10-10 14:12:15 +02:00
build.info PROV SERIALIZER: add common functionality to serialize keys 2019-11-29 20:55:16 +01:00