[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v6 00/25] Add qemu_getrandom and ARMv8.5-RNG etc
From: |
Richard Henderson |
Subject: |
[Qemu-devel] [PATCH v6 00/25] Add qemu_getrandom and ARMv8.5-RNG etc |
Date: |
Fri, 10 May 2019 10:30:24 -0700 |
Only the new patch 24 lacks review.
Changes since v5:
* Merge crypto-obj-y into util-obj-y (patch 2).
* Fix leftover crypto-obj-aes-y reference (patch 2).
* Add ARM_CP_IO to the RNG registers (patch 22).
* Issue gen_io_start/end around ppc DARN (new patch 24).
* Issue gen_io_start/end around x86 rdrand (patch 25).
Changes since v4:
* Do not autoenable nettle or gcrypt if linking is broken.
Fixes --static on fedora 30.
* Delay removal of srand() for -seed.
* Do not loop for -1 result for ppc64 DARN.
Changes since v3:
* Do not autoenable gnutls if linking is broken.
Fixes --static on ubuntu 18.04.
Changes since v2:
* Changes from review.
- getrandom is not exclusive of /dev/urandom fallback.
- vnc fails gracefully on crypto failure.
- a great renaming.
* Drop the "nonblock" argument, as it's not deliverable from the backend.
* Propagate Error back through qemu_guest_getrandom.
* Add qemu_guest_getrandom_nofail to centralize "Argh! Death!".
* Convert hw/misc/
* Implement ppc darn.
* Implement x86 rdrand.
Changes since v1:
* Build crypto-obj-y for linux-user as well.
* Several patches to tidy crypto/random-platform.c.
* Use getrandom(2) in crypto/random-platform.c.
* Use qcrypto_random_bytes in ui/vnc.c.
* In qemu_getrandom:
- Use g_rand_int instead of srand48.
- Use qcrypto_random_bytes instead of getrandom directly.
r~
Richard Henderson (25):
configure: Link test before auto-enabling crypto libraries
crypto: Merge crypto-obj-y into libqemuutil.a
crypto: Reverse code blocks in random-platform.c
crypto: Do not fail for EINTR during qcrypto_random_bytes
crypto: Use O_CLOEXEC in qcrypto_random_init
crypto: Use getrandom for qcrypto_random_bytes
crypto: Change the qcrypto_random_bytes buffer type to void*
ui/vnc: Split out authentication_failed
ui/vnc: Use gcrypto_random_bytes for start_auth_vnc
util: Add qemu_guest_getrandom and associated routines
cpus: Initialize pseudo-random seeds for all guest cpus
linux-user: Initialize pseudo-random seeds for all guest cpus
linux-user: Call qcrypto_init if not using -seed
linux-user: Use qemu_guest_getrandom_nofail for AT_RANDOM
linux-user/aarch64: Use qemu_guest_getrandom for PAUTH keys
linux-user: Remove srand call
aspeed/scu: Use qemu_guest_getrandom_nofail
hw/misc/nrf51_rng: Use qemu_guest_getrandom_nofail
hw/misc/bcm2835_rng: Use qemu_guest_getrandom_nofail
hw/misc/exynos4210_rng: Use qemu_guest_getrandom
target/arm: Put all PAC keys into a structure
target/arm: Implement ARMv8.5-RNG
target/ppc: Use qemu_guest_getrandom for DARN
target/ppc: Use gen_io_start/end around DARN
target/i386: Implement CPUID_EXT_RDRAND
Makefile | 14 ++--
Makefile.objs | 8 +--
Makefile.target | 4 --
include/crypto/random.h | 2 +-
include/qemu/guest-random.h | 68 ++++++++++++++++++
include/qom/cpu.h | 1 +
linux-user/aarch64/target_syscall.h | 2 -
target/arm/cpu.h | 17 +++--
target/i386/helper.h | 2 +
cpus.c | 9 +++
crypto/random-gcrypt.c | 2 +-
crypto/random-gnutls.c | 2 +-
crypto/random-platform.c | 104 +++++++++++++++++-----------
hw/misc/aspeed_scu.c | 10 +--
hw/misc/bcm2835_rng.c | 32 ++++-----
hw/misc/exynos4210_rng.c | 11 ++-
hw/misc/nrf51_rng.c | 4 +-
linux-user/aarch64/cpu_loop.c | 25 +------
linux-user/elfload.c | 8 +--
linux-user/main.c | 34 +++++----
linux-user/syscall.c | 34 +++++++--
target/arm/cpu64.c | 1 +
target/arm/helper.c | 64 ++++++++++++++---
target/arm/pauth_helper.c | 18 ++---
target/i386/cpu.c | 5 +-
target/i386/int_helper.c | 21 ++++++
target/i386/translate.c | 62 +++++++++++++----
target/ppc/int_helper.c | 39 +++++++----
target/ppc/translate.c | 21 ++++--
ui/vnc.c | 53 ++++++--------
util/guest-random.c | 93 +++++++++++++++++++++++++
vl.c | 4 ++
configure | 87 +++++++++++++++--------
crypto/Makefile.objs | 77 ++++++++++----------
qemu-options.hx | 10 +++
tests/Makefile.include | 3 +-
util/Makefile.objs | 1 +
37 files changed, 644 insertions(+), 308 deletions(-)
create mode 100644 include/qemu/guest-random.h
create mode 100644 util/guest-random.c
--
2.17.1
- [Qemu-devel] [PATCH v6 00/25] Add qemu_getrandom and ARMv8.5-RNG etc,
Richard Henderson <=
- [Qemu-devel] [PATCH v6 01/25] configure: Link test before auto-enabling crypto libraries, Richard Henderson, 2019/05/10
- [Qemu-devel] [PATCH v6 03/25] crypto: Reverse code blocks in random-platform.c, Richard Henderson, 2019/05/10
- [Qemu-devel] [PATCH v6 02/25] crypto: Merge crypto-obj-y into libqemuutil.a, Richard Henderson, 2019/05/10
- [Qemu-devel] [PATCH v6 05/25] crypto: Use O_CLOEXEC in qcrypto_random_init, Richard Henderson, 2019/05/10
- [Qemu-devel] [PATCH v6 04/25] crypto: Do not fail for EINTR during qcrypto_random_bytes, Richard Henderson, 2019/05/10
- [Qemu-devel] [PATCH v6 08/25] ui/vnc: Split out authentication_failed, Richard Henderson, 2019/05/10
- [Qemu-devel] [PATCH v6 10/25] util: Add qemu_guest_getrandom and associated routines, Richard Henderson, 2019/05/10
- [Qemu-devel] [PATCH v6 09/25] ui/vnc: Use gcrypto_random_bytes for start_auth_vnc, Richard Henderson, 2019/05/10
- [Qemu-devel] [PATCH v6 06/25] crypto: Use getrandom for qcrypto_random_bytes, Richard Henderson, 2019/05/10
- [Qemu-devel] [PATCH v6 07/25] crypto: Change the qcrypto_random_bytes buffer type to void*, Richard Henderson, 2019/05/10