block: add ability to set a prefix for opt names

When integrating the crypto support with qcow/qcow2, we don't
want to use the bare LUKS option names "hash-alg", "key-secret",
etc. We need to namespace them to match the nested QAPI schema.

e.g. "encrypt.hash-alg", "encrypt.key-secret"

so that they don't clash with any general qcow options at a later
date.

Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Reviewed-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 20170623162419.26068-3-berrange@redhat.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
Daniel P. Berrange 2017-06-23 17:24:01 +01:00 committed by Max Reitz
parent 306a06e5f7
commit 4a47f85431
2 changed files with 28 additions and 28 deletions

View file

@ -129,7 +129,7 @@ static QemuOptsList block_crypto_runtime_opts_luks = {
.name = "crypto", .name = "crypto",
.head = QTAILQ_HEAD_INITIALIZER(block_crypto_runtime_opts_luks.head), .head = QTAILQ_HEAD_INITIALIZER(block_crypto_runtime_opts_luks.head),
.desc = { .desc = {
BLOCK_CRYPTO_OPT_DEF_LUKS_KEY_SECRET, BLOCK_CRYPTO_OPT_DEF_LUKS_KEY_SECRET(""),
{ /* end of list */ } { /* end of list */ }
}, },
}; };
@ -144,13 +144,13 @@ static QemuOptsList block_crypto_create_opts_luks = {
.type = QEMU_OPT_SIZE, .type = QEMU_OPT_SIZE,
.help = "Virtual disk size" .help = "Virtual disk size"
}, },
BLOCK_CRYPTO_OPT_DEF_LUKS_KEY_SECRET, BLOCK_CRYPTO_OPT_DEF_LUKS_KEY_SECRET(""),
BLOCK_CRYPTO_OPT_DEF_LUKS_CIPHER_ALG, BLOCK_CRYPTO_OPT_DEF_LUKS_CIPHER_ALG(""),
BLOCK_CRYPTO_OPT_DEF_LUKS_CIPHER_MODE, BLOCK_CRYPTO_OPT_DEF_LUKS_CIPHER_MODE(""),
BLOCK_CRYPTO_OPT_DEF_LUKS_IVGEN_ALG, BLOCK_CRYPTO_OPT_DEF_LUKS_IVGEN_ALG(""),
BLOCK_CRYPTO_OPT_DEF_LUKS_IVGEN_HASH_ALG, BLOCK_CRYPTO_OPT_DEF_LUKS_IVGEN_HASH_ALG(""),
BLOCK_CRYPTO_OPT_DEF_LUKS_HASH_ALG, BLOCK_CRYPTO_OPT_DEF_LUKS_HASH_ALG(""),
BLOCK_CRYPTO_OPT_DEF_LUKS_ITER_TIME, BLOCK_CRYPTO_OPT_DEF_LUKS_ITER_TIME(""),
{ /* end of list */ } { /* end of list */ }
}, },
}; };

View file

@ -29,51 +29,51 @@
#define BLOCK_CRYPTO_OPT_LUKS_HASH_ALG "hash-alg" #define BLOCK_CRYPTO_OPT_LUKS_HASH_ALG "hash-alg"
#define BLOCK_CRYPTO_OPT_LUKS_ITER_TIME "iter-time" #define BLOCK_CRYPTO_OPT_LUKS_ITER_TIME "iter-time"
#define BLOCK_CRYPTO_OPT_DEF_LUKS_KEY_SECRET \ #define BLOCK_CRYPTO_OPT_DEF_LUKS_KEY_SECRET(prefix) \
{ \ { \
.name = BLOCK_CRYPTO_OPT_LUKS_KEY_SECRET, \ .name = prefix BLOCK_CRYPTO_OPT_LUKS_KEY_SECRET, \
.type = QEMU_OPT_STRING, \ .type = QEMU_OPT_STRING, \
.help = "ID of the secret that provides the keyslot passphrase", \ .help = "ID of the secret that provides the keyslot passphrase", \
} }
#define BLOCK_CRYPTO_OPT_DEF_LUKS_CIPHER_ALG \ #define BLOCK_CRYPTO_OPT_DEF_LUKS_CIPHER_ALG(prefix) \
{ \ { \
.name = BLOCK_CRYPTO_OPT_LUKS_CIPHER_ALG, \ .name = prefix BLOCK_CRYPTO_OPT_LUKS_CIPHER_ALG, \
.type = QEMU_OPT_STRING, \ .type = QEMU_OPT_STRING, \
.help = "Name of encryption cipher algorithm", \ .help = "Name of encryption cipher algorithm", \
} }
#define BLOCK_CRYPTO_OPT_DEF_LUKS_CIPHER_MODE \ #define BLOCK_CRYPTO_OPT_DEF_LUKS_CIPHER_MODE(prefix) \
{ \ { \
.name = BLOCK_CRYPTO_OPT_LUKS_CIPHER_MODE, \ .name = prefix BLOCK_CRYPTO_OPT_LUKS_CIPHER_MODE, \
.type = QEMU_OPT_STRING, \ .type = QEMU_OPT_STRING, \
.help = "Name of encryption cipher mode", \ .help = "Name of encryption cipher mode", \
} }
#define BLOCK_CRYPTO_OPT_DEF_LUKS_IVGEN_ALG \ #define BLOCK_CRYPTO_OPT_DEF_LUKS_IVGEN_ALG(prefix) \
{ \ { \
.name = BLOCK_CRYPTO_OPT_LUKS_IVGEN_ALG, \ .name = prefix BLOCK_CRYPTO_OPT_LUKS_IVGEN_ALG, \
.type = QEMU_OPT_STRING, \ .type = QEMU_OPT_STRING, \
.help = "Name of IV generator algorithm", \ .help = "Name of IV generator algorithm", \
} }
#define BLOCK_CRYPTO_OPT_DEF_LUKS_IVGEN_HASH_ALG \ #define BLOCK_CRYPTO_OPT_DEF_LUKS_IVGEN_HASH_ALG(prefix) \
{ \ { \
.name = BLOCK_CRYPTO_OPT_LUKS_IVGEN_HASH_ALG, \ .name = prefix BLOCK_CRYPTO_OPT_LUKS_IVGEN_HASH_ALG, \
.type = QEMU_OPT_STRING, \ .type = QEMU_OPT_STRING, \
.help = "Name of IV generator hash algorithm", \ .help = "Name of IV generator hash algorithm", \
} }
#define BLOCK_CRYPTO_OPT_DEF_LUKS_HASH_ALG \ #define BLOCK_CRYPTO_OPT_DEF_LUKS_HASH_ALG(prefix) \
{ \ { \
.name = BLOCK_CRYPTO_OPT_LUKS_HASH_ALG, \ .name = prefix BLOCK_CRYPTO_OPT_LUKS_HASH_ALG, \
.type = QEMU_OPT_STRING, \ .type = QEMU_OPT_STRING, \
.help = "Name of encryption hash algorithm", \ .help = "Name of encryption hash algorithm", \
} }
#define BLOCK_CRYPTO_OPT_DEF_LUKS_ITER_TIME \ #define BLOCK_CRYPTO_OPT_DEF_LUKS_ITER_TIME(prefix) \
{ \ { \
.name = BLOCK_CRYPTO_OPT_LUKS_ITER_TIME, \ .name = prefix BLOCK_CRYPTO_OPT_LUKS_ITER_TIME, \
.type = QEMU_OPT_NUMBER, \ .type = QEMU_OPT_NUMBER, \
.help = "Time to spend in PBKDF in milliseconds", \ .help = "Time to spend in PBKDF in milliseconds", \
} }