[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PATCH 4/5] qemu-io: prompt for encryption keys when requir
From: |
Daniel P. Berrange |
Subject: |
[Qemu-block] [PATCH 4/5] qemu-io: prompt for encryption keys when required |
Date: |
Tue, 12 May 2015 17:09:21 +0100 |
The qemu-io tool does not check if the image is encrypted so
historically would silently corrupt the sectors by writing
plain text data into them instead of cipher text. The earlier
commit turns this mistake into a fatal abort, so check for
encryption and prompt for key when required.
This enables us to add unit tests to ensure we don't break
the ability of qemu-img to convert existing encrypted qcow2
files into a non-encrypted format.
Signed-off-by: Daniel P. Berrange <address@hidden>
---
qemu-io.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
diff --git a/qemu-io.c b/qemu-io.c
index 8e41080..34ae933 100644
--- a/qemu-io.c
+++ b/qemu-io.c
@@ -52,6 +52,7 @@ static const cmdinfo_t close_cmd = {
static int openfile(char *name, int flags, QDict *opts)
{
Error *local_err = NULL;
+ BlockDriverState *bs;
if (qemuio_blk) {
fprintf(stderr, "file open already, try 'help close'\n");
@@ -68,7 +69,27 @@ static int openfile(char *name, int flags, QDict *opts)
return 1;
}
+ bs = blk_bs(qemuio_blk);
+ if (bdrv_is_encrypted(bs)) {
+ char password[256];
+ printf("Disk image '%s' is encrypted.\n", name);
+ if (qemu_read_password(password, sizeof(password)) < 0) {
+ error_report("No password given");
+ goto error;
+ }
+ if (bdrv_set_key(bs, password) < 0) {
+ error_report("invalid password");
+ goto error;
+ }
+ }
+
+
return 0;
+
+ error:
+ blk_unref(qemuio_blk);
+ qemuio_blk = NULL;
+ return 1;
}
static void open_help(void)
--
2.1.0
[Qemu-block] [PATCH 4/5] qemu-io: prompt for encryption keys when required,
Daniel P. Berrange <=
[Qemu-block] [PATCH 2/5] util: move read_password method out of qemu-img into osdep/oslib, Daniel P. Berrange, 2015/05/12
Re: [Qemu-block] [PATCH 0/5] Misc fixes and testing of qcow[2] encryption, Kevin Wolf, 2015/05/18