Home GnuPG

aes-ppc: add CTR32LE bulk acceleration

Description

aes-ppc: add CTR32LE bulk acceleration

* cipher/rijndael-ppc-functions.h (CTR32LE_ENC_FUNC): New.
* cipher/rijndael-ppc.c (_gcry_aes_ppc8_ctr32le_enc): New.
* cipher/rijndael-ppc9le.c (_gcry_aes_ppc9le_ctr32le_enc): New.
* cipher/rijndael.c (_gcry_aes_ppc8_ctr32le_enc)
(_gcry_aes_ppc9le_ctr32le_enc): New.
(do_setkey): Setup _gcry_aes_ppc8_ctr32le_enc for POWER8 and
_gcry_aes_ppc9le_ctr32le_enc for POWER9.

Benchmark on POWER9:

Before:
AES | nanosecs/byte mebibytes/sec cycles/byte

GCM-SIV enc |      1.42 ns/B     672.2 MiB/s      3.26 c/B

After:
AES | nanosecs/byte mebibytes/sec cycles/byte

GCM-SIV enc |     0.725 ns/B      1316 MiB/s      1.67 c/B
  • Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>

Details

Provenance
jukiviliAuthored on Feb 26 2023, 11:20 AM
Parents
rCa7ebf9d52e67: aes-ppc: add ECB bulk acceleration for benchmarking purposes
Branches
Unknown
Tags
Unknown