]> git.ipfire.org Git - thirdparty/openssl.git/log
thirdparty/openssl.git
15 months agoossl_provider_new(): Fix memory leak on error
Tomas Mraz [Thu, 11 Apr 2024 07:27:47 +0000 (09:27 +0200)] 
ossl_provider_new(): Fix memory leak on error

Fixes #24095

Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24100)

(cherry picked from commit 875db35ac63beb0e5a3d520743fa55ad2e5ccd1d)

15 months agomake_addressPrefix(): Fix a memory leak in error case
Tomas Mraz [Thu, 11 Apr 2024 07:40:18 +0000 (09:40 +0200)] 
make_addressPrefix(): Fix a memory leak in error case

Fixes #24098

Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Richard Levitte <levitte@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24102)

(cherry picked from commit 682ed1b86ebe97036ab37897d528343d0e4def69)

15 months agoFix duplicate mutex allocation in threads_win.c
Neil Horman [Wed, 10 Apr 2024 12:28:43 +0000 (08:28 -0400)] 
Fix duplicate mutex allocation in threads_win.c

Creating an rcu lock does a double allocation of the underlying mutex.
Not sure how asan didn't catch this, but we clearly have a duplicate
line here

Fixes #24085

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24086)

(cherry picked from commit 8e5918fb8eb90289a0c89f6a4c6d623ecf49cf43)

15 months agoVMS: Move defining _XOPEN_SOURCE and _XOPEN_SOURCE_EXTENDED to config target
Richard Levitte [Wed, 10 Apr 2024 08:18:46 +0000 (10:18 +0200)] 
VMS: Move defining _XOPEN_SOURCE and  _XOPEN_SOURCE_EXTENDED to config target

For all other platforms that need these macros defined, that's how it's
done, so we have VMS follow suit.  That avoids a crash between in source
definitions and command line definitions on some other platforms.

Fixes #24075

Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24083)

15 months agoAdd locking to atomic operations in rw/rcu tests
Neil Horman [Fri, 29 Mar 2024 15:39:12 +0000 (11:39 -0400)] 
Add locking to atomic operations in rw/rcu tests

I neglected to add locks to the calls to CRYPTO_atomic_add in these
test, which on newer compilers is fine, as atomic operations are
defined.  However on older compilers the __ATOMIC_ACQ_REL definition is
missing causing these function to be implemented using an rwlock, which
when NULL causes the locks to fail.

Fix this my creating the lock and using them appropriately

Fixes #24000

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/24001)

(cherry picked from commit 5f8b812931e5da24df08913c05ff8e4f4494f014)

15 months agocrypto/provider_core.c: Allocate activatecnt_lock
Oleg Bulatov [Tue, 9 Apr 2024 22:17:35 +0000 (00:17 +0200)] 
crypto/provider_core.c: Allocate activatecnt_lock

CRYPTO_atomic_add has a lock as a parameter, which is often ignored, but in
some cases (for example, when BROKEN_CLANG_ATOMICS is defined) it is required.

There is no easy way to determine if the lock is needed or not. The current
logic looks like this:

    if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) && !defined(OPENSSL_SYS_WINDOWS)
      if defined(__GNUC__) && defined(__ATOMIC_ACQ_REL) && !defined(BROKEN_CLANG_ATOMICS)
        - It works without the lock, but in general the need for the
          lock depends on __atomic_is_lock_free results
      elif defined(__sun) && (defined(__SunOS_5_10) || defined(__SunOS_5_11))
        - The lock is not needed (unless ret is NULL, which should never
          happen?)
      else
        - The lock is required
      endif
    else
      - The lock is not needed
    endif

Adding such conditions outside of crypto.h is error-prone, so it is better to
always allocate the lock, otherwise CRYPTO_atomic_add may silently fail.

Fixes #23376.

CLA: trivial
Fixes: fc570b2605 ("Avoid taking a write lock in ossl_provider_doall_activated()")
Signed-off-by: Oleg Bulatov <oleg@bulatov.me>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24081)

(cherry picked from commit 2fd6c12e85ec7558cbdee08033f822c42ee0f5d4)

15 months agoChange approach to SSL_pending API
Hugo Landau [Fri, 29 Mar 2024 14:51:35 +0000 (14:51 +0000)] 
Change approach to SSL_pending API

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24040)

15 months agoQUIC APL: Fix default stream creation on server side
Hugo Landau [Thu, 28 Mar 2024 09:15:21 +0000 (09:15 +0000)] 
QUIC APL: Fix default stream creation on server side

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24040)

15 months agoQUIC APL: Revise SSL_pending and SSL_has_pending handling for s_client compat
Hugo Landau [Thu, 28 Mar 2024 09:00:13 +0000 (09:00 +0000)] 
QUIC APL: Revise SSL_pending and SSL_has_pending handling for s_client compat

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24040)

15 months agoQUIC QSM: Add function to determine if data is waiting
Hugo Landau [Thu, 28 Mar 2024 08:58:50 +0000 (08:58 +0000)] 
QUIC QSM: Add function to determine if data is waiting

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24040)

16 months agoFix typos found by codespell in openssl-3.3 doc
Dimitri Papadopoulos [Sun, 31 Mar 2024 08:34:08 +0000 (10:34 +0200)] 
Fix typos found by codespell in openssl-3.3 doc

Reviewed-by: Todd Short <todd.short@me.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24014)

16 months agoDocument that private and pairwise checks are not bounded by key size
Tomas Mraz [Fri, 5 Apr 2024 14:31:05 +0000 (16:31 +0200)] 
Document that private and pairwise checks are not bounded by key size

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/24049)

(cherry picked from commit 27005cecc75ec7a22a673d57fc35a11dea30ac0a)

16 months agofuzz/decoder.c: Limit the key sizes on which checks are run
Tomas Mraz [Fri, 5 Apr 2024 14:29:53 +0000 (16:29 +0200)] 
fuzz/decoder.c: Limit the key sizes on which checks are run

In particular the DH safe prime check will be limited to 8192 bits
and the private and pairwise checks are limited to 16384 bits on
any key types.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/24049)

(cherry picked from commit 9fc61ba0a74dfd910c4e96e711291555ac64b2b4)

16 months agoFix socket descriptor checks on Windows
olszomal [Thu, 4 Apr 2024 09:34:33 +0000 (11:34 +0200)] 
Fix socket descriptor checks on Windows

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24035)

(cherry picked from commit c89baf871030c811ba316ccbdcea26c294f605ae)

16 months agoman EVP_PKEY_CTX_set_params: document params is a list
Hubert Kario [Wed, 27 Mar 2024 16:44:42 +0000 (17:44 +0100)] 
man EVP_PKEY_CTX_set_params: document params is a list

Signed-off-by: Hubert Kario <hkario@redhat.com>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23986)

(cherry picked from commit 9b87c5a3ffa1ca233be96dd0bce812c04bad53fe)

16 months agoaarch64: fix BTI in bsaes assembly code
Tom Cosgrove [Tue, 26 Mar 2024 13:18:00 +0000 (13:18 +0000)] 
aarch64: fix BTI in bsaes assembly code

Change-Id: I63f0fb2af5eb9cea515dec96485325f8efd50511

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
(Merged from https://github.com/openssl/openssl/pull/23982)

(cherry picked from commit 88c74fe05bb4ea21aaba648a5cabd6665e40e3a5)

16 months agoEnsure proper memory barriers around ossl_rcu_deref/ossl_rcu_assign_ptr
Neil Horman [Tue, 26 Mar 2024 13:59:14 +0000 (09:59 -0400)] 
Ensure proper memory barriers around ossl_rcu_deref/ossl_rcu_assign_ptr

Since the addition of macos14 M1 runners in our CI jobs we've been
seeing periodic random failures in the test_threads CI job.
Specifically we've seen instances in which the shared pointer in the
test (which points to a monotonically incrementing uint64_t went
backwards.

From taking a look at the disassembled code in the failing case, we see
that __atomic_load_n when emitted in clang 15 looks like this
0000000100120488 <_ossl_rcu_uptr_deref>:
100120488f8bfc000     ldapr   x0, [x0]
10012048cd65f03c0     ret

Notably, when compiling with gcc on the same system we get this output
instead:
0000000100120488 <_ossl_rcu_uptr_deref>:
100120488f8bfc000     ldar   x0, [x0]
10012048cd65f03c0     ret

Checking the arm docs for the difference between ldar and ldapr:
https://developer.arm.com/documentation/ddi0602/2023-09/Base-Instructions/LDAPR--Load-Acquire-RCpc-Register-
https://developer.arm.com/documentation/dui0802/b/A64-Data-Transfer-Instructions/LDAR

It seems that the ldar instruction provides a global cpu fence, not
completing until all writes in a given cpus writeback queue have
completed

Conversely, the ldapr instruction attmpts to achieve performance
improvements by honoring the Local Ordering register available in the
system coprocessor, only flushing writes in the same address region as
other cpus on the system.

I believe that on M1 virtualized cpus the ldapr is not properly ordering
writes, leading to an out of order read, despite the needed fencing.
I've opened an issue with apple on this here:
https://developer.apple.com/forums/thread/749530

I believe that it is not safe to issue an ldapr instruction unless the
programmer knows that the Local order registers are properly configured
for use on the system.

So to fix it I'm proposing with this patch that we, in the event that:
1) __APPLE__ is defined
AND
2) __clang__ is defined
AND
3) __aarch64__ is defined

during the build, that we override the ATOMIC_LOAD_N macro in the rcu
code such that it uses a custom function with inline assembly to emit
the ldar instruction rather than the ldapr instruction.  The above
conditions should get us to where this is only used on more recent MAC
cpus, and only in the case where the affected clang compiler emits the
offending instruction.

I've run this patch 10 times in our CI and failed to reproduce the
issue, whereas previously I could trigger it within 5 runs routinely.

Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23974)

(cherry picked from commit f5b5a35c84626823364b0c8535b968c106690a56)

16 months agoDowngrade also the download-artifact action
Tomas Mraz [Mon, 8 Apr 2024 15:29:51 +0000 (17:29 +0200)] 
Downgrade also the download-artifact action

It has to have the same version as upload-artifact.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/24065)

(cherry picked from commit 65fe3e846f7c34f68ce82c6e9501d7309d196e06)

16 months agoAdd docs noting requirements for SM2 signing
Neil Horman [Tue, 19 Mar 2024 08:52:57 +0000 (04:52 -0400)] 
Add docs noting requirements for SM2 signing

Reviewed-by: Paul Yang <kaishen.yy@antfin.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23887)

(cherry picked from commit 4feb4a2b2cb7c45c0392e03453a658f29bd70bd2)

16 months agoAdd check for public key presence on sm2 signing
Neil Horman [Mon, 18 Mar 2024 18:59:32 +0000 (14:59 -0400)] 
Add check for public key presence on sm2 signing

SM2 requires that the public EC_POINT be present in a key when signing.
If its not there we crash on a NULL pointer.  Add a check to ensure that
its present, and raise an error if its not

Reviewed-by: Paul Yang <kaishen.yy@antfin.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23887)

(cherry picked from commit d6a8adeccdb8188517c5a84d35b79ef826176472)

16 months agoAPPS: Add missing OPENSSL_free() and combine the error handler
Jiasheng Jiang [Sat, 16 Mar 2024 21:27:14 +0000 (21:27 +0000)] 
APPS: Add missing OPENSSL_free() and combine the error handler

Add the OPENSSL_free() in the error handler to release the "*md_value"
allocated by app_malloc(). To make the code clear and avoid possible
future errors, combine the error handler in the "err" tag.
Then, we only need to use "goto err" instead of releasing the memory
separately.

Since the EVP_MD_get_size() may return negative numbers when an error occurs,
create_query() may fail to catch the error since it only considers 0 as an
error code.

Therefore, unifying the error codes of create_digest() from non-positive
numbers to 0 is better, which also benefits future programming.

Fixes: c7235be ("RFC 3161 compliant time stamp request creation, response generation and response verification.")
Signed-off-by: Jiasheng Jiang <jiasheng@purdue.edu>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/23873)

(cherry picked from commit beb82177ddcd4b536544ceec92bb53f4d85d8e91)

16 months agoFix "Error finalizing cipher loop" when running openssl speed -evp -decrypt
Tom Cosgrove [Mon, 26 Feb 2024 17:14:48 +0000 (17:14 +0000)] 
Fix "Error finalizing cipher loop" when running openssl speed -evp -decrypt

When using CCM, openssl speed uses the loop function EVP_Update_loop_ccm() which
sets a (fake) tag when decrypting. When using -aead (which benchmarks a different
sequence than normal, to be comparable to TLS operation), the loop function
EVP_Update_loop_aead() is used, which also sets a tag when decrypting.

However, when using defaults, the loop function EVP_Update_loop() is used, which
does not set a tag on decryption, leading to "Error finalizing cipher loop".

To fix this, set a fake tag value if we're doing decryption on an AEAD cipher in
EVP_Update_loop(). We don't check the return value: this shouldn't really be able
to fail, and if it does, the following EVP_DecryptUpdate() is almost certain to
fail, so that can catch it.

The decryption is certain to fail (well, almost certain, but with a very low
probability of success), but this is no worse than at present. This minimal
change means that future benchmarking data should be comparable to previous
benchmarking data.

(This is benchmarking code: don't write real apps like this!)

Fixes #23657

Change-Id: Id581cf30503c1eb766464e315b1f33914040dcf7

Reviewed-by: Paul Yang <kaishen.yy@antfin.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23757)

(cherry picked from commit b3be6cc89e4dcfafe8f8be97e9519c26af2d19f5)

16 months agoFix EVP_PKEY_CTX_add1_hkdf_info() behavior
Todd Short [Fri, 2 Feb 2024 04:09:38 +0000 (23:09 -0500)] 
Fix EVP_PKEY_CTX_add1_hkdf_info() behavior

Fix #23448

`EVP_PKEY_CTX_add1_hkdf_info()` behaves like a `set1` function.

Fix the setting of the parameter in the params code.
Update the TLS_PRF code to also use the params code.
Add tests.

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23456)

(cherry picked from commit 6b566687b58fde08b28e3331377f050768fad89b)

16 months agoAdd demo for ECDH key exchange
slontis [Sat, 2 Dec 2023 23:09:46 +0000 (09:09 +1000)] 
Add demo for ECDH key exchange

Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22916)

(cherry picked from commit 56e4d112ae226d5fa0210cd1f0dd96e6857805fd)

16 months agoPrepare for 3.3.1 24073/head
Tomas Mraz [Tue, 9 Apr 2024 12:13:10 +0000 (14:13 +0200)] 
Prepare for 3.3.1

Reviewed-by: Richard Levitte <levitte@openssl.org>
Release: yes

16 months agoPrepare for release of 3.3.0 openssl-3.3.0
Tomas Mraz [Tue, 9 Apr 2024 12:12:22 +0000 (14:12 +0200)] 
Prepare for release of 3.3.0

Reviewed-by: Richard Levitte <levitte@openssl.org>
Release: yes

16 months agomake update
Tomas Mraz [Tue, 9 Apr 2024 12:12:14 +0000 (14:12 +0200)] 
make update

Reviewed-by: Richard Levitte <levitte@openssl.org>
Release: yes

16 months agoCopyright year updates
Tomas Mraz [Tue, 9 Apr 2024 12:09:20 +0000 (14:09 +0200)] 
Copyright year updates

Reviewed-by: Richard Levitte <levitte@openssl.org>
Release: yes

16 months agoAdd a test for session cache overflow
Matt Caswell [Fri, 15 Jul 2022 12:26:33 +0000 (13:26 +0100)] 
Add a test for session cache overflow

Test sessions behave as we expect even in the case that an overflow
occurs when adding a new session into the session cache.

Related to CVE-2024-2511

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24042)

(cherry picked from commit 4a3e8f08306c64366318e26162ae0a0eb7b1a006)

16 months agoHardening around not_resumable sessions
Matt Caswell [Fri, 15 Mar 2024 17:58:42 +0000 (17:58 +0000)] 
Hardening around not_resumable sessions

Make sure we can't inadvertently use a not_resumable session

Related to CVE-2024-2511

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24042)

(cherry picked from commit 21df7f04f6c4a560b4de56d10e1e58958c7e566d)

16 months agoAdd a CHANGES.md/NEWS.md entry for the unbounded memory growth bug
Matt Caswell [Tue, 5 Mar 2024 16:01:20 +0000 (16:01 +0000)] 
Add a CHANGES.md/NEWS.md entry for the unbounded memory growth bug

Related to CVE-2024-2511

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24042)

(cherry picked from commit 03c4b0eab6dcbb59e3f58baad634be8fc798c103)

16 months agoFix unconstrained session cache growth in TLSv1.3
Matt Caswell [Tue, 5 Mar 2024 15:43:53 +0000 (15:43 +0000)] 
Fix unconstrained session cache growth in TLSv1.3

In TLSv1.3 we create a new session object for each ticket that we send.
We do this by duplicating the original session. If SSL_OP_NO_TICKET is in
use then the new session will be added to the session cache. However, if
early data is not in use (and therefore anti-replay protection is being
used), then multiple threads could be resuming from the same session
simultaneously. If this happens and a problem occurs on one of the threads,
then the original session object could be marked as not_resumable. When we
duplicate the session object this not_resumable status gets copied into the
new session object. The new session object is then added to the session
cache even though it is not_resumable.

Subsequently, another bug means that the session_id_length is set to 0 for
sessions that are marked as not_resumable - even though that session is
still in the cache. Once this happens the session can never be removed from
the cache. When that object gets to be the session cache tail object the
cache never shrinks again and grows indefinitely.

CVE-2024-2511

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24042)

(cherry picked from commit 7984fa683e9dfac0cad50ef2a9d5a13330222044)

16 months agoExtend the multi_resume test for simultaneous resumptions
Matt Caswell [Tue, 5 Mar 2024 15:35:51 +0000 (15:35 +0000)] 
Extend the multi_resume test for simultaneous resumptions

Test what happens if the same session gets resumed multiple times at the
same time - and one of them gets marked as not_resumable.

Related to CVE-2024-2511

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24042)

(cherry picked from commit cfeaf33a26c53c526128df96db2d2ec105b43aec)

16 months agoAdd a test for session cache handling
Matt Caswell [Mon, 4 Mar 2024 13:45:23 +0000 (13:45 +0000)] 
Add a test for session cache handling

Repeatedly create sessions to be added to the cache and ensure we never
exceed the expected size.

Related to CVE-2024-2511

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24042)

(cherry picked from commit 0447cd690f86ce52ff760d55d6064ea0d08656bf)

16 months agoNonStop: Do not call sleep() with a 0 value
Randall S. Becker [Sat, 30 Mar 2024 22:28:02 +0000 (22:28 +0000)] 
NonStop: Do not call sleep() with a 0 value

This change ensures that sleep(0) is not invoked to cause unexpected
duplicate thread context switches when _REENTRANT is specified.

Fixes: #24009
Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24012)

16 months agoDiverse small VMS build fixups
Richard Levitte [Sat, 30 Mar 2024 11:52:50 +0000 (12:52 +0100)] 
Diverse small VMS build fixups

Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24008)

16 months agodowngrade upload-artifact action to v3
Dmitry Misharov [Wed, 3 Apr 2024 11:47:39 +0000 (13:47 +0200)] 
downgrade upload-artifact action to v3

GitHub Enterpise Server is not compatible with upload-artifact@v4+.
https://github.com/actions/upload-artifact/tree/v4

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24029)

(cherry picked from commit 089271601a1d085f33ef7b7d8c3b6879045be370)

16 months agoopenssl-crl(1): The -verify option is implied by -CA* options
Tomas Mraz [Tue, 2 Apr 2024 16:47:26 +0000 (18:47 +0200)] 
openssl-crl(1): The -verify option is implied by -CA* options

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Todd Short <todd.short@me.com>
(Merged from https://github.com/openssl/openssl/pull/24024)

(cherry picked from commit a16f2e7651b22ee992bb0c279e25164b519c1e80)

16 months agoDEFINE_STACK_OF.pod: Fix prototypes of sk_TYPE_free/zero()
Tomas Mraz [Tue, 2 Apr 2024 14:43:27 +0000 (16:43 +0200)] 
DEFINE_STACK_OF.pod: Fix prototypes of sk_TYPE_free/zero()

They take non-const STACK_OF(TYPE)* argument.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/24023)

(cherry picked from commit e898c367312c3ab6eb5eaac9b4be768f0d2e4b0e)

16 months agoAdd 'documentation policy' link to CONTRIBUTING guide.
slontis [Mon, 18 Mar 2024 00:46:12 +0000 (11:46 +1100)] 
Add 'documentation policy' link to CONTRIBUTING guide.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23875)

(cherry picked from commit e817766c0f46f371fabe344fba60d13afcfc3da9)

16 months agoUpdate Documentation for EVP_DigestSign, EVP_DigestVerify.
slontis [Thu, 14 Mar 2024 05:11:40 +0000 (16:11 +1100)] 
Update Documentation for EVP_DigestSign, EVP_DigestVerify.

Fixes #23075

In OpenSSL 3.2 EVP_DigestSign and EVP_DigestVerify
were changed so that a flag is set once these functions
do a one-shot sign or verify operation. This PR updates the
documentation to match the behaviour.

Investigations showed that prior to 3.2 different key
type behaved differently if multiple calls were done.

By accident X25519 and X448 would produce the same signature,
but ECDSA and RSA remembered the digest state between calls,
so the signature was different when multiple calls were done.

Because of this undefined behaviour something needed to be done,
so keeping the 'only allow it to be called once' behaviour
seems a reasonable approach.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23834)

(cherry picked from commit 5e908e6068708c89da7b5591cc65ff4b3d3135d2)

16 months agoAlign 'openssl req' string_mask docs to how the software really works
Job Snijders [Tue, 27 Feb 2024 19:14:32 +0000 (19:14 +0000)] 
Align 'openssl req' string_mask docs to how the software really works

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23699)

(cherry picked from commit 2410cb42e62c3be69dcf1aad1bdf1eb0233b670f)

16 months agoWorkaround the relocation truncated to fit problem on m68k builds
Tomas Mraz [Wed, 3 Apr 2024 10:41:21 +0000 (12:41 +0200)] 
Workaround the relocation truncated to fit problem on m68k builds

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/24028)

(cherry picked from commit 81b7aa7186bf48fa5c2eaf0c7fe3bd05880e4dbb)

16 months agoAllow provider sigalgs in SignatureAlgorithms conf
Alex Bozarth [Mon, 20 Nov 2023 21:20:31 +0000 (15:20 -0600)] 
Allow provider sigalgs in SignatureAlgorithms conf

Though support for provider-based signature algorithms was added in
ee58915 this functionality did not work with the SignatureAlgorithms
configuration command. If SignatureAlgorithms is set then the provider
sigalgs are not used and instead it used the default value.

This PR adds a check against the provider-base sigalg list when parsing
the SignatureAlgorithms value.

Based-on-patch-by: Martin Schmatz <mrt@zurich.ibm.com>
Fixes #22761

Reviewed-by: Nicola Tuveri <nic.tuv@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/22779)

(cherry picked from commit 4169d58c855718d90424fd5da632cf2f2b46e691)

16 months agoBIO_s_connect: Do not set keepalive on dgram sockets
Hugo Landau [Mon, 1 Apr 2024 08:03:20 +0000 (09:03 +0100)] 
BIO_s_connect: Do not set keepalive on dgram sockets

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24015)

(cherry picked from commit 56736800224eff5783e314fd334c047224081c58)

16 months agoDocument change of -verify behavior in crl and req apps
Vladimir Kotal [Wed, 27 Mar 2024 09:51:22 +0000 (10:51 +0100)] 
Document change of -verify behavior in crl and req apps

Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23983)

(cherry picked from commit 15585af97ec682182f40f815741e66f1ec40f941)

16 months agoRemove handling of NULL sig param in ossl_ecdsa_deterministic_sign
Bernd Edlinger [Thu, 8 Feb 2024 21:44:33 +0000 (22:44 +0100)] 
Remove handling of NULL sig param in ossl_ecdsa_deterministic_sign

The handling of sig=NULL was broken in this function, but since it
is only used internally and was never called with sig=NULL, it is
better to return an error in that case.

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23529)

(cherry picked from commit 294782f3b5c4b81d682e6e8608bb6e851177494d)

16 months agoFix handling of NULL sig parameter in ECDSA_sign and similar
Bernd Edlinger [Thu, 8 Feb 2024 21:21:55 +0000 (22:21 +0100)] 
Fix handling of NULL sig parameter in ECDSA_sign and similar

The problem is, that it almost works to pass sig=NULL to the
ECDSA_sign, ECDSA_sign_ex and DSA_sign, to compute the necessary
space for the resulting signature.
But since the ECDSA signature is non-deterministic
(except when ECDSA_sign_setup/ECDSA_sign_ex are used)
the resulting length may be different when the API is called again.
This can easily cause random memory corruption.
Several internal APIs had the same issue, but since they are
never called with sig=NULL, it is better to make them return an
error in that case, instead of making the code more complex.

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23529)

(cherry picked from commit 1fa2bf9b1885d2e87524421fea5041d40149cffa)

16 months agoFix openssl req with -addext subjectAltName=dirName
Bernd Edlinger [Fri, 23 Feb 2024 09:32:14 +0000 (10:32 +0100)] 
Fix openssl req with -addext subjectAltName=dirName

The syntax check of the -addext fails because the
X509V3_CTX is used to lookup the referenced section,
but the wrong configuration file is used, where only
a default section with all passed in -addext lines is available.
Thus it was not possible to use the subjectAltName=dirName:section
as an -addext parameter.  Probably other extensions as well.

This change affects only the syntax check, the real extension
was already created with correct parameters.

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23669)

(cherry picked from commit 387418893e45e588d1cbd4222549b5113437c9ab)

16 months agoBump actions/setup-python from 5.0.0 to 5.1.0
dependabot[bot] [Tue, 26 Mar 2024 17:39:00 +0000 (17:39 +0000)] 
Bump actions/setup-python from 5.0.0 to 5.1.0

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5.0.0 to 5.1.0.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5.0.0...v5.1.0)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
CLA: trivial

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23977)

(cherry picked from commit de85587911dcd41dc3546b348acf9c9f15dd7c3d)

16 months agoExplicitly state what -keys does
Simo Sorce [Thu, 21 Mar 2024 14:00:52 +0000 (10:00 -0400)] 
Explicitly state what -keys does

Signed-off-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/23919)

(cherry picked from commit 693c479a2ca671e0dfca8d1ad14e789169b982ff)

16 months agoPrepare for 3.3 beta 2 23999/head
Matt Caswell [Fri, 29 Mar 2024 14:07:40 +0000 (14:07 +0000)] 
Prepare for 3.3 beta 2

Reviewed-by: Neil Horman <nhorman@openssl.org>
Release: yes

16 months agoPrepare for release of 3.3 beta 1 openssl-3.3.0-beta1
Matt Caswell [Fri, 29 Mar 2024 14:07:20 +0000 (14:07 +0000)] 
Prepare for release of 3.3 beta 1

Reviewed-by: Neil Horman <nhorman@openssl.org>
Release: yes

16 months agomake update
Matt Caswell [Fri, 29 Mar 2024 14:07:20 +0000 (14:07 +0000)] 
make update

Reviewed-by: Neil Horman <nhorman@openssl.org>
Release: yes

16 months agoCopyright year updates
Matt Caswell [Fri, 29 Mar 2024 14:05:51 +0000 (14:05 +0000)] 
Copyright year updates

Reviewed-by: Neil Horman <nhorman@openssl.org>
Release: yes

16 months agoUpdate CHANGES.md and NEWS.md with changes that have occurred since 3.2
Matt Caswell [Thu, 28 Mar 2024 15:27:52 +0000 (15:27 +0000)] 
Update CHANGES.md and NEWS.md with changes that have occurred since 3.2

Release: yes

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23998)

16 months agoFix threadstest wrapping again
Neil Horman [Mon, 25 Mar 2024 13:18:27 +0000 (09:18 -0400)] 
Fix threadstest wrapping again

Stochastic failures in the RCU test on MACOSX are occuring.  Due to beta
release, disabling this test on MACOSX until post 3.3 release

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23967)

(cherry picked from commit 1967539e212c17139dc810096da987c8100b1ba2)

16 months agoUpdate gost-engine submodule to fix the CI
Tomas Mraz [Tue, 26 Mar 2024 10:53:53 +0000 (11:53 +0100)] 
Update gost-engine submodule to fix the CI

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/23773)

(cherry picked from commit e7d5d61b66ee5a1d0827b3c92dc4d484fb9c91fe)

16 months agoapps/req,crl: exit with 1 on verification failure
Vladimir Kotal [Thu, 7 Mar 2024 16:00:07 +0000 (17:00 +0100)] 
apps/req,crl: exit with 1 on verification failure

Fixes #23771

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/23773)

(cherry picked from commit 6af739b79ba50bd42ac8934747ab5c8b996f16b6)

16 months agoAdd NULL check before accessing PKCS7 encrypted algorithm
Viliam Lejčík [Mon, 19 Feb 2024 20:39:05 +0000 (21:39 +0100)] 
Add NULL check before accessing PKCS7 encrypted algorithm

Printing content of an invalid test certificate causes application crash, because of NULL dereference:

user@user:~/openssl$ openssl pkcs12 -in test/recipes/80-test_pkcs12_data/bad2.p12 -passin pass: -info
MAC: sha256, Iteration 2048
MAC length: 32, salt length: 8
PKCS7 Encrypted data: Segmentation fault (core dumped)

Added test cases for pkcs12 bad certificates

Reviewed-by: Bernd Edlinger <bernd.edlinger@hotmail.de>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23632)

(cherry picked from commit a4cbffcd8998180b98bb9f7ce6065ed37d079d8b)

16 months agoReplace size_t with int and add the check for the EVP_MD_get_size()
Jiasheng Jiang [Thu, 21 Mar 2024 20:22:01 +0000 (20:22 +0000)] 
Replace size_t with int and add the check for the EVP_MD_get_size()

Replace the type of "digest_size" with int to avoid implicit conversion when it is assigned by EVP_MD_get_size().
Moreover, add the check for the "digest_size".

Fixes: 29ce1066bc ("Update the demos/README file because it is really old. New demos should provide best practice for API use. Add demonstration for computing a SHA3-512 digest - digest/EVP_MD_demo")
Signed-off-by: Jiasheng Jiang <jiasheng@purdue.edu>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23924)

(cherry picked from commit 87e747000fef07c9ec43877bc5e9f2ca34f76a3b)

16 months agoReplace unsigned with int
Jiasheng Jiang [Thu, 21 Mar 2024 19:55:34 +0000 (19:55 +0000)] 
Replace unsigned with int

Replace the type of "digest_length" with int to avoid implicit conversion when it is assigned by EVP_MD_get_size().
Otherwise, it may pass the following check and cause the integer overflow error when EVP_MD_get_size() returns negative numbers.
Signed-off-by: Jiasheng Jiang <jiasheng@purdue.edu>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23922)

(cherry picked from commit f13ddaab69def0b453b75a8f2deb80e1f1634f42)

16 months agofix demos/sslecho/main.c so it builds on OpenBSD too
sashan [Fri, 22 Mar 2024 14:19:53 +0000 (15:19 +0100)] 
fix demos/sslecho/main.c so it builds on OpenBSD too

trying to build `demos/sslecho/main.c` shipped by current openssl
fails with error as follows:
```
cc -I../../include -g -Wall   -c -o main.o main.c
main.c:35:24: error: variable has incomplete type 'struct sockaddr_in'
    struct sockaddr_in addr;
                       ^
main.c:35:12: note: forward declaration of 'struct sockaddr_in'
    struct sockaddr_in addr;
           ^
main.c:46:32: error: use of undeclared identifier 'INADDR_ANY'
        addr.sin_addr.s_addr = INADDR_ANY;
                               ^
main.c:152:24: error: variable has incomplete type 'struct sockaddr_in'
    struct sockaddr_in addr;
                       ^
main.c:152:12: note: forward declaration of 'struct sockaddr_in'
    struct sockaddr_in addr;
           ^
3 errors generated.
gmake: *** [<builtin>: main.o] Error 1
```

including `netinet/in.h` fixes the build

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23936)

(cherry picked from commit 01eaf203856bfbb63051f8ecf56eae2d21132496)

16 months agoCorrect OSSL_sleep for NonStop PUT model by introducing sleep().
Randall S. Becker [Thu, 21 Mar 2024 21:16:11 +0000 (21:16 +0000)] 
Correct OSSL_sleep for NonStop PUT model by introducing sleep().

This fix also removes SPT model support as it was previously deprecated.
Upcoming threading models on the platform should be supportable without change
to this method.

Fixes: #23923
Fixes: #23927
Fixes: #23928
Signed-off-by: Randall S. Becker <randall.becker@nexbridge.ca>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23926)

(cherry picked from commit 4a9e48f727ce7ad924c53a55b301e426d7e43863)

16 months agoDon’t use the recvmmsg dgram method on Android <5
Yavor Georgiev [Tue, 5 Mar 2024 18:10:03 +0000 (19:10 +0100)] 
Don’t use the recvmmsg dgram method on Android <5

recvmmsg and sendmmsg were only added to Android’s C library in version 5, starting with API Level 21.

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23754)

(cherry picked from commit 24109dca5a793d58c68a346db5b21746079ec317)

16 months agoFixed a typo and grammar in openssl-ts.pod
olszomal [Thu, 21 Mar 2024 10:10:04 +0000 (11:10 +0100)] 
Fixed a typo and grammar in openssl-ts.pod

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23913)

(cherry picked from commit f1c14f1853d2df94e339208eed1df823c2238389)

16 months agofix uploading artifacts for paramertrized jobs
Dmitry Misharov [Fri, 22 Mar 2024 11:01:53 +0000 (12:01 +0100)] 
fix uploading artifacts for paramertrized jobs

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23933)

(cherry picked from commit 395ab201a7f99ebe2b1598890c9a43081867d226)

16 months agoMake counters in rcu/rw threads torture test 64 bit
Neil Horman [Tue, 5 Mar 2024 19:22:28 +0000 (14:22 -0500)] 
Make counters in rcu/rw threads torture test 64 bit

Its possible in some conditions for the rw/rcu torture tests to wrap the
counter, leading to false positive failures, make them 64 bits to avoid
this

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23724)

(cherry picked from commit b50c174ee3b11f916285046d52574ba653745083)

16 months agoAdd M1 macOS runner to some workflows
Dmitry Misharov [Fri, 1 Mar 2024 15:59:07 +0000 (16:59 +0100)] 
Add M1 macOS runner to some workflows

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23724)

(cherry picked from commit ada9d8c785cce8e75a88675622dd5ec79e9aa6d7)

16 months agoriscv: Fix remaining asm checks
Jakov Smolić [Tue, 5 Mar 2024 15:43:11 +0000 (16:43 +0100)] 
riscv: Fix remaining asm checks

There are additional asm checks which don't check for OPENSSL_CPUID_OBJ
causing the build to still fail on riscv [1], so fix them in the same
manner as ff279597692f9f19dca5b147944d3d96f2e109f8

[1] https://bugs.gentoo.org/923956
Fixes: https://github.com/openssl/openssl/issues/22871
Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23752)

16 months agoUpdate FIPS hmac key documentation
Matt Hauck [Fri, 15 Mar 2024 01:25:11 +0000 (18:25 -0700)] 
Update FIPS hmac key documentation

The documentation is slightly incorrect about the FIPS hmac key.

CLA: trivial

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23846)

(cherry picked from commit 53ef123f48d402aff7c27f8ec15191cb1cde4105)

16 months agoMove artifact upload code into the shell script
Hugo Landau [Mon, 12 Feb 2024 13:17:01 +0000 (13:17 +0000)] 
Move artifact upload code into the shell script

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23551)

(cherry picked from commit 9abcf116962e9a117717c751de93846f11da16cd)

16 months agoExperimental support for uploading qlog artifacts
Hugo Landau [Mon, 12 Feb 2024 11:29:14 +0000 (11:29 +0000)] 
Experimental support for uploading qlog artifacts

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23551)

(cherry picked from commit f2db70962cacc2602bc614d51e0610085c99e999)

16 months agoPrepare for 3.3 alpha 2 23902/head
Richard Levitte [Wed, 20 Mar 2024 12:10:06 +0000 (13:10 +0100)] 
Prepare for 3.3 alpha 2

Reviewed-by: Neil Horman <nhorman@openssl.org>
Release: yes

16 months agoPrepare for release of 3.3 alpha 1 openssl-3.3.0-alpha1
Richard Levitte [Wed, 20 Mar 2024 12:09:34 +0000 (13:09 +0100)] 
Prepare for release of 3.3 alpha 1

Reviewed-by: Neil Horman <nhorman@openssl.org>
Release: yes

16 months agomake update
Richard Levitte [Wed, 20 Mar 2024 12:09:28 +0000 (13:09 +0100)] 
make update

Reviewed-by: Neil Horman <nhorman@openssl.org>
Release: yes

16 months agoCopyright year updates
Richard Levitte [Wed, 20 Mar 2024 12:07:54 +0000 (13:07 +0100)] 
Copyright year updates

Reviewed-by: Neil Horman <nhorman@openssl.org>
Release: yes

16 months agoFix unbounded memory growth when using no-cached-fetch
Matt Caswell [Wed, 13 Mar 2024 15:19:43 +0000 (15:19 +0000)] 
Fix unbounded memory growth when using no-cached-fetch

When OpenSSL has been compiled with no-cached-fetch we do not cache
algorithms fetched from a provider. When we export an EVP_PKEY to a
provider we cache the details of that export in the operation cache for
that EVP_PKEY. Amoung the details we cache is the EVP_KEYMGMT that we used
for the export. When we come to reuse the key in the same provider that
we have previously exported the key to, we check the operation cache for
the cached key data. However because the EVP_KEYMGMT instance was not
cached then instance will be different every time and we were not
recognising that we had already exported the key to the provider.

This causes us to re-export the key to the same provider everytime the key
is used. Since this consumes memory we end up with unbounded memory growth.

The fix is to be more intelligent about recognising that we have already
exported key data to a given provider even if the EVP_KEYMGMT instance is
different.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/23841)

16 months agoTry to fix intermittent CI failures in quic_multistream test
Bernd Edlinger [Sun, 10 Mar 2024 12:15:55 +0000 (13:15 +0100)] 
Try to fix intermittent CI failures in quic_multistream test

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23807)

16 months agoplug potential memory leak in error code path
Alexandr Nedvedicky [Thu, 14 Mar 2024 08:53:56 +0000 (09:53 +0100)] 
plug potential memory leak in error code path

Function `module_add()` may leak stack of modules when
it fails to initialize newly added module.

Fixes #23835

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23836)

16 months agoRaise the AFL_MAP_SIZE to accommodate future growth
Tomas Mraz [Fri, 15 Mar 2024 10:28:42 +0000 (11:28 +0100)] 
Raise the AFL_MAP_SIZE to accommodate future growth

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23851)

16 months ago82-test_ocsp_cert_chain.t: Just ignore unrecognized lines in server output
Tomas Mraz [Fri, 15 Mar 2024 10:27:41 +0000 (11:27 +0100)] 
82-test_ocsp_cert_chain.t: Just ignore unrecognized lines in server output

There might be warnings from AFL fuzz checker
or other warnings that we do not care about.

For success it is just required that cert_status: ocsp response sent:
is present.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23851)

16 months agoMinor docfix for OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines(3)
Alexandr Nedvedicky [Thu, 14 Mar 2024 09:40:06 +0000 (10:40 +0100)] 
Minor docfix for OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines(3)

Also removal of duplicate assignment and addition of comment
in test/http_test.c

Follow up change to PR #23781

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: David von Oheimb <david.von.oheimb@siemens.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23837)

16 months agoSet AFL_MAP_SIZE to avoid crash in the AFL CI job
Tomas Mraz [Thu, 14 Mar 2024 17:58:00 +0000 (18:58 +0100)] 
Set AFL_MAP_SIZE to avoid crash in the AFL CI job

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23843)

16 months agoAdd a test using the bandwidth limit filter
Tomas Mraz [Wed, 14 Feb 2024 11:45:15 +0000 (12:45 +0100)] 
Add a test using the bandwidth limit filter

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23588)

16 months agoAdd support for bandwidth limitation in noisydgram BIO filter
Tomas Mraz [Mon, 5 Feb 2024 15:03:15 +0000 (16:03 +0100)] 
Add support for bandwidth limitation in noisydgram BIO filter

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23588)

16 months agobio_f_noisy_dgram_filter(): Fix typo
Tomas Mraz [Fri, 19 Jan 2024 14:06:45 +0000 (15:06 +0100)] 
bio_f_noisy_dgram_filter(): Fix typo

Reviewed-by: Hugo Landau <hlandau@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23588)

16 months agoSSL_add_dir_cert_subjects_to_stack(): Documented return values
Shakti Shah [Tue, 30 Jan 2024 18:56:32 +0000 (00:26 +0530)] 
SSL_add_dir_cert_subjects_to_stack(): Documented return values

In the man page for SSL_add_dir_cert_subjects_to_stack(), the functions
returning int have undocumented return values.

Fixes #23171

Signed-off-by: Shakti Shah <shaktishah33@gmail.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23433)

16 months agoAdd Content Type OID for id-ct-rpkiSignedPrefixList
Job Snijders [Mon, 29 Jan 2024 20:40:32 +0000 (20:40 +0000)] 
Add Content Type OID for id-ct-rpkiSignedPrefixList

References: draft-ietf-sidrops-rpki-prefixlist
Title: "A profile for Signed Prefix Lists for Use in the Resource Public Key Infrastructure (RPKI)"

OID assigned under 'SMI Security for S/MIME CMS Content Type (1.2.840.113549.1.9.16.1)'
https://www.iana.org/assignments/smi-numbers/smi-numbers.xhtml#security-smime-1

Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23426)

16 months agoapps/x509.c: No warning reading from stdin if redirected
Tomas Mraz [Thu, 8 Feb 2024 16:19:19 +0000 (17:19 +0100)] 
apps/x509.c: No warning reading from stdin if redirected

Fixes #22893

Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23526)

16 months agoFix ASLR to be smaller during asan/tsan/ubsan runs
Neil Horman [Thu, 14 Mar 2024 16:04:17 +0000 (12:04 -0400)] 
Fix ASLR to be smaller during asan/tsan/ubsan runs

Recently asan/tsan/ubsan runs have been failing randomly.  It appears
that a recent runner update may have led to the Address Space Layout
Randomization setting in the linux kernel of ubuntu-latest runner
getting set to too high a value (it defaults to 30).  Such a setting
leads to the possibility that a given application will have memory
mapped to an address space that the sanitizer code typically uses to do
its job.  Lowering this value allows a/t/ubsan to work consistently
again

Reviewed-by: Tim Hudson <tjh@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23842)

16 months agoAvoid a memcpy in dtls_get_reassembled_message()
Frederik Wedel-Heinen [Wed, 13 Mar 2024 09:17:37 +0000 (10:17 +0100)] 
Avoid a memcpy in dtls_get_reassembled_message()

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23828)

16 months agoFix dasync_rsa_decrypt to call EVP_PKEY_meth_get_decrypt
Vladimirs Ambrosovs [Tue, 12 Mar 2024 16:23:55 +0000 (18:23 +0200)] 
Fix dasync_rsa_decrypt to call EVP_PKEY_meth_get_decrypt

Signed-off-by: Vladimirs Ambrosovs <rodriguez.twister@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23825)

16 months agoImplement KAT for KBKDF with KMAC128
Joachim Vandersmissen [Tue, 5 Mar 2024 01:16:23 +0000 (19:16 -0600)] 
Implement KAT for KBKDF with KMAC128

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23745)

16 months agoUpdate tls13ccstest.c, removal of deadcode
sharad3001 [Mon, 11 Mar 2024 10:19:01 +0000 (15:49 +0530)] 
Update tls13ccstest.c, removal of deadcode

tst has been already checked for invalid value in the start of the function with switch statement.

Checked again here, so removed deadcode

CLA: trivial

Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23813)

16 months agoAdd fuzzing for DTLS
Frederik Wedel-Heinen [Wed, 14 Feb 2024 09:09:55 +0000 (10:09 +0100)] 
Add fuzzing for DTLS

Update the fuzz corpora submodule with the DTLS fuzz corpus.

Reviewed-by: Kurt Roeckx <kurt@roeckx.be>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23585)

16 months agos_server: test ocsp with "-cert_chain"
James Muir [Wed, 20 Dec 2023 05:15:17 +0000 (00:15 -0500)] 
s_server: test ocsp with "-cert_chain"

Add a test to exercise the use of s_server with "-cert_chain" to
construct an ocsp request.

This new functionality was added in PR #22192.

Testing:

  make V=1 TESTS='test_ocsp_cert_chain' test

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23101)

16 months agoLimit the number of http headers when receiving the http response
Alexandr Nedvedicky [Fri, 8 Mar 2024 10:21:18 +0000 (11:21 +0100)] 
Limit the number of http headers when receiving the http response

Change introduces a default limit on HTTP headers we expect to receive
from server to 256. If limit is exceeded http client library indicates
HTTP_R_RESPONSE_TOO_MANY_HDRLINES error. Application can use
OSSL_HTTP_REQ_CTX_set_max_response_hdr_lines() to change default.
Setting limit to 0 implies no limit (current behavior).

Fixes #22264

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23781)

16 months agoAdd check for xor_get_aid()
Jiasheng Jiang [Wed, 6 Mar 2024 16:08:06 +0000 (16:08 +0000)] 
Add check for xor_get_aid()

Add check for the return value of xor_get_aid() in order to avoid NULL pointer deference.

For example, "algor" could be NULL if the allocation of X509_ALGOR_new() fails. As a result, i2d_X509_ALGOR() will return 0 and "ctx->aid" will be an invalid value NULL.

Fixes: f4ed6eed2c ("SSL_set1_groups_list(): Fix memory corruption with 40 groups and more")
Signed-off-by: Jiasheng Jiang <jiasheng@purdue.edu>
Reviewed-by: Tom Cosgrove <tom.cosgrove@arm.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/23764)

16 months agoImprove the documentation on -cert_chain and -status_verbose options
olszomal [Thu, 8 Feb 2024 13:30:22 +0000 (14:30 +0100)] 
Improve the documentation on -cert_chain and -status_verbose options

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/22192)