On Mon, Oct 19, 2015 at 05:18:56PM +0200, Paolo Bonzini wrote: > > > On 19/10/2015 17:09, Daniel P. Berrange wrote: > > + > > + switch (secret->format) { > > + case QCRYPTO_SECRET_FORMAT_UTF8: > > + if (!g_utf8_validate(input, strlen(input), NULL)) { > > + error_setg(errp, > > + "Data from secret %s is not valid UTF-8", > > + secretid); > > + goto cleanup; > > + } > > + output = input; > > + input = NULL; > > + break; > > Why validate secrets as UTF-8? In other words why have "utf8" instead > of "binary" as a possible QCryptoSecretFormat?
JSON doesn't accept arbitrary 8-bit binary data, so the alternative 'base64' is effectively providing binary data facility. Having to use base64 for plain passwords is rather tedious though, so allowing utf8 is a much more developer friendly approach for people using QEMU without a mgmt tool like libvirt. NB, this dual-format utf8-or-base64 approach matches the approach used in QEMU guest agent for the guest-file-read/write commands for the same reason. Regards, Daniel -- |: http://berrange.com -o- http://www.flickr.com/photos/dberrange/ :| |: http://libvirt.org -o- http://virt-manager.org :| |: http://autobuild.org -o- http://search.cpan.org/~danberr/ :| |: http://entangle-photo.org -o- http://live.gnome.org/gtk-vnc :|