From: Richard Henderson <richard.henderson@linaro.org>
To: qemu-devel@nongnu.org
Subject: [Qemu-devel] [PATCH v4 00/24] Add qemu_getrandom and ARMv8.5-RNG etc
Date: Mon, 6 May 2019 10:33:29 -0700 [thread overview]
Message-ID: <20190506173353.32206-1-richard.henderson@linaro.org> (raw)
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.
Patches without review/ack:
0001-configure-Link-test-before-auto-enabling-gnutls.patch (new)
0002-crypto-Merge-crypto-obj-y-into-libqemuutil.a.patch
0022-target-arm-Implement-ARMv8.5-RNG.patch
0024-target-i386-Implement-CPUID_EXT_RDRAND.patch
r~
Richard Henderson (24):
configure: Link test before auto-enabling gnutls
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/i386: Implement CPUID_EXT_RDRAND
Makefile | 12 ++--
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 | 55 +++++++++++----
target/ppc/int_helper.c | 42 +++++++----
ui/vnc.c | 53 ++++++--------
util/guest-random.c | 93 +++++++++++++++++++++++++
vl.c | 4 ++
configure | 42 ++++++++---
crypto/Makefile.objs | 5 +-
qemu-options.hx | 10 +++
util/Makefile.objs | 1 +
35 files changed, 562 insertions(+), 243 deletions(-)
create mode 100644 include/qemu/guest-random.h
create mode 100644 util/guest-random.c
--
2.17.1
next reply other threads:[~2019-05-06 17:38 UTC|newest]
Thread overview: 54+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-06 17:33 Richard Henderson [this message]
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 01/24] configure: Link test before auto-enabling gnutls Richard Henderson
2019-05-07 8:28 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 02/24] crypto: Merge crypto-obj-y into libqemuutil.a Richard Henderson
2019-05-07 9:03 ` Laurent Vivier
2019-05-08 3:58 ` Richard Henderson
2019-05-08 4:43 ` Richard Henderson
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 03/24] crypto: Reverse code blocks in random-platform.c Richard Henderson
2019-05-07 9:11 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 04/24] crypto: Do not fail for EINTR during qcrypto_random_bytes Richard Henderson
2019-05-07 9:19 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 05/24] crypto: Use O_CLOEXEC in qcrypto_random_init Richard Henderson
2019-05-07 9:28 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 06/24] crypto: Use getrandom for qcrypto_random_bytes Richard Henderson
2019-05-07 9:45 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 07/24] crypto: Change the qcrypto_random_bytes buffer type to void* Richard Henderson
2019-05-07 10:09 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 08/24] ui/vnc: Split out authentication_failed Richard Henderson
2019-05-07 10:35 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 09/24] ui/vnc: Use gcrypto_random_bytes for start_auth_vnc Richard Henderson
2019-05-07 10:49 ` Laurent Vivier
2019-05-08 0:32 ` Richard Henderson
2019-05-08 7:11 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 10/24] util: Add qemu_guest_getrandom and associated routines Richard Henderson
2019-05-07 12:19 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 11/24] cpus: Initialize pseudo-random seeds for all guest cpus Richard Henderson
2019-05-07 12:19 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 12/24] linux-user: " Richard Henderson
2019-05-07 14:06 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 13/24] linux-user: Call qcrypto_init if not using -seed Richard Henderson
2019-05-07 14:13 ` Laurent Vivier
2019-05-08 4:11 ` Richard Henderson
2019-05-08 7:10 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 14/24] linux-user: Use qemu_guest_getrandom_nofail for AT_RANDOM Richard Henderson
2019-05-07 14:15 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 15/24] linux-user/aarch64: Use qemu_guest_getrandom for PAUTH keys Richard Henderson
2019-05-07 14:40 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 16/24] linux-user: Remove srand call Richard Henderson
2019-05-07 14:41 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 17/24] aspeed/scu: Use qemu_guest_getrandom_nofail Richard Henderson
2019-05-07 14:43 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 18/24] hw/misc/nrf51_rng: " Richard Henderson
2019-05-07 14:45 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 19/24] hw/misc/bcm2835_rng: " Richard Henderson
2019-05-07 15:09 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 20/24] hw/misc/exynos4210_rng: Use qemu_guest_getrandom Richard Henderson
2019-05-07 15:10 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 21/24] target/arm: Put all PAC keys into a structure Richard Henderson
2019-05-07 15:23 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 22/24] target/arm: Implement ARMv8.5-RNG Richard Henderson
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 23/24] target/ppc: Use qemu_guest_getrandom for DARN Richard Henderson
2019-05-07 15:36 ` Laurent Vivier
2019-05-06 17:33 ` [Qemu-devel] [PATCH v4 24/24] target/i386: Implement CPUID_EXT_RDRAND Richard Henderson
2019-05-06 21:03 ` Eduardo Habkost
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190506173353.32206-1-richard.henderson@linaro.org \
--to=richard.henderson@linaro.org \
--cc=qemu-devel@nongnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).