Add RISC-V vector cryptography implementation of AES
* cipher/Makefile.am: Add 'rijndael-riscv-zvkned.c'. * cipher/rijndael-internal.h (USE_RISCV_V_CRYPTO): New. * cipher/rijndael-riscv-zvkned.c: New. * cipher/rijndael.c [USE_RISCV_V_CRYPTO] (_gcry_aes_riscv_zvkned_setup_acceleration, _gcry_aes_riscv_zvkned_setkey) (_gcry_aes_riscv_zvkned_prepare_decryption) (_gcry_aes_riscv_zvkned_encrypt, _gcry_aes_riscv_zvkned_decrypt) (_gcry_aes_riscv_zvkned_cfb_enc, _gcry_aes_riscv_zvkned_cbc_enc) (_gcry_aes_riscv_zvkned_ctr_enc, _gcry_aes_riscv_zvkned_ctr32le_enc) (_gcry_aes_riscv_zvkned_cfb_dec, _gcry_aes_riscv_zvkned_cbc_dec) (_gcry_aes_riscv_zvkned_ocb_crypt, _gcry_aes_riscv_zvkned_ocb_auth) (_gcry_aes_riscv_zvkned_ecb_crypt, _gcry_aes_riscv_zvkned_xts_crypt): New. (do_setkey) [USE_RISCV_V_CRYPTO]: Add setup for RISC-V vector cryptography extension implementation. * configure.ac: Add 'rijndael-riscv-zvkned.lo'. (GCRY_RISCV_VECTOR_CRYPTO_INTRINSICS_TEST): Add AES intrinsics. (gcry_cv_riscv_vaes_vs_intrinsics_work, HAVE_BROKEN_VAES_VS_INTRINSIC): New. * src/g10lib.h (HWF_RISCV_ZVKNED): Insert before HWF_RISCV_ZVKNHA. * src/hwf-riscv.c (HWF_RISCV_HWPROBE_EXT_ZVKNED): New. (hwprobe_features): Add Zvkned. * src/hwfeatures.c (hwflist): Add "riscv-zvkned".
Implementation has been tested against QEMU emulator as there is no
actual HW available with these instructions yet.
- Signed-off-by: Jussi Kivilinna <jussi.kivilinna@iki.fi>