This series is just the block layer parts needed to add a LUKS driver to QEMU. It was previously posted as part of the larger series
v1: https://lists.gnu.org/archive/html/qemu-devel/2015-11/msg04748.html v2: https://lists.gnu.org/archive/html/qemu-block/2016-01/msg00534.html v3: https://lists.gnu.org/archive/html/qemu-devel/2016-02/msg03176.html v4: https://lists.gnu.org/archive/html/qemu-devel/2016-02/msg06552.html The crypto subsystem pieces that this series depends on have been submitted for merge https://lists.gnu.org/archive/html/qemu-devel/2016-03/msg04371.html In this posting I am only proposing merge of the generic LUKS driver. This can be added as a layer above any of the existing drivers for accessing LUKS formatted volumes. When creating new volumes, however, only the file backend can be used, since the block driver API doesn't allow for arbitrary stacking of protocols when creating images. The integration with the qcow2 driver to replace the existing built-in AES-CBC code is dropped from this series, postponed until the 2.7 development cycle. There is a QEMU I/O test 149 that exercises the LUKS driver and checks for compatibility with the dm-crypt/cryptsetup impl. Daniel P. Berrange (7): block: add flag to indicate that no I/O will be performed qemu-img/qemu-io: don't prompt for passwords if not required tests: redirect stderr to stdout for iotests tests: refactor python I/O tests helper main method tests: add output filter to python I/O tests helper block: add generic full disk encryption driver block: drop support for using qcow[2] encryption with system emulators block.c | 17 +- block/Makefile.objs | 2 + block/crypto.c | 587 +++++++++++++ block/io.c | 2 + block/qcow.c | 11 + block/qcow2.c | 11 + include/block/block.h | 2 + qapi/block-core.json | 22 +- qemu-img.c | 45 +- qemu-io.c | 2 +- tests/qemu-iotests/049.out | 6 - tests/qemu-iotests/087.out | 22 +- tests/qemu-iotests/134.out | 18 - tests/qemu-iotests/149 | 521 ++++++++++++ tests/qemu-iotests/149.out | 1880 +++++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/common | 7 + tests/qemu-iotests/group | 1 + tests/qemu-iotests/iotests.py | 48 +- 18 files changed, 3118 insertions(+), 86 deletions(-) create mode 100644 block/crypto.c create mode 100755 tests/qemu-iotests/149 create mode 100644 tests/qemu-iotests/149.out -- 2.5.0