> 2. When I start qemu, it just hangs there waiting for (assumingly) the
> password of the encrypted image. However I cannot find the place where
> the prompt actually is.
qemu_key_check in vl.c does use monitor_readline, so you should see a
"Password:"
prompt in the monitor window (press ctrl-alt-2 to get there).
The initialization order seems to be wrong in main() (vl.c):
for(i = 0; i < nb_drives_opt; i++)
if (drive_init(&drives_opt[i], snapshot, machine) == -1)
exit(1);
...
*_display_init();
...
monitor_init();
drive_init() got
...
if (bdrv_open2(bdrv, file, bdrv_flags, drv) < 0 || qemu_key_check(bdrv,
file)) {
and qemu_key_check depends on the monitor:
term_printf("%s is encrypted.\n", name);
for(i = 0; i < 3; i++) {
monitor_readline("Password: ", 1, password, sizeof(password));