qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH v7 00/24] Add qemu_getrandom and ARMv8.5-RNG etc
@ 2019-05-14 19:16 Richard Henderson
  2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 01/24] build: Link user-only with crypto-rng-obj-y Richard Henderson
                   ` (24 more replies)
  0 siblings, 25 replies; 35+ messages in thread
From: Richard Henderson @ 2019-05-14 19:16 UTC (permalink / raw)
  To: qemu-devel; +Cc: lvivier, berrange, armbru

Changes since v6:
  * Drop the crypto-obj-y, crypto-aes-obj-y, and configure changes.
    This fixes the regression visible in make check-unit, due to
    objects not being pulled in from libqemuutil.a.
  * Add a crypto-rng-obj-y, and force it to be random-platform.o.
    This avoids attempting to link the crypto libraries into the
    user-only binaries.  Which in turn means we can drop all of
    the configure changes to cope with the crypto libraries not
    having the static libraries packaged by recent distros.

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 (24):
  build: Link user-only with crypto-rng-obj-y
  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_random_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                            |   6 +-
 Makefile.objs                       |   1 +
 Makefile.target                     |   3 +-
 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                   |  33 +++++----
 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                           |  18 ++++-
 crypto/Makefile.objs                |   1 +
 qemu-options.hx                     |  10 +++
 util/Makefile.objs                  |   1 +
 36 files changed, 566 insertions(+), 221 deletions(-)
 create mode 100644 include/qemu/guest-random.h
 create mode 100644 util/guest-random.c

-- 
2.17.1



^ permalink raw reply	[flat|nested] 35+ messages in thread

end of thread, other threads:[~2019-05-16 14:56 UTC | newest]

Thread overview: 35+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-05-14 19:16 [Qemu-devel] [PATCH v7 00/24] Add qemu_getrandom and ARMv8.5-RNG etc Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 01/24] build: Link user-only with crypto-rng-obj-y Richard Henderson
2019-05-15 16:42   ` Laurent Vivier
2019-05-15 16:51     ` Richard Henderson
2019-05-15 16:53   ` Daniel P. Berrangé
2019-05-15 17:22     ` Richard Henderson
2019-05-15 17:49       ` Daniel P. Berrangé
2019-05-15 19:38         ` Laurent Vivier
2019-05-15 20:15           ` Daniel P. Berrangé
2019-05-16 14:48     ` Richard Henderson
2019-05-16 14:55       ` Daniel P. Berrangé
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 02/24] crypto: Reverse code blocks in random-platform.c Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 03/24] crypto: Do not fail for EINTR during qcrypto_random_bytes Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 04/24] crypto: Use O_CLOEXEC in qcrypto_random_init Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 05/24] crypto: Use getrandom for qcrypto_random_bytes Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 06/24] crypto: Change the qcrypto_random_bytes buffer type to void* Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 07/24] ui/vnc: Split out authentication_failed Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 08/24] ui/vnc: Use gcrypto_random_bytes for start_auth_vnc Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 09/24] util: Add qemu_guest_getrandom and associated routines Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 10/24] cpus: Initialize pseudo-random seeds for all guest cpus Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 11/24] linux-user: " Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 12/24] linux-user: Call qcrypto_random_init if not using -seed Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 13/24] linux-user: Use qemu_guest_getrandom_nofail for AT_RANDOM Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 14/24] linux-user/aarch64: Use qemu_guest_getrandom for PAUTH keys Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 15/24] linux-user: Remove srand call Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 16/24] aspeed/scu: Use qemu_guest_getrandom_nofail Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 17/24] hw/misc/nrf51_rng: " Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 18/24] hw/misc/bcm2835_rng: " Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 19/24] hw/misc/exynos4210_rng: Use qemu_guest_getrandom Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 20/24] target/arm: Put all PAC keys into a structure Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 21/24] target/arm: Implement ARMv8.5-RNG Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 22/24] target/ppc: Use qemu_guest_getrandom for DARN Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 23/24] target/ppc: Use gen_io_start/end around DARN Richard Henderson
2019-05-14 19:16 ` [Qemu-devel] [PATCH v7 24/24] target/i386: Implement CPUID_EXT_RDRAND Richard Henderson
2019-05-15  6:49 ` [Qemu-devel] [PATCH v7 00/24] Add qemu_getrandom and ARMv8.5-RNG etc Markus Armbruster

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).