cipher-gcm-riscv-zbb-zbc: add POLYVAL acceleration
* cipher/cipher-gcm-riscv-zbb-zbc.c (_gcry_ghash_riscv_zbb_zbc): Rename to ... (ghash_polyval_riscv_zbb_zbc): ... this; Add 'is_polyval' argument. (_gcry_ghash_riscv_zbb_zbc): New. (ghash_polyval_riscv_zbb_zbc): New. * cipher/cipher-gcm.c [GCM_USE_RISCV_ZBB_ZBC] (ghash_polyval_riscv_zbb_zbc): New. (setupM) [GCM_USE_RISCV_ZBB_ZBC]: Add setup for 'c->u_mode.gcm.polyval_fn'.
Benchmark on SpacemiT K1:
Before:
AES | nanosecs/byte mebibytes/sec cycles/byte auto Mhz
GCM-SIV auth | 3.65 ns/B 261.4 MiB/s 5.84 c/B 1600
After:
AES | nanosecs/byte mebibytes/sec cycles/byte auto Mhz
GCM-SIV auth | 0.861 ns/B 1108 MiB/s 1.38 c/B 1600
- Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>