Home | History | Annotate | Download | only in dev
History log of /src/sys/dev/files.dev
RevisionDateAuthorComments
 1.10  02-Apr-2024  charlotte dk(4): Add support for discovering Atari TOS partitions as wedges

Any partitioning scheme which conforms to the Atari AHDI 3.00 spec should be
recognized by the new DKWEDGE_METHOD_TOS.
 1.9  04-Jun-2022  pgoyette Combine the midi and sequencer modules into a single midi_seq module
to avoid a circular dependency as noted in kern/56772. Retain minimal
modules of the original names to accomodate auto-loading upon access
to the /dev/xxx nodes.
 1.8  10-Oct-2021  jmcneill efi: Add /dev/efi character device

Introduce a /dev/efi character device that provides a means for accessing
UEFI RT variable services from userland. Compatible with the FreeBSD ioctl
interface for ease of porting their libefivar and associated tools.

The ioctl interface is defined in sys/efiio.h.

To enable support for this on an arch, the kernel needs `pseudo-device efi`
and the MD EFI implementation needs to register its backend by calling
efi_ops_register(). This commit includes an implementation for Arm.
 1.7  21-Jul-2021  jmcneill Separate MI smbios interface from MD specific code.
 1.6  30-Apr-2020  riastradh branches: 1.6.6;
Rewrite entropy subsystem.

Primary goals:

1. Use cryptography primitives designed and vetted by cryptographers.
2. Be honest about entropy estimation.
3. Propagate full entropy as soon as possible.
4. Simplify the APIs.
5. Reduce overhead of rnd_add_data and cprng_strong.
6. Reduce side channels of HWRNG data and human input sources.
7. Improve visibility of operation with sysctl and event counters.

Caveat: rngtest is no longer used generically for RND_TYPE_RNG
rndsources. Hardware RNG devices should have hardware-specific
health tests. For example, checking for two repeated 256-bit outputs
works to detect AMD's 2019 RDRAND bug. Not all hardware RNGs are
necessarily designed to produce exactly uniform output.

ENTROPY POOL

- A Keccak sponge, with test vectors, replaces the old LFSR/SHA-1
kludge as the cryptographic primitive.

- `Entropy depletion' is available for testing purposes with a sysctl
knob kern.entropy.depletion; otherwise it is disabled, and once the
system reaches full entropy it is assumed to stay there as far as
modern cryptography is concerned.

- No `entropy estimation' based on sample values. Such `entropy
estimation' is a contradiction in terms, dishonest to users, and a
potential source of side channels. It is the responsibility of the
driver author to study the entropy of the process that generates
the samples.

- Per-CPU gathering pools avoid contention on a global queue.

- Entropy is occasionally consolidated into global pool -- as soon as
it's ready, if we've never reached full entropy, and with a rate
limit afterward. Operators can force consolidation now by running
sysctl -w kern.entropy.consolidate=1.

- rndsink(9) API has been replaced by an epoch counter which changes
whenever entropy is consolidated into the global pool.
. Usage: Cache entropy_epoch() when you seed. If entropy_epoch()
has changed when you're about to use whatever you seeded, reseed.
. Epoch is never zero, so initialize cache to 0 if you want to reseed
on first use.
. Epoch is -1 iff we have never reached full entropy -- in other
words, the old rnd_initial_entropy is (entropy_epoch() != -1) --
but it is better if you check for changes rather than for -1, so
that if the system estimated its own entropy incorrectly, entropy
consolidation has the opportunity to prevent future compromise.

- Sysctls and event counters provide operator visibility into what's
happening:
. kern.entropy.needed - bits of entropy short of full entropy
. kern.entropy.pending - bits known to be pending in per-CPU pools,
can be consolidated with sysctl -w kern.entropy.consolidate=1
. kern.entropy.epoch - number of times consolidation has happened,
never 0, and -1 iff we have never reached full entropy

CPRNG_STRONG

- A cprng_strong instance is now a collection of per-CPU NIST
Hash_DRBGs. There are only two in the system: user_cprng for
/dev/urandom and sysctl kern.?random, and kern_cprng for kernel
users which may need to operate in interrupt context up to IPL_VM.

(Calling cprng_strong in interrupt context does not strike me as a
particularly good idea, so I added an event counter to see whether
anything actually does.)

- Event counters provide operator visibility into when reseeding
happens.

INTEL RDRAND/RDSEED, VIA C3 RNG (CPU_RNG)

- Unwired for now; will be rewired in a subsequent commit.
 1.5  25-Dec-2018  mlelstv Make ipmi driver available to other platforms.
Add ACPI attachment.
 1.4  01-Nov-2017  mlelstv branches: 1.4.2; 1.4.4; 1.4.6;
refactor wd and ataraid drivers to use common disk subroutines.
 1.3  26-Feb-2017  rin Add DKWEDGE_METHOD_RDB option, which is Amiga Rigid Disk Block (RDB)
partitioning detection method for dk(4).
 1.2  10-Dec-2016  mlelstv branches: 1.2.2;
Refactored sd and cd to use common disk subroutines.
 1.1  21-Aug-2015  uebayasi branches: 1.1.2; 1.1.4;
Move dev/ definitions out of files.kern.
 1.1.4.2  20-Mar-2017  pgoyette Sync with HEAD
 1.1.4.1  07-Jan-2017  pgoyette Sync with HEAD. (Note that most of these changes are simply $NetBSD$
tag issues.)
 1.1.2.4  28-Aug-2017  skrll Sync with HEAD
 1.1.2.3  05-Feb-2017  skrll Sync with HEAD
 1.1.2.2  22-Sep-2015  skrll Sync with HEAD
 1.1.2.1  21-Aug-2015  skrll file files.dev was added on branch nick-nhusb on 2015-09-22 12:05:56 +0000
 1.2.2.1  21-Apr-2017  bouyer Sync with HEAD
 1.4.6.1  10-Jun-2019  christos Sync with HEAD
 1.4.4.1  26-Dec-2018  pgoyette Sync with HEAD, resolve a few conflicts
 1.4.2.2  03-Dec-2017  jdolecek update from HEAD
 1.4.2.1  01-Nov-2017  jdolecek file files.dev was added on branch tls-maxphys on 2017-12-03 11:36:58 +0000
 1.6.6.1  01-Aug-2021  thorpej Sync with HEAD.

RSS XML Feed