qemu/crypto
Ard Biesheuvel 9ea17007c4 target/riscv: Use existing lookup tables for MixColumns
The AES MixColumns and InvMixColumns operations are relatively
expensive 4x4 matrix multiplications in GF(2^8), which is why C
implementations usually rely on precomputed lookup tables rather than
performing the calculations on demand.

Given that we already carry those tables in QEMU, we can just grab the
right value in the implementation of the RISC-V AES32 instructions. Note
that the tables in question are permuted according to the respective
Sbox, so we can omit the Sbox lookup as well in this case.

Cc: Richard Henderson <richard.henderson@linaro.org>
Cc: Philippe Mathieu-Daudé <philmd@linaro.org>
Cc: Zewen Ye <lustrew@foxmail.com>
Cc: Weiwei Li <liweiwei@iscas.ac.cn>
Cc: Junqiang Wang <wangjunqiang@iscas.ac.cn>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
Message-ID: <20230731084043.1791984-1-ardb@kernel.org>
Signed-off-by: Alistair Francis <alistair.francis@wdc.com>
2023-09-11 11:45:54 +10:00
..
aes.c target/riscv: Use existing lookup tables for MixColumns 2023-09-11 11:45:54 +10:00
afalg.c misc/other: spelling fixes 2023-09-08 13:08:52 +03:00
afalgpriv.h crypto: Allocate QCryptoCipher with the subclass 2020-09-10 11:02:23 +01:00
afsplit.c crypto: use auto cleanup for many stack variables 2019-08-22 10:56:57 +01:00
akcipher-gcrypt.c.inc crypto: Implement RSA algorithm by gcrypt 2022-05-26 11:41:53 +01:00
akcipher-nettle.c.inc test/crypto: Add test suite for crypto akcipher 2022-05-26 11:41:54 +01:00
akcipher.c crypto: Support export akcipher to pkcs8 2022-11-02 06:56:32 -04:00
akcipherpriv.h crypto: Introduce akcipher crypto class 2022-05-26 11:41:47 +01:00
block-luks-priv.h crypto: Clean up includes 2023-02-08 07:16:23 +01:00
block-luks.c misc/other: spelling fixes 2023-09-08 13:08:52 +03:00
block-luks.h crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
block-qcow.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
block-qcow.h crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
block.c crypto: Make block callbacks return 0 on success 2022-07-12 12:14:55 +02:00
blockpriv.h qcrypto/core: add generic infrastructure for crypto options amendment 2020-07-06 08:49:28 +02:00
cipher-afalg.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
cipher-builtin.c.inc crypto: delete built-in XTS cipher mode support 2021-07-14 14:15:52 +01:00
cipher-gcrypt.c.inc crypto: replace 'des-rfb' cipher with 'des' 2021-07-14 14:15:52 +01:00
cipher-gnutls.c.inc crypto: add gnutls cipher provider 2021-07-14 14:15:52 +01:00
cipher-nettle.c.inc crypto: replace 'des-rfb' cipher with 'des' 2021-07-14 14:15:52 +01:00
cipher.c crypto: add gnutls cipher provider 2021-07-14 14:15:52 +01:00
cipherpriv.h crypto: Move cipher->driver init to qcrypto_*_cipher_ctx_new 2020-09-10 11:02:23 +01:00
der.c misc/other: spelling fixes 2023-09-08 13:08:52 +03:00
der.h misc/other: spelling fixes 2023-09-08 13:08:52 +03:00
hash-afalg.c Remove qemu-common.h include from most units 2022-04-06 14:31:55 +02:00
hash-gcrypt.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
hash-glib.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
hash-gnutls.c crypto: add gnutls hash provider 2021-07-14 14:15:52 +01:00
hash-nettle.c crypto: drop back compatibility typedefs for nettle 2021-06-02 07:04:55 +02:00
hash.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
hashpriv.h crypto: hash: add afalg-backend hash support 2017-07-19 10:11:05 +01:00
hmac-gcrypt.c qapi: Mechanically convert FOO_lookup[...] to FOO_str(...) 2017-09-04 13:09:13 +02:00
hmac-glib.c glib: bump min required glib library version to 2.48 2019-08-22 10:46:34 +01:00
hmac-gnutls.c crypto: add gnutls hmac provider 2021-07-14 14:15:52 +01:00
hmac-nettle.c crypto: drop back compatibility typedefs for nettle 2021-06-02 07:04:55 +02:00
hmac.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
hmacpriv.h bulk: Do not declare function prototypes using 'extern' keyword 2023-08-31 19:47:43 +02:00
init.c crypto: drop gcrypt thread initialization code 2021-07-14 14:15:52 +01:00
ivgen-essiv.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
ivgen-essiv.h crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
ivgen-plain64.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
ivgen-plain64.h crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
ivgen-plain.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
ivgen-plain.h Clean up ill-advised or unusual header guards 2022-05-11 16:50:01 +02:00
ivgen.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
ivgenpriv.h crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
meson.build crypto: Implement RSA algorithm by hogweed 2022-05-26 11:41:51 +01:00
pbkdf-gcrypt.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
pbkdf-gnutls.c crypto: add gnutls pbkdf provider 2021-07-14 14:15:52 +01:00
pbkdf-nettle.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
pbkdf-stub.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
pbkdf.c crypto/luks: Support creating LUKS image on Darwin 2022-10-26 13:32:08 +01:00
random-gcrypt.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
random-gnutls.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
random-none.c crypto: add "none" random provider 2020-06-15 11:33:50 +01:00
random-platform.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00
rsakey-builtin.c.inc crypto: Implement RSA algorithm by hogweed 2022-05-26 11:41:51 +01:00
rsakey-nettle.c.inc crypto: Implement RSA algorithm by hogweed 2022-05-26 11:41:51 +01:00
rsakey.c crypto: Support export akcipher to pkcs8 2022-11-02 06:56:32 -04:00
rsakey.h crypto: Support export akcipher to pkcs8 2022-11-02 06:56:32 -04:00
secret_common.c crypto: make loaded property read-only 2022-05-14 12:33:44 +02:00
secret_keyring.c crypto: Move USER_CREATABLE to secret_common base class 2021-01-29 17:07:53 +00:00
secret.c crypto: Move USER_CREATABLE to secret_common base class 2021-01-29 17:07:53 +00:00
sm4.c crypto: move sm4_sbox from target/arm 2022-04-29 10:47:45 +10:00
tls-cipher-suites.c crypto: Make QCryptoTLSCreds* structures private 2021-06-29 18:30:24 +01:00
tlscreds.c crypto/tlscreds: Introduce qcrypto_tls_creds_check_endpoint() helper 2021-06-29 18:29:43 +01:00
tlscredsanon.c crypto: make loaded property read-only 2022-05-14 12:33:44 +02:00
tlscredspriv.h crypto: Make QCryptoTLSCreds* structures private 2021-06-29 18:30:24 +01:00
tlscredspsk.c crypto: check for and report errors setting PSK credentials 2022-10-27 11:55:41 +01:00
tlscredsx509.c crypto: make loaded property read-only 2022-05-14 12:33:44 +02:00
tlssession.c crypto: TLS: introduce check_pending 2023-02-15 11:01:03 -05:00
trace-events docs: fix references to docs/devel/tracing.rst 2021-06-02 06:51:09 +02:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
xts.c crypto: Fix LGPL information in the file headers 2019-07-19 14:21:25 +01:00