]>
git.ipfire.org Git - thirdparty/openssl.git/log
Pauli [Mon, 4 Aug 2025 01:05:57 +0000 (11:05 +1000)]
params: produce an error if a parameter is repeated
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/28163)
Pauli [Mon, 4 Aug 2025 01:02:01 +0000 (11:02 +1000)]
error: add new repeated parameter error
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/28163)
Pauli [Mon, 4 Aug 2025 00:51:26 +0000 (10:51 +1000)]
params: add conditional params to the generation script
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/28163)
zhoulu [Sun, 3 Aug 2025 13:46:13 +0000 (21:46 +0800)]
[RISC-V] Further optimization for AES-128-CBC decryption performance
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28048)
Viktor Dukhovni [Tue, 5 Aug 2025 13:10:20 +0000 (23:10 +1000)]
Coverity nits
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28176)
Neil Horman [Mon, 4 Aug 2025 22:29:52 +0000 (18:29 -0400)]
Ensure that the largest_pn values are migrated to our channel qrx
Recently, our overnight QUIC interop runs began failing in CI when an
openssl server was tested against an ngtcp2 client:
https://github.com/openssl/openssl/actions/runs/
16739736813
The underlying cause bears some explination for historical purposes
The problem began happening with a recent update to ngtcp2 in which
ngtcp2 updated its wolfssl tls backend to support ML-KEM, which caused
ngtcp to emit a client hello message that offered several groups
(including X25519MLKEM768) but only provided a keyshare for x25519.
This in turn triggered the openssl server to respond with a hello retry
request (HRR), requesting an ML-KEM keyshare instead, which ngtcp2
obliged. However all subsequent frames from the client were discarded by
the server, due to failing packet body decryption.
The problem was tracked down to a mismatch in the initial vectors used
by the client and server, leading to an AEAD tag mismatch.
Packet protection keys generate their IV's in QUIC by xoring the packet
number of the received frame with the base IV as derived via HKDF in the
tls layer.
The underlying problem was that openssl hit a very odd corner case with
how we compute the packet number of the received frame. To save space,
QUIC encodes packet numbers using a variable length integer, and only
sends the changed bits in the packet number. This requires that the
receiver (openssl) store the largest received pn of the connection,
which we nominally do.
However, in default_port_packet_handler (where QUIC frames are processed
prior to having an established channel allocated) we use a temporary qrx
to validate the packet protection of those frames. This temporary qrx
may be incorporated into the channel in some cases, but is not in the
case of a valid frame that generates an HRR at the TLS layer. In this
case, the channel allocates its own qrx independently. When this
occurs, the largest_pn value of the temporary qrx is lost, and
subsequent frames are unable to be received, as the newly allocated qrx
belives that the larges_pn for a given pn_space is 0, rather than the
value received in the initial frame (which was a complete 32 bit value,
rather than just the changed lower 8 bits). As a result the IV
construction produced the wrong value, and the decrypt failed on those
subsequent frames.
Up to this point, that wasn't even a problem, as most quic
implementations start their packet numbering at 0, so the next packet
could still have its packet number computed properly. The combination
of ngtcp using large random values for initial packet numbers, along
with the HRR triggering a separate qrx creation on a channel led to the
discovery of this discrepancy.
The fix seems pretty straightforward. When we detect in
port_default_packet_handler, that we have a separate qrx in the new
channel, we migrate processed packets from the temporary qrx to the
canonical channel qrx. In addition to doing that, we also need to
migrate the largest_pn array from the temporary qrx to the channel_qrx
so that subsequent frame reception is guaranteed to compute the received
frame packet number properly, and as such, compute the proper IV for
packet protection decryption.
Fixes openssl/project#1296
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28115)
Norbert Pocs [Mon, 28 Jul 2025 13:45:09 +0000 (15:45 +0200)]
quic_channel: Handle HRR and the second transport params extension
When HRR happens a second client hello is sent and it consist of a
transport params extension. This must be processed and not cause
failure.
Fixes: https://github.com/openssl/project/issues/1296
Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28115)
Norbert Pocs [Mon, 28 Jul 2025 08:32:53 +0000 (10:32 +0200)]
quicapitest: Check if we can handle HRR
Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28115)
Eugene Syromiatnikov [Tue, 8 Jul 2025 13:52:04 +0000 (15:52 +0200)]
util/analyze-contention-log.sh: print status output to stderr
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27983)
Eugene Syromiatnikov [Mon, 7 Jul 2025 14:03:09 +0000 (16:03 +0200)]
crypto/threads_pthread: rewrite contention data storage to per-tid
This eliminates locking during writing out of the lock contation report
data, which claws back some of the lost performance degradation imposed
by the lock contention reporting instrumentation:
[Without -DREPORT_RWLOCK_CONTENTION]
~/dev/perftools/source$ ./evp_fetch 100
Average time per fetch call: 4.502162us
~/dev/perftools/source$ ./evp_fetch 200
Average time per fetch call: 8.224920us
[Before]
~/dev/perftools/source$ ./evp_fetch 100
Average time per fetch call: 13.079795us
~/dev/perftools/source$ ./evp_fetch 200
Average time per fetch call: 23.420235us
[After]
~/dev/perftools/source$ ./evp_fetch 100
Average time per fetch call: 6.557428us
~/dev/perftools/source$ ./evp_fetch 200
Average time per fetch call: 13.415148us
The downside is that it produces a file for each TID, which floods
the working directory with debug files, but that mich be an acceptable
trade-off.
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27983)
Eugene Syromiatnikov [Mon, 7 Jul 2025 14:13:24 +0000 (16:13 +0200)]
util/analyze-contention-log: call the bash interpreter with -eu flags
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27983)
Eugene Syromiatnikov [Mon, 7 Jul 2025 13:42:07 +0000 (15:42 +0200)]
crypto/threads_lock_contention: factor out lock contention recording
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27983)
Eugene Syromiatnikov [Mon, 7 Jul 2025 13:28:11 +0000 (15:28 +0200)]
crypto/threads_lock_contention: factor out obtaining the stack traces data pointer
It also drops the premature initalisation of it in
ossl_init_rwlock_contention_data(), deferring it to on-demand one
in ossl_rwlock_{rd,wr}lock(), which seems to shave some of the incurred
overhead:
[Before]
~/dev/perftools/source$ ./evp_fetch 100
Average time per fetch call: 16.944004us
~/dev/perftools/source$ ./evp_fetch 200
Average time per fetch call: 26.325767us
[After]
~/dev/perftools/source$ ./evp_fetch 100
Average time per fetch call: 13.079795us
~/dev/perftools/source$ ./evp_fetch 200
Average time per fetch call: 23.420235us
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27983)
Eugene Syromiatnikov [Mon, 7 Jul 2025 13:15:44 +0000 (15:15 +0200)]
crypto/threads_lock_contention: condition file suffix on FIPS_MODULE and not fopen() call
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27983)
Eugene Syromiatnikov [Mon, 7 Jul 2025 13:14:31 +0000 (15:14 +0200)]
crypto/threads_lock_contention: typo: s/stack_info/stack_traces/ in ossl_init_rwlock_contention_data
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27983)
Eugene Syromiatnikov [Mon, 7 Jul 2025 13:00:17 +0000 (15:00 +0200)]
crypto/threads_lock_contention: Remove duplicating code
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27983)
Eugene Syromiatnikov [Mon, 7 Jul 2025 12:51:35 +0000 (14:51 +0200)]
Factor out the lock contention reporting facility implementation
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27983)
Nikolas Gauder [Mon, 4 Aug 2025 20:23:33 +0000 (22:23 +0200)]
.github/workflows/run_quic_interop.yml: remove superfluous docker-compose.yml patching
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28179)
Nikola Pajkovsky [Wed, 6 Aug 2025 09:58:57 +0000 (11:58 +0200)]
bn: save space in bn_mont_ctx_st by reordering elements
# pahole -C bn_mont_ctx_st ./crypto/bn/libcrypto-shlib-bn_mont.o
struct bn_mont_ctx_st {
int ri; /* 0 4 */
/* XXX 4 bytes hole, try to pack */
BIGNUM RR; /* 8 24 */
BIGNUM N; /* 32 24 */
BIGNUM Ni; /* 56 24 */
/* --- cacheline 1 boundary (64 bytes) was 16 bytes ago --- */
long unsigned int n0[2]; /* 80 16 */
int flags; /* 96 4 */
/* size: 104, cachelines: 2, members: 6 */
/* sum members: 96, holes: 1, sum holes: 4 */
/* padding: 4 */
/* last cacheline: 40 bytes */
};
# pahole -C bn_mont_ctx_st ./crypto/bn/libcrypto-shlib-bn_mont.o
struct bn_mont_ctx_st {
BIGNUM RR; /* 0 24 */
BIGNUM N; /* 24 24 */
BIGNUM Ni; /* 48 24 */
/* --- cacheline 1 boundary (64 bytes) was 8 bytes ago --- */
long unsigned int n0[2]; /* 72 16 */
int ri; /* 88 4 */
int flags; /* 92 4 */
/* size: 96, cachelines: 2, members: 6 */
/* last cacheline: 32 bytes */
};
8 bytes were saved.
Signed-off-by: Nikola Pajkovsky <nikolap@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28185)
Neil Horman [Wed, 23 Jul 2025 15:52:03 +0000 (11:52 -0400)]
Add mdebug config for coveralls on master branch
enable mdebug on coveralls for the master branch so that, when testing
we run our memory failure tests and pick up the extra test coverage
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28078)
Neil Horman [Wed, 23 Jul 2025 14:56:38 +0000 (10:56 -0400)]
Add a daily memory allocation failure test
nightly, run the memory allocation failure test.
We build with asan enabled to log memory leaks and other issues
Note the test is designed to pass even if the test fails, as currently
(perhaps not suprisingly), several error paths result in asan errors.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28078)
Neil Horman [Wed, 23 Jul 2025 13:09:05 +0000 (09:09 -0400)]
add a handshake memory failure test
We would like to be able to test our memory failure paths, but forcing
malloc to return NULL at certain points in time.
This test does that, by running a sepcific workload n+1 time. In this
case the workload is a simple ssl handshake.
We run 1 test which sets our malloc wrapper into record mode, in which
it just acts as a pass through to the system malloc call and records the
number of times it was called.
Then we run a second test, which does the same handshake N times, where
N is the number of times malloc was called in the previous test. For
each iteration in i=0..N we fail the ith malloc operation.
We don't check for functional failures in the second test (as we expect
failures), we just want to make sure that (a) we don't crash and (b)
asan doesn't report any errors.
Currently, we get _lots_ of asan failures, but we can use this test to
log issues for that and fix those up.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28078)
Nikolas Gauder [Mon, 4 Aug 2025 21:47:23 +0000 (23:47 +0200)]
ssl/quic/quic_channel.c: Fix endianness of supported versions from received version negotiation packets
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28169)
Nikolas Gauder [Mon, 4 Aug 2025 19:12:35 +0000 (21:12 +0200)]
ssl/quic/quic_port.c: Fix endianness of supported versions in sent version negotiation packets
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28169)
Chiller Dragon [Mon, 4 Aug 2025 12:55:10 +0000 (14:55 +0200)]
Improve english in endian comment
CLA: trivial
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28167)
Eugene Syromiatnikov [Sun, 3 Aug 2025 22:55:59 +0000 (00:55 +0200)]
Eliminate indentation tabs from *.c and *.h files
While the majority of the sites assumed 8-wide tabs, at least engines/e_capi.c
assumed 4-wide; in any case it is better to just follow the code style guide
and eliminate them altogether. Some addition changes (namely, curly
brackets in apps/crl.c and apps/req.c, and additional whitespace changes
in apps/s_client.c and test/provider_pkey_test.c) are made to placate
check-format-commit.sh.
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28162)
Eugene Syromiatnikov [Mon, 21 Jul 2025 11:22:16 +0000 (13:22 +0200)]
util/perl/OpenSSL/Test.pm: consistently use 4 spaces for indentation
While the majority of the file uses 4 spaces for indentation, some parts
contain 8-wide tabs. Use the spaces for indentation consistently
throughout the file.
Signed-off-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28162)
Pauli [Mon, 28 Jul 2025 07:15:25 +0000 (17:15 +1000)]
shake: update to use generated param decoders
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28151)
Pauli [Mon, 28 Jul 2025 07:15:14 +0000 (17:15 +1000)]
blake2: update to use generated param decoders
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28151)
Pauli [Mon, 28 Jul 2025 07:04:32 +0000 (17:04 +1000)]
blake2: rename files for generated param decoding
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28151)
Pauli [Mon, 28 Jul 2025 07:01:23 +0000 (17:01 +1000)]
sha3: rename files for generated param decoding
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28151)
Pauli [Tue, 22 Jul 2025 04:38:55 +0000 (14:38 +1000)]
argon2: avoid searching for "size" parameter
Remember where the size was in the parameter array instead.
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28146)
Pauli [Mon, 21 Jul 2025 23:48:48 +0000 (09:48 +1000)]
skey: update build infrastructure for generate param name parsing
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28144)
Pauli [Mon, 21 Jul 2025 23:48:10 +0000 (09:48 +1000)]
skey: convert generic SKEY to use generated param parser
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28144)
Nikola Pajkovsky [Wed, 30 Jul 2025 07:21:29 +0000 (09:21 +0200)]
Revert "Pairwise check for DH keys import as part of FIPS"
Not needed anymore. It's handled in the 'ec (fips): add PCT for key import'
This reverts commit
e08b83cbb3b853ae9dc364c32d927405172918ac .
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28122)
Pauli [Wed, 30 Jul 2025 06:50:03 +0000 (16:50 +1000)]
dh: add extra argument to ossl_dh_check_pairwise
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28122)
Pauli [Thu, 30 Jan 2025 23:38:28 +0000 (10:38 +1100)]
dh: add FIPS 140-3 PCT on key import.
This is mandated by FIPS 140-3 IG 10.3.A additional comment 1
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28122)
Pauli [Thu, 30 Jan 2025 23:16:17 +0000 (10:16 +1100)]
fips: add DH PCT name
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28122)
Pauli [Wed, 29 Jan 2025 01:41:59 +0000 (12:41 +1100)]
changes: add note about PCT on key import to the FIPS provider
This is mandated by FIPS 140-3 IG 10.3.A additional comment 1.
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28122)
Pauli [Wed, 29 Jan 2025 00:31:33 +0000 (11:31 +1100)]
rsa (fips): add PCT for key import
FIPS 140-3 IG 10.3.A additional comment 1 mandates a PCT on key import.
Fixes #26572
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28122)
Pauli [Wed, 29 Jan 2025 00:16:54 +0000 (11:16 +1100)]
ec (fips): add PCT for key import
FIPS 140-3 IG 10.3.A additional comment 1 mandates a PCT on key import.
Fixes #26572
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28122)
Pauli [Wed, 29 Jan 2025 00:16:44 +0000 (11:16 +1100)]
ecx (fips): add PCT for key import
FIPS 140-3 IG 10.3.A additional comment 1 mandates a PCT on key import.
Fixes #26572
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28122)
Pauli [Wed, 29 Jan 2025 00:44:02 +0000 (11:44 +1100)]
rsa: expose pairwise consistency test API
This is only used by the FIPS provider as part of importing keys. At least
at the moment.
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28122)
Saurabh Kushwah [Wed, 30 Jul 2025 12:36:57 +0000 (18:06 +0530)]
apps/asn1parse.c: correct help text order for -genstr option
CLA: trivial
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28123)
Pauli [Thu, 17 Jul 2025 03:24:21 +0000 (13:24 +1000)]
pbkdf2: remove second compiled file
The main source file now depends on FIPS_MODULE so there is no need to have
a second file with a fips flag defined.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 16 Jul 2025 08:09:54 +0000 (18:09 +1000)]
macsig: call updated ossl_prov_set_macctx function
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Thu, 17 Jul 2025 01:13:56 +0000 (11:13 +1000)]
params: emit an error if a parameter array overflows
This is in addition to returning an error code.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Fri, 11 Jul 2025 06:03:12 +0000 (16:03 +1000)]
params: revert error checking when params are duplicated
This is to avoid a change of behaviour even though it is a result of user
error. When params are duplicated, all but the first are ignored and no
error is returned.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Thu, 10 Jul 2025 01:47:16 +0000 (11:47 +1000)]
hkdf: changes to incorporate the fixed digest HkDF flavours
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Thu, 10 Jul 2025 00:41:51 +0000 (10:41 +1000)]
kdf: use generated param name alias handling
secret or key is the common one but ukm and partyu-info are also aliases for
the X9.42 KDF.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Thu, 10 Jul 2025 00:40:55 +0000 (10:40 +1000)]
params: allow param name aliases
We allowed multiple names for the same parameter in a number of places.
This is best dealt with in the generated code.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Tue, 8 Jul 2025 01:36:51 +0000 (11:36 +1000)]
tls1-prf: process multiple seed parameters with a single realloc call
The old code did a realloc for each such parameter which is inefficient
because they are most often passed in in pentuples.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Mon, 7 Jul 2025 23:32:36 +0000 (09:32 +1000)]
paramnames: factor out common code after successful match
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Thu, 3 Jul 2025 03:07:48 +0000 (13:07 +1000)]
kdfs: make the 'engine' parameter hidden
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Thu, 3 Jul 2025 03:08:27 +0000 (13:08 +1000)]
params: add support for 'hidden' parameters
These are in the name decoder and structure but do not appear in the parameter
listing.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 07:19:43 +0000 (17:19 +1000)]
hmacdrbg_kdf: convert to generated OSSL_PARAM parser
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 07:08:00 +0000 (17:08 +1000)]
hmacdrbg_kdf: update build infrastructure
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 07:06:25 +0000 (17:06 +1000)]
hmacdrbg_kdf: rename C file for conversion to generated param name decoding
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 07:22:51 +0000 (17:22 +1000)]
evp_kdf_test: skip "engine" parameters when checking for updatability.
The code already skips "properties" and "engines" behaves the same.
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 07:05:17 +0000 (17:05 +1000)]
argon2: convert to generated OSSL_PARAM parser
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:55:37 +0000 (16:55 +1000)]
argon2: update build infrastructure
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:54:20 +0000 (16:54 +1000)]
argon2: rename C file for conversion to generated param name decoding
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:53:40 +0000 (16:53 +1000)]
krb5kdf: convert to generated OSSL_PARAM parser
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:52:34 +0000 (16:52 +1000)]
krb5kdf: update build infrastructure
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:45:50 +0000 (16:45 +1000)]
krb5kdf: rename C file for conversion to generated param name decoding
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:45:10 +0000 (16:45 +1000)]
pbkdf1: convert to generated OSSL_PARAM parser
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:39:52 +0000 (16:39 +1000)]
pbkdf1: update build infrastructure
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:39:34 +0000 (16:39 +1000)]
pbkdf1: rename C file for conversion to generated param name decoding
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:37:26 +0000 (16:37 +1000)]
pkcs12kdf: convert to generated OSSL_PARAM parser
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:35:24 +0000 (16:35 +1000)]
pkcs12kdf: update build infrastructure
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:34:58 +0000 (16:34 +1000)]
pkcs12kdf: rename C file for conversion to generated param name decoding
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:28:39 +0000 (16:28 +1000)]
scrypt: convert to generated OSSL_PARAM parser
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:28:24 +0000 (16:28 +1000)]
scrypt: update build infrastructure
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:28:09 +0000 (16:28 +1000)]
scrypt: rename C file for conversion to generated param name decodering
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 06:16:15 +0000 (16:16 +1000)]
pbkdf2: convert to generated OSSL_PARAM parser
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 05:54:13 +0000 (15:54 +1000)]
pbkdf2: build infrastructure changes
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 05:54:02 +0000 (15:54 +1000)]
pbkdf2: rename for autogeneration of param name parsing
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 00:31:31 +0000 (10:31 +1000)]
x9.42kdf: convert to generated OSSL_PARAM parser
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 00:10:31 +0000 (10:10 +1000)]
build infrastructure changes for X9.42 KDF
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 00:09:30 +0000 (10:09 +1000)]
rename X9.42 KDF for autogeneration of param name parsing
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 2 Jul 2025 00:07:19 +0000 (10:07 +1000)]
pvkkdf: convert to generated OSSL_PARAM parser
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Tue, 1 Jul 2025 23:59:42 +0000 (09:59 +1000)]
sshkdf: convert to generated OSSL_PARAM parser
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Tue, 1 Jul 2025 23:48:02 +0000 (09:48 +1000)]
build infrastructure for PVK KDF
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Tue, 1 Jul 2025 23:42:20 +0000 (09:42 +1000)]
build infrastructure changes for SSH KDF
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Tue, 1 Jul 2025 23:13:26 +0000 (09:13 +1000)]
rename sshkdf for autogeneration of param name parsing
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Tue, 1 Jul 2025 01:42:34 +0000 (11:42 +1000)]
tls1prf: update to use generated param decoders
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Tue, 1 Jul 2025 00:49:50 +0000 (10:49 +1000)]
kdf: remove max argument to the param concatenation helper
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Tue, 1 Jul 2025 00:01:00 +0000 (10:01 +1000)]
tls1_prf: update build infrastructure for generated param parsers
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Mon, 30 Jun 2025 23:58:41 +0000 (09:58 +1000)]
rename tls1 PRF C file
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Mon, 30 Jun 2025 03:10:48 +0000 (13:10 +1000)]
kbkdf: conversion to use generated param parsers
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Mon, 30 Jun 2025 03:10:40 +0000 (13:10 +1000)]
sskdf: conversion to use generated param parsers
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Mon, 30 Jun 2025 03:09:53 +0000 (13:09 +1000)]
util: add helper functions that don't locate the parameters
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Mon, 30 Jun 2025 03:09:29 +0000 (13:09 +1000)]
params: add helper functions that don't locate the parameters
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Mon, 30 Jun 2025 03:08:23 +0000 (13:08 +1000)]
fips: update FIPS indicator functions so non-locating flavours are available
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 25 Jun 2025 22:12:03 +0000 (08:12 +1000)]
hkdf: conversion to use generated param parsers
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Fri, 27 Jun 2025 01:55:28 +0000 (11:55 +1000)]
kdf: rename SSKDF and KBKDF for param parser generation
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 25 Jun 2025 00:56:43 +0000 (10:56 +1000)]
hkdf: rename file for Perl processing
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Wed, 25 Jun 2025 22:11:47 +0000 (08:11 +1000)]
params: update param parser generator script to support duplicated parameters
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Fri, 27 Jun 2025 01:55:55 +0000 (11:55 +1000)]
build infrastructure changes for KBKDF and SSKDF to use generated param parsers
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)
Pauli [Tue, 24 Jun 2025 04:05:42 +0000 (14:05 +1000)]
Update build infrastructure for generated hkdf.c file
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27923)