jsing [Tue, 7 Mar 2023 05:41:18 +0000 (05:41 +0000)]
Use static functions for EC_GFp_mont_method() implementation.
Move the EC_METHOD to the bottom of the file, which allows all
implementation functions to become static. Remove unneeded prototypes.
ok tb@
djm [Tue, 7 Mar 2023 05:37:26 +0000 (05:37 +0000)]
fix memory leak in process_read() path; Spotted by James Robinson
in GHPR363; ok markus@
jsing [Tue, 7 Mar 2023 05:35:13 +0000 (05:35 +0000)]
Fix formatting of comments.
jsing [Tue, 7 Mar 2023 05:28:12 +0000 (05:28 +0000)]
Consolidate clear code for EC_GFp_mont_method.
Use a fang dangled thing (known as a function) to avoid duplicating the
same code in five places.
ok tb@
djm [Tue, 7 Mar 2023 01:30:52 +0000 (01:30 +0000)]
correct size for array argument when changing UMAC_OUTPUT_LEN
Coverity CID 291845; ok dtucker@
krw [Mon, 6 Mar 2023 21:16:50 +0000 (21:16 +0000)]
Delete extraneous trailing blank line.
job [Mon, 6 Mar 2023 21:00:41 +0000 (21:00 +0000)]
Enforce X509v3 SKIs to be the SHA-1 hash of the Subject Public Key
In the RPKI-context (RFC 6487 section 4.8.2), SKIs are not at all
arbitary identifiers: they must be the SHA-1 hash of the
'Subject Public Key'. Add a SPK digest calculation and comparison
to the X509v3 extension containing the SKI.
OK tb@
miod [Mon, 6 Mar 2023 20:34:35 +0000 (20:34 +0000)]
Correctly account the number of bytes processed when outputting UTF-8 encoded
characters.
job [Mon, 6 Mar 2023 19:20:34 +0000 (19:20 +0000)]
For conciseness sake' remove non-optional items in references in STANDARDS
Discussed with deraadt@ tb@ claudio@
tb [Mon, 6 Mar 2023 19:10:14 +0000 (19:10 +0000)]
Clean up ndef_{prefix,suffix}_free()
These functions are rather similar, so there's no need for the code to
be wildly different. Add a missing NULL check to ndef_prefix_free() since
that will be needed in a subsequent commit.
ok jsing
krw [Mon, 6 Mar 2023 18:12:47 +0000 (18:12 +0000)]
Remove pointless ":ob#0:pb#0:[tb=swap:]" disktab lines.
ok miod@
krw [Mon, 6 Mar 2023 17:42:39 +0000 (17:42 +0000)]
Use GPT_UUID_NBSD_UFS, not GPT_UUID_FBSD_DATA, for NetBSD GPT
partition entries.
Add GPT_UUID_LEGACY_MBR entry to list of known partition id's as
it is defined in the UEFI Standard.
miod [Mon, 6 Mar 2023 17:39:54 +0000 (17:39 +0000)]
Define a few more attributes for the sake of the readattr subcommand;
curated and contributed by Brian Conway, thanks!
miod [Mon, 6 Mar 2023 17:20:05 +0000 (17:20 +0000)]
In iskmemdev(), do not check for the minor of /dev/io. It has been
deprecated more than 25 years ago and removed more than 20.
From Crystal Kolipe, thanks!
miod [Mon, 6 Mar 2023 17:14:44 +0000 (17:14 +0000)]
Replace old'n'wrong UTF-8 logic with a better one borrowed from Citrus;
issue reported by Crystal Kolipe on tech@
job [Mon, 6 Mar 2023 16:58:41 +0000 (16:58 +0000)]
Ensure .cer and .crl outside-TBS signatures are sha256WithRSAEncryption
Note: there is a potential for confusion in RFC 7935, the specification
differentiates between 2 contexts: "in the certificate" and "CMS SignedData".
In the CMS context, either rsaEncryption or sha256WithRSAEncryption can
appear (and both *do* appear in the wild).
However, RFC 7935 section 2 fourth paragraph starting with "In certificates,
CRLs, ..." mandates that sha256WithRSAEncryption is used to sign .cer and
.crl files:
"The Object Identifier (OID) sha256WithRSAEncryption from RFC4055 MUST
be used in these products."
The above requirement matches observations on existing RPKI deployments.
OK tb@
deraadt [Mon, 6 Mar 2023 16:17:17 +0000 (16:17 +0000)]
spelling
job [Mon, 6 Mar 2023 16:04:52 +0000 (16:04 +0000)]
Add check for RSA key pair modulus & public exponent
Both the SPKI inside a CA's .cer TBS section and Signers wrapped in CMS
must be RSA, with mod 2048 & (e) 0x10001
OK tb@
job [Mon, 6 Mar 2023 15:50:33 +0000 (15:50 +0000)]
Fix URL to RFC
tb [Mon, 6 Mar 2023 14:32:05 +0000 (14:32 +0000)]
Rename struct ${app}_config to plain cfg
All the structs are static and we need to reach into them many times.
Having a shorter name is more concise and results in less visual clutter.
It also avoids many overlong lines and we will be able to get rid of some
unfortunate line wrapping down the road.
Discussed with jsing
sthen [Mon, 6 Mar 2023 13:57:45 +0000 (13:57 +0000)]
tweak examples/iked.conf bits a little further following comments by
aisha@ and Crystal Kolipe, ok aisha@ tobhe@
tb [Mon, 6 Mar 2023 13:34:53 +0000 (13:34 +0000)]
Document ECDSA_SIG_get0_{r,s}()
tb [Mon, 6 Mar 2023 13:25:46 +0000 (13:25 +0000)]
Document DH_get0_* for individual DH members.
krw [Mon, 6 Mar 2023 13:24:40 +0000 (13:24 +0000)]
Use nitems() of source and destination partition arrays
rather than assuming they are the same size. Zero
destination entries when no source partition available.
No intentional functional change.
tb [Mon, 6 Mar 2023 13:18:38 +0000 (13:18 +0000)]
Document DSA_get0_* for individual DSA members
tb [Mon, 6 Mar 2023 13:05:32 +0000 (13:05 +0000)]
Document RSA_get0_* for individual RSA members.
Loosely based on OpenSSL commit
6692ff77.
Prodded by job
dtucker [Mon, 6 Mar 2023 12:15:47 +0000 (12:15 +0000)]
Unit test for kex_proposal_populate_entries.
dtucker [Mon, 6 Mar 2023 12:14:48 +0000 (12:14 +0000)]
Refactor creation of KEX proposal.
This adds kex_proposal_populate_entries (and corresponding free) which
populates the KEX proposal array with dynamically allocated strings.
This replaces the previous mix of static and dynamic that has been the
source of previous leaks and bugs. Remove unused compat functions.
With & ok djm@.
tb [Mon, 6 Mar 2023 12:00:27 +0000 (12:00 +0000)]
Rework asn1_item_flags_i2d()
Flip the logic of NULL checks on out and *out to unindent, use calloc()
instead of malloc() and check on assign. Also drop the newly added len2
again, it isn't needed.
ok jsing
stsp [Mon, 6 Mar 2023 11:53:24 +0000 (11:53 +0000)]
Switch all iwx(4) devices to -77 firmware images.
New firmware versions address some security issues, as outlined here:
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00621.html
https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00699.html
Firmware has been available in fw_update for some time so systems which
track -current should already have the new -77 images.
Tested:
ax200: jmc, hrvoje, stsp
ax201: Mikhail, Sven Wolf, stsp
ax210: lraab, stsp
ax211: Mikhail, dv
stsp [Mon, 6 Mar 2023 11:42:11 +0000 (11:42 +0000)]
Make iwx(4) get the primary channel number from AP beacon info, rather
than assuming that it always matches our currently configured channel.
Should prevent problems on 40/80Mhz channels if there is a mismatch.
stsp [Mon, 6 Mar 2023 11:37:14 +0000 (11:37 +0000)]
fix previous: only ignore request to delete key while doing crypto in hardware
stsp [Mon, 6 Mar 2023 11:33:57 +0000 (11:33 +0000)]
Avoid trying to remove keys if the station is not active in iwx firmware.
Fixes a firmware panic I encountered while working on firmware upgrades.
stsp [Mon, 6 Mar 2023 11:30:46 +0000 (11:30 +0000)]
ignore iwx DATA_PATH group notification 0xf8
Undocumented and ignored by the Linux driver, too.
Apparently only used by the Windows driver.
Confirmed by Johannes Berg.
stsp [Mon, 6 Mar 2023 11:28:01 +0000 (11:28 +0000)]
always provide a subset of STA info in the MAC context command
We used to provide beacon-related information only once our station was
associated. New firmware wants to see this information earlier, when are
about to send an AUTH frame. Otherwise SYSASSERT 0x2000011A is raised.
Problem diagnosed with help from Johannes Berg, thanks!
stsp [Mon, 6 Mar 2023 11:21:24 +0000 (11:21 +0000)]
fix iwx session protection event duration
Firmware expects time in TU units.
Use 900 TU for the session protection timeout, like the linux driver does.
verified with Johannes Berg from Linux/Intel, thanks for the support!
stsp [Mon, 6 Mar 2023 11:18:37 +0000 (11:18 +0000)]
support the new iwx SCD_QUEUE_CONFIG command
Required for adding/removing Tx queues on new firmware versions.
Semantics have changed yet again. Good old iwm(4) required manual
removal of related Tx queues when a station is removed from firmware.
At some point iwx(4) firmware removed this requirement and demanded
that queue removal would be done implicitly by firmware instead.
And now the firmware engineers at Intel have again changed their
minds about this, and explicit queue removal is required again.
It is sad that we are being driven through such a marathon of changes
just in order to pick up some firmware security fixes...
stsp [Mon, 6 Mar 2023 11:08:56 +0000 (11:08 +0000)]
add support for the iwx BAID allocation config command
This command is required to set up Rx aggregation on new firmware.
stsp [Mon, 6 Mar 2023 11:03:29 +0000 (11:03 +0000)]
implement support for iwx PHY context cmd version 4
stsp [Mon, 6 Mar 2023 11:00:41 +0000 (11:00 +0000)]
support the new IWX_STA_MAC_DATA_API_S_VER_2 API
MAC context command fields which firmware has been ignoring since the iwm
hardware generation have been repurposed for information related to 11ax.
Just set these fields to zero. Firmware -71 and up will panic otherwise.
stsp [Mon, 6 Mar 2023 10:52:16 +0000 (10:52 +0000)]
add support for the iwx RLC config command
New firmware wants to be told about MIMO antenna configuration via
a separate command, rather than via the good old PHY context command.
stsp [Mon, 6 Mar 2023 10:48:05 +0000 (10:48 +0000)]
support iwx rate_n_flags API version 2 and delete fixed Tx rate support
As of this commit iwx will ignore 'ifconfig media' commands where the
user-specified Tx rate resolves to something other than 'autoselect'.
The existing support for forcing a Tx rate was already only partially
working in 11n and 11ac modes. I doubt anyone had a serious use case for
this. If you really need to force a specific Tx rate for data frames
sent by iwx then hack the driver instead of using 'ifconfig media'.
The firmware interface was designed for Tx rate selection in firmware.
Maintaining support for overriding the Tx rate with ifconfig in face of
complicated firmware interface changes such as this rate_n_flags change
is just not worth it. While trying to keep forced Tx rates working on top
of the new rate_n_flags format I accidentally broke the Tx rate used for
managment frames during regular operation, which caused much frustration.
stsp [Mon, 6 Mar 2023 10:31:58 +0000 (10:31 +0000)]
change current iwx rate_n_flag field names to indicate this is API version 1
also add some missing bits found in the Linux driver while here
stsp [Mon, 6 Mar 2023 10:28:04 +0000 (10:28 +0000)]
add support for iwx TLC config command v4
stsp [Mon, 6 Mar 2023 10:24:15 +0000 (10:24 +0000)]
add support for iwx firmware alive response version 6
stsp [Mon, 6 Mar 2023 10:16:16 +0000 (10:16 +0000)]
recognize more iwx ucode TLV sections which are present in newer fw images
job [Mon, 6 Mar 2023 09:14:29 +0000 (09:14 +0000)]
Fix comment
tb [Mon, 6 Mar 2023 08:37:24 +0000 (08:37 +0000)]
Fix some return checks in ecdh_cms_encrypt()
i2d functions return <= 0 on error, so check for that instead of == 0.
The issue with CMS_SharedInfo_encode() was found by Niels Dossche.
OpenSSL review overlooked that they had turned penclen into a size_t.
In principle the issue with i2d_X509_ALGOR() is purely cosmetic. Why do
a strange check when there is an idiomatic check? Then again this is CMS...
ok jsing
tb [Mon, 6 Mar 2023 08:31:34 +0000 (08:31 +0000)]
Fix incorrect RSA_public_decrypt() return check
RSA_public_decrypt() returns <= 0 on error. Assigning to a size_t and
checking for == 0 is not the right thing to do here. Neither is blindly
turning the check into <= 0...
Found by Niels Dossche
ok jsing
tb [Mon, 6 Mar 2023 08:08:31 +0000 (08:08 +0000)]
ASN.1 enc: check ASN1_item_ex_i2d() consistency
The i2d API design is: call a function first with a pointer to NULL, get
the length, allocate a buffer, call the function passing the buffer in.
Both calls should be checked since ther are still internal allocations.
At the heart of ASN.1 encoding, this idiom is used and the second call
is assumed to succeed after the length was determined. This is far from
guaranteed. Check that the second call returns the same length and error
otherwise.
ok jsing
jmc [Mon, 6 Mar 2023 06:56:49 +0000 (06:56 +0000)]
whack the *phy entries in SEE ALSO: it was becoming unwieldy, and they are
already listed in SYNOPSIS;
while here, rework the ifconfig sentence into something simpler, tweaked
by jsg to mention the "media" keyword;
ok jsg
deraadt [Mon, 6 Mar 2023 06:49:16 +0000 (06:49 +0000)]
sync
jsg [Mon, 6 Mar 2023 02:40:58 +0000 (02:40 +0000)]
drm/amd/display: Properly reuse completion structure
From Stylon Wang
118ad80d27d938868299ef184f7483b21f011f0b in linux-6.1.y/6.1.15
0cf8307adbc6beb5ff3b8a76afedc6e4e0b536a9 in mainline linux
jsg [Mon, 6 Mar 2023 02:38:01 +0000 (02:38 +0000)]
drm/amd/display: Fix race condition in DPIA AUX transfer
From Stylon Wang
075e2099c32cf4486b27266d2aecf61e95499ea4 in linux-6.1.y/6.1.15
ead08b95fa50f40618c72b93a849c4ae30c9cd50 in mainline linux
jsg [Mon, 6 Mar 2023 02:34:53 +0000 (02:34 +0000)]
drm/amd/display: Move DCN314 DOMAIN power control to DMCUB
From Nicholas Kazlauskas
4da108082a3290804ebbd42d70ce8535c00e4637 in linux-6.1.y/6.1.15
e383b12709e32d6494c948422070c2464b637e44 in mainline linux
tobhe [Sun, 5 Mar 2023 22:17:22 +0000 (22:17 +0000)]
Fix clean process shutdown by storing env globally like vmd and httpd do
instead of getting it from p_ps. The old approach does not work anymore
after the recent fork + exec update.
ok patrick@
ajacoutot [Sun, 5 Mar 2023 18:55:34 +0000 (18:55 +0000)]
Actually, LANG only set the default.
from guenther@
jsing [Sun, 5 Mar 2023 16:31:01 +0000 (16:31 +0000)]
Remove #ifndef OPENSSL_EC_NISTP_64_GCC_128.
This was presumably intended to be OPENSSL_NO_EC_NISTP_64_GCC_128, however
generic code has ended up inside the ifdef (and none of the NISTP code
or prototypes now remain).
kettenis [Sun, 5 Mar 2023 16:21:52 +0000 (16:21 +0000)]
arm64 needs -DBOOT_STTY as well.
ok miod@
jsing [Sun, 5 Mar 2023 16:11:36 +0000 (16:11 +0000)]
Remove ec_GFp_nistp.* prototypes.
This code has been deleted, however the prototypes managed to hang around.
jsing [Sun, 5 Mar 2023 16:06:14 +0000 (16:06 +0000)]
Remove duplicate function prototypes.
patrick [Sun, 5 Mar 2023 14:45:07 +0000 (14:45 +0000)]
Mask off IPL flags before storing the IPL for an interrupt.
ok kettenis@ jmatthew@
tb [Sun, 5 Mar 2023 13:12:53 +0000 (13:12 +0000)]
openssl: make all config structs static
These are per-app, so per-file. Most of them already are static, adjust
the rest of them.
tb [Sun, 5 Mar 2023 13:08:22 +0000 (13:08 +0000)]
openssl/cms: zap some trailing whitespace
jmc [Sun, 5 Mar 2023 12:56:41 +0000 (12:56 +0000)]
knock out double .Pp;
jmc [Sun, 5 Mar 2023 12:55:36 +0000 (12:55 +0000)]
oops, overridden has two d's; apologies ajacoutot for not spotting that.
espie [Sun, 5 Mar 2023 10:41:59 +0000 (10:41 +0000)]
adjust documentation to explain tags, which are still there just in case
ajacoutot [Sun, 5 Mar 2023 10:11:29 +0000 (10:11 +0000)]
Values for categories that are not set in the environment or that are overriden
by LANG or LC_ALL are displayed between double quotes.
wording by guenther@
ok kn@ jmc@
kettenis [Sun, 5 Mar 2023 09:57:32 +0000 (09:57 +0000)]
Add RK356x-specific initialization. Also initialize a few auto mode
related registers on all supported SoCs. Makes rktemp(4) work on
RK356x with U-Boot.
ok jmatthew@
dtucker [Sun, 5 Mar 2023 09:24:35 +0000 (09:24 +0000)]
Fix mem and FILE leaks in moduli screening.
If multiple -Ocheckpoint= options are passed, the earlier ones would
be overwritten and leaked. If we use an input file that wasn't stdin,
close that. From Coverity CIDs 291884 and 291894.
dtucker [Sun, 5 Mar 2023 08:18:58 +0000 (08:18 +0000)]
Plug mem leak in moduli checkpoint option parsing.
From Coverity CID 291894.
dtucker [Sun, 5 Mar 2023 05:34:09 +0000 (05:34 +0000)]
Remove unused compat.h includes. We've previously removed a lot
of the really old compatibility code, and with it went the need to
include compat.h in most of the files that have it.
jmatthew [Sun, 5 Mar 2023 04:30:08 +0000 (04:30 +0000)]
Mask off IPL flags before storing the IPL for an interrupt.
This fixes the IPL calculations in mpic_calc_mask() in the presence
of IPL_MPSAFE interrupts such as mvneta(4).
ok patrick@ kettenis@ dlg@
jsg [Sun, 5 Mar 2023 03:17:04 +0000 (03:17 +0000)]
Xt -> Xr
kettenis [Sat, 4 Mar 2023 23:32:40 +0000 (23:32 +0000)]
Add ytphy(4); pointed out by jmc@
krw [Sat, 4 Mar 2023 23:09:15 +0000 (23:09 +0000)]
Don't whine about invalid start/end values when
starting to edit an unused GPT partition.
kettenis [Sat, 4 Mar 2023 22:54:35 +0000 (22:54 +0000)]
Turns out the RK3566 has a different value in the GPIO_VER_ID register
than advertised in the RK3568. This value is present in the Linux
driver and implies the new register layout. So handle both values.
This makes GPIOs on the RK3566 actually work.
ok patrick@
kettenis [Sat, 4 Mar 2023 22:51:12 +0000 (22:51 +0000)]
On RK356x many devices need to be explicitly routed to use alternative pin
muxings. Implement support for this.
ok patrick@
kettenis [Sat, 4 Mar 2023 22:48:00 +0000 (22:48 +0000)]
Enable ytphy(4) here too.
kettenis [Sat, 4 Mar 2023 22:44:27 +0000 (22:44 +0000)]
ytphy(4)
kettenis [Sat, 4 Mar 2023 22:40:37 +0000 (22:40 +0000)]
Add ytphy(4) to files.mii (forgotten in the previous commit).
Fix year on my copyright.
kettenis [Sat, 4 Mar 2023 22:36:15 +0000 (22:36 +0000)]
enable ytphy(4)
kettenis [Sat, 4 Mar 2023 22:35:28 +0000 (22:35 +0000)]
Add ytphy(4), a driver for the MotorComm YT8511 PHY.
ok deraadt@
kettenis [Sat, 4 Mar 2023 22:34:37 +0000 (22:34 +0000)]
Use ISC licence.
ok deraadt@
tobhe [Sat, 4 Mar 2023 22:22:50 +0000 (22:22 +0000)]
Sync proc.c from vmd(8) to enabled fork + exec for all processes. This gives
each process a fresh and unique address space to further improve randomization
of ASLR and stack protector.
ok bluhm@ patrick@
tb [Sat, 4 Mar 2023 21:58:54 +0000 (21:58 +0000)]
openssl enc doesn't really support AEAD ciphers and XTS mode
Do not display such ciphers in the usage display and error out if
they are given. As pointed out by Pauli Dale, the current situation
is confusing.
Fixes GH issues #786 and #819
ok jsing
tb [Sat, 4 Mar 2023 21:42:49 +0000 (21:42 +0000)]
Simplify the consistency checks in old_dsa_priv_decode()
We have long had expensive checks for DSA domain parameters in
old_dsa_priv_decode(). These were implemented in a more complicated
way than necesary.
ok beck jsing
tb [Sat, 4 Mar 2023 21:39:34 +0000 (21:39 +0000)]
Enforce a lower bound of of EC group order so 80 bits for ECDSA
This makes sure that the elliptic curve is not completely stupid.
This is conservative enough: the smallest named groups that we support
have an order of 112 bits.
ok beck jsing
tb [Sat, 4 Mar 2023 21:37:37 +0000 (21:37 +0000)]
Cap the number of iterations in ECDSA signing
ECDSA is essentially the same thing as DSA, except that it is slightly
less stupid. Signing specifies an infinite loop, which is only possible
with arbitrary ECDSA domain parameters. Fortunately, most use of ECDSA
in the wild is based on well-known groups, so it is known a priori that
the loop is not infinite. Still, infinite loops are bad. A retry is
unlikely, 32 retries have a probability of ~2^-8000. So it's pretty
safe to error out.
ok beck jsing
tb [Sat, 4 Mar 2023 21:30:23 +0000 (21:30 +0000)]
Cap the number of iterations in DSA signing
The DSA standard specifies an infinite loop: if either r or s is zero
in the signature calculation, a new random number k shall be generated
and the whole thing is to be redone. The rationale is that, as the
standard puts it, "[i]t is extremely unlikely that r = 0 or s = 0 if
signatures are generated properly."
The problem is... There is no cheap way to know that the DSA domain
parameters we are handed are actually DSA domain parameters, so even
if all our calculations are carefully done to do all the checks needed,
we cannot know if we generate the signatures properly. For this we would
need to do two primality checks as well as various congruences and
divisibility properties. Doing this easily leads to DoS, so nobody does
it.
Unfortunately, it is relatively easy to generate parameters that pass
all sorts of sanity checks and will always compute s = 0 since g
is nilpotent. Thus, as unlikely as it is, if we are in the mathematical
model, in practice it is very possible to ensure that s = 0.
Read David Benjamin's glorious commit message for more information
https://boringssl-review.googlesource.com/c/boringssl/+/57228
Thanks to Guido Vranken for reporting this issue, also thanks to
Hanno Boeck who apparently found and reported similar problems earlier.
ok beck jsing
krw [Sat, 4 Mar 2023 21:22:51 +0000 (21:22 +0000)]
Use nitems() in the simple iterations over mbr->mbr_prt[].
No intentional functional change.
tb [Sat, 4 Mar 2023 21:08:14 +0000 (21:08 +0000)]
Small readability tweak in old_dsa_priv_decode()
Explicitly check against NULL and turn early return into goto err.
ok beck jsing
tb [Sat, 4 Mar 2023 21:06:17 +0000 (21:06 +0000)]
Call dsa_check_keys() before signing or verifying
We already had some checks on both sides, but they were less precise
and differed between the functions. The code here is messy enough, so
any simplification is helpful...
ok beck jsing
tb [Sat, 4 Mar 2023 21:02:21 +0000 (21:02 +0000)]
Add dsa_check_key() calls on DSA decoding
When decoding a public or a private key, use dsa_check_key() to ensure
consistency of the DSA parameters. We do not always have sufficient
information to do that, so this is not always possible.
This adds new checks and replaces incomplete existing ones. On decoding
the private key we will now only calculate the corresponding public key,
if the sizes are sensible. This avoids potentially expensive operations.
ok beck jsing
tb [Sat, 4 Mar 2023 20:54:52 +0000 (20:54 +0000)]
Provide dsa_check_key()
This is a cheap check that ensures basid parameter consistency per
FIPS 186-4: 1 < g < q, that q has the allowed bit sizes 160, 224, 256
and that p is neither too small nor too large. Unfortunately, enforcing
the three allowed sizes for p is not possible since the default dsa key
generation has not respected this limitation.
Instead of checking that p and q are prime, we only check that they
are odd. Check that public and private keys, if set, are in the proper
range. In particular, disallow zero values.
Various versions of these checks have been added to the dsa code
over time. This consolidates and extends them and in a subsequent
commit wewill replace the incomplete checks. BoringSSL has a similar
function of the same name, thanks to David Benjamin for pointing it
out.
ok beck jsing
tb [Sat, 4 Mar 2023 20:47:04 +0000 (20:47 +0000)]
Provide DSA_R_INVALID_PARAMETERS error code
This has been missing for a while already and will be used in a
few upcoming commits.
ok beck jsing
deraadt [Sat, 4 Mar 2023 19:56:48 +0000 (19:56 +0000)]
sync
jsing [Sat, 4 Mar 2023 14:53:23 +0000 (14:53 +0000)]
Mop up ECP_NISTZ256_ASM and OPENSSL_NO_EC_NISTP_64_GCC_128 leftovers.
This is `unifdef -m -DOPENSSL_NO_EC_NISTP_64_GCC_128 -UECP_NISTZ256_ASM`
and some manual tidy up.
deraadt [Sat, 4 Mar 2023 14:49:36 +0000 (14:49 +0000)]
move to 7.3-beta
krw [Sat, 4 Mar 2023 14:47:18 +0000 (14:47 +0000)]
Toss in some const's to ensure that static data pointed to
by function return values is not fiddled with.
No intentional functional change.