job [Fri, 28 Apr 2023 18:32:40 +0000 (18:32 +0000)]
Free all libcrypto global state memory before returning
Found with the help of Otto's malloc memory leak detector!
job [Fri, 28 Apr 2023 18:31:34 +0000 (18:31 +0000)]
Return a non-zero error exit code on any DER cache discrepancies
cheloha [Fri, 28 Apr 2023 18:27:55 +0000 (18:27 +0000)]
timer(4/sparc64): remove driver
The timer(4/sparc64) driver was effectively disabled during the
previous release. Nobody has come forward asking for it to be adapted
to work with the new clockintr framework, so it's time to remove the
driver from the tree.
As of today, if you want to run OpenBSD on SPARC v9 hardware, that
hardware needs to sport either %tick and %tick_compare (%asr23), or
%stick (%asr24) and %stick_compare (%asr25).
All Sun/Oracle SPARC v9 hardware meets these conditions, from the
UltraSPARC I onward.
Most HAL/Fujitsu SPARC v9 hardware meets these conditions, from the
SPARC64 III onward. The only HAL/Fujitsu hardware that might not have
%tick_compare are the HAL SPARC64 I and SPARC64 II, for which I can
find no documentation. However, those processors are currently
unsupported by OpenBSD for other reasons, so their support status is
unchanged by the removal of this driver.
With help from miod@.
Link: https://marc.info/?l=openbsd-tech&m=167898759928206&w=2
"after unlock" deraadt@, ok mlarkin@ miod@
tb [Fri, 28 Apr 2023 18:27:49 +0000 (18:27 +0000)]
Fix leaks reported by ASAN
debugged with job
krw [Fri, 28 Apr 2023 18:14:59 +0000 (18:14 +0000)]
Revert amd64/i386 floppy change. Missing diff to vnconfig broke
installboot'ing due to incorrect d_type (must be 'floppy' not
'vnd') in disklabel.
Noticed by deraadt@ and sthen@
tb [Fri, 28 Apr 2023 18:14:59 +0000 (18:14 +0000)]
Too many stupid things whine about these being used uninitialized
(which they aren't), so appease them.
job [Fri, 28 Apr 2023 17:59:53 +0000 (17:59 +0000)]
Remove preservation and use of cached DER/BER encodings in the d2i/i2d paths
A long time ago a workflow was envisioned for X509, X509_CRL, and X509_REQ
structures in which only fields modified after deserialization would need to
be re-encoded upon serialization.
Unfortunately, over the years, authors would sometimes forget to add code in
setter functions to trigger invalidation of previously cached DER encodings.
The presence of stale versions of structures can lead to very hard-to-debug
issues and cause immense sorrow.
Fully removing the concept of caching DER encodings ensures stale versions
of structures can never rear their ugly heads again.
OK tb@ jsing@
schwarze [Fri, 28 Apr 2023 17:31:58 +0000 (17:31 +0000)]
Some wording tweaks to finish the polishing.
While here, also correct the HISTORY section.
OK jmc@
schwarze [Fri, 28 Apr 2023 16:59:03 +0000 (16:59 +0000)]
Mark the obsolete PROXY_PARAM and SOCKS BIO_ctrl(3) command constants
as intentionally undocumented. Do that here because no related
manual pages exist.
beck [Fri, 28 Apr 2023 16:50:16 +0000 (16:50 +0000)]
Enable policy checking by default now that we are DAG implementation based.
This ensures that we will no longer silently ignore a certificate with
a critical policy extention by default.
ok tb@
schwarze [Fri, 28 Apr 2023 16:49:00 +0000 (16:49 +0000)]
Mark a number of BIO_ctrl(3) command constants as intentionally
undocumented because they are NOOPs or deprecated.
schwarze [Fri, 28 Apr 2023 16:39:19 +0000 (16:39 +0000)]
kill the .Xr to BN_nist_mod_521(3) which no longer exists
tb [Fri, 28 Apr 2023 16:30:14 +0000 (16:30 +0000)]
Unifdef LIBRESSL_HAS_POLICY_DAG and remove it from the Makefile
with beck
claudio [Fri, 28 Apr 2023 16:28:28 +0000 (16:28 +0000)]
Import rsync regress provided by Martin Cracauer so that bluhm@ can work
improve it in tree.
schwarze [Fri, 28 Apr 2023 16:22:45 +0000 (16:22 +0000)]
Add BIO_C_SET_MD_CTX to the list of command constants.
tb [Fri, 28 Apr 2023 16:21:57 +0000 (16:21 +0000)]
Take the old policy code behind the barn
It can go play in the fields with all the other exponential time policy
"code".
discussed with jsing
ok & commit message beck
schwarze [Fri, 28 Apr 2023 16:20:01 +0000 (16:20 +0000)]
Document BIO_set_md_ctx(3) and BIO_C_SET_MD_CTX.
Correct the return types of some macros.
Improve the RETURN VALUES section.
tb [Fri, 28 Apr 2023 16:18:17 +0000 (16:18 +0000)]
The policy test is no longer expected to fail
tb [Fri, 28 Apr 2023 16:14:46 +0000 (16:14 +0000)]
Enable the new policy checking code in x509_policy.c
ok beck jsing
tb [Fri, 28 Apr 2023 15:57:38 +0000 (15:57 +0000)]
Silence gcc-4 warnings about sk_sort()
Tell it we deliberately ignore the return value, (we really don't
care what the old comparison function was).
job [Fri, 28 Apr 2023 15:51:18 +0000 (15:51 +0000)]
Remove misinformation, reason had nothing to do with efficiency
"Failure to re-encode on modification is a bug not a feature."
OK jsing@
sashan [Fri, 28 Apr 2023 15:50:05 +0000 (15:50 +0000)]
remove superfluous/invalid KASSERT() in pfsync_q_del().
pointed and OK bluhm@
tb [Fri, 28 Apr 2023 15:39:29 +0000 (15:39 +0000)]
Remove now no longer needed <assert.h>; sort headers
ok jsing
tb [Fri, 28 Apr 2023 15:37:28 +0000 (15:37 +0000)]
Deassert has_explicit_policy()
The only caller is X509_policy_check() which goes straight to error.
with beck
ok jsing
tb [Fri, 28 Apr 2023 15:35:55 +0000 (15:35 +0000)]
Deassert delete_if() callbacks
Add sk_is_sorted() checks to the callers of sk_X509_POLICY_NODE_delete_if()
and add a comment that this is necessary.
with beck
ok jsing
tb [Fri, 28 Apr 2023 15:30:14 +0000 (15:30 +0000)]
Deassert x509_policy_level_find()
Move the check that level->nodes is sorted to the call site and make sure
that the logic is preserved and erroring does the right thing.
with beck
ok jsing
tb [Fri, 28 Apr 2023 15:27:15 +0000 (15:27 +0000)]
Deassert X509_policy_check()
Instead of asserting that i == num_certs - 2, simply make that an error
check.
with beck
ok jsing
tb [Fri, 28 Apr 2023 15:21:22 +0000 (15:21 +0000)]
Deassert x509_policy_level_add_nodes()
This assert is in debugging code that ensures that there are no duplicate
nodes on this level. This is an expensive and unnecessary check. Duplicates
already cause failures as ensured by regress.
with beck
ok jsing
tb [Fri, 28 Apr 2023 15:16:48 +0000 (15:16 +0000)]
Deassert x509_policy_new()
Turn the check into an error which will make all callers error.
with beck
ok jsing
job [Fri, 28 Apr 2023 15:12:51 +0000 (15:12 +0000)]
Rearrange freeing of memory in the regress test
schwarze [Fri, 28 Apr 2023 15:04:33 +0000 (15:04 +0000)]
Reorder the text such that every function is discussed only once
instead of discussing some of them at two different places.
Also follow a more logical order: initialization first, then reading
and writing, then retrieving the digest and reinitialization.
Leave context handling and chain duplication at the end because
both are rarely needed.
While here, also tweak the wording of the shuffled text
and add some precision in a few places.
tb [Fri, 28 Apr 2023 14:45:51 +0000 (14:45 +0000)]
make the policy test compile on sparc64
phessler [Fri, 28 Apr 2023 14:09:06 +0000 (14:09 +0000)]
Inbound portion of RFC9131. Routers can create new neighbor cache entries
when receiving a valid Neighbor Advertisement.
OK florian@ kn@
sashan [Fri, 28 Apr 2023 14:08:38 +0000 (14:08 +0000)]
This change speeds up DIOCGETRULE ioctl(2) which pfctl(8) uses to
retrieve rules from kernel. The current implementation requires
like O((n^2)/2) operation to read the complete rule set, because
each DIOCGETRULE operation must iterate over previous n
rules to find (n + 1)-th rule to read.
To address the issue diff introduces a pf_trans structure to keep
pointer to next rule to read, thus reading process does not need
to iterate from beginning of rule set to reach the next rule.
All transactions opened by process get closed either when process
is done (reads all rules) or when /dev/pf device is closed.
the diff also comes with lots of improvements from dlg@ and kn@
OK dlg@, kn@
phessler [Fri, 28 Apr 2023 14:08:34 +0000 (14:08 +0000)]
Relax the "pass all" rule so all forms of neighbor advertisements are allowed
in either direction.
This more closely matches the IPv4 ARP behaviour.
From sashan@
discussed with kn@ deraadt@
job [Fri, 28 Apr 2023 13:48:38 +0000 (13:48 +0000)]
Add X509_REQ_add_extensions and to X509_REQ_add1_attr to DER cache test
These new tests won't bubble up a non-zero error exit code because
other libcrypto bits still need to land first.
claudio [Fri, 28 Apr 2023 13:24:25 +0000 (13:24 +0000)]
Same change as in bgpd:
Add explicit default labels in switch() statements with error handling.
Right now these are not reachable. Should also clear some gcc warnings.
OK tb@
claudio [Fri, 28 Apr 2023 13:23:52 +0000 (13:23 +0000)]
Add explicit default labels in switch() statements with error handling.
Right now these are not reachable. Should also clear some gcc warnings.
OK tb@
bluhm [Fri, 28 Apr 2023 12:53:42 +0000 (12:53 +0000)]
Add a membar_consumer() for the taskq_create() in sosplice(). Membar
producer and consumer must come in pair and the latter was missing.
Also move the code a bit to make clear which check is needed for
what.
OK mvs@
krw [Fri, 28 Apr 2023 12:26:43 +0000 (12:26 +0000)]
Move FSDISKTYPE uses from disklabel(8) invocations to vnconfig(8)
invocations, making the geometry information written to the
disklabel a bit more logically related to the disktab information
from whence it came. Also makes FSDISKTYPE usage consistent.
Flip the disklabel(8) invocations to the "echo '/ *'"
idiom to make it obvious that the desire is to create a single
'a' partition containing all free space.
No intentional functional change. MBRs, disklabels and newfs
outputs appear identical.
reads good to kn@
gnezdo [Fri, 28 Apr 2023 12:03:49 +0000 (12:03 +0000)]
Enable kernel-address sanitizer for clang openbsd target
OK deraadt@
claudio [Fri, 28 Apr 2023 10:24:38 +0000 (10:24 +0000)]
Implement --size-only and --ignore-times
Flags are passed to the remote system but --size-only is only set
if local system is sender since this is the behaviour of rsync.
Initial diff from Martin Cracauer but mostly reimplemented and extended
by myself.
OK kn@
kn [Fri, 28 Apr 2023 10:19:35 +0000 (10:19 +0000)]
Remove net lock from DIOCGETQUEUES
Both ticket and number of queues stem from the pf_queues_active list which
is effectively static to pf_ioctl.c and fully protected by the pf lock.
OK sashan
patrick [Fri, 28 Apr 2023 10:19:07 +0000 (10:19 +0000)]
Fix memory constraints in the inline-assembly stub that calls into secure
mode. Without this change the compiler doesn't realize that the memory
behind the array that contains the return values might have changed and
optimizes the access away. With this change it properly access the array
to retrieve the returned values.
ok drahn@
bluhm [Fri, 28 Apr 2023 10:18:57 +0000 (10:18 +0000)]
Remove error handling around mallocarray(9). I cannot fail when
called with M_WAITOK.
OK kevlo@
op [Fri, 28 Apr 2023 10:02:03 +0000 (10:02 +0000)]
fix lfindent (newline-and-indent) comment and description in the man page
for a while it has used only spaces when no-tab-mode is enabled and respected
the current buffer tab width.
tb [Fri, 28 Apr 2023 09:56:09 +0000 (09:56 +0000)]
Cleanup pass over x509_check_policy.c
This hoists variable declarations to the top and compiles with -Wshadow.
ok beck
op [Fri, 28 Apr 2023 09:50:50 +0000 (09:50 +0000)]
mark up all commands in the man page
beck [Fri, 28 Apr 2023 09:11:35 +0000 (09:11 +0000)]
Hook up the the x509 policy regression tests to x509 regress.
These were adapted from BoringSSL's regress tests for x509
policy. They are currently marked as expected to fail as
we have not enabled LIBRESSL_HAS_POLICY_DAG by default yet, and
the old tree based policy code from OpenSSL is special.
These tests pass when we build with LIBRESSL_HAS_POLICY_DAG.
beck [Fri, 28 Apr 2023 09:02:04 +0000 (09:02 +0000)]
Fix copyright, convert boringssl comments to C style
beck [Fri, 28 Apr 2023 08:53:20 +0000 (08:53 +0000)]
KNF
ok knfmt
beck [Fri, 28 Apr 2023 08:50:08 +0000 (08:50 +0000)]
remove unused code.
beck [Fri, 28 Apr 2023 08:45:50 +0000 (08:45 +0000)]
remove debugging printf
krw [Fri, 28 Apr 2023 08:45:24 +0000 (08:45 +0000)]
Retire -E's "expert" mode. Introduced 23 years ago to avoid
confusing users with FFS attributes that only experts should
fiddle with. Actual use has withered away with functionality
rendered moot or moved elsewhere.
'-e' remains for the truly obscure corner cases.
Simply excise the code for now to see if hidden users/uses are
exposed. Further simplifications are possible if no such
users/uses surface.
ok with sthen@ millert@ kn@ otto@
beck [Fri, 28 Apr 2023 08:43:18 +0000 (08:43 +0000)]
This test should not have V_EXPLICIT_POLICY set. with this
corrected we pass
beck [Fri, 28 Apr 2023 08:15:11 +0000 (08:15 +0000)]
Add the rest of the boringssl policy unit tests.
We currently still fail two of these, looks like one more bug in
extracting the depth for require policy from the certificate..
jmc [Fri, 28 Apr 2023 06:21:42 +0000 (06:21 +0000)]
escape the "D1" revisions, as mandoc thinks this is a macro call;
nicm [Fri, 28 Apr 2023 06:12:27 +0000 (06:12 +0000)]
Add options to change the confirm key and default behaviour of
confirm-before. From Elias Assaf in GitHub issue 3548; prompted by an
earlier change from Yutaro Yoshii in GitHub issue 3496.
nicm [Fri, 28 Apr 2023 05:59:35 +0000 (05:59 +0000)]
Do not fatal if tparm fails, instead just log it (not working sequences
are better than exiting).
phessler [Fri, 28 Apr 2023 05:13:37 +0000 (05:13 +0000)]
Add a driver for the Qualcomm rng device found on the Thinkpad X13s, based on
kettenis's amlrng driver.
suggestions and OK patrick@
kevlo [Fri, 28 Apr 2023 01:25:51 +0000 (01:25 +0000)]
sync
kevlo [Fri, 28 Apr 2023 01:24:51 +0000 (01:24 +0000)]
regen
kevlo [Fri, 28 Apr 2023 01:24:14 +0000 (01:24 +0000)]
Add support for RTL8188FTV chip to urtwn(4).
Tested with Comfast CF-WU710N v4.
"go ahead" deraadt@
OK stsp@
gnezdo [Thu, 27 Apr 2023 23:16:18 +0000 (23:16 +0000)]
Use __size_t which is available in syslog.h
Directly including sys/syslog.h would fail due to size_t
being unknown.
OK millert, miod
dv [Thu, 27 Apr 2023 22:47:27 +0000 (22:47 +0000)]
vmd(8): introduce multi-process model for virtio devices.
Isolate virtio network and block device emulation in dedicated
processes, forked and exec'd from the vm process. This allows for
tightening pledge promises to just "stdio".
Communication between the vcpu's and these devices now occurs via
imsg channels, which adds the benefit of not always blocking the
vcpu thread while emulating the device.
With this commit, it's possible that vmd is the first open source
hypervisor that *defaults* to a multi-process device emulation
model without requiring any additional configuration from the
operator.
Testing help from phessler@ and Mischa Peters.
ok mlarkin@
jmc [Thu, 27 Apr 2023 20:35:16 +0000 (20:35 +0000)]
add missing entries; ok miod
jmc [Thu, 27 Apr 2023 19:26:06 +0000 (19:26 +0000)]
add missing entries; ok miod
jmc [Thu, 27 Apr 2023 19:10:53 +0000 (19:10 +0000)]
add missing entries;
remove Tn macro usage;
feedback/ok miod
miod [Thu, 27 Apr 2023 19:06:57 +0000 (19:06 +0000)]
Mark the fan speed sensor as invalid when it reports -1 RPM. This happens for
a short while after suspend.
ok deraadt@ kn@
miod [Thu, 27 Apr 2023 19:01:01 +0000 (19:01 +0000)]
Better pcic(4) description.
robert [Thu, 27 Apr 2023 18:21:44 +0000 (18:21 +0000)]
add support for I/O statistics so that tape speeds can be observed with
iostat(8)
jmc [Thu, 27 Apr 2023 17:18:40 +0000 (17:18 +0000)]
sort options;
caspar [Thu, 27 Apr 2023 17:04:17 +0000 (17:04 +0000)]
arm64 install.md: fix softraid crypto installation on Mac
Make sure we don't newfs the EFI Sys partition on systems that have an
"apfsisc" partition in the case we're installing with softraid crypto.
Debugged with help from and came up with a fix with kn@
"go ahead" kettenis@
"no objections" krw@
OK kn@
phessler [Thu, 27 Apr 2023 16:56:52 +0000 (16:56 +0000)]
RFC 9096 changes the default timers for prefix preferred and valid lifetimes,
so update rad(8) to the new ones.
OK florian@
schwarze [Thu, 27 Apr 2023 16:48:53 +0000 (16:48 +0000)]
tiny wording tweak from Ted Bullock to make misunderstandings less likely;
OK jmc@
claudio [Thu, 27 Apr 2023 16:28:18 +0000 (16:28 +0000)]
Implement -V as an alias to --version.
From Martin Cracauer
OK kn@
beck [Thu, 27 Apr 2023 16:12:08 +0000 (16:12 +0000)]
Convert size_t's used in conjuction with sk_X509_num back to int.
The lets the regress in x509/policy pass instead of infinite looping.
The changes are necessry because our sk_num() returns an int with
0 for empty and -1 for NULL, wheras BoringSSL's returns a size_t with
0 for both an empty stack and a NULL stack.
pair work with tb@
ok tb@ jsing@
schwarze [Thu, 27 Apr 2023 16:10:11 +0000 (16:10 +0000)]
various markup tweaks, no content change; OK jmc@
schwarze [Thu, 27 Apr 2023 15:44:36 +0000 (15:44 +0000)]
various minor content corrections and improvements;
feedback and OK jmc@ and Ted Bullock
kettenis [Thu, 27 Apr 2023 15:06:35 +0000 (15:06 +0000)]
Remove efi32 and efi64. These are leftovers from a project that didn't go
very far and the presence of these directories just confuse people and
make them do more work than necessary.
ok patrick@, kn@, mlarkin@
schwarze [Thu, 27 Apr 2023 14:44:33 +0000 (14:44 +0000)]
Also list the command constants not associated with any macros,
and point to their documentation.
mvs [Thu, 27 Apr 2023 14:41:09 +0000 (14:41 +0000)]
Remove kernel lock from rtfree(9).
Route timers and route labels protected by corresponding mutexes. `ifa'
uses references counting for protection. rt_mpls_clear() could be called
lockless because this is the last reference of `rt'.
ok bluhm@ kn@
krw [Thu, 27 Apr 2023 14:19:28 +0000 (14:19 +0000)]
Retire -E's "expert" mode. Introduced 23 years ago to avoid
confusing users with FFS attributes that only experts should
fiddle with. Actual use has withered away with functionality
rendered moot or moved elsewhere.
'-e' remains for the truly obscure corner cases.
Simply excise the code for now to see if hidden users/uses are
exposed. Further simplifications are possible if no such
users/uses surface.
ok with sthen@ millert@ kn@ otto@
krw [Thu, 27 Apr 2023 13:52:58 +0000 (13:52 +0000)]
Temporarily workaround double calls into vioscsi_req_done()
causing NULL de-reference.
Reported, initial patch and tests by Antun Matanovic. Thanks!
ok miod@
beck [Thu, 27 Apr 2023 13:26:57 +0000 (13:26 +0000)]
correct test cases to add expected errors.
robert [Thu, 27 Apr 2023 12:27:56 +0000 (12:27 +0000)]
revert cache lookup for full pathnames
beck [Thu, 27 Apr 2023 12:23:31 +0000 (12:23 +0000)]
Start of an x509 policy regress test. test cases from BoringSSL.
Still a work in progress adapting tests from boringssl x509_test.cc
but dropping in here for tb to be able to look at and run as well
since the new stuff still has bugs.
kn [Thu, 27 Apr 2023 12:10:30 +0000 (12:10 +0000)]
Remove net lock from DIOCGETTIMEOUT
'pfctl -s timeouts' values are only used inside of pf, entirely protected
by the pf lock through the ioctl interface; the net lock is useless.
Previous attempts to remove net lock usage showed that the pf lock cannot
yet entirely replace it, so start with small pieces like this one.
Contrary to IPv4/6 read-only ioctls, some pf ioctls without FWRITE flag do
modify internal pf state, which is not entirely obvious when approached
from the ioctl layer.
OK sashan dlg
mvs [Thu, 27 Apr 2023 11:11:04 +0000 (11:11 +0000)]
Add `rttimer_mtx' to the locking description.
No functional changes.
tb [Thu, 27 Apr 2023 10:53:58 +0000 (10:53 +0000)]
tlsexttest: check additional logic in tlsext randomization
This verifies that we put PSK always last and that the Apache 2 special
does what it is supposed to do. There is also some weak validation of
the Fisher-Yates shuffle that will likely catch errors introduced in
tlsext_randomize_build_order()
kn [Thu, 27 Apr 2023 10:51:27 +0000 (10:51 +0000)]
zap APM_CANCEL, dead since import; OK tb
tb [Thu, 27 Apr 2023 10:50:37 +0000 (10:50 +0000)]
ssl_tlsext.c: Add an accessor for the tls extension type.
Needed for the tlsexttest.c
ok jsing
tb [Thu, 27 Apr 2023 10:43:47 +0000 (10:43 +0000)]
Somehow I managed not to bump LIBRESSL_VERSION_NUMBER
reported by aja
kn [Thu, 27 Apr 2023 10:03:49 +0000 (10:03 +0000)]
Treat crypto disk like the root disk, both are boot disks
Chosing [W]hole on a GPT disk means it needs non-default `-b' fdisk(8)
to account for existing EFI Sys partitions, whether it modifies an existing
GPT (Apple APFS ISC) or writing a new one.
With 'Encrypt the root disk?' answered postively, the crypto disk instead of
the root disk becomes the boot disk.
Extend the logic to both crypto and root disk, really asking
"is this a boot disk?".
with caspar
tb [Thu, 27 Apr 2023 09:49:44 +0000 (09:49 +0000)]
EC_KEY_{get,insert}_key_method_data() are no longer available
tb [Thu, 27 Apr 2023 09:47:03 +0000 (09:47 +0000)]
One more reciprocal thing hid in here (yay for consistent naming)
tb [Thu, 27 Apr 2023 09:45:56 +0000 (09:45 +0000)]
Remove stale references to BN reciprocal stuff
tb [Thu, 27 Apr 2023 09:44:40 +0000 (09:44 +0000)]
sync
tb [Thu, 27 Apr 2023 09:43:55 +0000 (09:43 +0000)]
Remove documentation of reciprocal BN which is now internal only
tb [Thu, 27 Apr 2023 09:39:52 +0000 (09:39 +0000)]
Remove documentation of GF2m point stuff