Branch: refs/heads/master Home: https://github.com/qemu/qemu Commit: a73e82ef91278f34990fa36c59842a9e35767a51 https://github.com/qemu/qemu/commit/a73e82ef91278f34990fa36c59842a9e35767a51 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019)
Changed paths: M configure Log Message: ----------- configure: Link test before auto-enabling crypto libraries At least ubuntu 18.04 does not package static gnutls libraries. At least Fedora 30 does not ship static nettle and gcrypt libraries. Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Reviewed-by: Laurent Vivier <lviv...@redhat.com> Tested-by: Laurent Vivier <lviv...@redhat.com> Message-Id: <20190510012458.22706-2-richard.hender...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 243dc2cf95298383b657cf95896615197d8b35aa https://github.com/qemu/qemu/commit/243dc2cf95298383b657cf95896615197d8b35aa Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M Makefile M Makefile.objs M Makefile.target M configure M crypto/Makefile.objs Log Message: ----------- build: Link user-only with crypto random number objects For user-only, we require only the random number bits of the crypto subsystem. Rename crypto-aes-obj-y to crypto-user-obj-y, and add the random number objects, plus init.o to handle any extra stuff the crypto library requires. Move the crypto libraries from libs_softmmu and libs_tools to LIBS, so that they are universally used. Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 14a356f47560c8275b8e04fbee484a617fc45f80 https://github.com/qemu/qemu/commit/14a356f47560c8275b8e04fbee484a617fc45f80 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M crypto/random-platform.c Log Message: ----------- crypto: Reverse code blocks in random-platform.c Use #ifdef _WIN32 instead of #ifndef _WIN32. This will make other tests easier to sequence. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 25fb26e4f4b7cd50b9a7314400a2f800a4082b71 https://github.com/qemu/qemu/commit/25fb26e4f4b7cd50b9a7314400a2f800a4082b71 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M crypto/random-platform.c Log Message: ----------- crypto: Do not fail for EINTR during qcrypto_random_bytes We can always get EINTR for read; /dev/urandom is no exception. Rearrange the order of tests for likelihood; allow degenerate buflen==0 case to perform a no-op zero-length read. This means that the normal success path is a straight line with a single test for success. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: e9979ca64e5e4a150f5346de3982f02f54c41076 https://github.com/qemu/qemu/commit/e9979ca64e5e4a150f5346de3982f02f54c41076 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M crypto/random-platform.c Log Message: ----------- crypto: Use O_CLOEXEC in qcrypto_random_init Avoids leaking the /dev/urandom fd into any child processes. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: db1ed1abcf4b219d9824e4a6ae5f9ae364f8d009 https://github.com/qemu/qemu/commit/db1ed1abcf4b219d9824e4a6ae5f9ae364f8d009 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M configure M crypto/random-platform.c Log Message: ----------- crypto: Use getrandom for qcrypto_random_bytes Prefer it to direct use of /dev/urandom. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: d049b1f2afddd2d3a7b2ed22c274c66305c0b84b https://github.com/qemu/qemu/commit/d049b1f2afddd2d3a7b2ed22c274c66305c0b84b Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M crypto/random-gcrypt.c M crypto/random-gnutls.c M crypto/random-platform.c M include/crypto/random.h Log Message: ----------- crypto: Change the qcrypto_random_bytes buffer type to void* Using uint8_t* merely requires useless casts for use with other types to be filled with randomness. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 4347e6383f17ae6b70af833b165862f9f338b0b9 https://github.com/qemu/qemu/commit/4347e6383f17ae6b70af833b165862f9f338b0b9 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M ui/vnc.c Log Message: ----------- ui/vnc: Split out authentication_failed There were 3 copies of this code, one of which used the wrong data size for the failure indicator. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Reviewed-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: f7b2502cdc2eeb458a4490c1b8f4a83c07d46219 https://github.com/qemu/qemu/commit/f7b2502cdc2eeb458a4490c1b8f4a83c07d46219 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M ui/vnc.c Log Message: ----------- ui/vnc: Use gcrypto_random_bytes for start_auth_vnc Use a better interface for random numbers than rand(). Fail gracefully if for some reason we cannot use the crypto system. Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Reviewed-by: Gerd Hoffmann <kra...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 8d8404f1564496f42b90497e7be635921c000e9d https://github.com/qemu/qemu/commit/8d8404f1564496f42b90497e7be635921c000e9d Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: A include/qemu/guest-random.h M util/Makefile.objs A util/guest-random.c Log Message: ----------- util: Add qemu_guest_getrandom and associated routines This routine is intended to produce high-quality random numbers to the guest. Normally, such numbers are crypto quality from the host, but a command-line option can force the use of a fully deterministic sequence for use while debugging. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 9c09a2518eac6277c09ee006841c94abe7305e53 https://github.com/qemu/qemu/commit/9c09a2518eac6277c09ee006841c94abe7305e53 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M cpus.c M include/qom/cpu.h M qemu-options.hx M vl.c Log Message: ----------- cpus: Initialize pseudo-random seeds for all guest cpus When the -seed option is given, call qemu_guest_random_seed_main, putting the subsystem into deterministic mode. Pass derived seeds to each cpu created; which is a no-op unless the subsystem is in deterministic mode. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Reviewed-by: Daniel P. Berrangé <berra...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 5ebdd774949d68e2526000b0655636d056595be9 https://github.com/qemu/qemu/commit/5ebdd774949d68e2526000b0655636d056595be9 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M linux-user/main.c M linux-user/syscall.c Log Message: ----------- linux-user: Initialize pseudo-random seeds for all guest cpus When the -seed option is given, call qemu_guest_random_seed_main, putting the subsystem into deterministic mode. Pass derived seeds to each cpu created during clone; which is a no-op unless the subsystem is in deterministic mode. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: a573e9bac6f28cfaa93629b0ebaaa20594365b1d https://github.com/qemu/qemu/commit/a573e9bac6f28cfaa93629b0ebaaa20594365b1d Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M linux-user/main.c Log Message: ----------- linux-user: Call qcrypto_init if not using -seed When not using -seed, we will use the crypto subsystem for random numbers. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: c6a2377fb2e27970c584313ef32f04e5a56d0fdd https://github.com/qemu/qemu/commit/c6a2377fb2e27970c584313ef32f04e5a56d0fdd Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M linux-user/elfload.c Log Message: ----------- linux-user: Use qemu_guest_getrandom_nofail for AT_RANDOM Use a better interface for random numbers than rand * 16. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 51977e25f77faae6949c7eb51c86f0319b82a77d https://github.com/qemu/qemu/commit/51977e25f77faae6949c7eb51c86f0319b82a77d Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M linux-user/aarch64/cpu_loop.c M linux-user/aarch64/target_syscall.h M linux-user/syscall.c Log Message: ----------- linux-user/aarch64: Use qemu_guest_getrandom for PAUTH keys Use a better interface for random numbers than rand() * 3. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 79743bdbcb7a1a72e6c8ad4fd0bc946a0c552f88 https://github.com/qemu/qemu/commit/79743bdbcb7a1a72e6c8ad4fd0bc946a0c552f88 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M linux-user/main.c Log Message: ----------- linux-user: Remove srand call We no longer use rand() within linux-user. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 9d44cb5b2ae10b224e91abb68e6f06a58af43389 https://github.com/qemu/qemu/commit/9d44cb5b2ae10b224e91abb68e6f06a58af43389 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M hw/misc/aspeed_scu.c Log Message: ----------- aspeed/scu: Use qemu_guest_getrandom_nofail The random number is intended for use by the guest. As such, we should honor the -seed argument for reproducibility. Use the *_nofail routine instead of rolling our own error handling locally. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Reviewed-by: Cédric Le Goater <c...@kaod.org> Reviewed-by: Joel Stanley <j...@jms.id.au> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 19173fd3350e438b414a84fad223ee05a46a8d81 https://github.com/qemu/qemu/commit/19173fd3350e438b414a84fad223ee05a46a8d81 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M hw/misc/nrf51_rng.c Log Message: ----------- hw/misc/nrf51_rng: Use qemu_guest_getrandom_nofail The random number is intended for use by the guest. As such, we should honor the -seed argument for reproducibility. Use the *_nofail routine instead of error_abort directly. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Joel Stanley <j...@jms.id.au> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 3090c980ed06e666a4b394fdb46284f220e091d1 https://github.com/qemu/qemu/commit/3090c980ed06e666a4b394fdb46284f220e091d1 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M hw/misc/bcm2835_rng.c Log Message: ----------- hw/misc/bcm2835_rng: Use qemu_guest_getrandom_nofail The random number is intended for use by the guest. As such, we should honor the -seed argument for reproducibility. Use the *_nofail routine instead of rolling our own error handling locally. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: e8196d2111d2eb060a42feadef119de3aadae4f6 https://github.com/qemu/qemu/commit/e8196d2111d2eb060a42feadef119de3aadae4f6 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M hw/misc/exynos4210_rng.c Log Message: ----------- hw/misc/exynos4210_rng: Use qemu_guest_getrandom The random number is intended for use by the guest. As such, we should honor the -seed argument for reproducibility. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 108b3ba891408c4dce93df78261ec4aca38c0e2e https://github.com/qemu/qemu/commit/108b3ba891408c4dce93df78261ec4aca38c0e2e Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M linux-user/aarch64/cpu_loop.c M linux-user/syscall.c M target/arm/cpu.h M target/arm/helper.c M target/arm/pauth_helper.c Log Message: ----------- target/arm: Put all PAC keys into a structure This allows us to use a single syscall to initialize them all. Reviewed-by: Laurent Vivier <lviv...@redhat.com> Reviewed-by: Philippe Mathieu-Daudé <phi...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: de390645675966cce113bf5394445bc1f8d07c85 https://github.com/qemu/qemu/commit/de390645675966cce113bf5394445bc1f8d07c85 Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M target/arm/cpu.h M target/arm/cpu64.c M target/arm/helper.c Log Message: ----------- target/arm: Implement ARMv8.5-RNG Use the newly introduced infrastructure for guest random numbers. Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 7e4357f612c7d177c3c972c44bae0fd8506ab13d https://github.com/qemu/qemu/commit/7e4357f612c7d177c3c972c44bae0fd8506ab13d Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M target/ppc/translate.c Log Message: ----------- target/ppc: Use gen_io_start/end around DARN Generating a random number counts as I/O, as it cannot be replayed and produce the same results. Acked-by: David Gibson <da...@gibson.dropbear.id.au> Reviewed-by: Laurent Vivier <lviv...@redhat.com> Suggested-by: Peter Maydell <peter.mayd...@linaro.org> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 3f74b6322cec37d23351df8caccfdfd85dceff9b https://github.com/qemu/qemu/commit/3f74b6322cec37d23351df8caccfdfd85dceff9b Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M target/ppc/int_helper.c Log Message: ----------- target/ppc: Use qemu_guest_getrandom for DARN We now have an interface for guest visible random numbers. Acked-by: David Gibson <da...@gibson.dropbear.id.au> Reviewed-by: Laurent Vivier <lviv...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: 369fd5ca66810b2ddb16e23a497eabe59385eceb https://github.com/qemu/qemu/commit/369fd5ca66810b2ddb16e23a497eabe59385eceb Author: Richard Henderson <richard.hender...@linaro.org> Date: 2019-05-22 (Wed, 22 May 2019) Changed paths: M target/i386/cpu.c M target/i386/helper.h M target/i386/int_helper.c M target/i386/translate.c Log Message: ----------- target/i386: Implement CPUID_EXT_RDRAND We now have an interface for guest visible random numbers. Reviewed-by: Eduardo Habkost <ehabk...@redhat.com> Signed-off-by: Richard Henderson <richard.hender...@linaro.org> Commit: d418238dca7b4e0b124135827ead3076233052b1 https://github.com/qemu/qemu/commit/d418238dca7b4e0b124135827ead3076233052b1 Author: Peter Maydell <peter.mayd...@linaro.org> Date: 2019-05-23 (Thu, 23 May 2019) Changed paths: M Makefile M Makefile.objs M Makefile.target M configure M cpus.c M crypto/Makefile.objs M crypto/random-gcrypt.c M crypto/random-gnutls.c M crypto/random-platform.c M hw/misc/aspeed_scu.c M hw/misc/bcm2835_rng.c M hw/misc/exynos4210_rng.c M hw/misc/nrf51_rng.c M include/crypto/random.h A include/qemu/guest-random.h M include/qom/cpu.h M linux-user/aarch64/cpu_loop.c M linux-user/aarch64/target_syscall.h M linux-user/elfload.c M linux-user/main.c M linux-user/syscall.c M qemu-options.hx M target/arm/cpu.h M target/arm/cpu64.c M target/arm/helper.c M target/arm/pauth_helper.c M target/i386/cpu.c M target/i386/helper.h M target/i386/int_helper.c M target/i386/translate.c M target/ppc/int_helper.c M target/ppc/translate.c M ui/vnc.c M util/Makefile.objs A util/guest-random.c M vl.c Log Message: ----------- Merge remote-tracking branch 'remotes/rth/tags/pull-rng-20190522' into staging Introduce qemu_guest_getrandom. Use qemu_guest_getrandom in aspeed, nrf51, bcm2835, exynos4210 rng devices. Use qemu_guest_getrandom in target/ppc darn instruction. Support ARMv8.5-RNG extension. Support x86 RDRAND extension. Acked-by: Daniel P. Berrangé <berra...@redhat.com> Acked-by: Laurent Vivier <laur...@vivier.eu> # gpg: Signature made Wed 22 May 2019 19:36:43 BST # gpg: using RSA key 7A481E78868B4DB6A85A05C064DF38E8AF7E215F # gpg: issuer "richard.hender...@linaro.org" # gpg: Good signature from "Richard Henderson <richard.hender...@linaro.org>" [full] # Primary key fingerprint: 7A48 1E78 868B 4DB6 A85A 05C0 64DF 38E8 AF7E 215F * remotes/rth/tags/pull-rng-20190522: (25 commits) target/i386: Implement CPUID_EXT_RDRAND target/ppc: Use qemu_guest_getrandom for DARN target/ppc: Use gen_io_start/end around DARN target/arm: Implement ARMv8.5-RNG target/arm: Put all PAC keys into a structure hw/misc/exynos4210_rng: Use qemu_guest_getrandom hw/misc/bcm2835_rng: Use qemu_guest_getrandom_nofail hw/misc/nrf51_rng: Use qemu_guest_getrandom_nofail aspeed/scu: Use qemu_guest_getrandom_nofail linux-user: Remove srand call linux-user/aarch64: Use qemu_guest_getrandom for PAUTH keys linux-user: Use qemu_guest_getrandom_nofail for AT_RANDOM linux-user: Call qcrypto_init if not using -seed linux-user: Initialize pseudo-random seeds for all guest cpus cpus: Initialize pseudo-random seeds for all guest cpus util: Add qemu_guest_getrandom and associated routines ui/vnc: Use gcrypto_random_bytes for start_auth_vnc ui/vnc: Split out authentication_failed crypto: Change the qcrypto_random_bytes buffer type to void* crypto: Use getrandom for qcrypto_random_bytes ... Signed-off-by: Peter Maydell <peter.mayd...@linaro.org> Compare: https://github.com/qemu/qemu/compare/c4600d5d417e...d418238dca7b