Home GnuPG

Add ARMv8/AArch32 Crypto Extension implementation of GCM
962b15470663Unpublished

Unpublished Commit ยท Learn More

Not On Permanent Ref: This commit is not an ancestor of any permanent ref.

Description

Add ARMv8/AArch32 Crypto Extension implementation of GCM

* cipher/Makefile.am: Add 'cipher-gcm-armv8-aarch32-ce.S'.
* cipher/cipher-gcm-armv8-aarch32-ce.S: New.
* cipher/cipher-gcm.c [GCM_USE_ARM_PMULL]
(_gcry_ghash_setup_armv8_ce_pmull, _gcry_ghash_armv8_ce_pmull)
(ghash_setup_armv8_ce_pmull, ghash_armv8_ce_pmull): New.
(setupM) [GCM_USE_ARM_PMULL]: Enable ARM PMULL implementation if
HWF_ARM_PULL HW feature flag is enabled.
* cipher/cipher-gcm.h (GCM_USE_ARM_PMULL): New.

Benchmark on Cortex-A53 (1152 Mhz):

Before:

                   |  nanosecs/byte   mebibytes/sec   cycles/byte
GMAC_AES           |     24.10 ns/B     39.57 MiB/s     27.76 c/B

After (~26x faster):

                   |  nanosecs/byte   mebibytes/sec   cycles/byte
GMAC_AES           |     0.924 ns/B    1032.2 MiB/s      1.06 c/B
  • Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>

Details

Provenance
jukiviliAuthored on Jul 14 2016, 4:55 PM
Parents
rC34c64eb03178: Add ARMv8/AArch32 Crypto Extension implemenation of SHA-256
Branches
Unknown
Tags
Unknown

Event Timeline

Jussi Kivilinna <jussi.kivilinna@iki.fi> committed rC962b15470663: Add ARMv8/AArch32 Crypto Extension implementation of GCM (authored by Jussi Kivilinna <jussi.kivilinna@iki.fi>).Jul 14 2016, 4:55 PM