Re: Re: [PATCH v3 0/4] Introduce akcipher service for virtio-crypto

From: zhenwei pi
Date: Wed Mar 02 2022 - 21:02:15 EST


On 3/3/22 4:40 AM, Eric Biggers wrote:
On Wed, Mar 02, 2022 at 11:39:13AM +0800, zhenwei pi wrote:
v2 -> v3:
Rename virtio_crypto_algs.c to virtio_crypto_skcipher_algs.c, and
minor changes of function name.
Minor changes in virtio_crypto_akcipher_algs.c: no need to copy from
buffer if opcode is verify.

v1 -> v2:
Fix 1 compiling warning reported by kernel test robot <lkp@xxxxxxxxx>
Put "__le32 akcipher_algo;" instead of "__le32 reserve;" field of
struct virtio_crypto_config directly without size change.
Add padding in struct virtio_crypto_ecdsa_session_para to keep
64-bit alignment.
Remove irrelevant change by code format alignment.

Also CC crypto gurus Herbert and linux-crypto@xxxxxxxxxxxxxxx.

Test with QEMU(patched by the v2 version), works fine.

v1:
Introduce akcipher service, implement RSA algorithm, and a minor fix.

zhenwei pi (4):
virtio_crypto: Introduce VIRTIO_CRYPTO_NOSPC
virtio-crypto: introduce akcipher service
virtio-crypto: implement RSA algorithm
virtio-crypto: rename skcipher algs

drivers/crypto/virtio/Makefile | 3 +-
.../virtio/virtio_crypto_akcipher_algs.c | 585 ++++++++++++++++++
drivers/crypto/virtio/virtio_crypto_common.h | 7 +-
drivers/crypto/virtio/virtio_crypto_core.c | 6 +-
drivers/crypto/virtio/virtio_crypto_mgr.c | 15 +-
...o_algs.c => virtio_crypto_skcipher_algs.c} | 4 +-
include/uapi/linux/virtio_crypto.h | 82 ++-
7 files changed, 693 insertions(+), 9 deletions(-)
create mode 100644 drivers/crypto/virtio/virtio_crypto_akcipher_algs.c
rename drivers/crypto/virtio/{virtio_crypto_algs.c => virtio_crypto_skcipher_algs.c} (99%)

Why is this patchset useful? That isn't explained anywhere.

- Eric

Sorry about this missing part.

This feature provides akcipher service offloading capability for guest side. And I also sent a patchset of QEMU:
https://patchwork.kernel.org/project/qemu-devel/cover/20220211084335.1254281-1-pizhenwei@xxxxxxxxxxxxx/

The two patchsets work together, guest side sends encrypt/decrypt/sign/verify requests to host side, host side handles request and return response to the guest.

--
zhenwei pi