openssl/providers/implementations/ciphers
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
..
build.info Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
cipher_aes_ccm_hw_aesni.inc Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
cipher_aes_ccm_hw_s390x.inc Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
cipher_aes_ccm_hw_t4.inc Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
cipher_aes_ccm_hw.c PROV: Move AES_CCM specialisation away from common cipher header 2019-12-12 14:59:24 +01:00
cipher_aes_ccm.c PROV: Move AES_CCM specialisation away from common cipher header 2019-12-12 14:59:24 +01:00
cipher_aes_ccm.h PROV: Move AES_CCM specialisation away from common cipher header 2019-12-12 14:59:24 +01:00
cipher_aes_gcm_hw_aesni.inc Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
cipher_aes_gcm_hw_armv8.inc Optimize AES-GCM implementation on aarch64 2019-12-19 12:36:07 +10:00
cipher_aes_gcm_hw_s390x.inc Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
cipher_aes_gcm_hw_t4.inc Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
cipher_aes_gcm_hw.c Optimize AES-GCM implementation on aarch64 2019-12-19 12:36:07 +10:00
cipher_aes_gcm.c PROV: Move AES_GCM specialisation away from common cipher header 2019-12-12 14:59:24 +01:00
cipher_aes_gcm.h PROV: Move AES_GCM specialisation away from common cipher header 2019-12-12 14:59:24 +01:00
cipher_aes_hw_aesni.inc Fix Use after free when copying cipher ctx 2019-11-18 13:13:05 +10:00
cipher_aes_hw_s390x.inc fix s390 compile error due to missing comma. 2019-11-19 10:38:05 +10:00
cipher_aes_hw_t4.inc Fix Use after free when copying cipher ctx 2019-11-18 13:13:05 +10:00
cipher_aes_hw.c Optimize AES-ECB mode in OpenSSL for both aarch64 and aarch32 2019-12-11 18:56:11 +01:00
cipher_aes_ocb_hw.c
cipher_aes_ocb.c Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
cipher_aes_ocb.h
cipher_aes_siv_hw.c Add AES SIV ciphers to default provider 2019-11-08 12:14:44 +10:00
cipher_aes_siv.c Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
cipher_aes_siv.h Add AES SIV ciphers to default provider 2019-11-08 12:14:44 +10:00
cipher_aes_wrp.c Make sure we handle input NULL with length 0 2019-11-29 10:41:06 +00:00
cipher_aes_xts_fips.c
cipher_aes_xts_hw.c Fix Use after free when copying cipher ctx 2019-11-18 13:13:05 +10:00
cipher_aes_xts.c Fix some typos 2019-12-11 19:04:01 +01:00
cipher_aes_xts.h
cipher_aes.c Fix Use after free when copying cipher ctx 2019-11-18 13:13:05 +10:00
cipher_aes.h PROV: Move AES_CCM specialisation away from common cipher header 2019-12-12 14:59:24 +01:00
cipher_aria_ccm_hw.c
cipher_aria_ccm.c
cipher_aria_ccm.h Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
cipher_aria_gcm_hw.c
cipher_aria_gcm.c
cipher_aria_gcm.h Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
cipher_aria_hw.c Fix Use after free when copying cipher ctx 2019-11-18 13:13:05 +10:00
cipher_aria.c Fix Use after free when copying cipher ctx 2019-11-18 13:13:05 +10:00
cipher_aria.h
cipher_blowfish_hw.c
cipher_blowfish.c EVP_CIPHER_CTX_set_keylen should not succeed if a bad keylen is passed 2019-11-19 13:33:54 +00:00
cipher_blowfish.h
cipher_camellia_hw_t4.inc Fix Use after free when copying cipher ctx 2019-11-18 13:13:05 +10:00
cipher_camellia_hw.c Fix Use after free when copying cipher ctx 2019-11-18 13:13:05 +10:00
cipher_camellia.c Fix Use after free when copying cipher ctx 2019-11-18 13:13:05 +10:00
cipher_camellia.h
cipher_cast5_hw.c
cipher_cast5.c EVP_CIPHER_CTX_set_keylen should not succeed if a bad keylen is passed 2019-11-19 13:33:54 +00:00
cipher_cast.h
cipher_chacha20_hw.c Add ChaCha related ciphers to default provider 2019-10-16 16:18:42 +10:00
cipher_chacha20_poly1305_hw.c Fix typo in cipher_chacha20_poly1305_hw.c. 2019-10-31 10:50:38 +00:00
cipher_chacha20_poly1305.c Make sure we handle input NULL with length 0 2019-11-29 10:41:06 +00:00
cipher_chacha20_poly1305.h Add ChaCha related ciphers to default provider 2019-10-16 16:18:42 +10:00
cipher_chacha20.c ciphers/chacha20,poly1303: Fix two coverity errors 2019-10-20 23:58:05 +02:00
cipher_chacha20.h Add ChaCha related ciphers to default provider 2019-10-16 16:18:42 +10:00
cipher_des_hw.c
cipher_des.c Cleanup: move remaining providers/common/include/internal/*.h 2019-10-10 14:12:15 +02:00
cipher_des.h
cipher_desx_hw.c
cipher_desx.c
cipher_idea_hw.c
cipher_idea.c
cipher_idea.h
cipher_rc2_hw.c
cipher_rc2.c EVP_CIPHER_CTX_set_keylen should not succeed if a bad keylen is passed 2019-11-19 13:33:54 +00:00
cipher_rc2.h
cipher_rc4_hmac_md5_hw.c Add rc4_hmac_md5 cipher to default provider 2019-11-11 10:04:46 +10:00
cipher_rc4_hmac_md5.c Add rc4_hmac_md5 cipher to default provider 2019-11-11 10:04:46 +10:00
cipher_rc4_hmac_md5.h Add rc4_hmac_md5 cipher to default provider 2019-11-11 10:04:46 +10:00
cipher_rc4_hw.c
cipher_rc4.c EVP_CIPHER_CTX_set_keylen should not succeed if a bad keylen is passed 2019-11-19 13:33:54 +00:00
cipher_rc4.h
cipher_rc5_hw.c
cipher_rc5.c EVP_CIPHER_CTX_set_keylen should not succeed if a bad keylen is passed 2019-11-19 13:33:54 +00:00
cipher_rc5.h
cipher_seed_hw.c
cipher_seed.c
cipher_seed.h
cipher_sm4_hw.c Fix Use after free when copying cipher ctx 2019-11-18 13:13:05 +10:00
cipher_sm4.c Fix Use after free when copying cipher ctx 2019-11-18 13:13:05 +10:00
cipher_sm4.h
cipher_tdes_default_hw.c
cipher_tdes_default.c
cipher_tdes_default.h
cipher_tdes_hw.c
cipher_tdes_wrap_hw.c
cipher_tdes_wrap.c Fix some typos 2019-12-11 19:04:01 +01:00
cipher_tdes.c Cleanup: move remaining providers/common/include/internal/*.h 2019-10-10 14:12:15 +02:00
cipher_tdes.h
ciphercommon_block.c Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
ciphercommon_ccm_hw.c Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
ciphercommon_ccm.c Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
ciphercommon_gcm_hw.c Optimize AES-GCM implementation on aarch64 2019-12-19 12:36:07 +10:00
ciphercommon_gcm.c Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
ciphercommon_hw.c Optimize AES-ECB mode in OpenSSL for both aarch64 and aarch32 2019-12-11 18:56:11 +01:00
ciphercommon_local.h Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00
ciphercommon.c Move providers/common/{ciphers,digests}/* to providers/implementations 2019-12-11 12:55:48 +01:00