[PATCH v2 00/16] crypto/cipher: Class hierarchy cleanups

Richard Henderson posted 16 patches 3 years, 8 months ago
Test docker-quick@centos7 failed
Test docker-mingw@fedora failed
Test checkpatch failed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200828170523.418603-1-richard.henderson@linaro.org
Maintainers: "Daniel P. Berrangé" <berrange@redhat.com>
crypto/afalgpriv.h                            |   3 +
crypto/cipherpriv.h                           |   6 +-
include/crypto/aes.h                          |   4 -
include/crypto/cipher.h                       |   4 +-
crypto/aes.c                                  |  51 --
crypto/cipher-afalg.c                         |  25 +-
crypto/cipher-builtin.c                       | 532 ------------
crypto/cipher-nettle.c                        | 733 -----------------
crypto/cipher.c                               |  44 +-
crypto/cipher-builtin.c.inc                   | 435 ++++++++++
.../{cipher-gcrypt.c => cipher-gcrypt.c.inc}  | 509 ++++++------
crypto/cipher-nettle.c.inc                    | 760 ++++++++++++++++++
12 files changed, 1481 insertions(+), 1625 deletions(-)
delete mode 100644 crypto/cipher-builtin.c
delete mode 100644 crypto/cipher-nettle.c
create mode 100644 crypto/cipher-builtin.c.inc
rename crypto/{cipher-gcrypt.c => cipher-gcrypt.c.inc} (52%)
create mode 100644 crypto/cipher-nettle.c.inc
[PATCH v2 00/16] crypto/cipher: Class hierarchy cleanups
Posted by Richard Henderson 3 years, 8 months ago
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.

Changes in v2:
  * Dropped move of QCryptoCipher typedef.
  * Moved QCryptoCipherDriver typedef to include/crypto/cipher.h.
  * Renamed included files to *.c.inc.
  * Fixed errors with old versions of nettle and gcrypt.

Based-on: <20200828132716.279782-1-berrange@redhat.com>
("crypto: fix build with gcrypt")

which does at least allow *-softmmu builds to complete,
though I still have issues with *-linux-user.


r~


Richard Henderson (16):
  crypto: Assume blocksize is a power of 2
  crypto: Rename cipher include files to .c.inc
  crypto: Remove redundant includes
  crypto/nettle: Fix xts_encrypt arguments
  crypto: Move QCryptoCipherDriver typedef to crypto/cipher.h
  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                       |   4 +-
 crypto/aes.c                                  |  51 --
 crypto/cipher-afalg.c                         |  25 +-
 crypto/cipher-builtin.c                       | 532 ------------
 crypto/cipher-nettle.c                        | 733 -----------------
 crypto/cipher.c                               |  44 +-
 crypto/cipher-builtin.c.inc                   | 435 ++++++++++
 .../{cipher-gcrypt.c => cipher-gcrypt.c.inc}  | 509 ++++++------
 crypto/cipher-nettle.c.inc                    | 760 ++++++++++++++++++
 12 files changed, 1481 insertions(+), 1625 deletions(-)
 delete mode 100644 crypto/cipher-builtin.c
 delete mode 100644 crypto/cipher-nettle.c
 create mode 100644 crypto/cipher-builtin.c.inc
 rename crypto/{cipher-gcrypt.c => cipher-gcrypt.c.inc} (52%)
 create mode 100644 crypto/cipher-nettle.c.inc

-- 
2.25.1


Re: [PATCH v2 00/16] crypto/cipher: Class hierarchy cleanups
Posted by Daniel P. Berrangé 3 years, 7 months ago
On Fri, Aug 28, 2020 at 10:05:07AM -0700, Richard Henderson wrote:
> 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.
> 
> Changes in v2:
>   * Dropped move of QCryptoCipher typedef.
>   * Moved QCryptoCipherDriver typedef to include/crypto/cipher.h.
>   * Renamed included files to *.c.inc.
>   * Fixed errors with old versions of nettle and gcrypt.
> 
> Based-on: <20200828132716.279782-1-berrange@redhat.com>
> ("crypto: fix build with gcrypt")
> 
> which does at least allow *-softmmu builds to complete,
> though I still have issues with *-linux-user.

Thanks, I've queued this series now.

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|