All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v3 00/37] crypto: Provide aes-round.h and host accel
@ 2023-06-20 11:07 Richard Henderson
  2023-06-20 11:07 ` [PATCH v3 01/37] util: Add cpuinfo-ppc.c Richard Henderson
                   ` (37 more replies)
  0 siblings, 38 replies; 52+ messages in thread
From: Richard Henderson @ 2023-06-20 11:07 UTC (permalink / raw)
  To: qemu-devel; +Cc: berrange, qemu-ppc, qemu-arm, qemu-riscv

Inspired by Ard Biesheuvel's RFC patches for accelerating AES
under emulation, provide a set of primitives that maps between
the guest and host fragments.

Changes for v3:
  * Move host/include/*/{,crypto/}aes-round.h.
  * Add some r-b.

Patches missing r-b:
  02-tests-multiarch-Add-test-aes.patch
  05-crypto-Add-aesenc_SB_SR_AK.patch
  08-target-arm-Use-aesenc_SB_SR_AK.patch
  10-target-riscv-Use-aesenc_SB_SR_AK.patch
  11-crypto-Add-aesdec_ISB_ISR_AK.patch
  13-target-arm-Use-aesdec_ISB_ISR_AK.patch
  15-target-riscv-Use-aesdec_ISB_ISR_AK.patch
  16-crypto-Add-aesenc_MC.patch
  17-target-arm-Use-aesenc_MC.patch
  18-crypto-Add-aesdec_IMC.patch
  19-target-i386-Use-aesdec_IMC.patch
  20-target-arm-Use-aesdec_IMC.patch
  21-target-riscv-Use-aesdec_IMC.patch
  22-crypto-Add-aesenc_SB_SR_MC_AK.patch
  23-target-i386-Use-aesenc_SB_SR_MC_AK.patch
  25-target-riscv-Use-aesenc_SB_SR_MC_AK.patch
  26-crypto-Add-aesdec_ISB_ISR_IMC_AK.patch
  27-target-i386-Use-aesdec_ISB_ISR_IMC_AK.patch
  28-target-riscv-Use-aesdec_ISB_ISR_IMC_AK.patch
  35-host-include-i386-Implement-aes-round.h.patch
  36-host-include-aarch64-Implement-aes-round.h.patch


r~


Richard Henderson (37):
  util: Add cpuinfo-ppc.c
  tests/multiarch: Add test-aes
  target/arm: Move aesmc and aesimc tables to crypto/aes.c
  crypto/aes: Add constants for ShiftRows, InvShiftRows
  crypto: Add aesenc_SB_SR_AK
  target/i386: Use aesenc_SB_SR_AK
  target/arm: Demultiplex AESE and AESMC
  target/arm: Use aesenc_SB_SR_AK
  target/ppc: Use aesenc_SB_SR_AK
  target/riscv: Use aesenc_SB_SR_AK
  crypto: Add aesdec_ISB_ISR_AK
  target/i386: Use aesdec_ISB_ISR_AK
  target/arm: Use aesdec_ISB_ISR_AK
  target/ppc: Use aesdec_ISB_ISR_AK
  target/riscv: Use aesdec_ISB_ISR_AK
  crypto: Add aesenc_MC
  target/arm: Use aesenc_MC
  crypto: Add aesdec_IMC
  target/i386: Use aesdec_IMC
  target/arm: Use aesdec_IMC
  target/riscv: Use aesdec_IMC
  crypto: Add aesenc_SB_SR_MC_AK
  target/i386: Use aesenc_SB_SR_MC_AK
  target/ppc: Use aesenc_SB_SR_MC_AK
  target/riscv: Use aesenc_SB_SR_MC_AK
  crypto: Add aesdec_ISB_ISR_IMC_AK
  target/i386: Use aesdec_ISB_ISR_IMC_AK
  target/riscv: Use aesdec_ISB_ISR_IMC_AK
  crypto: Add aesdec_ISB_ISR_AK_IMC
  target/ppc: Use aesdec_ISB_ISR_AK_IMC
  crypto: Remove AES_shifts, AES_ishifts
  crypto: Implement aesdec_IMC with AES_imc_rot
  crypto: Remove AES_imc
  crypto: Unexport AES_*_rot, AES_TeN, AES_TdN
  host/include/i386: Implement aes-round.h
  host/include/aarch64: Implement aes-round.h
  host/include/ppc: Implement aes-round.h

 MAINTAINERS                                  |   1 +
 meson.build                                  |   9 +
 host/include/aarch64/host/cpuinfo.h          |   1 +
 host/include/aarch64/host/crypto/aes-round.h | 205 +++++
 host/include/generic/host/crypto/aes-round.h |  33 +
 host/include/i386/host/cpuinfo.h             |   1 +
 host/include/i386/host/crypto/aes-round.h    | 152 ++++
 host/include/ppc/host/cpuinfo.h              |  30 +
 host/include/ppc/host/crypto/aes-round.h     | 182 +++++
 host/include/ppc64/host/cpuinfo.h            |   1 +
 host/include/ppc64/host/crypto/aes-round.h   |   1 +
 host/include/x86_64/host/crypto/aes-round.h  |   1 +
 include/crypto/aes-round.h                   | 164 ++++
 include/crypto/aes.h                         |  30 -
 target/arm/helper.h                          |   2 +
 target/i386/ops_sse.h                        |  60 +-
 tcg/ppc/tcg-target.h                         |  16 +-
 target/arm/tcg/sve.decode                    |   4 +-
 crypto/aes.c                                 | 808 ++++++++++++-------
 target/arm/tcg/crypto_helper.c               | 249 ++----
 target/arm/tcg/translate-a64.c               |  13 +-
 target/arm/tcg/translate-neon.c              |   4 +-
 target/arm/tcg/translate-sve.c               |   8 +-
 target/ppc/int_helper.c                      |  50 +-
 target/riscv/crypto_helper.c                 | 138 +---
 tests/tcg/aarch64/test-aes.c                 |  58 ++
 tests/tcg/i386/test-aes.c                    |  68 ++
 tests/tcg/ppc64/test-aes.c                   | 116 +++
 tests/tcg/riscv64/test-aes.c                 |  76 ++
 util/cpuinfo-aarch64.c                       |   2 +
 util/cpuinfo-i386.c                          |   3 +
 util/cpuinfo-ppc.c                           |  64 ++
 tcg/ppc/tcg-target.c.inc                     |  44 +-
 tests/tcg/multiarch/test-aes-main.c.inc      | 183 +++++
 tests/tcg/aarch64/Makefile.target            |   4 +
 tests/tcg/i386/Makefile.target               |   4 +
 tests/tcg/ppc64/Makefile.target              |   1 +
 tests/tcg/riscv64/Makefile.target            |  13 +
 util/meson.build                             |   2 +
 39 files changed, 2080 insertions(+), 721 deletions(-)
 create mode 100644 host/include/aarch64/host/crypto/aes-round.h
 create mode 100644 host/include/generic/host/crypto/aes-round.h
 create mode 100644 host/include/i386/host/crypto/aes-round.h
 create mode 100644 host/include/ppc/host/cpuinfo.h
 create mode 100644 host/include/ppc/host/crypto/aes-round.h
 create mode 100644 host/include/ppc64/host/cpuinfo.h
 create mode 100644 host/include/ppc64/host/crypto/aes-round.h
 create mode 100644 host/include/x86_64/host/crypto/aes-round.h
 create mode 100644 include/crypto/aes-round.h
 create mode 100644 tests/tcg/aarch64/test-aes.c
 create mode 100644 tests/tcg/i386/test-aes.c
 create mode 100644 tests/tcg/ppc64/test-aes.c
 create mode 100644 tests/tcg/riscv64/test-aes.c
 create mode 100644 util/cpuinfo-ppc.c
 create mode 100644 tests/tcg/multiarch/test-aes-main.c.inc

-- 
2.34.1



^ permalink raw reply	[flat|nested] 52+ messages in thread

end of thread, other threads:[~2023-06-29 16:02 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-06-20 11:07 [PATCH v3 00/37] crypto: Provide aes-round.h and host accel Richard Henderson
2023-06-20 11:07 ` [PATCH v3 01/37] util: Add cpuinfo-ppc.c Richard Henderson
2023-06-20 11:07 ` [PATCH v3 02/37] tests/multiarch: Add test-aes Richard Henderson
2023-06-20 11:07 ` [PATCH v3 03/37] target/arm: Move aesmc and aesimc tables to crypto/aes.c Richard Henderson
2023-06-20 11:07 ` [PATCH v3 04/37] crypto/aes: Add constants for ShiftRows, InvShiftRows Richard Henderson
2023-06-20 11:07 ` [PATCH v3 05/37] crypto: Add aesenc_SB_SR_AK Richard Henderson
2023-06-21 16:38   ` Daniel P. Berrangé
2023-06-29 15:45   ` Max Chou
2023-06-29 16:02     ` Richard Henderson
2023-06-20 11:07 ` [PATCH v3 06/37] target/i386: Use aesenc_SB_SR_AK Richard Henderson
2023-06-20 11:07 ` [PATCH v3 07/37] target/arm: Demultiplex AESE and AESMC Richard Henderson
2023-06-20 11:07 ` [PATCH v3 08/37] target/arm: Use aesenc_SB_SR_AK Richard Henderson
2023-06-20 11:07 ` [PATCH v3 09/37] target/ppc: " Richard Henderson
2023-06-20 11:07 ` [PATCH v3 10/37] target/riscv: " Richard Henderson
2023-06-20 11:07 ` [PATCH v3 11/37] crypto: Add aesdec_ISB_ISR_AK Richard Henderson
2023-06-21 16:38   ` Daniel P. Berrangé
2023-06-20 11:07 ` [PATCH v3 12/37] target/i386: Use aesdec_ISB_ISR_AK Richard Henderson
2023-06-20 11:07 ` [PATCH v3 13/37] target/arm: " Richard Henderson
2023-06-20 11:07 ` [PATCH v3 14/37] target/ppc: " Richard Henderson
2023-06-20 11:07 ` [PATCH v3 15/37] target/riscv: " Richard Henderson
2023-06-20 11:07 ` [PATCH v3 16/37] crypto: Add aesenc_MC Richard Henderson
2023-06-21 16:39   ` Daniel P. Berrangé
2023-06-20 11:07 ` [PATCH v3 17/37] target/arm: Use aesenc_MC Richard Henderson
2023-06-20 11:07 ` [PATCH v3 18/37] crypto: Add aesdec_IMC Richard Henderson
2023-06-21 16:40   ` Daniel P. Berrangé
2023-06-20 11:07 ` [PATCH v3 19/37] target/i386: Use aesdec_IMC Richard Henderson
2023-06-20 11:07 ` [PATCH v3 20/37] target/arm: " Richard Henderson
2023-06-20 11:07 ` [PATCH v3 21/37] target/riscv: " Richard Henderson
2023-06-20 11:07 ` [PATCH v3 22/37] crypto: Add aesenc_SB_SR_MC_AK Richard Henderson
2023-06-21 16:40   ` Daniel P. Berrangé
2023-06-20 11:07 ` [PATCH v3 23/37] target/i386: Use aesenc_SB_SR_MC_AK Richard Henderson
2023-06-20 11:07 ` [PATCH v3 24/37] target/ppc: " Richard Henderson
2023-06-20 11:07 ` [PATCH v3 25/37] target/riscv: " Richard Henderson
2023-06-20 11:07 ` [PATCH v3 26/37] crypto: Add aesdec_ISB_ISR_IMC_AK Richard Henderson
2023-06-21 16:40   ` Daniel P. Berrangé
2023-06-20 11:07 ` [PATCH v3 27/37] target/i386: Use aesdec_ISB_ISR_IMC_AK Richard Henderson
2023-06-20 11:07 ` [PATCH v3 28/37] target/riscv: " Richard Henderson
2023-06-20 11:07 ` [PATCH v3 29/37] crypto: Add aesdec_ISB_ISR_AK_IMC Richard Henderson
2023-06-21 16:41   ` Daniel P. Berrangé
2023-06-20 11:07 ` [PATCH v3 30/37] target/ppc: Use aesdec_ISB_ISR_AK_IMC Richard Henderson
2023-06-20 11:07 ` [PATCH v3 31/37] crypto: Remove AES_shifts, AES_ishifts Richard Henderson
2023-06-21 16:41   ` Daniel P. Berrangé
2023-06-20 11:07 ` [PATCH v3 32/37] crypto: Implement aesdec_IMC with AES_imc_rot Richard Henderson
2023-06-21 16:42   ` Daniel P. Berrangé
2023-06-20 11:07 ` [PATCH v3 33/37] crypto: Remove AES_imc Richard Henderson
2023-06-21 16:42   ` Daniel P. Berrangé
2023-06-20 11:07 ` [PATCH v3 34/37] crypto: Unexport AES_*_rot, AES_TeN, AES_TdN Richard Henderson
2023-06-21 16:42   ` Daniel P. Berrangé
2023-06-20 11:07 ` [PATCH v3 35/37] host/include/i386: Implement aes-round.h Richard Henderson
2023-06-20 11:07 ` [PATCH v3 36/37] host/include/aarch64: " Richard Henderson
2023-06-20 11:07 ` [PATCH v3 37/37] host/include/ppc: " Richard Henderson
2023-06-22  4:52 ` [PATCH v3 00/37] crypto: Provide aes-round.h and host accel Richard Henderson

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.