qemu-img create -f qcow2 demo.qcow2 10M
qemu-img create -f luks --object secret,data=123,id=sec0 -o key-secret=sec0 demo.luks 10M
qemu-img convert --target-image-opts --object secret,data=123,id=sec0 -f qcow2 demo.qcow2 -n driver=luks,file.filename=demo.luks,key-secret=sec0
qemu-img create -f qcow2 --object secret,data=123,id=sec0 -o encrypt.format=luks -o encrypt.key-secret=sec0 demo.luks 10M
qemu-img convert --target-image-opts --object secret,data=123,id=sec0 -f qcow2 demo.qcow2 -n driver=qcow2,file.filename=demo.luks,encrypt.key-secret=sec0
openssl rand -base64 32 > key.b64
KEY=$(base64 -d key.b64 | hexdump -v -e '/1 "%02X"')
openssl rand -base64 16 > iv.b64
IV=$(base64 -d iv.b64 | hexdump -v -e '/1 "%02X"')
printf "123" | openssl enc -aes-256-cbc -a -K $KEY -iv $IV > sec.b64
qemu-system-x86_64 \
-object secret,id=secmaster0,format=base64,file=key.b64 \
-object secret,id=sec0,keyid=secmaster0,format=base64,file=sec.b64,iv=$(<iv.b64) \
-drive file=demo.luks,format=luks,key-secret=sec0,if=virtio