8896 Commits

Author SHA1 Message Date
christos
a461f65adc Move the rump module test programs in the regular mi file. These are not
really kernel modules and the other md module test is in the md.amd64 file
already.
2020-05-01 17:14:28 +00:00
ryo
1da5a7c800 Add a test for sigaltstack(2) and SA_ONSTACK 2020-04-30 11:03:29 +00:00
riastradh
5084c1b50f 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.
2020-04-30 03:28:18 +00:00
rillig
0cf5f48424 usr.bin/make: add test case for lazy conditions 2020-04-29 23:15:21 +00:00
rjs
9df5444666 The x86_pte tests are only built when MKKMOD=yes. 2020-04-28 13:43:45 +00:00
mlelstv
6676af1407 Add missing futex tests. 2020-04-26 21:05:36 +00:00
thorpej
276ef22378 Add a NetBSD native futex implementation, mostly written by riastradh@.
Map the COMPAT_LINUX futex calls to the native ones.
2020-04-26 18:53:31 +00:00
maxv
e497fc86e6 Add tests on the x86 PTEs. We scan the MMU page tables directly and verify
certain properties.
2020-04-26 09:08:40 +00:00
rin
e14b16b8c0 Adjust for binutils 2.34. 2020-04-26 06:58:05 +00:00
bouyer
224cc4e632 Add /usr/include/xen/intrdefs.h to sets
Add xen to KLINKFILES for amd64/i386
2020-04-25 15:46:59 +00:00
kre
9d0d79c629 Update to tzdata2020a (new zone file America/Nuuk)
XXX pullup -8 -9
2020-04-25 12:18:47 +00:00
uki
6f0f0600e3 Add -unknown- to "./netbsd" in modules/mi to fix "build.sh syspkgs" failure 2020-04-23 11:41:28 +00:00
maxv
7ee848d944 Add tests for USER_LDT. 2020-04-19 13:22:58 +00:00
kre
e9f637c8af Since dhcpcd-hools/02-dump seems to have been removed from the
repository, don't attempt to install it, and don't expect it to
be installed.    If a better fix is to return 02-dump, then this
change can be reverted (by anyone, just go ahead and do it).

dhcpcd(8) should also have mention of 02-dump removed, if removing
it was intentional.
2020-04-14 03:16:26 +00:00
simonb
a91470c59b Add uxrcom driver for Exar XR21V141x USB serial adapters. Based in part
on the OpenBSD single-port XR21V1410 uxrcom driver, but adds support
for multi-port chipsets and uses the common umodem framework instead of
being a standalone driver.

Thanks to skrll@ for much USB clue and mrg@ for financing the
development of this driver.
2020-04-12 01:10:53 +00:00
christos
407ffe11fc Add new t_extattr 2020-04-11 01:51:14 +00:00
mlelstv
f8df89e092 revert to previous 2020-04-05 05:19:24 +00:00
christos
102c608adf we don't delete entries, we mark them obsolete so that postinstall can
delete the files.
2020-04-05 01:21:43 +00:00
mlelstv
e264b2bd0f one more netsmb reference. 2020-04-04 22:08:33 +00:00
christos
d8e96a2d4f Infrastructure for putting kernel+modules in /netbsd/kernel and
/netbsd/modules respectively instead of /netbsd and
/stand/<arch>/<version>/modules.  This is only supported for x86,
and is turned off by default. To try it, add KERNEL_DIR=yes in your
/mk.conf and install a system from that build.
2020-04-04 19:50:53 +00:00
christos
8809b7dc13 fix netsmb, libgnuctf 2020-04-04 19:26:51 +00:00
christos
ec53555ab5 gnuctf is only binutils=234 2020-04-04 17:00:05 +00:00
christos
1a8140ac32 fix libgnuctf 2020-04-04 16:05:39 +00:00
christos
1e0e781857 fix sets for new binutils 2020-04-04 16:04:01 +00:00
jdolecek
b28734a61b remove SMBFS and nsmb/netsmb - userland part 2020-04-04 15:39:13 +00:00
mlelstv
9f445f8e17 More binutils version mismatch. 2020-04-04 12:06:57 +00:00
mlelstv
19fee71a55 conditionally list library versions for binutils 2.31 and 2.34 2020-04-04 09:57:12 +00:00
roy
da35319256 Adjust set lists for dhcpcd chroot 2020-04-02 13:03:22 +00:00
kamil
bf4492493d Add ioctlprint - descriptive ioctl value printer
ioctlprint(1) is embedded in the kdump(1) program.
2020-04-02 03:32:46 +00:00
maxv
0512ed0af2 Put the ioctl definitions in a header, and install it. 2020-03-31 16:28:28 +00:00
christos
f56084844e Add rpcapd 2020-03-30 02:12:38 +00:00
christos
66d7aa31df enable remote for libpcap and add rpcapd 2020-03-29 17:13:46 +00:00
christos
3958d16a96 As described in tech-userlevel:
- Modify the writing code to only write entries in the new
  format for the terminal descriptions that require it.
- Store new format entries as <name>@v3
- Store old format entries with clamped values as <name> for
  backwards compatibility
- Lookup first <name>@v3 and then <name> if that is not found.
- Don't create terminfo2 anymore; old programs keep working with
  clamped entries, and new programs be able to use the wide
  fields with using the original db file.
2020-03-27 15:11:57 +00:00
thorpej
8ddade78c3 Let xunlong,orangepi-lite2 share bwfm config with raspberrypi,3-model-b-plus;
it seem to work fine and there's no better alternative at the moment.
2020-03-27 04:31:18 +00:00
kre
5388a00941 Document strerror_l()
While here also document (but comment it out since it isn't
available - yet) strerror_lr().   To include that, simply
uncomment the relevant lines, and (twice I think) s/returns/return/
on lines just after currently commented out lines (that is, it
currently says, "A returns" after the comments are returned, we
need it to be "A and B return" - the "and B" appears when the comment
markers are removed, removing the 's' from returns must be done manually.

In addition to adding strerror_l() some additional enhancements were
made to the general strerror() doc.
2020-03-25 18:45:42 +00:00
christos
4fa722caef add pw_gensalt 2020-03-25 17:13:49 +00:00
roy
bb2ce1fb3d curses: Add stubs for mouse functions
No mouse support actually included.
But that doesn't matter because most terms don't actually support a mouse.

We should look into hooking these into wsmouse(4) and xterm mouse
in the future.

Compatable with nCurses mouse API version 2.
2020-03-23 13:37:36 +00:00
thorpej
3639ae7e3e Install the common AP6212 nvram config and use it for sinovoip,bpi-m2-zero. 2020-03-22 22:36:12 +00:00
thorpej
fa16de81c1 The raspberrypi,model-zero-w uses the same nvram config file as the
raspberrypi,3-model-b.
2020-03-22 22:17:11 +00:00
thorpej
e36e7c169a Install the "bwfm" firmware for the Pinebook Pro. 2020-03-22 21:13:35 +00:00
thorpej
4886cefda0 Add new bwfm firmware binaries and config files. Only install the
SDIO firmware binaries and platform-specific config files on platforms
where they're relevant.
2020-03-22 20:21:53 +00:00
ad
5de49fc7c2 Wrap vnode_impl.h in defined(_KERNEL) || defined(_KMEMUSER), and install
it for kmem grovellers.
2020-03-22 14:27:33 +00:00
skrll
73cad4db9c hopefully fix builds 2020-03-14 06:39:20 +00:00
roy
aadfdb111b terminfo: promote numeric parameters from short to int
POSIX mandates implementations must support upto a short but may exceed it.
When NetBSD terminfo was implemented, no terminfo description used over
a short, but because ncurses has supported ints for some time, some now do.

Infact, such a terminfo description was imported where colour pairs for
screen-256color went up to 65536 which exposed a bug in the existing
implementation where it set to zero. Because the number might mean
something more than a range, we need to be able to store it accurately.

This requires a version bump because whilst the API hasn't changed thanks
to C int promotion, the ABI has. Also the underlying database structure
has changed as well - we now store the numeric paramter inside a uint32_t
field rather than a uint16_t one.
Whilst this change can still read the old style database, the old one
cannot read the new one and thus we now maintain the database as
terminfo2.cdb, leaving the old library and database alone so old programs
still work fine.

libcurses, libfrom, libmenu and libpanel have also been bumped to
accomoate this change.
2020-03-13 15:19:24 +00:00
pgoyette
e135ca8390 Add new netbsd32 quota modules to sets lists 2020-03-12 15:04:13 +00:00
skrll
fcbc11fb45 Fixup the evbarm PCI modules 2020-03-11 08:31:08 +00:00
christos
7aea3fca18 wrong test name 2020-03-09 02:22:20 +00:00
mgorny
43b5dbaaaf Update libc SOVERSION 2020-03-08 22:42:35 +00:00
mgorny
5fb02e28e8 Add tests for missing libc catalog entries 2020-03-08 22:08:46 +00:00
christos
40bc2ecca0 new test for ifconfig 2020-03-08 17:23:55 +00:00