openbsd
10 months agorelax ORCPT syntax validation
op [Wed, 3 Jan 2024 08:11:15 +0000 (08:11 +0000)]
relax ORCPT syntax validation

We expected the ORCPT parameter to be a valid rfc822 address.  This is
wrong on multiple levels:

 - any other IANA-registered "addr-type" can be used
 - the parameter may be encoded and we didn't decode it prior validation
 - RFC3461 explicitly states that "[..] the address associated with the
   ORCPT keyword is NOT constrained to conform to the syntax rules for
   that 'addr-type'".

Instead, just validate the xtext and preserve the ORCPT value as-is.

Issue originally reported by Tim Kuijsten, Tassilo Philipp and others.

ok millert@

10 months agovmd(8): remove unused variable from vionet_notify_tx.
dv [Wed, 3 Jan 2024 03:14:16 +0000 (03:14 +0000)]
vmd(8): remove unused variable from vionet_notify_tx.

num_enq was assigned and incremented, but never used. clang started
pointing out via warnings. No functional change.

10 months agoUpdate to 2023dgtz from https://github.com/JodaOrg/global-tz
millert [Tue, 2 Jan 2024 22:43:20 +0000 (22:43 +0000)]
Update to 2023dgtz from https://github.com/JodaOrg/global-tz
 * Ittoqqortoormiit, Greenland changes time zones on 2024-03-31.
 * Vostok, Antarctica changed time zones on 2023-12-18.
 * Casey, Antarctica changed time zones five times since 2020.
 * Data fixes for Palestine timestamps starting in 2072.

10 months agoMove a t to the right place in a comment
tb [Tue, 2 Jan 2024 21:27:39 +0000 (21:27 +0000)]
Move a t to the right place in a comment

10 months agoMatch struct order for the EVP_CIPHER_CTX accessors
tb [Tue, 2 Jan 2024 21:24:42 +0000 (21:24 +0000)]
Match struct order for the EVP_CIPHER_CTX accessors

This isn't great since the struct is ordered in about the silliest way
imaginable, but it is better than it was before. Bringing order into
this mess is harder than solving a Rubik's cube.

10 months agoMove down EVP_CIPHER_CTX accessors expose EVP_CIPHER internals
tb [Tue, 2 Jan 2024 21:12:25 +0000 (21:12 +0000)]
Move down EVP_CIPHER_CTX accessors expose EVP_CIPHER internals

These confusingly named getters were added "for convenience" in 1.1.
They fit best next to the EVP_CIPHER API.

10 months agoMove the trivial EVP_CIPHER getters down
tb [Tue, 2 Jan 2024 20:48:40 +0000 (20:48 +0000)]
Move the trivial EVP_CIPHER getters down

They are now below the CMS ASN.1 IV stuff, but above the EVP_CIPHER_meth*
API, which are setters, in a way.

10 months agoSimplify EVP_CIPHER_{asn1_to_param,parma_to_asn1}()
tb [Tue, 2 Jan 2024 20:00:45 +0000 (20:00 +0000)]
Simplify EVP_CIPHER_{asn1_to_param,parma_to_asn1}()

There's no need for a ret variable and else if/else

10 months agoMove the EVP_CIPHER API that only exists for CMS/legacy a bit down
tb [Tue, 2 Jan 2024 19:56:43 +0000 (19:56 +0000)]
Move the EVP_CIPHER API that only exists for CMS/legacy a bit down

10 months agosm4: more NULL misspellings
tb [Tue, 2 Jan 2024 19:54:43 +0000 (19:54 +0000)]
sm4: more NULL misspellings

10 months agoTwo spellings of key length are enough
tb [Tue, 2 Jan 2024 18:48:02 +0000 (18:48 +0000)]
Two spellings of key length are enough

The API is called EVP_CIPHER_CTX_set_key_length() it has an argument called
keylen and, the EVP_CIPHER_CTX's member is called key_len. One of the three
is trivial to adjust, so do it.

10 months agoRename the poor outlier EVP_CIPHER *e into *cipher
tb [Tue, 2 Jan 2024 18:30:27 +0000 (18:30 +0000)]
Rename the poor outlier EVP_CIPHER *e into *cipher

10 months agoBetter variable names in EVP_CIPHER_type()
tb [Tue, 2 Jan 2024 18:28:35 +0000 (18:28 +0000)]
Better variable names in EVP_CIPHER_type()

The EVP_CIPHER *ctx (yes) is renamed to cipher, otmp becomes an aobj.
Change two !ptr to ptr == NULL checks.

10 months agoConsistently use ctx for an EVP_CIPHER_CTX
tb [Tue, 2 Jan 2024 18:21:02 +0000 (18:21 +0000)]
Consistently use ctx for an EVP_CIPHER_CTX

Not c (which is most of the time an EVP_CIPHER) or a (?!).

10 months agoset attached flag properly when fw fails to load during config_mountroot()
stsp [Tue, 2 Jan 2024 17:39:08 +0000 (17:39 +0000)]
set attached flag properly when fw fails to load during config_mountroot()

10 months agoRevert chunk that I have commited by accident.
bluhm [Tue, 2 Jan 2024 16:40:03 +0000 (16:40 +0000)]
Revert chunk that I have commited by accident.

10 months agoPrevent simultaneous dt(4) open.
bluhm [Tue, 2 Jan 2024 16:32:47 +0000 (16:32 +0000)]
Prevent simultaneous dt(4) open.

Syskaller has hit the assertion "dtlookup(unit) == NULL" by opening
dt(4) device in two parallel threads.  Convert kassert into if
condition.  Move check that device is not used after sleep points
in malloc.  The list dtdev_list is protected by kernel lock which
is released during sleep.

Reported-by: syzbot+6d66c21f796c817948f0@syzkaller.appspotmail.com
OK miod@

10 months agoRun bind(2) and connect(2) in parallel also for TCP and Raw IP.
bluhm [Tue, 2 Jan 2024 15:06:48 +0000 (15:06 +0000)]
Run bind(2) and connect(2) in parallel also for TCP and Raw IP.
Before only UDP was tested.

10 months agohave quirks behave way more like other packages so it can have dependencies
espie [Tue, 2 Jan 2024 10:25:48 +0000 (10:25 +0000)]
have quirks behave way more like other packages so it can have dependencies

10 months agoRevert "drm/amd/display: Do not set DRR on pipe commit"
jsg [Tue, 2 Jan 2024 00:03:06 +0000 (00:03 +0000)]
Revert "drm/amd/display: Do not set DRR on pipe commit"

From Aric Cyr
b09a67617621f41e12ad9ec771ff320fc8b88a94 in linux-6.1.y/6.1.70
36951fc9460fce96bafd131ceb0f343cae6d3cb9 in mainline linux

10 months agodrm/i915: Reject async flips with bigjoiner
jsg [Mon, 1 Jan 2024 23:59:47 +0000 (23:59 +0000)]
drm/i915: Reject async flips with bigjoiner

From Ville Syrjala
7d09c84df5ab9e18464a2f048e393a7860a043e9 in linux-6.1.y/6.1.70
88a173e5dd05e788068e8fa20a8c37c44bd8f416 in mainline linux

10 months agodrm/i915: Fix ADL+ tiled plane stride when the POT stride is smaller than the original
jsg [Mon, 1 Jan 2024 23:58:00 +0000 (23:58 +0000)]
drm/i915: Fix ADL+ tiled plane stride when the POT stride is smaller than the original

From Ville Syrjala
900c1b3c62f920a50352f5dff6995bca5836b0c7 in linux-6.1.y/6.1.70
324b70e997aab0a7deab8cb90711faccda4e98c8 in mainline linux

10 months agodrm/i915/mtl: Add MTL for remapping CCS FBs
jsg [Mon, 1 Jan 2024 23:55:41 +0000 (23:55 +0000)]
drm/i915/mtl: Add MTL for remapping CCS FBs

From Clint Taylor
de4349bdf9f3ba46d0e5e298924432957328ddfd in linux-6.1.y/6.1.70
0da6bfe857ea9399498876cbe6ef428637b6e475 in mainline linux

10 months agodrm/i915/dpt: Only do the POT stride remap when using DPT
jsg [Mon, 1 Jan 2024 23:53:46 +0000 (23:53 +0000)]
drm/i915/dpt: Only do the POT stride remap when using DPT

From Ville Syrjala
52c1a67dd3039ba254484cb7740d9079663a80bd in linux-6.1.y/6.1.70
ef5cb493a9acd7d97870d6e542020980ae3f3483 in mainline linux

10 months agodrm/i915: Fix intel_atomic_setup_scalers() plane_state handling
jsg [Mon, 1 Jan 2024 23:50:42 +0000 (23:50 +0000)]
drm/i915: Fix intel_atomic_setup_scalers() plane_state handling

From Ville Syrjala
7afe8109456d94d6cc9374da869b2d64852b8535 in linux-6.1.y/6.1.70
c3070f080f9ba18dea92eaa21730f7ab85b5c8f4 in mainline linux

10 months agodrm/i915: Relocate intel_atomic_setup_scalers()
jsg [Mon, 1 Jan 2024 23:48:31 +0000 (23:48 +0000)]
drm/i915: Relocate intel_atomic_setup_scalers()

From Ville Syrjala
b097184f80269f384e9f5556e6b3592441e955f4 in linux-6.1.y/6.1.70
8976b18249407df8bf6ea18ecae0640a15341a50 in mainline linux

10 months agodrm/i915/mtl: limit second scaler vertical scaling in ver >= 14
jsg [Mon, 1 Jan 2024 23:47:01 +0000 (23:47 +0000)]
drm/i915/mtl: limit second scaler vertical scaling in ver >= 14

From Luca Coelho
99767368b7fad6bee30ca89ef96877d86e3181a1 in linux-6.1.y/6.1.70
8d4312e2b228ba7a5ac79154458098274ec61e9b in mainline linux

10 months agodrm/amd/display: fix hw rotated modes when PSR-SU is enabled
jsg [Mon, 1 Jan 2024 23:45:08 +0000 (23:45 +0000)]
drm/amd/display: fix hw rotated modes when PSR-SU is enabled

From Hamza Mahfooz
913463f8e6cd8b0567c44d7eef350b9592a369dd in linux-6.1.y/6.1.70
f528ee145bd0076cd0ed7e7b2d435893e6329e98 in mainline linux

10 months agoProtect link between pf and inp with mutex.
bluhm [Mon, 1 Jan 2024 22:16:51 +0000 (22:16 +0000)]
Protect link between pf and inp with mutex.

Introduce global mutex to protect the pointers between pf state key
and internet PCB.  Then in_pcbdisconnect() and in_pcbdetach() do
not need exclusive netlock anymore.  Use a bunch of read once
unlocked access to reduce performance impact.

OK sashan@

10 months agoReduce code duplication in ip6 divert.
bluhm [Mon, 1 Jan 2024 18:52:09 +0000 (18:52 +0000)]
Reduce code duplication in ip6 divert.

Protocols like UDP or TCP keep only functions in netinet6 that are
essentially different.  Remove divert6_detach(), divert6_lock(),
divert6_unlock(), divert6_bind(), and divert6_shutdown().  Replace
them with identical IPv4 functions.  INP_HDRINCL is an IPv4 only
option, remove it from divert6_attach().

OK mvs@ sashan@ kn@

10 months agoCall if_counters_alloc() before if_attach().
mvs [Mon, 1 Jan 2024 18:47:02 +0000 (18:47 +0000)]
Call if_counters_alloc() before if_attach().

ok bluhm sashan

10 months agoFix bounds check in EVP_PKEY_CTX_get_keygen_info()
tb [Mon, 1 Jan 2024 18:33:04 +0000 (18:33 +0000)]
Fix bounds check in EVP_PKEY_CTX_get_keygen_info()

Replace > with >= for the upper array bound to disallow a 4 byte
overread. For RSA you can read the padding mode and for DH past
the DH_PKEY_CTX. Unfortunately, Ruby thought it important to use
this, so we can't kill it easily.

ok miod

10 months agoMove fdt attachment into sys/conf/files.conf instead of duplicating it on
kettenis [Mon, 1 Jan 2024 18:25:50 +0000 (18:25 +0000)]
Move fdt attachment into sys/conf/files.conf instead of duplicating it on
an MD basis.

ok patrick@

10 months agoFix white space in pf.c.
bluhm [Mon, 1 Jan 2024 17:00:57 +0000 (17:00 +0000)]
Fix white space in pf.c.

10 months agokill gross whitespace
tb [Mon, 1 Jan 2024 16:01:48 +0000 (16:01 +0000)]
kill gross whitespace

10 months agopkey_is_pss() and pkey_ctx_is_pss() to rsa_ameth.c
tb [Mon, 1 Jan 2024 15:43:02 +0000 (15:43 +0000)]
pkey_is_pss() and pkey_ctx_is_pss() to rsa_ameth.c

These aren't particularly helpful and should probably both be expanded.
For now move them to the only place where they are actually used.

10 months agoRemove EVP_PKEY's save_type member
tb [Mon, 1 Jan 2024 15:23:00 +0000 (15:23 +0000)]
Remove EVP_PKEY's save_type member

This was only used to avoid an ameth lookup in EVP_PKEY_set_type(), a
micro-optimization that was removed in p_lib.c r1.48.

ok jsing

10 months agoupdate devel/cargo and lang/rust ports-module documentation
semarie [Mon, 1 Jan 2024 14:16:59 +0000 (14:16 +0000)]
update devel/cargo and lang/rust ports-module documentation

with help and ok tb@

10 months agoAdd Quectel RM500Q to umb man page.
kevlo [Mon, 1 Jan 2024 13:04:35 +0000 (13:04 +0000)]
Add Quectel RM500Q to umb man page.

ok mglocker@

10 months agocopyright++;
jsg [Mon, 1 Jan 2024 07:00:18 +0000 (07:00 +0000)]
copyright++;

10 months agoIncrease datasize to 1536 MB for running llvm-tblgen on i386.
bluhm [Sun, 31 Dec 2023 16:05:50 +0000 (16:05 +0000)]
Increase datasize to 1536 MB for running llvm-tblgen on i386.
Fixes build in src/gnu/usr.bin/clang/include/llvm/AMDGPU.
OK semarie@

10 months agoAdd TCP Segmentation Offload (TSO) support for em(4). Following chip-sets
mglocker [Sun, 31 Dec 2023 08:42:33 +0000 (08:42 +0000)]
Add TCP Segmentation Offload (TSO) support for em(4).  Following chip-sets
are currently known to support TSO;  82575, 82576, 82580, I350, and I210.

Suggested by claudio@.  Feedback and testing from many on tech@.

OK bluhm@

10 months agoKNF nit
tb [Sun, 31 Dec 2023 07:19:13 +0000 (07:19 +0000)]
KNF nit

10 months agoSort the NIDs by name
tb [Sun, 31 Dec 2023 07:14:42 +0000 (07:14 +0000)]
Sort the NIDs by name

requested by jsing

10 months agoReplace the sorted extensions lookup with a switch
tb [Sun, 31 Dec 2023 07:10:50 +0000 (07:10 +0000)]
Replace the sorted extensions lookup with a switch

If all you have is OBJ_bsearch_(), everything looks like a nail. This
changes a binary search over a list of 12 elements with a lookup via
a switch.

switch suggested by claudio
ok jsing

10 months agoSprinkle a handfull of missing continue
tb [Sun, 31 Dec 2023 01:31:07 +0000 (01:31 +0000)]
Sprinkle a handfull of missing continue

10 months agoMake x509_issuer_cache_free_oldest() static
tb [Sat, 30 Dec 2023 18:26:13 +0000 (18:26 +0000)]
Make x509_issuer_cache_free_oldest() static

This is an internal function and you can't hold the required mutex
to call it anyway since that's internal, too.

10 months agoSome Australians don't like voids either
tb [Sat, 30 Dec 2023 18:24:09 +0000 (18:24 +0000)]
Some Australians don't like voids either

10 months agoOne more missing void was hiding here
tb [Sat, 30 Dec 2023 18:22:52 +0000 (18:22 +0000)]
One more missing void was hiding here

10 months agoSome BoringSSL devs spent too much time with C++
tb [Sat, 30 Dec 2023 18:06:59 +0000 (18:06 +0000)]
Some BoringSSL devs spent too much time with C++

10 months agoSet ixl(4) IXL_TX_PKT_DESCS to 8.
bluhm [Sat, 30 Dec 2023 17:52:27 +0000 (17:52 +0000)]
Set ixl(4) IXL_TX_PKT_DESCS to 8.

Mark Patruck has reported problems with ixl revision 1.90 TSO diff.
He uses ixl device passthrough from Linux via KVM to OpenBSD guest.
After a few hours of operation, interface locks up with oactive.
The problem also occures with TSO disabled, after the TSO diff had
been commited.  deraadt@ has seen similar problems with ixl interface
on sparc64.
Changing IXL_TX_PKT_DESCS back to the original value 8 fixes the
lockup and even TSO on the hardware still works.  FreeBSD and NetBSD
also use this value.  The 32 was copied from ix(4) TSO diff and is
not necessary for ixl(4).

debugged with jan@; lot of bisecting and testing by Mark Patruck
OK mglocker@ patrick@

10 months agoFix iwx(4) device info table entries for So+Hr devices.
stsp [Sat, 30 Dec 2023 16:55:44 +0000 (16:55 +0000)]
Fix iwx(4) device info table entries for So+Hr devices.

Some non-160MHz So+Hr devices were misdetected, causing iwx(4) to select
the wrong firmware image for them.

Patch by Miguel Landaeta

10 months agoImprove the RTKit code. This update brings us crashlog and syslog parsing
kettenis [Sat, 30 Dec 2023 13:13:11 +0000 (13:13 +0000)]
Improve the RTKit code.  This update brings us crashlog and syslog parsing
support as well as bug fixes that are needed to bring up the DCP.

ok patrick@

10 months agoProtect em(4) refill timeout with splnet.
bluhm [Sat, 30 Dec 2023 12:44:43 +0000 (12:44 +0000)]
Protect em(4) refill timeout with splnet.

From time to time "pkt->pkt_m == NULL" or "m != NULL" assertions
were hit in the em driver.  Stack trace shows that em refill timeout
was interrupted by em interrupt.  Doing em_rxfill() and em_rxeof()
simultaneously cannot be correct.  Protect softclock in em_rxrefill()
with splnet().

OK mglocker@

10 months agoAdd extended regress coverage for ASN.1 methods
tb [Sat, 30 Dec 2023 08:58:18 +0000 (08:58 +0000)]
Add extended regress coverage for ASN.1 methods

Validate that every alias resolves to a non-alias in one step and that
non-aliases have pkey_id == pkey_base_id, an info string and a pem_str.
They can be looked up by their pkey_id or pem_str.

Conversely, all these are false for aliases.

10 months agoFix two more unchecked EVP_PKEY_assign() calls
tb [Sat, 30 Dec 2023 06:25:56 +0000 (06:25 +0000)]
Fix two more unchecked EVP_PKEY_assign() calls

In SSL{_CTX}_use_RSAPrivateKey() switch from EVP_PKEY_assign_RSA() to
EVP_PKEY_set1_RSA() and hold on to the reference of the the pkey for
the duration of ssl_set_pkey(). Use single exit and other minor style
cleanups.

ok joshua jsing

10 months agofix previous: key -> parameter
tb [Fri, 29 Dec 2023 22:37:47 +0000 (22:37 +0000)]
fix previous: key -> parameter

10 months agoA .Xr to DSA_generate_parameters_ex() was lost accidentally
tb [Fri, 29 Dec 2023 19:19:48 +0000 (19:19 +0000)]
A .Xr to DSA_generate_parameters_ex() was lost accidentally

10 months agosync
tb [Fri, 29 Dec 2023 19:15:52 +0000 (19:15 +0000)]
sync

10 months agoMove DSA_generate_parameters.3 to DSA_generate_parameters_ex.3
tb [Fri, 29 Dec 2023 19:15:15 +0000 (19:15 +0000)]
Move DSA_generate_parameters.3 to DSA_generate_parameters_ex.3

10 months agoAdjust documentation for upcoming DSA_generate_parameters removal
tb [Fri, 29 Dec 2023 19:12:46 +0000 (19:12 +0000)]
Adjust documentation for upcoming DSA_generate_parameters removal

This removes any mention of DSA_generate_parameters in the manuals apart
from a comment that it is intentionally undocumented and adapts cross
references to DSA_generate_parameters_ex. The file itself will be moved
in a second step.

10 months agoameth_lib: zap trailing empty line
tb [Fri, 29 Dec 2023 19:00:31 +0000 (19:00 +0000)]
ameth_lib: zap trailing empty line

10 months agobump version
tb [Fri, 29 Dec 2023 18:52:11 +0000 (18:52 +0000)]
bump version

10 months agoeckey: adjust some variable names and unwrap function definitions
tb [Fri, 29 Dec 2023 18:49:06 +0000 (18:49 +0000)]
eckey: adjust some variable names and unwrap function definitions

ok jsing

10 months agoClean up old_ec_priv_decode()
tb [Fri, 29 Dec 2023 18:48:25 +0000 (18:48 +0000)]
Clean up old_ec_priv_decode()

As per usual. Stylistic adjustments and missing error check.

ok jsing

10 months agoClean up eckey_param_decode()
tb [Fri, 29 Dec 2023 18:47:47 +0000 (18:47 +0000)]
Clean up eckey_param_decode()

This aligns eckey's parameter decoding routine with the one of other
cipher abstractions: better variable names, single exit and add missing
check for EVP_PKEY_assign_EC_KEY().

ok jsing

10 months agoRework eckey_priv_decode()
tb [Fri, 29 Dec 2023 18:46:24 +0000 (18:46 +0000)]
Rework eckey_priv_decode()

Factor out the pubkey computation and bring it into more sensible form.
This removes lots of pointless setting of errors (twice) and makes the
code a bit easier on the eyes. Other than that perform some stylistic
cleanup like single exit and add an error check for EVP_PKEY_assign().

ok jsing

10 months agoMove a call to X509_ALGOR_get0() down a line
tb [Fri, 29 Dec 2023 18:45:39 +0000 (18:45 +0000)]
Move a call to X509_ALGOR_get0() down a line

10 months agoPass correct file to warnx()
tb [Fri, 29 Dec 2023 17:15:10 +0000 (17:15 +0000)]
Pass correct file to warnx()

We end up here only if mft1 == NULL, which can happen because file1 == NULL.
Use file2 instead because mft2 != NULL implies file2 != NULL.

ok job

10 months agoThere is no need to include sys/uio.h here.
claudio [Fri, 29 Dec 2023 16:02:29 +0000 (16:02 +0000)]
There is no need to include sys/uio.h here.

10 months agoFix a NULL access or use-after-free bug
job [Fri, 29 Dec 2023 14:35:43 +0000 (14:35 +0000)]
Fix a NULL access or use-after-free bug

This is a bandaid, the proc_parser_mft() is too complex and needs reworking

OK tb@

10 months agoUse a per cpu pool cache for pmap_pv_pool
jca [Fri, 29 Dec 2023 13:23:27 +0000 (13:23 +0000)]
Use a per cpu pool cache for pmap_pv_pool

Improves performance on my 8 cores box.  ok cheloha@ kettenis@

10 months agoNeuter the SSL_set_debug(3) API
tb [Fri, 29 Dec 2023 12:24:33 +0000 (12:24 +0000)]
Neuter the SSL_set_debug(3) API

The TLSv1.3 stack didn't support this in the first place, and in the legacy
stack it only added some dubious BIO_flush(3) calls. The sleep call between
SSL_read(3) and SSL_write(3) advertised in the comment next to the flag has
been a sleep call in the s_server since time immemorial, nota bene between
calls to BIO_gets(3). Anyway. This can all go and what remains will go with
the next major bump.

ok jsing

10 months agoGarbage collect the last users of SSL_set_debug(3)
tb [Fri, 29 Dec 2023 12:15:49 +0000 (12:15 +0000)]
Garbage collect the last users of SSL_set_debug(3)

This undocumented, incomplete public function has never done anything
useful. It will be removed from libssl. Removing it from openssl(1)
clears the way for this.

ok jsing

10 months agos_client: pause hasn't worked in ages. Just ignore it
tb [Fri, 29 Dec 2023 12:06:48 +0000 (12:06 +0000)]
s_client: pause hasn't worked in ages. Just ignore it

ok jsing

10 months agoThere is no default for the rtable login.conf capability.
claudio [Fri, 29 Dec 2023 11:57:38 +0000 (11:57 +0000)]
There is no default for the rtable login.conf capability.

If it is not set it will use the current rtable. It will not force every
login to the default (0) rtable. For that rtable should be set to 0.
OK schwarze@ a long time ago

10 months agoCleanup required headers form imsg.h.
claudio [Fri, 29 Dec 2023 11:48:47 +0000 (11:48 +0000)]
Cleanup required headers form imsg.h.

Right now only sys/queue.h is required to be included for imsg.h. The
only exception is if imsg_composev() is used, then sys/uio.h is needed
to access struct iovec.
OK tb@

10 months agoMake loopback interface counters MP safe.
bluhm [Fri, 29 Dec 2023 11:43:04 +0000 (11:43 +0000)]
Make loopback interface counters MP safe.

Create and use the MP safe version of the interface counters for
lo(4).  Input packets were counted twice.  As interface input queue
is already counting, remove input count in if_input_local().
Multicast and siplex packets are counted at the ethernet interface.
Add a comment that this not MP safe.

OK mvs@

10 months agoMove the EVP_PKEY_asn1_* API that will stay to evp/p_lib.c
tb [Fri, 29 Dec 2023 10:59:00 +0000 (10:59 +0000)]
Move the EVP_PKEY_asn1_* API that will stay to evp/p_lib.c

Most of these functions are only called from this file internally apart
from the pem_str lookups from pem/. In the next major bump we can then
remove asn/ameth_lib.c. Also move EVP_PKEY_ASN1_METHOD to evp_local.h.
While this is used to dispatch to various ASN.1 decoding routines, it
doesn't fit into asn1/ at all.

10 months agoZap some whitespace
tb [Fri, 29 Dec 2023 10:31:50 +0000 (10:31 +0000)]
Zap some whitespace

10 months agoReplace outdated comment on EVP_PKEY_asn1_find() with a todo item
tb [Fri, 29 Dec 2023 10:17:26 +0000 (10:17 +0000)]
Replace outdated comment on EVP_PKEY_asn1_find() with a todo item

10 months agoMove EVP_PKEY_asn1_add* to the end of the file
tb [Fri, 29 Dec 2023 10:08:44 +0000 (10:08 +0000)]
Move EVP_PKEY_asn1_add* to the end of the file

Also add a reminder to remove most of the public API in this file.

10 months agoSupport for "control" nodes was removed from the drm subsystem some time
kettenis [Fri, 29 Dec 2023 10:00:18 +0000 (10:00 +0000)]
Support for "control" nodes was removed from the drm subsystem some time
ago, but some code in drmopen() remained which means that opening a drm
device node with a minor that matches the range for the "control" nodes
will hit a kernel assertion.  A similar issue exists for "render" nodes
corresponding to a driver that only supports KMS (such as rkdrm(4)).

Add checks to see if the minor is valid and return ENXIO if that isn't the
case to prevent a kernel crash.

ok jsg@, miod@

10 months agoMove the EVP_MD block size accessor down
tb [Fri, 29 Dec 2023 07:22:47 +0000 (07:22 +0000)]
Move the EVP_MD block size accessor down

This way all the EVP_MD accessors are in the order of the struct fields.
Well, arguably the EVP_MD_meth* should come first, but they are scheduled
to go meet the dodo.

10 months agoMove the EVP_MD_CTX flag accessors up a bit
tb [Fri, 29 Dec 2023 07:14:02 +0000 (07:14 +0000)]
Move the EVP_MD_CTX flag accessors up a bit

This way the accessors are sorted the same way as the struct.

10 months agoHoist EVP_MD_CTX accessors to after EVP_MD_CTX_ctrl
tb [Fri, 29 Dec 2023 07:09:44 +0000 (07:09 +0000)]
Hoist EVP_MD_CTX accessors to after EVP_MD_CTX_ctrl

This way the file has EVP_Digest*, then EVP_MD_CTX new/free/clean,
then ctrl then the EVP_MD_CTX accessors, then the EVP_MD accessors
and finally the EVP_MD_meth stuff and the order of things starts
making a wee bit of sense.

10 months agoMove init/reset next to cleanup
tb [Fri, 29 Dec 2023 07:02:28 +0000 (07:02 +0000)]
Move init/reset next to cleanup

This way new/free aka create/destroy are next to each other. reset/cleanup
are the same thing and init will join the club after some other fixing
because two APIs that do the exact same thing aren't enough.

10 months agoMove the copy/copy_ex stuff down below the new/free/clear mess
tb [Fri, 29 Dec 2023 06:59:24 +0000 (06:59 +0000)]
Move the copy/copy_ex stuff down below the new/free/clear mess

10 months agoMerge the EVP_CIPHER_meth_* API into evp_cipher.c
tb [Fri, 29 Dec 2023 06:56:38 +0000 (06:56 +0000)]
Merge the EVP_CIPHER_meth_* API into evp_cipher.c

10 months agoMerge the remainder of evp_lib.c into evp_cipher.c
tb [Fri, 29 Dec 2023 06:17:58 +0000 (06:17 +0000)]
Merge the remainder of evp_lib.c into evp_cipher.c

10 months agoMove the middle part of evp_lib.c to evp_digest.c
tb [Fri, 29 Dec 2023 06:08:01 +0000 (06:08 +0000)]
Move the middle part of evp_lib.c to evp_digest.c

These are ~200 lines of EVP_MD API that separated two parts of the file
dedicated to EVP_CIPHER thingies.

10 months agoUse more consistent naming for some files in evp
tb [Fri, 29 Dec 2023 05:57:24 +0000 (05:57 +0000)]
Use more consistent naming for some files in evp

EVP_Digest{Init,Update,Final}() move from digest.c to evp_digest.c which
will become the home of all things related to EVP_MD{,_CTX} handling.

EVP_Cipher{Init,Update,Final}() move from evp_enc.c to evp_cipher.c which
will become the home of all things related to EVP_CIPHER{,_CTX} handling.

EVP_Encode{Init,Update,Final}() move from encode.c to evp_encode.c which
already is the home of EVP_ENCODE_CTX_{new,free}().

discussed with jsing

10 months agoUse a void pointer rather than char for method_data
tb [Fri, 29 Dec 2023 05:33:32 +0000 (05:33 +0000)]
Use a void pointer rather than char for method_data

This way we don't need to cast from BY_DIR * to char * and back in
its only consumer, the lovely by_dir.

10 months agoRemove the unused init flag of X509_LOOKUP
tb [Fri, 29 Dec 2023 05:17:20 +0000 (05:17 +0000)]
Remove the unused init flag of X509_LOOKUP

10 months agosync
deraadt [Fri, 29 Dec 2023 02:42:20 +0000 (02:42 +0000)]
sync

10 months agomore regress tests for RB_* and RBT_* macros
aisha [Fri, 29 Dec 2023 02:37:39 +0000 (02:37 +0000)]
more regress tests for RB_* and RBT_* macros

help, pointers and OK bluhm@

10 months agoClean up pkey_ec_paramgen()
tb [Thu, 28 Dec 2023 22:12:37 +0000 (22:12 +0000)]
Clean up pkey_ec_paramgen()

This is basically the same as the dh and dsa version, except it's
different because it's EC. Single exit, uniform error checking.
"Plug" another leak.

With this I earned another shining turd for my collection.

ok jsing

10 months agoRework pkey_das_paramgen()
tb [Thu, 28 Dec 2023 22:11:26 +0000 (22:11 +0000)]
Rework pkey_das_paramgen()

Another copy-paste-then-tweak-and-diverge version of the same old thing.
Fix it the same way as pkey_rsa_paramgen() and pkey_dh_paramgen(). The
callbacks are initialized at the top and the weird error checking is
turned into something much simpler.

ok jsing

10 months agoRework pkey_dh_paramgen()
tb [Thu, 28 Dec 2023 22:10:33 +0000 (22:10 +0000)]
Rework pkey_dh_paramgen()

Similar to pkey_rsa_paramgen() this function does some strange dances
with the pkey_gencb and initialization plus missing error checks. Fix
all that and use the idiom established in previous commits.

ok jsing

10 months agoFix pkey_ec_keygen()
tb [Thu, 28 Dec 2023 22:09:10 +0000 (22:09 +0000)]
Fix pkey_ec_keygen()

The EC code came later, and people got better at writing terrible code.
In this case, they could remain quite close to what they copy-pasted
from DH, so it was relatively straightforward (for once). There's only
one slight extra twist and that's easily dealt with.

ok jsing