Home GnuPG

cipher-gcm-riscv-zbb-zbc: add POLYVAL acceleration

Description

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>

Details

Provenance
jukiviliAuthored on Tue, Aug 19, 7:46 AM
Parents
rC729794458fc7: Require RISC-V B extension for vector intrinsics implementations
Branches
Unknown
Tags
Unknown
References
HEAD -> master