qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 00/17] crypto/cipher: Class hierarchy cleanups
@ 2020-08-13  3:25 Richard Henderson
  2020-08-13  3:25 ` [PATCH 01/17] crypto: Move QCryptoCipher typedef to qemu/typedefs.h Richard Henderson
                   ` (20 more replies)
  0 siblings, 21 replies; 52+ messages in thread
From: Richard Henderson @ 2020-08-13  3:25 UTC (permalink / raw)
  To: qemu-devel; +Cc: berrange

Mostly this is intended to cleanup the class hierarchy
used for the ciphers.  We currently have multiple levels
of dispatch, and multiple separate allocations.  The final
patches rearrange this to one level of indirect call, and
all memory allocated contiguously.

But on the way there are a number of other misc cleanups.

I know those final patches are somewhat big, but I don't
immediately see how to split them apart.

I noticed this while profiling patches to make ARM PAUTH
use the crypto subsystem.  The qcrypto_cipher_* dispatch
routines were consuming a noticeable portion of the runtime,
and with these changes they were down below 1% where they
ought to be.

While I did not continue with PAUTH using AES, I still think
these are good cleanups.


r~


Richard Henderson (17):
  crypto: Move QCryptoCipher typedef to qemu/typedefs.h
  crypto: Move QCryptoCipherDriver typedef to qemu/typedefs.h
  crypto: Assume blocksize is a power of 2
  crypto: Rename cipher include files to .inc.c
  crypto: Remove redundant includes
  crypto/nettle: Fix xts_encrypt arguments
  crypto: Use the correct const type for driver
  crypto: Allocate QCryptoCipher with the subclass
  crypto: Move cipher->driver init to qcrypto_*_cipher_ctx_new
  crypto: Constify cipher data tables
  crypto/builtin: Remove odd-sized AES block handling
  crypto/builtin: Merge qcrypto_cipher_aes_{ecb,xts}_{en,de}crypt
  crypto/builtin: Move AES_cbc_encrypt into cipher-builtin.inc.c
  crypto/builtin: Split and simplify AES_encrypt_cbc
  crypto/builtin: Split QCryptoCipherBuiltin into subclasses
  crypto/nettle: Split QCryptoCipherNettle into subclasses
  crypto/gcrypt: Split QCryptoCipherGcrypt into subclasses

 crypto/afalgpriv.h                            |   3 +
 crypto/cipherpriv.h                           |   6 +-
 include/crypto/aes.h                          |   4 -
 include/crypto/cipher.h                       |   5 +-
 include/qemu/typedefs.h                       |   2 +
 crypto/aes.c                                  |  51 --
 crypto/cipher-afalg.c                         |  25 +-
 crypto/cipher-builtin.c                       | 532 ------------
 crypto/cipher-builtin.inc.c                   | 425 ++++++++++
 .../{cipher-gcrypt.c => cipher-gcrypt.inc.c}  | 522 ++++++------
 crypto/cipher-nettle.c                        | 733 -----------------
 crypto/cipher-nettle.inc.c                    | 756 ++++++++++++++++++
 crypto/cipher.c                               |  44 +-
 13 files changed, 1477 insertions(+), 1631 deletions(-)
 delete mode 100644 crypto/cipher-builtin.c
 create mode 100644 crypto/cipher-builtin.inc.c
 rename crypto/{cipher-gcrypt.c => cipher-gcrypt.inc.c} (51%)
 delete mode 100644 crypto/cipher-nettle.c
 create mode 100644 crypto/cipher-nettle.inc.c

-- 
2.25.1



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

end of thread, other threads:[~2020-08-28 13:53 UTC | newest]

Thread overview: 52+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-08-13  3:25 [PATCH 00/17] crypto/cipher: Class hierarchy cleanups Richard Henderson
2020-08-13  3:25 ` [PATCH 01/17] crypto: Move QCryptoCipher typedef to qemu/typedefs.h Richard Henderson
2020-08-13  7:59   ` Philippe Mathieu-Daudé
2020-08-17 16:48   ` Daniel P. Berrangé
2020-08-17 20:38     ` Richard Henderson
2020-08-17 20:42       ` Richard Henderson
2020-08-17 20:50         ` Richard Henderson
2020-08-28 13:28           ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 02/17] crypto: Move QCryptoCipherDriver " Richard Henderson
2020-08-13  7:59   ` Philippe Mathieu-Daudé
2020-08-13  3:25 ` [PATCH 03/17] crypto: Assume blocksize is a power of 2 Richard Henderson
2020-08-17 16:51   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 04/17] crypto: Rename cipher include files to .inc.c Richard Henderson
2020-08-13  8:00   ` Philippe Mathieu-Daudé
2020-08-17 16:52     ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 05/17] crypto: Remove redundant includes Richard Henderson
2020-08-13  8:01   ` Philippe Mathieu-Daudé
2020-08-17 16:50   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 06/17] crypto/nettle: Fix xts_encrypt arguments Richard Henderson
2020-08-17 16:53   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 07/17] crypto: Use the correct const type for driver Richard Henderson
2020-08-13  8:02   ` Philippe Mathieu-Daudé
2020-08-17 16:53   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 08/17] crypto: Allocate QCryptoCipher with the subclass Richard Henderson
2020-08-17 16:55   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 09/17] crypto: Move cipher->driver init to qcrypto_*_cipher_ctx_new Richard Henderson
2020-08-17 16:56   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 10/17] crypto: Constify cipher data tables Richard Henderson
2020-08-13  8:03   ` Philippe Mathieu-Daudé
2020-08-17 16:56   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 11/17] crypto/builtin: Remove odd-sized AES block handling Richard Henderson
2020-08-17 16:57   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 12/17] crypto/builtin: Merge qcrypto_cipher_aes_{ecb, xts}_{en, de}crypt Richard Henderson
2020-08-13  8:05   ` Philippe Mathieu-Daudé
2020-08-17 17:00   ` [PATCH 12/17] crypto/builtin: Merge qcrypto_cipher_aes_{ecb,xts}_{en,de}crypt Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 13/17] crypto/builtin: Move AES_cbc_encrypt into cipher-builtin.inc.c Richard Henderson
2020-08-13  8:11   ` Philippe Mathieu-Daudé
2020-08-17 17:01   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 14/17] crypto/builtin: Split and simplify AES_encrypt_cbc Richard Henderson
2020-08-17 17:02   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 15/17] crypto/builtin: Split QCryptoCipherBuiltin into subclasses Richard Henderson
2020-08-28 13:44   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 16/17] crypto/nettle: Split QCryptoCipherNettle " Richard Henderson
2020-08-28 13:46   ` Daniel P. Berrangé
2020-08-13  3:25 ` [PATCH 17/17] crypto/gcrypt: Split QCryptoCipherGcrypt " Richard Henderson
2020-08-28 13:52   ` Daniel P. Berrangé
2020-08-13  8:54 ` [PATCH 00/17] crypto/cipher: Class hierarchy cleanups Philippe Mathieu-Daudé
2020-08-13 10:48 ` no-reply
2020-08-13 11:11 ` no-reply
2020-08-17 16:45   ` Daniel P. Berrangé
2020-08-17 17:09 ` Daniel P. Berrangé
2020-08-17 20:49   ` Richard Henderson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).