*NOTE* The code realization is based on the latest virtio crypto spec: [PATCH v21 0/2] virtio-crypto: virtio crypto device specification
In session mode, the process of create/close a session makes we have a least one full round-trip cost from guest to host to guest to be able to send any data for symmetric algorithms. It gets ourself into synchronization troubles in some scenarios like a web server handling lots of small requests whose algorithms and keys are different. We can support one-blob request (no sessions) as well for symmetric algorithms, including HASH, MAC services. The benefit is obvious for HASH service because it's usually a one-blob operation. --- Gonglei (2): cryptodev: extract one util function virtio-crypto: add host feature bits support Longpeng(Mike) (8): virtio-crypto: remove virtio_crypto_op_ctrl_req structure virtio-crypto: add session creation logic for mux mode virtio-crypto: remove queue_id field in ctrl header virtio-crypto: remove virtio_crypto_op_data_req structure virtio-crypto: add dataq operation logic for mux mode cryptodev: add stateless mode cipher support virtio-crypto: add stateless crypto request handler cryptodev-builtin: add stateless cipher support backends/cryptodev-builtin.c | 189 +++++++++--- backends/cryptodev.c | 21 ++ hw/virtio/virtio-crypto.c | 403 +++++++++++++++++++++++-- include/hw/virtio/virtio-crypto.h | 2 + include/standard-headers/linux/virtio_crypto.h | 199 ++++++++++-- include/sysemu/cryptodev.h | 21 ++ 6 files changed, 735 insertions(+), 100 deletions(-) -- 1.8.3.1