[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 00/10] virtio-crypto: introduce framework and dev
From: |
Gonglei |
Subject: |
[Qemu-devel] [PATCH v3 00/10] virtio-crypto: introduce framework and device emulation |
Date: |
Mon, 19 Sep 2016 16:16:12 +0800 |
Changes since v2:
According to Daniel's comments:
- drop cryptodev kernel module as a cryptodev backend
- rename crypto stuff to cryptodev stuff
- change some files' license to GPLv2+
- remove cryptodev command line instead of QOM to define the cryptodev backend
- rename all functions and structures in crypto sub-directory.
- add full inline documentation for cryptodev.h
And:
- drop crypto-queue.c [Paolo]
- merge some patches
Great thanks to Daniel and Paolo. Please review again, thanks!
Changes since v1:
- rmmove mixed endian-ness handler for virtio-crypto device, just
use little-endian. [mst]
- add sg list support according virtio-crypto spec v10 (will be posted soon).
- fix a memory leak in session handler.
- add a feature page link in qemu.org
(http://qemu-project.org/Features/VirtioCrypto)
- fix some trivial problems, sush as 's/Since 2.7/Since 2.8/g' in
qapi-schema.json
- rebase the latest qemu master tree.
This patch series realize the framework and emulation of a new
virtio crypto device, which is similar with virtio net device.
- I introduce the cryptodev backend as the client of virtio crypto device
which can be realized by different methods, such as cryptodev-backend-gcrypt
in my series,
vhost-crypto kernel module, vhost-user etc.
- The patch set abides by the virtio crypto speccification.
- The virtio crypto support symmetric algorithms (including CIPHER and
algorithm chainning)
at present, except HASH, MAC and AEAD services.
- unsupport hot plug/unplug cryptodev backend at this moment.
Firstly build QEMU with libgcrypt cryptography support.
QEMU can then be started using the following parameters:
qemu-system-x86_64 \
[...] \
-object cryptodev-backend-gcrypt,id=cryptodev0 \
-device virtio-crypto-pci,id=crypto0,cryptodev=cryptodev0 \
[...]
The front-end linux kernel driver (Experimental at present) is publicly
accessible from:
https://github.com/gongleiarei/virtio-crypto-linux-driver.git
After insmod virtio-crypto.ko, you can use cryptodev-linux test the crypto
function
in the guest. For example:
linux-guest:/home/gonglei/cryptodev-linux/tests # ./cipher -
requested cipher CRYPTO_AES_CBC, got cbc(aes) with driver virtio_crypto_aes_cbc
AES Test passed
requested cipher CRYPTO_AES_CBC, got cbc(aes) with driver virtio_crypto_aes_cbc
requested cipher CRYPTO_AES_CBC, got cbc(aes) with driver virtio_crypto_aes_cbc
Test passed
QEMU code also can be accessible from:
https://github.com/gongleiarei/qemu.git
branch virtio-crypto
For more information, please see:
http://qemu-project.org/Features/VirtioCrypto
Gonglei (10):
cryptodev: introduce cryptodev backend interface
cryptodev: add symmetric algorithm operation stuff
virtio-crypto: introduce virtio_crypto.h
cryptodev: introduce gcrypt lib as a new cryptodev backend
virtio-crypto: add virtio crypto device emulation
virtio-crypto-pci: add virtio crypto pci support
virtio-crypto: set capacity of algorithms supported
virtio-crypto: add control queue handler
virtio-crypto: add data queue processing handler
cryptodev: introduce an unified wrapper for crypto operation
crypto/Makefile.objs | 2 +
crypto/cryptodev-gcrypt.c | 329 +++++++++
crypto/cryptodev.c | 243 +++++++
hw/virtio/Makefile.objs | 2 +
hw/virtio/virtio-crypto-pci.c | 76 +++
hw/virtio/virtio-crypto.c | 904 +++++++++++++++++++++++++
hw/virtio/virtio-pci.h | 15 +
include/crypto/cryptodev.h | 276 ++++++++
include/hw/virtio/virtio-crypto.h | 100 +++
include/standard-headers/linux/virtio_crypto.h | 466 +++++++++++++
qemu-options.hx | 18 +
11 files changed, 2431 insertions(+)
create mode 100644 crypto/cryptodev-gcrypt.c
create mode 100644 crypto/cryptodev.c
create mode 100644 hw/virtio/virtio-crypto-pci.c
create mode 100644 hw/virtio/virtio-crypto.c
create mode 100644 include/crypto/cryptodev.h
create mode 100644 include/hw/virtio/virtio-crypto.h
create mode 100644 include/standard-headers/linux/virtio_crypto.h
--
1.7.12.4
- [Qemu-devel] [PATCH v3 00/10] virtio-crypto: introduce framework and device emulation,
Gonglei <=
- [Qemu-devel] [PATCH v3 02/10] cryptodev: add symmetric algorithm operation stuff, Gonglei, 2016/09/19
- [Qemu-devel] [PATCH v3 05/10] virtio-crypto: add virtio crypto device emulation, Gonglei, 2016/09/19
- [Qemu-devel] [PATCH v3 01/10] cryptodev: introduce cryptodev backend interface, Gonglei, 2016/09/19
- [Qemu-devel] [PATCH v3 07/10] virtio-crypto: set capacity of algorithms supported, Gonglei, 2016/09/19
- [Qemu-devel] [PATCH v3 09/10] virtio-crypto: add data queue processing handler, Gonglei, 2016/09/19
- [Qemu-devel] [PATCH v3 10/10] cryptodev: introduce an unified wrapper for crypto operation, Gonglei, 2016/09/19
- [Qemu-devel] [PATCH v3 06/10] virtio-crypto-pci: add virtio crypto pci support, Gonglei, 2016/09/19
- [Qemu-devel] [PATCH v3 04/10] cryptodev: introduce gcrypt lib as a new cryptodev backend, Gonglei, 2016/09/19