qemu-e2k/crypto
Geert Martin Ijewski a37278169d 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 <gm.ijewski@web.de>
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
2017-05-09 14:41:47 +01:00
..
aes.c
afsplit.c
block-luks.c crypto: move 'opaque' parameter to (nearly) the end of parameter list 2017-05-09 14:41:47 +01:00
block-luks.h
block-qcow.c
block-qcow.h
block.c
blockpriv.h
cipher-builtin.c crypto: add mode check in qcrypto_cipher_new() for cipher-builtin 2016-10-19 10:09:24 +01:00
cipher-gcrypt.c crypto: add 3des-ede support when using libgcrypt/nettle 2016-12-21 14:26:26 +00:00
cipher-nettle.c crypto: add 3des-ede support when using libgcrypt/nettle 2016-12-21 14:26:26 +00:00
cipher.c crypto: assert cipher algorithm is always valid 2017-02-27 13:37:14 +00:00
desrfb.c
hash-gcrypt.c
hash-glib.c
hash-nettle.c
hash.c
hmac-gcrypt.c crypto: support HMAC algorithms based on libgcrypt 2016-12-22 09:24:59 +00:00
hmac-glib.c crypto: support HMAC algorithms based on glib 2016-12-22 09:24:59 +00:00
hmac-nettle.c crypto: support HMAC algorithms based on nettle 2016-12-22 09:24:59 +00:00
hmac.c crypto: add HMAC algorithms framework 2016-12-22 09:24:59 +00:00
hmac.h crypto: add HMAC algorithms framework 2016-12-22 09:24:59 +00:00
init.c crypto: qcrypto_random_bytes() now works on windows w/o any other crypto libs 2017-05-09 14:41:47 +01:00
ivgen-essiv.c crypto: fix leak in ivgen essiv init 2017-02-27 13:37:14 +00:00
ivgen-essiv.h
ivgen-plain64.c
ivgen-plain64.h
ivgen-plain.c
ivgen-plain.h
ivgen.c
ivgenpriv.h
Makefile.objs crypto: add HMAC algorithms framework 2016-12-22 09:24:59 +00:00
pbkdf-gcrypt.c crypto: support more hash algorithms for pbkdf 2016-09-19 16:30:45 +01:00
pbkdf-nettle.c crypto: support more hash algorithms for pbkdf 2016-09-19 16:30:45 +01:00
pbkdf-stub.c crypto: use uint64_t for pbkdf iteration count parameters 2016-09-19 16:30:42 +01:00
pbkdf.c crypto: use correct derived key size when timing pbkdf 2016-09-19 16:30:45 +01:00
random-gcrypt.c crypto: qcrypto_random_bytes() now works on windows w/o any other crypto libs 2017-05-09 14:41:47 +01:00
random-gnutls.c crypto: qcrypto_random_bytes() now works on windows w/o any other crypto libs 2017-05-09 14:41:47 +01:00
random-platform.c crypto: qcrypto_random_bytes() now works on windows w/o any other crypto libs 2017-05-09 14:41:47 +01:00
secret.c
tlscreds.c
tlscredsanon.c
tlscredspriv.h
tlscredsx509.c
tlssession.c crypto: add trace points for TLS cert verification 2016-09-19 16:30:46 +01:00
trace-events crypto: add trace points for TLS cert verification 2016-09-19 16:30:46 +01:00
xts.c