mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
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>
This commit is contained in:
parent
e4a3507e86
commit
a37278169d
5 changed files with 57 additions and 8 deletions
|
@ -40,5 +40,14 @@ int qcrypto_random_bytes(uint8_t *buf,
|
|||
size_t buflen,
|
||||
Error **errp);
|
||||
|
||||
/**
|
||||
* qcrypto_random_init:
|
||||
* @errp: pointer to a NULL-initialized error object
|
||||
*
|
||||
* Initializes the handles used by qcrypto_random_bytes
|
||||
*
|
||||
* Returns 0 on success, -1 on error
|
||||
*/
|
||||
int qcrypto_random_init(Error **errp);
|
||||
|
||||
#endif /* QCRYPTO_RANDOM_H */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue