qemu/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 crypto: Clean up includes 2016-01-29 15:07:22 +00:00
afsplit.c qemu-common: stop including qemu/bswap.h from qemu-common.h 2016-05-19 16:42:28 +02:00
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 Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
block-qcow.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
block-qcow.h Clean up ill-advised or unusual header guards 2016-07-12 16:20:46 +02:00
block.c crypto: report enum strings instead of values in errors 2016-09-12 12:00:52 +01:00
blockpriv.h crypto: add support for querying parameters for block encryption 2016-07-26 17:46:37 +02:00
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 crypto: Clean up includes 2016-01-29 15:07:22 +00:00
hash-gcrypt.c crypto: don't open-code qcrypto_hash_supports 2016-07-21 10:46:27 +01:00
hash-glib.c crypto: don't open-code qcrypto_hash_supports 2016-07-21 10:46:27 +01:00
hash-nettle.c crypto: don't open-code qcrypto_hash_supports 2016-07-21 10:46:27 +01:00
hash.c crypto: implement sha224, sha384, sha512 and ripemd160 hashes 2016-07-04 15:52:36 +01:00
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 crypto: add support for generating initialization vectors 2016-03-17 14:41:14 +00:00
ivgen-plain64.c include/crypto: Include qapi-types.h or qemu/bswap.h instead of qemu-common.h 2016-03-22 22:20:16 +01:00
ivgen-plain64.h crypto: add support for generating initialization vectors 2016-03-17 14:41:14 +00:00
ivgen-plain.c include/crypto: Include qapi-types.h or qemu/bswap.h instead of qemu-common.h 2016-03-22 22:20:16 +01:00
ivgen-plain.h crypto: add support for generating initialization vectors 2016-03-17 14:41:14 +00:00
ivgen.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
ivgenpriv.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
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 include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
tlscreds.c crypto: add support for TLS priority string override 2016-07-04 15:52:43 +01:00
tlscredsanon.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
tlscredspriv.h Clean up header guards that don't match their file name 2016-07-12 16:19:16 +02:00
tlscredsx509.c crypto: fix building complaint 2016-09-12 12:00:52 +01:00
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 crypto: import an implementation of the XTS cipher mode 2016-03-17 14:41:15 +00:00