openbsd
14 months agoFix bug when gzungetc() is used immediately after gzopen().
tb [Sat, 12 Aug 2023 13:49:29 +0000 (13:49 +0000)]
Fix bug when gzungetc() is used immediately after gzopen().

from upstream

14 months agofix typo
tb [Sat, 12 Aug 2023 13:48:37 +0000 (13:48 +0000)]
fix typo

from upstream

14 months agoCheck for a full read, avoid warn when errno might be unmodified
gnezdo [Sat, 12 Aug 2023 13:43:22 +0000 (13:43 +0000)]
Check for a full read, avoid warn when errno might be unmodified

Promote size from int to size_t.

From: lucas at sexy dot is

Regress tests by gnezdo@

deraadt: yes

14 months agoRepair compilability for non-MULTIPROCESSOR kernels.
miod [Sat, 12 Aug 2023 13:19:28 +0000 (13:19 +0000)]
Repair compilability for non-MULTIPROCESSOR kernels.

14 months agoDon't power down if the device is already opened. This happens when an
kettenis [Sat, 12 Aug 2023 10:03:05 +0000 (10:03 +0000)]
Don't power down if the device is already opened.  This happens when an
ikbd(4) attaches and becomes the console keyboard.  We would power down
the device but never power it on again when userland opened ikbd(4) as
an input device since that is only done on the first open.  The result
was a non-functioning keyboard if the hardware actually implemented the
power down command.  A lot of hardware actually doesn't (which is why
this wasn't noticed for some time) but the ASUS X205T does.

ok miod@

14 months agoRemove a blatant lie about DSA_dup_DH
tb [Sat, 12 Aug 2023 08:26:38 +0000 (08:26 +0000)]
Remove a blatant lie about DSA_dup_DH

q is copied across since OpenSSL 31360957 which hit our tree with
OpenSSL 1.0.1c in October 2012.

14 months agoThe int_ prefix also leaves the ec_ameth mess
tb [Sat, 12 Aug 2023 08:07:35 +0000 (08:07 +0000)]
The int_ prefix also leaves the ec_ameth mess

The prefixes in here are all over the place... This removes one variety.

14 months agoRSA's _free and _size also lose their int_ prefix
tb [Sat, 12 Aug 2023 08:02:43 +0000 (08:02 +0000)]
RSA's _free and _size also lose their int_ prefix

14 months agoDrop silly int_ prefix from _free() and _size()
tb [Sat, 12 Aug 2023 07:59:48 +0000 (07:59 +0000)]
Drop silly int_ prefix from _free() and _size()

14 months agoFree {priv,pub}_key before assigning to it
tb [Sat, 12 Aug 2023 07:50:47 +0000 (07:50 +0000)]
Free {priv,pub}_key before assigning to it

While it isn't the case for the default implementations, custom DH and DSA
methods could conceivably populate private and public keys, which in turn
would result in leaks in the pub/priv decode methods.

ok jsing

14 months agoReadability tweak for key parameters in DSA
tb [Sat, 12 Aug 2023 07:46:14 +0000 (07:46 +0000)]
Readability tweak for key parameters in DSA

ok jsing

14 months agoSimplify and unify missing_parameters() for DH and DSA
tb [Sat, 12 Aug 2023 07:43:48 +0000 (07:43 +0000)]
Simplify and unify missing_parameters() for DH and DSA

ok jsing

14 months agoAdd sanity checks in uvm_pagelookup().
mpi [Sat, 12 Aug 2023 07:22:56 +0000 (07:22 +0000)]
Add sanity checks in uvm_pagelookup().

ok kettenis@

14 months agoNow that the DH is sensibly called dh instead of a, we can also rename
tb [Sat, 12 Aug 2023 06:30:43 +0000 (06:30 +0000)]
Now that the DH is sensibly called dh instead of a, we can also rename
abuf, alen and aout to names that make sense, such as buf, buf_len and
secret_len.

14 months agoFix comments regarding pcb_onfault maintainence. No code change.
miod [Sat, 12 Aug 2023 06:28:13 +0000 (06:28 +0000)]
Fix comments regarding pcb_onfault maintainence. No code change.

14 months agoa is a silly name for a DH
tb [Sat, 12 Aug 2023 06:28:04 +0000 (06:28 +0000)]
a is a silly name for a DH

14 months agoUse printf for consistency
tb [Sat, 12 Aug 2023 06:25:26 +0000 (06:25 +0000)]
Use printf for consistency

14 months agoCheck that {DH,DSA}_get0_engine() returns NULL if OPENSSL_NO_ENGINE is
tb [Sat, 12 Aug 2023 06:23:59 +0000 (06:23 +0000)]
Check that {DH,DSA}_get0_engine() returns NULL if OPENSSL_NO_ENGINE is
defined.

14 months agoConvert {DH,DSA}_new_method() to using calloc()
tb [Sat, 12 Aug 2023 06:14:36 +0000 (06:14 +0000)]
Convert {DH,DSA}_new_method() to using calloc()

Due to OPENSSL_NO_ENGINE the engine member of dh and dsa is currently
uninitialized. As a consequence, {DH,DSA}_get0_engine() will return a
garbage pointer, which is particularly bad because the only reason we
kept them in the first place is that they are used by some software...

A side effect of freeing with {DH,DSA}_free() instead of a hand-rolled
version is that we may call ->meth->finish() before ->meth->init() was
called. We need a NULL check for ->meth to be on the safe side in case
we should need to bring ENGINE back.

with nits from djm
ok deraadt djm

14 months agoAdd regress coverage for DH and for DSA parameters
tb [Fri, 11 Aug 2023 22:50:44 +0000 (22:50 +0000)]
Add regress coverage for DH and for DSA parameters

14 months agohardclock(9), roundrobin: make roundrobin() an independent clock interrupt
cheloha [Fri, 11 Aug 2023 22:02:50 +0000 (22:02 +0000)]
hardclock(9), roundrobin: make roundrobin() an independent clock interrupt

- Remove the roundrobin() call from hardclock(9).

- Revise roundrobin() to make it a valid clock interrupt callback.
  It is still periodic and it still runs at one tenth of the hardclock
  frequency.

- Account for multiple expirations in roundrobin(): if two or more
  roundrobin periods have elapsed, set SPCF_SHOULDYIELD on the running
  thread immediately to simulate normal behavior.

- Each schedstate_percpu has its own roundrobin() handle, spc_roundrobin.
  spc_roundrobin is started/advanced during clockintr_cpu_init().
  Intervals elapsed across suspend/resume are discarded.

- rrticks_init and schedstate_percpu.spc_rrticks are now useless:
  delete them.

Tweaked by mpi@.  With input from mpi@ and claudio@.

Thread: https://marc.info/?l=openbsd-tech&m=169127381314651&w=2

ok mpi@ claudio@

14 months agoMerge various improvements from the OpenSSL 1.1 branch,
schwarze [Fri, 11 Aug 2023 18:08:43 +0000 (18:08 +0000)]
Merge various improvements from the OpenSSL 1.1 branch,
which is still under a free license.

* document EVP_MD_CTX_set_flags, EVP_MD_CTX_clear_flags, EVP_MD_CTX_test_flags
* document EVP_MD_flags, EVP_MD_CTX_md_data
* document EVP_MD_CTX_pkey_ctx, EVP_MD_CTX_set_pkey_ctx
* correct arg type of EVP_MD_CTX_size, EVP_MD_CTX_block_size, EVP_MD_CTX_type
* more information about EVP_MD_CTX_ctrl
* add missing <string.h> and correct one variable type below EXAMPLES
* two orthographic improvements

with a few wording tweaks by me

14 months agoKill unused variable in uvm_aio_aiodone_pages().
mpi [Fri, 11 Aug 2023 17:53:22 +0000 (17:53 +0000)]
Kill unused variable in uvm_aio_aiodone_pages().

14 months agoDo not crash if in buffer mode and the last buffer is deleted using the
nicm [Fri, 11 Aug 2023 17:09:00 +0000 (17:09 +0000)]
Do not crash if in buffer mode and the last buffer is deleted using the
command.

14 months agoStop including md32_common.h.
jsing [Fri, 11 Aug 2023 15:27:28 +0000 (15:27 +0000)]
Stop including md32_common.h.

Now that we're no longer dependent on md32_common.h, stop including it.
Remove various defines that only existed for md32_common.h usage.

14 months agoDemacro sha256.
jsing [Fri, 11 Aug 2023 15:25:36 +0000 (15:25 +0000)]
Demacro sha256.

Replace macros with static inline functions, as well as writing out the
variable rotations instead of trying to outsmart the compiler. Also pull
the message schedule update up and complete it prior to commencement of
the round. Also use rotate right, rather than transposed rotate left.

Overall this is more readable and more closely follows the specification.
On some platforms (e.g. aarch64) there is no noteable change in
performance, while on others there is a significant improvement (more than
25% on arm).

ok miod@ tb@

14 months agoImprove variable names in {dh,dsa}_{pub,priv}_{de,en}code()
tb [Fri, 11 Aug 2023 13:57:24 +0000 (13:57 +0000)]
Improve variable names in {dh,dsa}_{pub,priv}_{de,en}code()

Use aint for the ASN1_INTEGER holding the key and astr for the ASN1_STRING
holding the parameters. This frees up key and params for their DER encoded
versions, matching the naming we use elsewhere much more closely.

ok jsing

14 months agoUse params{,_len} in {dh,dsa}_params_{en,de}code()
tb [Fri, 11 Aug 2023 13:53:45 +0000 (13:53 +0000)]
Use params{,_len} in {dh,dsa}_params_{en,de}code()

14 months agoUse key/key_len in old_dsa_priv_{en,de}code()
tb [Fri, 11 Aug 2023 13:51:33 +0000 (13:51 +0000)]
Use key/key_len in old_dsa_priv_{en,de}code()

ok jsing

14 months agoAdd back an empty line that I didn't really want to remove
tb [Fri, 11 Aug 2023 11:47:21 +0000 (11:47 +0000)]
Add back an empty line that I didn't really want to remove

14 months agoAlign dh and dsa decoding functions with encoding
tb [Fri, 11 Aug 2023 11:32:19 +0000 (11:32 +0000)]
Align dh and dsa decoding functions with encoding

This adds some missing error checks and fixes and unifies error codes
which were (as usual) all over the place or just plain nonsense. Use
an auxiliary variable for d2i invocations even though it is not really
needed here.

ok jsing

14 months agoAdd iked support for route based sec(4) tunnels.
tobhe [Fri, 11 Aug 2023 11:24:55 +0000 (11:24 +0000)]
Add iked support for route based sec(4) tunnels.

To use sec(4) instead of policy based tunnels, create a sec(4)
interface and add 'iface secXX' to your policy config.
sec(4) interfaces also support auto configuration for dynamic client
IPs via 'request any' like all other interfaces.
The config won't work without traffic selectors, 'from any to any'
should work for now but I plan to make this optional in the future.

ok dlg@

14 months agoMove the single_thread_check() to the start of userret().
claudio [Fri, 11 Aug 2023 07:54:18 +0000 (07:54 +0000)]
Move the single_thread_check() to the start of userret().

This way threads stopped by SINGLE_SUSPEND will check for pending
signals right after being released instead of returning to userland
first. The same order of check is already used in sleep_signal_check().

OK mpi@

14 months agoRename env_md{,_ctx}_st to evp_md{,_ctx}_st
tb [Fri, 11 Aug 2023 05:10:35 +0000 (05:10 +0000)]
Rename env_md{,_ctx}_st to evp_md{,_ctx}_st

As everyone knows (and who doesn't know will immediately guess), EVP is
short for envelope. Most structs backing the public EVP_* types are called
evp_*. For the EVP_MD and EVP_MD_CTX types, someone used env_md_st and
env_md_ctx_st, which, as jsing pointed out, may or may not be related to
a much less obvious abbreviation of envelope. It could also simply have
been for reasons of inconsistency.

Be all that as it may: rename these structs to use the evp_* namespace
to match all the other EVP types, as well as upstream.

ok jsing

14 months agoStop down-converting to a timeval when comparing and setting times.
guenther [Fri, 11 Aug 2023 05:07:28 +0000 (05:07 +0000)]
Stop down-converting to a timeval when comparing and setting times.
Replace use of the old BSD st_*timespec members in struct stat with
the POSIX-standard st_*tim members.

ok millert@

14 months agoSwitch rcs_{get,set}_mtime() from returning and taking a time_t to
guenther [Fri, 11 Aug 2023 05:02:21 +0000 (05:02 +0000)]
Switch rcs_{get,set}_mtime() from returning and taking a time_t to
doing so with a struct timespec and then use tv_nsec = UTIME_OMIT
instead of a (time_t)-1 as a "do nothing" value.  They can then
fully preserve the timestamp

ok millert@

14 months agoUse EVP_MD in HKDF() and HKDF_extract() prototypes
tb [Fri, 11 Aug 2023 04:52:08 +0000 (04:52 +0000)]
Use EVP_MD in HKDF() and HKDF_extract() prototypes

Switch these prototypes to be like all other code and use the EVP_MD type
rather than the internal name of the struct. This also makes the function
definitions match the prototypes.

ok jsing

14 months agomsdosfs_times() doesn't need to copy timespecs onto the stack: just
guenther [Fri, 11 Aug 2023 04:51:36 +0000 (04:51 +0000)]
msdosfs_times() doesn't need to copy timespecs onto the stack: just
mark unix2dostime()'s first argument as a pointer to const and skip
the copies.

ok millert@

14 months agocvs_file_copy() used futimes(), but only set the tv_sec fields,
guenther [Fri, 11 Aug 2023 04:48:14 +0000 (04:48 +0000)]
cvs_file_copy() used futimes(), but only set the tv_sec fields,
which presumably meant passing stack garbage in the tv_usec and
failing with EINVAL, whee.  Switch to futimens() and set the full
timespecs from the incoming struct stat

ok millert@

14 months agoMove EC_KEY and EC_KEY_METHOD typedefs to ossl_typ.h
tb [Fri, 11 Aug 2023 04:45:26 +0000 (04:45 +0000)]
Move EC_KEY and EC_KEY_METHOD typedefs to ossl_typ.h

ok jsing

14 months agoReplace use of the old BSD st_*timespec members in struct stat with
guenther [Fri, 11 Aug 2023 04:45:05 +0000 (04:45 +0000)]
Replace use of the old BSD st_*timespec members in struct stat with
the POSIX-standard st_*tim members.

ok millert@

14 months agoWhen used by itself, replace use of the old BSD st_mtimespec.tv_sec
guenther [Fri, 11 Aug 2023 04:44:28 +0000 (04:44 +0000)]
When used by itself, replace use of the old BSD st_mtimespec.tv_sec
member in struct stat with for-all-time st_mtime member.

ok millert@

14 months agoenable sec(4) so people can try it out
dlg [Fri, 11 Aug 2023 02:35:38 +0000 (02:35 +0000)]
enable sec(4) so people can try it out

14 months agobetter support queuing (hfsc) on sec(4)
dlg [Fri, 11 Aug 2023 02:34:56 +0000 (02:34 +0000)]
better support queuing (hfsc) on sec(4)

14 months agoagtimer(4/arm64): call CPU_BUSY_CYCLE() during spin-loop
cheloha [Fri, 11 Aug 2023 01:28:19 +0000 (01:28 +0000)]
agtimer(4/arm64): call CPU_BUSY_CYCLE() during spin-loop

For consistency with other delay(9) implementations, agtimer(4/arm64)
ought to call CPU_BUSY_CYCLE() as it spins.

kettenis@ notes that we could reduce the power consumed in
agtimer_delay() by enabling CNTKCTL_EL1.EVNTEN and configuring
ENTKCTL_EL1.EVNTI.

kettenis@ also notes that Armv8.7 adds FEAT_WFxT, which will, when the
feature appears in real hardware, make it even easier to save power in
agtimer_delay().

With input from drahn@ and kettenis@.

Thread: https://marc.info/?l=openbsd-tech&m=169146193022516&w=2

ok kettenis@

14 months agobetter debug logging of sessions' exit status
djm [Thu, 10 Aug 2023 23:05:48 +0000 (23:05 +0000)]
better debug logging of sessions' exit status

14 months agoagtimer(4/arm64): agtimer_delay: compute cycle count with 64-bit arithmetic
cheloha [Thu, 10 Aug 2023 22:58:04 +0000 (22:58 +0000)]
agtimer(4/arm64): agtimer_delay: compute cycle count with 64-bit arithmetic

Converting from microseconds to timer cycles is much simpler with
64-bit arithmetic.

Thread: https://marc.info/?l=openbsd-tech&m=169146193022516&w=2

ok drahn@ kettenis@

14 months agoTake advantage of the fact that the WFI instruction does continue
kettenis [Thu, 10 Aug 2023 21:01:50 +0000 (21:01 +0000)]
Take advantage of the fact that the WFI instruction does continue
immediately if there is a pending interrupt to fix a potential race
in the idle loop.

ok guenther@

14 months agoAdd some KASSERT on the proc p_stat in sleep_finish()
claudio [Thu, 10 Aug 2023 20:44:52 +0000 (20:44 +0000)]
Add some KASSERT on the proc p_stat in sleep_finish()
OK mpi@

14 months agoThe Lenovo X13s has broken firmware that makes it impossible to use PAC.
kettenis [Thu, 10 Aug 2023 19:29:32 +0000 (19:29 +0000)]
The Lenovo X13s has broken firmware that makes it impossible to use PAC.
But other machines that use the same SoC work just fine.  So instead of
disabling this feature on all CPUs that implement the architectured
algorithm, add an SMBIOS-based check that just disables the feature on
these machines.  This means we need to attach smbios0 before cpu0, which
in turn means attaching efi0 earlier.

tested by patrick@

14 months agoAlways create new softraid CRYPTO volume, do not reuse existing one
kn [Thu, 10 Aug 2023 17:09:34 +0000 (17:09 +0000)]
Always create new softraid CRYPTO volume, do not reuse existing one

The bioctl(8) command to create new and unlock old volumes is the same.
Use `-C force' to prevent reuse, which happens with, e.g. aborted/restarted
encrypted installations past the question or installations onto an old disk.

OK naddy sthen deraadt

14 months agoConvert {dh,dsa}_{pub,priv}_encode() to single exit
tb [Thu, 10 Aug 2023 16:57:15 +0000 (16:57 +0000)]
Convert {dh,dsa}_{pub,priv}_encode() to single exit

Use the same variable names throughout these functions and unify them
some more.

ok jsing

14 months agoTable persistent flag (PFR_TFLAG_PERSIST) won't get set
sashan [Thu, 10 Aug 2023 16:44:04 +0000 (16:44 +0000)]
Table persistent flag (PFR_TFLAG_PERSIST) won't get set
by ioctl(2) operation if table exists already. The issue
has been noticed by Giannis Kapetanakis (_at_) edu.physics.uoc.gr.
Giannis noticed relayd(8) aborts unexpectedly when 'relay host'
gets disabled by 'relayctl host dis ...' command. To understand
what's going on we must look at the way how relayd(8) manages
its firewall configuration. If relay-host 'example' is enabled relayd(8)
inserts rule to anchor relayd/example. The rule looks somewhat
like this:
     pass in from ... to ... rdr-to <example>
When the rule gets inserted to pf(4) the table 'example' is
created with flags:
    lumpy# pfctl -a relayd/example -vg -sT
    ----r-- example relayd/example
r-flag indicates table is referred by rule only. In the next
step relayd(8) creates and populates table example. It asks
pf(4) to add a persistent flag (PFR_TFLAG_PERSIST), so table
survives flush operation of relayd/example ruleset on behalf
of 'relayctl host dis ...' command. relayd(8) exits via abort()
when table is gone with disable operation.

Giannis was patient enough so we could debug and fix issue.
The committed change has been tested by Giannis too.

OK kn@, bluhm@

14 months agoAdd the missing ".Nm X509_STORE_CTX_check_issued_fn" to the NAME section
schwarze [Thu, 10 Aug 2023 16:15:42 +0000 (16:15 +0000)]
Add the missing ".Nm X509_STORE_CTX_check_issued_fn" to the NAME section
such that `man X509_STORE_CTX_check_issued_fn` works.
While here, add a Copyright notice for Job Snijders because
he added a significant amount of text to this file in March 2023.
OK job@

14 months agoAllow libpcap to read files with some additional link-layer type values
sashan [Thu, 10 Aug 2023 15:47:05 +0000 (15:47 +0000)]
Allow libpcap to read files with some additional link-layer type values

patch has been contributed by Guy Harris from libpcap/tcpdump. It
resolves collision between DLT_* values on various OSes. The issue
prevents correct interpretation of link layer information in capture
files which might come from another OS. To resolve this libpcap/tcpdump
community introduced a LINKTYPE_* values. The patch provides translation
between DLT_* and LINKTYPE_* for OpenBSD. More details can be found
here: https://www.tcpdump.org/linktypes.html

No objection from OpenBSD community.

OK sthen@

14 months agoClean up {dh,dsa}_pub_encode()
tb [Thu, 10 Aug 2023 15:11:16 +0000 (15:11 +0000)]
Clean up {dh,dsa}_pub_encode()

This brings these two messy functions into more usual shape. There is a
lot more that can be done in here. It is a step in the right direction.

ok jsing

14 months agoFix a leak in rsa_pub_encode()
tb [Thu, 10 Aug 2023 15:05:28 +0000 (15:05 +0000)]
Fix a leak in rsa_pub_encode()

rsa_param_encode() allocates the PSS parameters in an ASN1_STRING which
is leaked if any error occurs later in rsa_pub_encode(). Convert the rest
of the code to follow our ordinary idioms more closely.

ok jsing

14 months agodrop a wayward comma, ok jmc@
naddy [Thu, 10 Aug 2023 14:37:32 +0000 (14:37 +0000)]
drop a wayward comma, ok jmc@

14 months agoIn x509_vfy.h rev. 1.60 and rev. 1.62 (April 2023), tb@ provided
schwarze [Thu, 10 Aug 2023 14:15:16 +0000 (14:15 +0000)]
In x509_vfy.h rev. 1.60 and rev. 1.62 (April 2023), tb@ provided
X509_STORE_CTX_get1_certs(3) and X509_STORE_CTX_get1_crls(3).
Document them and mark their aliases as deprecated.

14 months agoRemove now unnecessary 'do {} while (0);' and move variable declaration.
jsing [Thu, 10 Aug 2023 14:04:54 +0000 (14:04 +0000)]
Remove now unnecessary 'do {} while (0);' and move variable declaration.

No functional change.

14 months agoExpand HASH_MAKE_STRING.
jsing [Thu, 10 Aug 2023 14:03:47 +0000 (14:03 +0000)]
Expand HASH_MAKE_STRING.

No change to generated assembly.

14 months agoRemove MD32_XARRAY remnants.
jsing [Thu, 10 Aug 2023 13:59:31 +0000 (13:59 +0000)]
Remove MD32_XARRAY remnants.

14 months agoReorder functions.
jsing [Thu, 10 Aug 2023 13:58:34 +0000 (13:58 +0000)]
Reorder functions.

No functional change.

14 months agoImplement MD5_{Update,Transform,Final}() directly in md5.c.
jsing [Thu, 10 Aug 2023 13:54:21 +0000 (13:54 +0000)]
Implement MD5_{Update,Transform,Final}() directly in md5.c.

Copy the update, transform and final functions from md32_common.h, manually
expanding the macros for MD5. This will allow for further clean up to
occur.

No change in generated assembly.

14 months agoTidy includes.
jsing [Thu, 10 Aug 2023 13:41:56 +0000 (13:41 +0000)]
Tidy includes.

14 months agoTidy includes.
jsing [Thu, 10 Aug 2023 13:41:18 +0000 (13:41 +0000)]
Tidy includes.

14 months agoMop up the last MD32_XARRAY.
jsing [Thu, 10 Aug 2023 12:27:35 +0000 (12:27 +0000)]
Mop up the last MD32_XARRAY.

MD32_XARRAY was added as a workaround for a broken HP C compiler (circa
1999). Clean it up to simplify the code.

No change in generated assembly.

14 months agoInline the remaining 10 lines from rmdconst.h.
jsing [Thu, 10 Aug 2023 11:06:36 +0000 (11:06 +0000)]
Inline the remaining 10 lines from rmdconst.h.

Discussed with tb@

14 months agoInline X variables definitions.
jsing [Thu, 10 Aug 2023 11:04:30 +0000 (11:04 +0000)]
Inline X variables definitions.

Inline the WL and WR defines, which only add yet another layer of
abstraction and make the code harder to follow.

No change to generated assembly.

Discussed with tb@

14 months agoInline shift values.
jsing [Thu, 10 Aug 2023 11:00:46 +0000 (11:00 +0000)]
Inline shift values.

Inline the SL and SR defines, which only makes the code harder to follow.

No change to generated assembly.

Discussed with tb@

14 months agodocument .VARIABLES
espie [Thu, 10 Aug 2023 10:56:34 +0000 (10:56 +0000)]
document .VARIABLES

14 months agoAdd support for .VARIABLES, to which I have use.
espie [Thu, 10 Aug 2023 10:52:43 +0000 (10:52 +0000)]
Add support for .VARIABLES, to which I have use.
This is an extension but also exists in gnu-make.
okay millert@, kn@, thfr@
(I've added an XXX comment on top of the patch you've seen,
no actual further code change)

14 months agoApply some more style(9).
jsing [Thu, 10 Aug 2023 10:21:37 +0000 (10:21 +0000)]
Apply some more style(9).

No change in generated assembly.

14 months agoVarious fixes in {dh,dsa}_priv_encode()
tb [Thu, 10 Aug 2023 09:43:51 +0000 (09:43 +0000)]
Various fixes in {dh,dsa}_priv_encode()

Avoid creating an ASN1_STRING with negative length, set type, data
and length via ASN1_STRING_type_new() and ASN1_STRING_set0() instead
of doing this manually. Check return value for i2d_ASN1_INTEGER()
and use an intermediate ASN1_OBJECT instead of nested function calls.
Finally, clear sensitive data with freezero().

ok jsing

14 months agorsa_priv_encode: plug leak on PKCS8_pkey_set0() failure
tb [Thu, 10 Aug 2023 09:36:37 +0000 (09:36 +0000)]
rsa_priv_encode: plug leak on PKCS8_pkey_set0() failure

Change the code to use safer idioms and avoid nested function calls.

ok jsing

14 months agoMake stopped ldom utilization appear as zero
kn [Thu, 10 Aug 2023 07:50:45 +0000 (07:50 +0000)]
Make stopped ldom utilization appear as zero

ldomctl(8) 'status' updated the value only on running guests,
i.e. stopped ones repeated the last ones instead of showing zero.

Always reset per guest before updating it, From Koakuma, thanks!

14 months agoImprove byte order handling in gcm128.
jsing [Thu, 10 Aug 2023 07:18:43 +0000 (07:18 +0000)]
Improve byte order handling in gcm128.

Replace a pile of byte order handling mess with htobe*() and be*toh().

ok tb@

14 months agoRemove MD32_REG_T.
jsing [Thu, 10 Aug 2023 07:15:23 +0000 (07:15 +0000)]
Remove MD32_REG_T.

This is a hack that is only enabled on a handful of 64 bit platforms, as
a workaround for poor compiler optimisation. If you're running an archiac
compiler on an archiac architecture, then you can deal with slightly lower
performance.

ok tb@

14 months agoopenssh-9.4
djm [Thu, 10 Aug 2023 01:01:07 +0000 (01:01 +0000)]
openssh-9.4

14 months agoregen
kmos [Wed, 9 Aug 2023 21:28:30 +0000 (21:28 +0000)]
regen

14 months agoAdd Crucial as a vendor and the P5 Plus NVMe as a product
kmos [Wed, 9 Aug 2023 21:27:47 +0000 (21:27 +0000)]
Add Crucial as a vendor and the P5 Plus NVMe as a product

ok and tweak jsg@

14 months agoAdd the forgotten .In line
schwarze [Wed, 9 Aug 2023 17:34:39 +0000 (17:34 +0000)]
Add the forgotten .In line
and fix a typo: s/content objects/content octets/.

14 months agoIn objects.h rev. 1.14 and 1.15 (Jan 2022), tb@ provided
schwarze [Wed, 9 Aug 2023 17:27:26 +0000 (17:27 +0000)]
In objects.h rev. 1.14 and 1.15 (Jan 2022), tb@ provided
OBJ_get0_data(3) and OBJ_length(3).  Document them.
Feedback and OK tb@.

14 months agoRework BN_BLINDING to use pthread_t directly
tb [Wed, 9 Aug 2023 12:09:06 +0000 (12:09 +0000)]
Rework BN_BLINDING to use pthread_t directly

Instead of CRYPTO_THREADID, which passes pthread_via through unsigned long,
we can use pthread_self() and pthread_equal() directly. This commit keeps
using the awkward 'local' nomenclature as that is used throughout the rsa
code. This will be changed after the blinding code will have been fully
merged into rsa_blinding.c.

ok jsing

14 months agoMerge remainder of rsa_crpt.c into rsa_eay.c
tb [Wed, 9 Aug 2023 09:32:22 +0000 (09:32 +0000)]
Merge remainder of rsa_crpt.c into rsa_eay.c

Most of these are one line wrappers around methods implemented in rsa_eay.c
by default.

14 months agoMove RSA blinding API from rsa_crpt.c to rsa_blinding.c
tb [Wed, 9 Aug 2023 09:26:43 +0000 (09:26 +0000)]
Move RSA blinding API from rsa_crpt.c to rsa_blinding.c

14 months agoMove RSA_blinding_{on,off}() to the bottom of the file
tb [Wed, 9 Aug 2023 09:25:13 +0000 (09:25 +0000)]
Move RSA_blinding_{on,off}() to the bottom of the file

14 months agoMove bn_blind.c to rsa_blinding.c
tb [Wed, 9 Aug 2023 09:23:03 +0000 (09:23 +0000)]
Move bn_blind.c to rsa_blinding.c

discussed with jsing

14 months agoMake declaration and definition of BN_BLINDING_new() match.
tb [Wed, 9 Aug 2023 09:20:00 +0000 (09:20 +0000)]
Make declaration and definition of BN_BLINDING_new() match.
Also, make mod const.

14 months agoMerge BN_BLINDING_create_param() into BN_BLINDING_new()
tb [Wed, 9 Aug 2023 09:09:24 +0000 (09:09 +0000)]
Merge BN_BLINDING_create_param() into BN_BLINDING_new()

14 months agoSet up the blinding factors on first use
tb [Wed, 9 Aug 2023 08:39:46 +0000 (08:39 +0000)]
Set up the blinding factors on first use

Only call BN_BLINDING_setup() from BN_BLINDING_update(). This allows
another simplification of the counter logic.

ok jsing

14 months agoRemove retry loop in BN_BLINDING_setup()
tb [Wed, 9 Aug 2023 08:35:59 +0000 (08:35 +0000)]
Remove retry loop in BN_BLINDING_setup()

If we generate a non-invertible blinding, we have accidentally factored
the modulus. This won't happen, so get rid of this ugly complication.

ok jsing

14 months agoCompute a square using BN_mod_sqr() instead of BN_mod_mul()
tb [Wed, 9 Aug 2023 08:31:13 +0000 (08:31 +0000)]
Compute a square using BN_mod_sqr() instead of BN_mod_mul()

ok jsing

14 months agoSimplify BN_BLINDING_invert()
tb [Wed, 9 Aug 2023 08:29:23 +0000 (08:29 +0000)]
Simplify BN_BLINDING_invert()

If the blinding is non-NULL, Ai is set on it, so no need to check for
that. Also, we can get away with a single call to BN_mod_mul().

ok jsing

14 months agoUnwrap a line
tb [Wed, 9 Aug 2023 08:27:02 +0000 (08:27 +0000)]
Unwrap a line

14 months agocorrect platform id mask, it is 3 bits 52:50
jsg [Wed, 9 Aug 2023 02:59:41 +0000 (02:59 +0000)]
correct platform id mask, it is 3 bits 52:50

14 months agoremove some uneeded includes
jsg [Wed, 9 Aug 2023 02:08:14 +0000 (02:08 +0000)]
remove some uneeded includes
ok dlg@

14 months agoshow x86 cpu patch level in dmesg
jsg [Wed, 9 Aug 2023 00:01:44 +0000 (00:01 +0000)]
show x86 cpu patch level in dmesg
ok guenther@ deraadt@

14 months agoMerge SO_BINDANY cases from both switch blocks within sosetopt(). This
mvs [Tue, 8 Aug 2023 22:07:25 +0000 (22:07 +0000)]
Merge SO_BINDANY cases from both switch blocks within sosetopt(). This
time SO_LINGER case is separated, so there is no reason for dedicated
switch block.

ok bluhm

14 months agoMerge SO_SND* with corresponding SO_RCV* cases within sosetopt(). The
mvs [Tue, 8 Aug 2023 22:06:27 +0000 (22:06 +0000)]
Merge SO_SND* with corresponding SO_RCV* cases within sosetopt(). The
only difference is the socket buffer.

As bonus, in the future solock() will be easily replaced by sblock()
instead pushing it down to each SO_SND* and SO_RCV* case.

ok bluhm