freebsd-dev/sys/conf
Conrad Meyer a3c41f8bfb Add "Fenestras X" alternative /dev/random implementation
Fortuna remains the default; no functional change to GENERIC.

Big picture:
- Scalable entropy generation with per-CPU, buffered local generators.
- "Push" system for reseeding child generators when root PRNG is
  reseeded.  (Design can be extended to arc4random(9) and userspace
  generators.)
- Similar entropy pooling system to Fortuna, but starts with a single
  pool to quickly bootstrap as much entropy as possible early on.
- Reseeding from pooled entropy based on time schedule.  The time
  interval starts small and grows exponentially until reaching a cap.
  Again, the goal is to have the RNG state depend on as much entropy as
  possible quickly, but still periodically incorporate new entropy for
  the same reasons as Fortuna.

Notable design choices in this implementation that differ from those
specified in the whitepaper:
- Blake2B instead of SHA-2 512 for entropy pooling
- Chacha20 instead of AES-CTR DRBG
- Initial seeding.  We support more platforms and not all of them use
  loader(8).  So we have to grab the initial entropy sources in kernel
  mode instead, as much as possible.  Fortuna didn't have any mechanism
  for this aside from the special case of loader-provided previous-boot
  entropy, so most of these sources remain TODO after this commit.

Reviewed by:	markm
Approved by:	csprng (markm)
Differential Revision:	https://reviews.freebsd.org/D22837
2020-10-10 21:45:59 +00:00
..
config.mk Add SCTP_SUPPORT handling to config.mk. 2020-06-25 15:25:00 +00:00
dtb.build.mk Use MACHINE_CPUARCH when checking for arm64 2020-09-14 16:12:28 +00:00
dtb.mk Allow kernel config to specify DTS/DTSO to build, and out-of-tree support 2019-03-26 02:45:23 +00:00
files Add "Fenestras X" alternative /dev/random implementation 2020-10-10 21:45:59 +00:00
files.amd64 ice_ddp: Update package file to 1.3.16.0 2020-09-04 17:37:58 +00:00
files.arm Remove support for DES and Triple DES from OCF. 2020-05-11 21:34:29 +00:00
files.arm64 Move gpio and hwpmc to the correct place in files.arm64 2020-09-08 11:46:33 +00:00
files.i386 Remove APM BIOS support 2020-10-08 20:56:06 +00:00
files.mips Remove support for DES and Triple DES from OCF. 2020-05-11 21:34:29 +00:00
files.powerpc [PowerPC64LE] Set up powerpc.powerpc64le architecture 2020-09-22 23:49:30 +00:00
files.riscv riscv: Include syscon_power device driver in GENERIC kernel config 2020-07-26 18:21:02 +00:00
files.x86 Rename kernel option ACPI_DMAR to IOMMU. 2020-09-29 20:29:07 +00:00
kern.mk [PowerPC64LE] Set up powerpc.powerpc64le architecture 2020-09-22 23:49:30 +00:00
kern.opts.mk RISC-V: enable MK_FORMAT_EXTENSIONS 2020-09-08 13:24:44 +00:00
kern.post.mk Pass -fuse-ld=/path/to/ld if ${LD} != "ld" 2020-08-25 13:30:03 +00:00
kern.pre.mk Build debug kernels with -O2. 2020-09-29 11:48:22 +00:00
kmod_syms_prefix.awk Add the infrastructure to support loading multiple versions of TCP 2017-06-08 20:41:28 +00:00
kmod_syms.awk
kmod.mk linuxkpi: Add backlight support 2020-10-02 18:26:41 +00:00
kmod.opts.mk Add a kmod.opts.mk. 2019-11-21 18:14:26 +00:00
ldscript.amd64 Tighten mapping protections on preloaded files on amd64. 2019-10-18 14:05:13 +00:00
ldscript.arm Eliminate the generated ldscript for arm and arm64, and strip $a/$d marker 2019-12-29 18:17:12 +00:00
ldscript.arm64 Eliminate the generated ldscript for arm and arm64, and strip $a/$d marker 2019-12-29 18:17:12 +00:00
ldscript.i386 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.kmod.amd64 Move PLTs to the beginning of amd64 kernel modules. 2020-09-16 13:51:47 +00:00
ldscript.kmod.i386 Formalize the use of linker scripts for kernel modules. 2019-10-16 22:19:56 +00:00
ldscript.mips Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.cfe Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.mips64 Expose the kernel's build-ID through sysctl 2019-06-04 13:07:10 +00:00
ldscript.mips.octeon1 Fix linking OCTEON1 kernel with LLD 2020-03-22 22:18:00 +00:00
ldscript.powerpc [PowerPC] kernel ifunc support for powerpc*, fix ppc64 relocation oddities. 2020-05-07 19:32:49 +00:00
ldscript.powerpc64 [PowerPC] Fix build-id note on powerpc64 kernel 2020-06-01 19:40:59 +00:00
ldscript.powerpc64le [PowerPC64LE] Set up powerpc.powerpc64le architecture 2020-09-22 23:49:30 +00:00
ldscript.powerpcspe [PowerPC] kernel ifunc support for powerpc*, fix ppc64 relocation oddities. 2020-05-07 19:32:49 +00:00
ldscript.riscv Set the LMA of the riscv kernel to the OpenSBI jump target by default 2020-02-04 00:06:16 +00:00
Makefile.amd64 Don't try ctfconvert on file without debug info. 2020-04-28 16:09:25 +00:00
Makefile.arm Brand our DTS with the Linux version it was imported from 2020-10-10 07:18:51 +00:00
Makefile.arm64 Eliminate the generated ldscript for arm and arm64, and strip $a/$d marker 2019-12-29 18:17:12 +00:00
Makefile.i386 Retire CLANG_NO_IAS34 2018-11-01 23:11:47 +00:00
Makefile.mips Compile hack.c with normal CFLAGS + -shared -nostdlib. 2020-01-26 14:19:08 +00:00
Makefile.powerpc Remove tests for obsolete compilers in the build system 2020-05-12 15:22:40 +00:00
Makefile.riscv Simplify the RISC-V kernel linker invocation 2020-05-22 18:54:56 +00:00
newvers.sh Partially revert r346018 and use the if/then construct instead of shell. 2020-09-14 14:45:30 +00:00
NOTES Add "Fenestras X" alternative /dev/random implementation 2020-10-10 21:45:59 +00:00
options Add "Fenestras X" alternative /dev/random implementation 2020-10-10 21:45:59 +00:00
options.amd64 Initial support for bhyve save and restore. 2020-05-05 00:02:04 +00:00
options.arm Kill old armv4 busdma 2020-02-02 08:27:14 +00:00
options.arm64 Add i.MX 8M Quad support 2020-07-01 00:33:16 +00:00
options.i386 i386: Merge PAE and non-PAE pmaps into same kernel. 2019-01-30 02:07:13 +00:00
options.mips Add SMP support for BERI CPU. 2018-04-12 17:43:19 +00:00
options.powerpc [PowerPC64LE] Work around qemu TCG bug in mtmsrd emulation. 2020-09-23 00:09:29 +00:00
options.riscv o Add driver for PLIC (Platform-Level Interrupt Controller) device. 2018-06-12 17:45:15 +00:00
sysent.mk Rebuild sysent when capabilities.conf is updated. 2020-07-07 16:35:52 +00:00
systags.sh Fix kernel-tags target. 2020-01-23 13:56:12 +00:00
WITHOUT_SOURCELESS
WITHOUT_SOURCELESS_HOST
WITHOUT_SOURCELESS_UCODE retire cx,ctau drivers 2020-03-20 16:50:19 +00:00