[PATCH v8 00/14] LUKS: encryption slot management using amend interface

Maxim Levitsky posted 14 patches 3 years, 10 months ago
Test docker-mingw@fedora passed
Test checkpatch failed
Test asan passed
Test docker-quick@centos7 passed
Test FreeBSD passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20200608094030.670121-1-mlevitsk@redhat.com
block.c                          |   4 +-
block/Makefile.objs              |   2 +-
block/amend.c                    | 113 +++++++++
block/crypto.c                   | 206 +++++++++++++--
block/crypto.h                   |  37 +++
block/qcow2.c                    | 332 +++++++++++++-----------
crypto/block-luks.c              | 416 ++++++++++++++++++++++++++++++-
crypto/block.c                   |  29 +++
crypto/blockpriv.h               |   8 +
docs/tools/qemu-img.rst          |   5 +-
include/block/block.h            |   1 +
include/block/block_int.h        |  24 +-
include/crypto/block.h           |  22 ++
qapi/block-core.json             |  68 +++++
qapi/crypto.json                 |  73 +++++-
qapi/job.json                    |   4 +-
qemu-img-cmds.hx                 |   4 +-
qemu-img.c                       |  44 +++-
tests/qemu-iotests/049.out       | 102 ++++----
tests/qemu-iotests/061.out       |  12 +-
tests/qemu-iotests/079.out       |  18 +-
tests/qemu-iotests/082.out       | 185 ++++----------
tests/qemu-iotests/085.out       |  38 +--
tests/qemu-iotests/087.out       |   6 +-
tests/qemu-iotests/115.out       |   2 +-
tests/qemu-iotests/121.out       |   4 +-
tests/qemu-iotests/125.out       | 192 +++++++-------
tests/qemu-iotests/134.out       |   2 +-
tests/qemu-iotests/144.out       |   4 +-
tests/qemu-iotests/158.out       |   4 +-
tests/qemu-iotests/182.out       |   2 +-
tests/qemu-iotests/185.out       |   8 +-
tests/qemu-iotests/188.out       |   2 +-
tests/qemu-iotests/189.out       |   4 +-
tests/qemu-iotests/198.out       |   4 +-
tests/qemu-iotests/243.out       |  16 +-
tests/qemu-iotests/250.out       |   2 +-
tests/qemu-iotests/255.out       |   8 +-
tests/qemu-iotests/259.out       |   2 +-
tests/qemu-iotests/263.out       |   4 +-
tests/qemu-iotests/274.out       |  46 ++--
tests/qemu-iotests/280.out       |   2 +-
tests/qemu-iotests/284.out       |   6 +-
tests/qemu-iotests/293           | 207 +++++++++++++++
tests/qemu-iotests/293.out       |  99 ++++++++
tests/qemu-iotests/294           |  90 +++++++
tests/qemu-iotests/294.out       |  30 +++
tests/qemu-iotests/295           | 279 +++++++++++++++++++++
tests/qemu-iotests/295.out       |  40 +++
tests/qemu-iotests/296           | 234 +++++++++++++++++
tests/qemu-iotests/296.out       |  33 +++
tests/qemu-iotests/common.filter |   6 +-
tests/qemu-iotests/group         |   4 +
53 files changed, 2524 insertions(+), 565 deletions(-)
create mode 100644 block/amend.c
create mode 100755 tests/qemu-iotests/293
create mode 100644 tests/qemu-iotests/293.out
create mode 100755 tests/qemu-iotests/294
create mode 100644 tests/qemu-iotests/294.out
create mode 100755 tests/qemu-iotests/295
create mode 100644 tests/qemu-iotests/295.out
create mode 100755 tests/qemu-iotests/296
create mode 100644 tests/qemu-iotests/296.out
[PATCH v8 00/14] LUKS: encryption slot management using amend interface
Posted by Maxim Levitsky 3 years, 10 months ago
clone of "luks-keymgmnt-v2"

Maxim Levitsky (14):
  qcrypto/core: add generic infrastructure for crypto options amendment
  qcrypto/luks: implement encryption key management
  block/amend: add 'force' option
  block/amend: separate amend and create options for qemu-img
  block/amend: refactor qcow2 amend options
  block/crypto: rename two functions
  block/crypto: implement the encryption key management
  block/qcow2: extend qemu-img amend interface with crypto options
  iotests: filter few more luks specific create options
  iotests: qemu-img tests for luks key management
  block/core: add generic infrastructure for x-blockdev-amend qmp
    command
  block/crypto: implement blockdev-amend
  block/qcow2: implement blockdev-amend
  iotests: add tests for blockdev-amend

 block.c                          |   4 +-
 block/Makefile.objs              |   2 +-
 block/amend.c                    | 113 +++++++++
 block/crypto.c                   | 206 +++++++++++++--
 block/crypto.h                   |  37 +++
 block/qcow2.c                    | 332 +++++++++++++-----------
 crypto/block-luks.c              | 416 ++++++++++++++++++++++++++++++-
 crypto/block.c                   |  29 +++
 crypto/blockpriv.h               |   8 +
 docs/tools/qemu-img.rst          |   5 +-
 include/block/block.h            |   1 +
 include/block/block_int.h        |  24 +-
 include/crypto/block.h           |  22 ++
 qapi/block-core.json             |  68 +++++
 qapi/crypto.json                 |  73 +++++-
 qapi/job.json                    |   4 +-
 qemu-img-cmds.hx                 |   4 +-
 qemu-img.c                       |  44 +++-
 tests/qemu-iotests/049.out       | 102 ++++----
 tests/qemu-iotests/061.out       |  12 +-
 tests/qemu-iotests/079.out       |  18 +-
 tests/qemu-iotests/082.out       | 185 ++++----------
 tests/qemu-iotests/085.out       |  38 +--
 tests/qemu-iotests/087.out       |   6 +-
 tests/qemu-iotests/115.out       |   2 +-
 tests/qemu-iotests/121.out       |   4 +-
 tests/qemu-iotests/125.out       | 192 +++++++-------
 tests/qemu-iotests/134.out       |   2 +-
 tests/qemu-iotests/144.out       |   4 +-
 tests/qemu-iotests/158.out       |   4 +-
 tests/qemu-iotests/182.out       |   2 +-
 tests/qemu-iotests/185.out       |   8 +-
 tests/qemu-iotests/188.out       |   2 +-
 tests/qemu-iotests/189.out       |   4 +-
 tests/qemu-iotests/198.out       |   4 +-
 tests/qemu-iotests/243.out       |  16 +-
 tests/qemu-iotests/250.out       |   2 +-
 tests/qemu-iotests/255.out       |   8 +-
 tests/qemu-iotests/259.out       |   2 +-
 tests/qemu-iotests/263.out       |   4 +-
 tests/qemu-iotests/274.out       |  46 ++--
 tests/qemu-iotests/280.out       |   2 +-
 tests/qemu-iotests/284.out       |   6 +-
 tests/qemu-iotests/293           | 207 +++++++++++++++
 tests/qemu-iotests/293.out       |  99 ++++++++
 tests/qemu-iotests/294           |  90 +++++++
 tests/qemu-iotests/294.out       |  30 +++
 tests/qemu-iotests/295           | 279 +++++++++++++++++++++
 tests/qemu-iotests/295.out       |  40 +++
 tests/qemu-iotests/296           | 234 +++++++++++++++++
 tests/qemu-iotests/296.out       |  33 +++
 tests/qemu-iotests/common.filter |   6 +-
 tests/qemu-iotests/group         |   4 +
 53 files changed, 2524 insertions(+), 565 deletions(-)
 create mode 100644 block/amend.c
 create mode 100755 tests/qemu-iotests/293
 create mode 100644 tests/qemu-iotests/293.out
 create mode 100755 tests/qemu-iotests/294
 create mode 100644 tests/qemu-iotests/294.out
 create mode 100755 tests/qemu-iotests/295
 create mode 100644 tests/qemu-iotests/295.out
 create mode 100755 tests/qemu-iotests/296
 create mode 100644 tests/qemu-iotests/296.out

-- 
2.25.4



Re: [PATCH v8 00/14] LUKS: encryption slot management using amend interface
Posted by no-reply@patchew.org 3 years, 10 months ago
Patchew URL: https://patchew.org/QEMU/20200608094030.670121-1-mlevitsk@redhat.com/



Hi,

This series seems to have some coding style problems. See output below for
more information:

Message-id: 20200608094030.670121-1-mlevitsk@redhat.com
Subject: [PATCH v8 00/14] LUKS: encryption slot management using amend interface
Type: series

=== TEST SCRIPT BEGIN ===
#!/bin/bash
git rev-parse base > /dev/null || exit 0
git config --local diff.renamelimit 0
git config --local diff.renames True
git config --local diff.algorithm histogram
./scripts/checkpatch.pl --mailback base..
=== TEST SCRIPT END ===

Switched to a new branch 'test'
4d8672a iotests: add tests for blockdev-amend
ec03772 block/qcow2: implement blockdev-amend
3030192 block/crypto: implement blockdev-amend
a75da8b block/core: add generic infrastructure for x-blockdev-amend qmp command
87a938e iotests: qemu-img tests for luks key management
30f52a4 iotests: filter few more luks specific create options
129e501 block/qcow2: extend qemu-img amend interface with crypto options
116b8bd block/crypto: implement the encryption key management
183f225 block/crypto: rename two functions
7d12d08 block/amend: refactor qcow2 amend options
d020431 block/amend: separate amend and create options for qemu-img
b3e5b99 block/amend: add 'force' option
c27fd96 qcrypto/luks: implement encryption key management
42bf31c qcrypto/core: add generic infrastructure for crypto options amendment

=== OUTPUT BEGIN ===
1/14 Checking commit 42bf31cd3d88 (qcrypto/core: add generic infrastructure for crypto options amendment)
2/14 Checking commit c27fd96bdf42 (qcrypto/luks: implement encryption key management)
3/14 Checking commit b3e5b998738e (block/amend: add 'force' option)
4/14 Checking commit d020431209d6 (block/amend: separate amend and create options for qemu-img)
ERROR: Macros with multiple statements should be enclosed in a do - while loop
#32: FILE: block/qcow2.c:5652:
+#define QCOW_COMMON_OPTIONS                                         \
+    {                                                               \
+        .name = BLOCK_OPT_SIZE,                                     \
+        .type = QEMU_OPT_SIZE,                                      \
+        .help = "Virtual disk size"                                 \
+    },                                                              \
+    {                                                               \
+        .name = BLOCK_OPT_COMPAT_LEVEL,                             \
+        .type = QEMU_OPT_STRING,                                    \
+        .help = "Compatibility level (v2 [0.10] or v3 [1.1])"       \
+    },                                                              \
+    {                                                               \
+        .name = BLOCK_OPT_BACKING_FILE,                             \
+        .type = QEMU_OPT_STRING,                                    \
+        .help = "File name of a base image"                         \
+    },                                                              \
+    {                                                               \
+        .name = BLOCK_OPT_BACKING_FMT,                              \
+        .type = QEMU_OPT_STRING,                                    \
+        .help = "Image format of the base image"                    \
+    },                                                              \
+    {                                                               \
+        .name = BLOCK_OPT_DATA_FILE,                                \
+        .type = QEMU_OPT_STRING,                                    \
+        .help = "File name of an external data file"                \
+    },                                                              \
+    {                                                               \
+        .name = BLOCK_OPT_DATA_FILE_RAW,                            \
+        .type = QEMU_OPT_BOOL,                                      \
+        .help = "The external data file must stay valid "           \
+                "as a raw image"                                    \
+    },                                                              \
+    {                                                               \
+        .name = BLOCK_OPT_ENCRYPT,                                  \
+        .type = QEMU_OPT_BOOL,                                      \
+        .help = "Encrypt the image with format 'aes'. (Deprecated " \
+                "in favor of " BLOCK_OPT_ENCRYPT_FORMAT "=aes)",    \
+    },                                                              \
+    {                                                               \
+        .name = BLOCK_OPT_ENCRYPT_FORMAT,                           \
+        .type = QEMU_OPT_STRING,                                    \
+        .help = "Encrypt the image, format choices: 'aes', 'luks'", \
+    },                                                              \
+    BLOCK_CRYPTO_OPT_DEF_KEY_SECRET("encrypt.",                     \
+        "ID of secret providing qcow AES key or LUKS passphrase"),  \
+    BLOCK_CRYPTO_OPT_DEF_LUKS_CIPHER_ALG("encrypt."),               \
+    BLOCK_CRYPTO_OPT_DEF_LUKS_CIPHER_MODE("encrypt."),              \
+    BLOCK_CRYPTO_OPT_DEF_LUKS_IVGEN_ALG("encrypt."),                \
+    BLOCK_CRYPTO_OPT_DEF_LUKS_IVGEN_HASH_ALG("encrypt."),           \
+    BLOCK_CRYPTO_OPT_DEF_LUKS_HASH_ALG("encrypt."),                 \
+    BLOCK_CRYPTO_OPT_DEF_LUKS_ITER_TIME("encrypt."),                \
+    {                                                               \
+        .name = BLOCK_OPT_CLUSTER_SIZE,                             \
+        .type = QEMU_OPT_SIZE,                                      \
+        .help = "qcow2 cluster size",                               \
+        .def_value_str = stringify(DEFAULT_CLUSTER_SIZE)            \
+    },                                                              \
+    {                                                               \
+        .name = BLOCK_OPT_PREALLOC,                                 \
+        .type = QEMU_OPT_STRING,                                    \
+        .help = "Preallocation mode (allowed values: off, "         \
+                "metadata, falloc, full)"                           \
+    },                                                              \
+    {                                                               \
+        .name = BLOCK_OPT_LAZY_REFCOUNTS,                           \
+        .type = QEMU_OPT_BOOL,                                      \
+        .help = "Postpone refcount updates",                        \
+        .def_value_str = "off"                                      \
+    },                                                              \
+    {                                                               \
+        .name = BLOCK_OPT_REFCOUNT_BITS,                            \
+        .type = QEMU_OPT_NUMBER,                                    \
+        .help = "Width of a reference count entry in bits",         \
+        .def_value_str = "16"                                       \
+    },                                                              \
+    {                                                               \
+        .name = BLOCK_OPT_COMPRESSION_TYPE,                         \
+        .type = QEMU_OPT_STRING,                                    \
+        .help = "Compression method used for image cluster "        \
+                "compression",                                      \
+        .def_value_str = "zlib"                                     \
+    }

total: 1 errors, 0 warnings, 244 lines checked

Patch 4/14 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.

5/14 Checking commit 7d12d0850545 (block/amend: refactor qcow2 amend options)
6/14 Checking commit 183f225990c7 (block/crypto: rename two functions)
7/14 Checking commit 116b8bd6b3d4 (block/crypto: implement the encryption key management)
8/14 Checking commit 129e50113bb7 (block/qcow2: extend qemu-img amend interface with crypto options)
9/14 Checking commit 30f52a4a450d (iotests: filter few more luks specific create options)
10/14 Checking commit 87a938ea05ad (iotests: qemu-img tests for luks key management)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#15: 
new file mode 100755

total: 0 errors, 1 warnings, 432 lines checked

Patch 10/14 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
11/14 Checking commit a75da8b41263 (block/core: add generic infrastructure for x-blockdev-amend qmp command)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#31: 
new file mode 100644

total: 0 errors, 1 warnings, 221 lines checked

Patch 11/14 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
12/14 Checking commit 303019243520 (block/crypto: implement blockdev-amend)
13/14 Checking commit ec03772d541a (block/qcow2: implement blockdev-amend)
14/14 Checking commit 4d8672ae9ead (iotests: add tests for blockdev-amend)
WARNING: added, moved or deleted file(s), does MAINTAINERS need updating?
#15: 
new file mode 100755

total: 0 errors, 1 warnings, 592 lines checked

Patch 14/14 has style problems, please review.  If any of these errors
are false positives report them to the maintainer, see
CHECKPATCH in MAINTAINERS.
=== OUTPUT END ===

Test command exited with code: 1


The full log is available at
http://patchew.org/logs/20200608094030.670121-1-mlevitsk@redhat.com/testing.checkpatch/?type=message.
---
Email generated automatically by Patchew [https://patchew.org/].
Please send your feedback to patchew-devel@redhat.com
Re: [PATCH v8 00/14] LUKS: encryption slot management using amend interface
Posted by Max Reitz 3 years, 10 months ago
On 08.06.20 11:40, Maxim Levitsky wrote:
> clone of "luks-keymgmnt-v2"
> 
> Maxim Levitsky (14):
>   qcrypto/core: add generic infrastructure for crypto options amendment
>   qcrypto/luks: implement encryption key management
>   block/amend: add 'force' option
>   block/amend: separate amend and create options for qemu-img
>   block/amend: refactor qcow2 amend options
>   block/crypto: rename two functions
>   block/crypto: implement the encryption key management
>   block/qcow2: extend qemu-img amend interface with crypto options
>   iotests: filter few more luks specific create options
>   iotests: qemu-img tests for luks key management
>   block/core: add generic infrastructure for x-blockdev-amend qmp
>     command
>   block/crypto: implement blockdev-amend
>   block/qcow2: implement blockdev-amend
>   iotests: add tests for blockdev-amend

Thanks, applied to my block branch:

https://git.xanclic.moe/XanClic/qemu/commits/branch/block