
On Wed, Oct 21, 2020 at 11:51:10AM +0200, Paolo Bonzini wrote:
On 21/10/20 10:38, Daniel P. Berrangé wrote:
On Tue, Oct 20, 2020 at 07:22:03PM +0200, Paolo Bonzini wrote:
On 20/10/20 18:22, Daniel P. Berrangé wrote:
@@ -153,6 +153,9 @@ int os_parse_cmd_args(int index, const char *optarg) break; #if defined(CONFIG_LINUX) case QEMU_OPTION_enablefips: + warn_report("-enable-fips is deprecated, please build QEMU with " + "the `libgcrypt` library as the cryptography provider " + "to enable FIPS compliance"); fips_set_state(true); break; #endif
Should you also remove fips_set_state(true) and make fips_get_state() return the contents of /proc/sys/crypto/fips_enabled, so that VNC password authentication is disabled?
I did think about doing that, but decided that since my intention is to delete all trace of fips_get_state / fips_set_state at the end of the deprecation period, that it'd be saner just to leave the semantics unchanged during the deprecation period.
But would it be correct? In order to have the advertised behavior of "enable FIPS compliance just with procfs, no need to do anything in QEMU" you need to disable VNC password authentication; so while fips_set_state is an abomination, fips_get_state should remain.
There's no need for fips_get_state. Once you build QEMU with libgcrypt, when VNC requests a DES cipher handle, gcrypt will return an error as that algorithm is forbidden in FIPS mode. This is the primary reason for outsourcing all crypto to a separate library and ignoring the impls in QEMU. Claiming QEMU is FIPS compliant without using libgcrypt is a bit of joke since we don't do any self-tests of ciphers, hence this deprecation notice is warning people that libgcrypt is going to be mandatory if you care about FIPS.
Deprecation notices shouldn't really be associated with changes in functionality at time they are introduced.
I think you can consider it a bugfix since no one sets fips_enabled without knowing what they're doing.
I just would rather not change semantics of something that we are intending to remove Regards, Daniel -- |: https://berrange.com -o- https://www.flickr.com/photos/dberrange :| |: https://libvirt.org -o- https://fstop138.berrange.com :| |: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|