openbsd
22 months agomove the flag mappings displayed by "route show" from netstat(1) to route(8):
jmc [Thu, 22 Dec 2022 07:23:29 +0000 (07:23 +0000)]
move the flag mappings displayed by "route show" from netstat(1) to route(8):
diff from paul tagliamonte, who was surprised to find them not documented
in route(8);

claudio agreed placement was not ideal;
deraadt confirmed users better served by route(8) than netstat(1);

i've tweaked some of the spacing and text so it displays better,
and removed some macros incorrectly associated with the "nameserver"
list item, which was messing up the formatting. should display better
now

22 months agouse stoeplitz to generate a hash/flowid for state keys.
dlg [Thu, 22 Dec 2022 05:59:26 +0000 (05:59 +0000)]
use stoeplitz to generate a hash/flowid for state keys.

the hash will be used to partition work in pf and pfsync in the
future, and right now it is used as the first comparison in the rb
tree state lookup.

using stoeplitz means that pf will hash traffic the same way that
hardware using a stoeplitz key will hash incoming traffic on rings.
stoeplitz is also used by the tcp stack to generate a flow id, which
is used to pick which transmit ring is used on nics with multiple
queues too. using the same algorithm throughout the stack encourages
affinity of packets to rings and softnet threads the whole way
through.

using the hash as the first comparison in the state rb tree comparison
should encourage faster traversal of the state tree by having all
the address/port bits summarised into the single hash value. however,
tests by hrvoje popovski don't show performance changing. on the
plus side, if this change is free from a performance point of view
then it makes the future steps more straightforward.

discussed at length at h2k22
tested by sashan@ and hrvoje popovski
ok tb@ sashan@ claudio@ jmatthew@

22 months agoprovide stoeplitz_n32()
dlg [Thu, 22 Dec 2022 04:43:52 +0000 (04:43 +0000)]
provide stoeplitz_n32()

22 months agoHave the power button trigger a wakeup from suspend.
patrick [Wed, 21 Dec 2022 23:26:54 +0000 (23:26 +0000)]
Have the power button trigger a wakeup from suspend.

ok kettenis@

22 months agoImplement wakeup interrupt handling. This makes sure that during suspend
patrick [Wed, 21 Dec 2022 23:18:09 +0000 (23:18 +0000)]
Implement wakeup interrupt handling.  This makes sure that during suspend
we only have wakeup interrupts enabled, all others are disabled.

ok kettenis@

22 months agoPull enabling/disabling wakeup interrupt handling out of the aplintc(4)
kettenis [Wed, 21 Dec 2022 22:30:42 +0000 (22:30 +0000)]
Pull enabling/disabling wakeup interrupt handling out of the aplintc(4)
DVACT_SUSPEND/DVACT_RESUME handling and push it into the MD code that
handles "suspend-to-idle".  This way a failure in DVACT_SUSPEND handling
will not result in hosed interrupts on the primary interrupt controller
if we abort the suspend operation.

requested by deraadt@
ok patrick@

22 months agoMark BIO_nread0(3), BIO_nread(3), BIO_nwrite0(3), and BIO_nwrite(3)
schwarze [Wed, 21 Dec 2022 15:08:37 +0000 (15:08 +0000)]
Mark BIO_nread0(3), BIO_nread(3), BIO_nwrite0(3), and BIO_nwrite(3)
as intentionally undocumented.

Bodo Moeller invented this "non-copying I/O" API in 1999, but according
to codesearch.debian.net, it is still completely unused by anything.
On top of that, it appears to be inflexible in so far as it only
supports BIO pairs and no other BIO types and fragile in so far as
it exposes pointers to internal storage and runs contrary to expectations
of how BIO objects are supposed to work.

22 months agoMove duplicate code to new sr_find_discipline() helper
kn [Wed, 21 Dec 2022 09:54:23 +0000 (09:54 +0000)]
Move duplicate code to new sr_find_discipline() helper

OK miod

22 months agoThe location of the aux info vector is now cached in ps_auxinfo of struct
claudio [Wed, 21 Dec 2022 07:59:02 +0000 (07:59 +0000)]
The location of the aux info vector is now cached in ps_auxinfo of struct
process. Use this information to access the vector.
OK mpi@ mbuhl@ deraadt@

22 months agofix a mangled comment
deraadt [Wed, 21 Dec 2022 07:16:03 +0000 (07:16 +0000)]
fix a mangled comment

22 months agotiny whitespace tweak.
dlg [Wed, 21 Dec 2022 03:02:34 +0000 (03:02 +0000)]
tiny whitespace tweak.

22 months agoconsistently use the PF_REF wrappers around refcnts.
dlg [Wed, 21 Dec 2022 02:51:06 +0000 (02:51 +0000)]
consistently use the PF_REF wrappers around refcnts.

22 months agoUpdate the Rx descriptor based on the vendor driver for Linux.
kevlo [Wed, 21 Dec 2022 02:31:09 +0000 (02:31 +0000)]
Update the Rx descriptor based on the vendor driver for Linux.
This fixes a panic seen by Geoff Steckel on RTL8125 with MCLGETL.

Tested by Geoff Steckel and Nick Owens.

ok dlg@

22 months agoprefix pf_state_key and pf_state_item struct bits to make them more unique.
dlg [Wed, 21 Dec 2022 02:23:10 +0000 (02:23 +0000)]
prefix pf_state_key and pf_state_item struct bits to make them more unique.

this makes searching for the struct members easier, which in turn
makes tweaking code around them a lot easier too. sk_refcnt in
particular would have been a lot nicer to fiddle with than just
refcnt because pf_state structs also have a refcnt, which is annoying.

tweaks and ok sashan@
reads ok kn@

22 months agoAdd argument support for msyscall, pledge, unveil, __realpath,
guenther [Tue, 20 Dec 2022 21:44:19 +0000 (21:44 +0000)]
Add argument support for msyscall, pledge, unveil, __realpath,
ypconnect, and __tmpfd.  Reorder several other syscalls to match
the order in syscalls.master

ok deraadt@

22 months agoIf we don't have usecommonopt for our application we shouldn't check the
martijn [Tue, 20 Dec 2022 20:12:27 +0000 (20:12 +0000)]
If we don't have usecommonopt for our application we shouldn't check the
default values for snmp protocol level stuff. Makes snmp mibtree work
again which got broken since the defaults changed back in 2021.

Reported by Matthias Pitzl (pitzl <at> genua <dot> de)
Hint to use usecommonopt and OK gerhard@

22 months agoApply proper bounds checking to non-repeaters and max-repetitions.
martijn [Tue, 20 Dec 2022 20:06:47 +0000 (20:06 +0000)]
Apply proper bounds checking to non-repeaters and max-repetitions.

OK sthen@, kn@

22 months agoMake ar[du]_{nonrepeaters,maxrepetitions} uint16_t instead of int16_t.
martijn [Tue, 20 Dec 2022 20:04:55 +0000 (20:04 +0000)]
Make ar[du]_{nonrepeaters,maxrepetitions} uint16_t instead of int16_t.
snmp uses signed 32 bits integers and agentx uses unsigned 16 bits
integers. I somehow ended up somewhere in between.

OK sthen@, kn@

22 months agoWhen writing out a PDU with authpriv that's larger than READ_BUF_SIZE
martijn [Tue, 20 Dec 2022 20:01:25 +0000 (20:01 +0000)]
When writing out a PDU with authpriv that's larger than READ_BUF_SIZE
we overflow the encbuf. Allocate encbuf on the fly so that we always have
enough room.

Give decryption the same treatment, although this one is not at risk, since
the input is limited to READ_BUF_SIZE.

OK sthen@, kn@

22 months agoWhen writing a message out over tcp that's too large to fit in a single
martijn [Tue, 20 Dec 2022 19:53:33 +0000 (19:53 +0000)]
When writing a message out over tcp that's too large to fit in a single
write(2), make sure that we don't restart the message on the next write
out, but continue where we left of.

OK sthen@, kn@

22 months agoadd a missing .Vt macro;
schwarze [Tue, 20 Dec 2022 17:59:29 +0000 (17:59 +0000)]
add a missing .Vt macro;
from Josiah Frentsos <jfrent at tilde dot team>

22 months agoMark BIO_dump_cb(3) and BIO_dump_indent_cb(3) as intentionally undocumented.
schwarze [Tue, 20 Dec 2022 15:34:03 +0000 (15:34 +0000)]
Mark BIO_dump_cb(3) and BIO_dump_indent_cb(3) as intentionally undocumented.

It appears Richard Levitte succumbed to everything-needs-a-callback-paranoia
in 2004, but nobody is going to be surprised that nothing whatsoever wants
to use this particular callback, according to codesearch.debian.net.

22 months agodocument BIO_fd_non_fatal_error(3) and BIO_fd_should_retry(3)
schwarze [Tue, 20 Dec 2022 14:55:45 +0000 (14:55 +0000)]
document BIO_fd_non_fatal_error(3) and BIO_fd_should_retry(3)

22 months ago- some small tweaks for the text
jmc [Tue, 20 Dec 2022 09:01:05 +0000 (09:01 +0000)]
- some small tweaks for the text
- on guenther's advice, remove NOTES: the text is either not relevant
  or already described correctly elsewhere

ok guenther

22 months agoImprove reporting of waitid(2)'s idtype/id and options arguments
guenther [Mon, 19 Dec 2022 22:55:12 +0000 (22:55 +0000)]
Improve reporting of waitid(2)'s idtype/id and options arguments
Add mimmutable(2) to report like munmap(2)

22 months agoWTRAPPED is now supported by waitid(2)
guenther [Mon, 19 Dec 2022 22:44:54 +0000 (22:44 +0000)]
WTRAPPED is now supported by waitid(2)
Don't test waitid(WUNTRACED) as that's not portable and only 'works' due
to an implementation decision

22 months agoSilence vmd ns8250 log noise about reading com1 before ready.
dv [Mon, 19 Dec 2022 20:27:26 +0000 (20:27 +0000)]
Silence vmd ns8250 log noise about reading com1 before ready.

ok marlkin@

22 months agosync
deraadt [Mon, 19 Dec 2022 20:17:06 +0000 (20:17 +0000)]
sync

22 months agoAdd waitid(2) manpage, based on a first pass by espie@ and bits
guenther [Mon, 19 Dec 2022 18:13:50 +0000 (18:13 +0000)]
Add waitid(2) manpage, based on a first pass by espie@ and bits
from FreeBSD and NetBSD.

ok kettenis@ jmc@ espie@

22 months agoRemove unused *sd_scsibus_dev member from struct sr_discipline
kn [Mon, 19 Dec 2022 15:27:06 +0000 (15:27 +0000)]
Remove unused *sd_scsibus_dev member from struct sr_discipline

Under _KERNEL, dead since 2011 r1.100
    Simplify softraid(4) to behave like other HBAs [...]

OK krw

22 months agoInvalidate ugen(4) knote lists after device detach
visa [Mon, 19 Dec 2022 15:10:40 +0000 (15:10 +0000)]
Invalidate ugen(4) knote lists after device detach

This prevents the kernel from crashing when a ugen(4) device is detached
while kqueue still holds a reference to that device.

Crash reported and fix tested by xavier.s on bugs@.

OK mpi@

22 months agodocument BIO_copy_next_retry(3)
schwarze [Mon, 19 Dec 2022 14:40:14 +0000 (14:40 +0000)]
document BIO_copy_next_retry(3)

22 months agoacme-client: fix copy-paste error in error message
tb [Mon, 19 Dec 2022 11:16:52 +0000 (11:16 +0000)]
acme-client: fix copy-paste error in error message

22 months agoRemove array reference from sh(1) because sh doesn't have arrays.
sdk [Mon, 19 Dec 2022 08:19:50 +0000 (08:19 +0000)]
Remove array reference from sh(1) because sh doesn't have arrays.
Reported with diff from Ross L Richardson

Agreed kn, OK jmc

22 months agoSay "discipline" not "dis" in comment, latter looks like typoed "disk"
kn [Mon, 19 Dec 2022 08:16:36 +0000 (08:16 +0000)]
Say "discipline" not "dis" in comment, latter looks like typoed "disk"

22 months agoAllow send-keys without a client again, reported by Stefan Hagen.
nicm [Mon, 19 Dec 2022 07:30:10 +0000 (07:30 +0000)]
Allow send-keys without a client again, reported by Stefan Hagen.

22 months agorework the synchronisation around suspend/resume.
dlg [Mon, 19 Dec 2022 04:48:07 +0000 (04:48 +0000)]
rework the synchronisation around suspend/resume.

the idea is that access to vmm from userland is gated by the vmm_softc
sc_status field, and then accounted for by the refcnt. you take a read
lock to check the gate, and if it is open then you can take a reference
and do your thing. once you've finished the work then you rele the
refcnt on the way out of the ioctl handler.

the suspend code takes a write lock to close the sc_status gate,
and then uses refcnt_finalise to wait for things in the ioctl handler
to get out.

on resume, the code takes the write lock, sets the refcnt up again for
userland to use, and then opens the gate.

tested by and ok dv@

22 months agomove pf_state_item and pf_state_key structs from pfvar.h to pfvar_priv.h.
dlg [Mon, 19 Dec 2022 04:35:33 +0000 (04:35 +0000)]
move pf_state_item and pf_state_key structs from pfvar.h to pfvar_priv.h.

both of these are kernel private data structures and do not need
to be visible to userland. moving them to pfvar_priv.h makes this
explicit, and makes it leass scary to tweak them in the future.

ok deraadt@ kn@ sashan@

22 months agoRevert previous: unintentionally included in commit
guenther [Mon, 19 Dec 2022 03:54:17 +0000 (03:54 +0000)]
Revert previous: unintentionally included in commit

22 months agoAdd pselect(2), recvmmsg(2), sendmmsg(2), and waitid(2) to the lists
guenther [Mon, 19 Dec 2022 03:49:42 +0000 (03:49 +0000)]
Add pselect(2), recvmmsg(2), sendmmsg(2), and waitid(2) to the lists
of built-in cancelation points.

22 months agowaitid(2) returns 0 on success; do post-call cancelation only if
guenther [Mon, 19 Dec 2022 03:40:20 +0000 (03:40 +0000)]
waitid(2) returns 0 on success; do post-call cancelation only if
it either failed, or succeeded but didn't put a status into infop.

ok millert@

22 months agoAdd WTRAPPED opiton for waitid(2) to control whether CMD_TRAPPED
guenther [Mon, 19 Dec 2022 00:22:11 +0000 (00:22 +0000)]
Add WTRAPPED opiton for waitid(2) to control whether CMD_TRAPPED
state changes are reported.  That's the 6th bit, so switch to hex
constants.  Adjust #if tests for consistency

ok kettenis@

22 months agospelling
deraadt [Sun, 18 Dec 2022 23:41:17 +0000 (23:41 +0000)]
spelling

22 months agodocument BIO_FLAGS_MEM_RDONLY
schwarze [Sun, 18 Dec 2022 22:27:10 +0000 (22:27 +0000)]
document BIO_FLAGS_MEM_RDONLY

22 months agodocument BIO_set_retry_read(3), BIO_set_retry_write(3),
schwarze [Sun, 18 Dec 2022 21:45:47 +0000 (21:45 +0000)]
document BIO_set_retry_read(3), BIO_set_retry_write(3),
BIO_set_retry_special(3), BIO_clear_retry_flags(3), BIO_get_retry_flags(3),
and the BIO_FLAGS_* constants

22 months agodocument the interaction with BIO_dup_chain(3)
schwarze [Sun, 18 Dec 2022 20:24:52 +0000 (20:24 +0000)]
document the interaction with BIO_dup_chain(3)

22 months agonew manual page BIO_dup_chain(3)
schwarze [Sun, 18 Dec 2022 19:35:36 +0000 (19:35 +0000)]
new manual page BIO_dup_chain(3)

22 months agocannot try the boot.data unmap until all the ld.script are commited, and
deraadt [Sun, 18 Dec 2022 19:33:11 +0000 (19:33 +0000)]
cannot try the boot.data unmap until all the ld.script are commited, and
fixed to identify the region correctly.

22 months agocorrect the prototypes of BIO_get_conn_ip(3) and BIO_get_conn_int_port(3);
schwarze [Sun, 18 Dec 2022 19:15:38 +0000 (19:15 +0000)]
correct the prototypes of BIO_get_conn_ip(3) and BIO_get_conn_int_port(3);
from Richard Levitte via OpenSSL commit 0e474b8b in the 1.1.1 branch,
which is still under a freee license

22 months agoUnify RSSI check
kn [Sun, 18 Dec 2022 18:56:38 +0000 (18:56 +0000)]
Unify RSSI check

Two spots in ifconfig print the signal strength, one for the "ieee80211: "
line and one for each SSID in scan output.

Only the former checks nr_rssi, which is not needed as nr_max_rssi alone
indicates whether the driver reports signal strength in percentage or dBm.

Zap the nr_rssi check to simplify;  "worst case" we display 0% or 0dBm
instead of nothing.

Feedback OK stsp

22 months agoadd Czechia as an alternative for Czech Republic
daniel [Sun, 18 Dec 2022 18:02:00 +0000 (18:02 +0000)]
add Czechia as an alternative for Czech Republic

22 months agoregen
daniel [Sun, 18 Dec 2022 17:42:56 +0000 (17:42 +0000)]
regen

22 months agoadd two transmeta devices
daniel [Sun, 18 Dec 2022 17:42:23 +0000 (17:42 +0000)]
add two transmeta devices

According to the "Efficeon BIOS Programmers Guide", the Efficeon
processor has a virtual north bridge that can communicate with the
south bridge over HyperTransport (device 0x0060) and with the
graphics controller over an AGP bridge (device 0x0061).

ok jsg@

22 months agodocument BIO_number_read(3) and BIO_number_written(3)
schwarze [Sun, 18 Dec 2022 17:40:55 +0000 (17:40 +0000)]
document BIO_number_read(3) and BIO_number_written(3)

22 months agoRevert previous as it doesn't create additional lo(4) anymore
kn [Sun, 18 Dec 2022 15:52:52 +0000 (15:52 +0000)]
Revert previous as it doesn't create additional lo(4) anymore

Reported by Andreas Bartelt on bugs@

22 months agoDo not save bootdev and boothowto when invalid value has passed.
aoyama [Sun, 18 Dec 2022 13:18:36 +0000 (13:18 +0000)]
Do not save bootdev and boothowto when invalid value has passed.

This occurs the kernel has booted from old boot loader or directly
booted by command line parameter on emulator.

Tested by LUNA-88K2 and nono emulator.

22 months agoPrevent detaching the boot volume
kn [Sun, 18 Dec 2022 13:10:08 +0000 (13:10 +0000)]
Prevent detaching the boot volume

bioctl(8)'s -d has no sanity checks and happily "deletes" any volume,
whether currently in use or not.

For now, refuse to detach the boot volume as a (too) simple safety guard,
until proper logic around mounted file systems on top is implemented.

Found the hard way through "bioctl -d sd1" with sd1 hosting /, after which
it took both fsck(8) and installboot(8) from a miniroot USB to recover.

regress/sys/dev/softraid also triggers it if root is on softraid.

OK claudio op jsing

22 months agonc: update regress after recent changes
tb [Sun, 18 Dec 2022 12:53:50 +0000 (12:53 +0000)]
nc: update regress after recent changes

22 months agonc: skip connection info on failed or skipped udptest()
tb [Sun, 18 Dec 2022 12:53:18 +0000 (12:53 +0000)]
nc: skip connection info on failed or skipped udptest()

In udp mode, nc would always print that the connected succeeded
independently of whether that was actually the case. Don't do that.

idea/ok mpf

22 months agonc: do not test the connection in non-interactive mode
tb [Sun, 18 Dec 2022 12:51:10 +0000 (12:51 +0000)]
nc: do not test the connection in non-interactive mode

The connection test writes four X to the socket, which corrupts data
that we may want to pipe into nc. So don't do that if stdin is not a
tty but still do it in scan mode, this is needed according to chris.

based on a diff by and ok mpf

22 months agonc: clean up and simplify connection_infO()
tb [Sun, 18 Dec 2022 12:48:28 +0000 (12:48 +0000)]
nc: clean up and simplify connection_infO()

ok mpf as part of a larger diff

22 months agonc: pass protocol name to connection_info()
tb [Sun, 18 Dec 2022 12:47:31 +0000 (12:47 +0000)]
nc: pass protocol name to connection_info()

Avoids repeated use of ternary operator on globals.

22 months agonc: factor printing of connection info into a function
tb [Sun, 18 Dec 2022 12:45:34 +0000 (12:45 +0000)]
nc: factor printing of connection info into a function

This simply moves a chunk of code in this spaghetti mess into its own
function with minimal changes.

idea from a diff by mpf

22 months agoacme-client: rename cc to sign_len in op_sign()
tb [Sun, 18 Dec 2022 12:39:59 +0000 (12:39 +0000)]
acme-client: rename cc to sign_len in op_sign()

requested by jsing

22 months agoacme-client: fix openssl includes in acctproc.c
tb [Sun, 18 Dec 2022 12:35:26 +0000 (12:35 +0000)]
acme-client: fix openssl includes in acctproc.c

We don't do PEM or random in here, but we use BN, EC, ECDSA, so include
the relevant headers. errno.h was also missing.

22 months agoacme-client: check EC signature length
tb [Sun, 18 Dec 2022 12:31:57 +0000 (12:31 +0000)]
acme-client: check EC signature length

Make sure the size_t containing EC signature length is not truncated
when passing it to d2i_ECDSA_SIG() as a long. This won't happen, but
documents API quirks...

requested by jsing

22 months agoacme-client: simplify elliptic curve signatures
tb [Sun, 18 Dec 2022 12:27:58 +0000 (12:27 +0000)]
acme-client: simplify elliptic curve signatures

We can get the correct size of the signature using EVP_PKEY_bits() which
uses the order instead of the (strictly speaking incorrect) degree. Grab
the (r, s) out of the ECDSA signature with ECDSA_SIG_get0_{r,s}(), which
is a saner interface than EVP_SIG_get0(). Finally, do the zero padding
using BN_bn2binpad() which is simpler than the currently rather fiddly
solution.

ok jsing

22 months agoacme-client: switch op_sign() to EVP_DigestSign()
tb [Sun, 18 Dec 2022 12:22:30 +0000 (12:22 +0000)]
acme-client: switch op_sign() to EVP_DigestSign()

EVP_DigestSign() is a bit more ergonomic than the old EVP_Sign* family,
it takes size_t instead of int and and it also allows allocating the
memory needed instead of relying on some weird estimate. This again gets
rid of a few stupid else if.

ok jsing

22 months agoacme-client: simplify op_thumbprint()
tb [Sun, 18 Dec 2022 12:13:11 +0000 (12:13 +0000)]
acme-client: simplify op_thumbprint()

We can EVP_Digest() into an array on the stack rather than doing a long
dance and song with lots of ugly else if.

ok jsing

22 months agoacme-client: inline a confusing and useless define
tb [Sun, 18 Dec 2022 12:08:49 +0000 (12:08 +0000)]
acme-client: inline a confusing and useless define

22 months agoacme-client: encode unexpected SANs before printing
tb [Sun, 18 Dec 2022 12:04:55 +0000 (12:04 +0000)]
acme-client: encode unexpected SANs before printing

If a SAN isn't configured, it could be anything, so make printing it safe
using strvisx(). If it is configured but duplicate, printing it should be
fine, so don't bother. This removes two XXX added in the previous commit.

ok florian

22 months agoregen
kettenis [Sun, 18 Dec 2022 10:29:53 +0000 (10:29 +0000)]
regen

22 months agoAdd Union Memory NVMe devices.
kettenis [Sun, 18 Dec 2022 10:29:28 +0000 (10:29 +0000)]
Add Union Memory NVMe devices.

ok jsg@

22 months agoDisable the keyboard on the Samsung Galaxy Book Go until we can fix the
mglocker [Sun, 18 Dec 2022 10:00:53 +0000 (10:00 +0000)]
Disable the keyboard on the Samsung Galaxy Book Go until we can fix the
resulting interrupt storm.  It's causing bad system performance, and breaks
the installer.

22 months agoDo not try to create physical interfaces
kn [Sun, 18 Dec 2022 05:51:14 +0000 (05:51 +0000)]
Do not try to create physical interfaces

vifscreate() always creates all virtual interfaces up-front.

To check whether a given interface exists, ifstart() uses ifcreate()
which tries to create nonexistent ones.

Virtual ones are guaranteed to be present and physical ones cannot be
created, so replace the ifcreate() call with a simpler ifconfig test and
clarify the comment.

OK martijn afresh1

22 months agoUse volatile sig_atomic_t for flag set in signal handler
tb [Sun, 18 Dec 2022 00:22:07 +0000 (00:22 +0000)]
Use volatile sig_atomic_t for flag set in signal handler

22 months agoSwitch to using BN_zero() instead of BN_zero_ex()
tb [Sat, 17 Dec 2022 23:41:29 +0000 (23:41 +0000)]
Switch to using BN_zero() instead of BN_zero_ex()

22 months agoMove benchmark target up a bit and mark it phony
tb [Sat, 17 Dec 2022 22:31:10 +0000 (22:31 +0000)]
Move benchmark target up a bit and mark it phony

22 months agoZap some whitespace
tb [Sat, 17 Dec 2022 22:30:39 +0000 (22:30 +0000)]
Zap some whitespace

22 months agoMerge documentation of UI_null() from OpenSSL 1.1
tb [Sat, 17 Dec 2022 22:23:31 +0000 (22:23 +0000)]
Merge documentation of UI_null() from OpenSSL 1.1

jsing doesn't like it, but it's better than nothing.

ok jsing

22 months agoDocument BIO_set_flags(3), BIO_clear_flags(3), BIO_test_flags(3),
schwarze [Sat, 17 Dec 2022 22:21:24 +0000 (22:21 +0000)]
Document BIO_set_flags(3), BIO_clear_flags(3), BIO_test_flags(3),
and BIO_get_flags(3).

22 months agoLink ui_null.c to build
tb [Sat, 17 Dec 2022 22:01:29 +0000 (22:01 +0000)]
Link ui_null.c to build

22 months agoPrepare to provide UI_null()
tb [Sat, 17 Dec 2022 21:59:39 +0000 (21:59 +0000)]
Prepare to provide UI_null()

xmlsec needs this, nothing else. Our linkers link libxmlsec1-openssl,
only warns and since nothing uses this library in ports, this wasn't
noticed for a long time.

Reported by Thomas Mitterfellner

ok jsing

22 months agosync
deraadt [Sat, 17 Dec 2022 19:59:03 +0000 (19:59 +0000)]
sync

22 months agoProvide regress coverage for BN shift functions.
jsing [Sat, 17 Dec 2022 17:18:46 +0000 (17:18 +0000)]
Provide regress coverage for BN shift functions.

Provide regress coverage for BN_lshift1(), BN_rshift1(), BN_lshift() and
BN_rshift(), along with basic benchmarking functionality (run via
'make benchmark').

22 months agoRevise cipher list regress coverage of SSL_set_security_level().
jsing [Sat, 17 Dec 2022 16:05:28 +0000 (16:05 +0000)]
Revise cipher list regress coverage of SSL_set_security_level().

A SSL_set_security_level() call was added to the cipher list regress, which
expects a failure - however, it should succeed and fails for a completely
unrelated reason. Rework this regress so that it actually passes and tests
for the expected behaviour.

22 months agoProvide BN_zero()/BN_one() as functions and make BN_zero() always succeed.
jsing [Sat, 17 Dec 2022 15:56:25 +0000 (15:56 +0000)]
Provide BN_zero()/BN_one() as functions and make BN_zero() always succeed.

BN_zero() is currently implemented using BN_set_word(), which means it can
fail, however almost nothing ever checks the return value. A long time
ago OpenSSL changed BN_zero() to always succeed and return void, however
kept BN_zero as a macro that calls a new BN_zero_ex() function, so that
it can be switched back to the "can fail" version.

Take a simpler approach - change BN_zero()/BN_one() to functions and make
BN_zero() always succeed. This will be exposed in the next bump, at which
point we can hopefully also remove the BN_zero_ex() function.

ok tb@

22 months agoadd arch to Dt;
jmc [Sat, 17 Dec 2022 14:53:16 +0000 (14:53 +0000)]
add arch to Dt;

22 months agoacme-client: fix SAN-handling insanity
tb [Sat, 17 Dec 2022 13:53:38 +0000 (13:53 +0000)]
acme-client: fix SAN-handling insanity

The revoke process, which does a lot more than revoking a cert, wants to
know the SANs in the cert to be revoked or renewed and check them against
the ones configured in the config file.

To find out which ones are, it prints the SAN extension to a BIO using
X509V3_EXT_print(), slurps that into a buffer, tokenizes the undocumented
output string and plucks out the "DNS:" names. This is reminiscent of
node's hilarious CVE-2021-44532 and on about the same level of crazy, but
fortunately not security relevant.

Get the SAN extension as a GENERAL_NAMES from libcrypto, then we have an
actual data structure to work with, which allows us to access the DNS names
without problems. This simplifies things quite a bit, but the actual logic
in this file remains unmodified. Be careful about ASN1_IA5STRINGs and do
not assume they are C strings.

Tested by florian, millert, Renaud Allard, thanks!

ok florian jsing

22 months agoregen after minherit(2) unlock
kn [Sat, 17 Dec 2022 13:45:00 +0000 (13:45 +0000)]
regen after minherit(2) unlock

22 months agoUnlock minherit(2)
kn [Sat, 17 Dec 2022 13:42:59 +0000 (13:42 +0000)]
Unlock minherit(2)

struct uvm_map's .addr is protected by the map's lock and .{min,max}_offset
are immutable.

uvm_map_inherit() locks the VM map upon entry, sets the desired inheritance
mode for the given address range (validated outside the lock) and unlocks
the map itself.

fork(2), i.e. uvm_mapent_forkcopy(), first locks both old and new maps and
then copies entries over as per the inheritance type.

futex(2), another user of struct vm_map_entry's .inheritance member, also
locks the map accordingly.

OK mpi

22 months agoX509_check_purpose.3: incorporate feedback from jsing
tb [Sat, 17 Dec 2022 12:48:53 +0000 (12:48 +0000)]
X509_check_purpose.3: incorporate feedback from jsing

22 months agoaplefuse(4)
kettenis [Sat, 17 Dec 2022 12:02:00 +0000 (12:02 +0000)]
aplefuse(4)

22 months agoAdd aplefuse(4), a driver for the eFuses on Apple Silicon SoCs.
kettenis [Sat, 17 Dec 2022 11:56:44 +0000 (11:56 +0000)]
Add aplefuse(4), a driver for the eFuses on Apple Silicon SoCs.

ok patrick@

22 months agoMake nvmem_read_cell() and nvmem_write_cell() work for hardware that
kettenis [Sat, 17 Dec 2022 11:54:32 +0000 (11:54 +0000)]
Make nvmem_read_cell() and nvmem_write_cell() work for hardware that
requires word-sized access.

ok patrick@

22 months agoIn bio.h rev. 1.54, jsing@ and tb@ provided BIO_callback_fn_ex(3),
schwarze [Fri, 16 Dec 2022 23:56:57 +0000 (23:56 +0000)]
In bio.h rev. 1.54, jsing@ and tb@ provided BIO_callback_fn_ex(3),
BIO_set_callback_ex(3), BIO_get_callback_ex(3), and BIO_callback_fn(3).
Document them, in part by merging from the OpenSSL 1.1.1 branch,
which is still under a free license,
but heavily tweaked by me, in particular:
* mention that BIO_set_callback_arg(3) is misnamed;
* keep our more detailed explanation of the "ret" argument;
* make the list of callback invocations more readable;
* and update the HISTORY section.

22 months agoqcpdc(4)'s establish routine needs to return the wrapped cookie, not the
patrick [Fri, 16 Dec 2022 18:08:08 +0000 (18:08 +0000)]
qcpdc(4)'s establish routine needs to return the wrapped cookie, not the
cookie it received from establishing the interrupt.

22 months agoDocument extension caching of X509_check_purpose()
tb [Fri, 16 Dec 2022 18:02:28 +0000 (18:02 +0000)]
Document extension caching of X509_check_purpose()

The overwhelming majority of callers of X509_check_purpose() in our tree
pass a purpose of -1. In this case X509_check_purpose() acts as a wrapper
of x509v3_cache_extensions() which makes sanity checks like non-negativity
of ASN.1 integers or canonicity of RFC 3779 extensions as well as checking
uniqueness of extensions.

from schwarze who beat an initial diff of mine into shape

22 months agozap double space and needless line break
kn [Fri, 16 Dec 2022 17:57:39 +0000 (17:57 +0000)]
zap double space and needless line break

22 months agodrop a total of 93 trailing spaces from three lines
tb [Fri, 16 Dec 2022 17:47:34 +0000 (17:47 +0000)]
drop a total of 93 trailing spaces from three lines