From a37278169d0d7d33270c6817f4a2e4f7345e1098 Mon Sep 17 00:00:00 2001 From: Geert Martin Ijewski Date: Wed, 26 Apr 2017 00:15:01 +0200 Subject: crypto: qcrypto_random_bytes() now works on windows w/o any other crypto libs If no crypto library is included in the build, QEMU uses qcrypto_random_bytes() to generate random data. That function tried to open /dev/urandom or /dev/random and if opening both files failed it errored out. Those files obviously do not exist on windows, so there the code uses CryptGenRandom(). Furthermore there was some refactoring and a new function qcrypto_random_init() was introduced. If a proper crypto library (gnutls or libgcrypt) is included in the build, this function does nothing. If neither is included it initializes the (platform specific) handles that are used by qcrypto_random_bytes(). Either: * a handle to /dev/urandom | /dev/random on unix like systems * a handle to a cryptographic service provider on windows Signed-off-by: Geert Martin Ijewski Signed-off-by: Daniel P. Berrange --- crypto/random-gnutls.c | 3 +++ 1 file changed, 3 insertions(+) (limited to 'crypto/random-gnutls.c') diff --git a/crypto/random-gnutls.c b/crypto/random-gnutls.c index 04b45a8f8f..5350003a0b 100644 --- a/crypto/random-gnutls.c +++ b/crypto/random-gnutls.c @@ -41,3 +41,6 @@ int qcrypto_random_bytes(uint8_t *buf, return 0; } + + +int qcrypto_random_init(Error **errp G_GNUC_UNUSED) { return 0; } -- cgit v1.2.1