]> git.ipfire.org Git - thirdparty/openssl.git/log
thirdparty/openssl.git
13 hours agointerop: fix for engine removal master
Stanislav Zidek [Mon, 8 Dec 2025 14:46:01 +0000 (15:46 +0100)] 
interop: fix for engine removal

CLA: trivial

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

2 days agoRemove crypto-mdebug-backtrace option from config
Neil Horman [Thu, 11 Dec 2025 15:31:32 +0000 (10:31 -0500)] 
Remove crypto-mdebug-backtrace option from config

We still build with crypto-mdebug-backtrace enabled in a few ci jobs,
but it does nothing.

With the upcoming merge of feature/removesslv3, the code changes there
prevent the use of this option (i.e. enabling it results in
configuration failure).

It seems the most sensible thing to do here, given we have a major
release is to eliminate the option entirely, as it hasn't done anything
since 1.0.2.

Fixes openssl/project#1763

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Simo Sorce <simo@redhat.com>
Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29380)

2 days agoCONF_modules_load_file.pod: The ssl_module no longer uses global data
Daniel Kubec [Wed, 10 Dec 2025 23:26:46 +0000 (00:26 +0100)] 
CONF_modules_load_file.pod: The ssl_module no longer uses global data

Remove the paragraph that is no longer relevant.

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

2 days agoASN1: Reject negative BIGNUM components
Daniel Kubec [Wed, 10 Dec 2025 12:57:40 +0000 (13:57 +0100)] 
ASN1: Reject negative BIGNUM components

In the ASN.1 structures we define the BIGNUM as positive and enforce
this during parsing. If the encoded value is negative, we raise an error
and reject the material.

Fixes #29210
Fixes #27407

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

2 days agoUpdate ossl-removed-api to mention the EVP_CIPHER_meth* functions
Matt Caswell [Wed, 10 Dec 2025 09:39:04 +0000 (09:39 +0000)] 
Update ossl-removed-api to mention the EVP_CIPHER_meth* functions

All the EVP_CIPHER_meth* functions have been removed so they should be
documented as such.

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

2 days agoRemove mentions of EVP_CIPHER_meth* from the documentation
Matt Caswell [Wed, 3 Dec 2025 10:48:57 +0000 (10:48 +0000)] 
Remove mentions of EVP_CIPHER_meth* from the documentation

With the removal of EVP_CIPHER_meth* we need to update the documentation
accordingly.

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

2 days agoRemove support for custom cipher methods
Matt Caswell [Wed, 3 Dec 2025 10:38:56 +0000 (10:38 +0000)] 
Remove support for custom cipher methods

Custom cipher methods are considered legacy and have been deprecated
since 3.0. With the removal of ENGINEs they become a lot less useful
and add significant complexity to the code. We should therefore remove
them in 4.0.

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

2 days agoFail serialization of finalized MD contexts
Simo Sorce [Fri, 21 Nov 2025 21:08:35 +0000 (16:08 -0500)] 
Fail serialization of finalized MD contexts

Add tests to verify that `EVP_MD_CTX_serialize` and
`EVP_MD_CTX_deserialize` fail when called on a finalized `EVP_MD_CTX`.

A finalized context is in a terminal state and should not be serializable for
resumption or have a new state deserialized into it. These tests confirm the
expected failure behavior.

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

2 days agoAdd documentation for digest serialization
Simo Sorce [Thu, 20 Nov 2025 19:08:56 +0000 (14:08 -0500)] 
Add documentation for digest serialization

Documents EVP_MD_CTX_[s|des]erialize functions.

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

2 days agoUse generated param decoders in SHA provider
Simo Sorce [Mon, 20 Oct 2025 22:46:45 +0000 (18:46 -0400)] 
Use generated param decoders in SHA provider

Refactor the SHA provider's context parameter handling in sha2_prov.c to use
the generated parameter decoder framework.

This change replaces manual parameter lookups using `OSSL_PARAM_locate` and
static `OSSL_PARAM` arrays with generated decoder functions and structs. A new
template, `sha2_prov.inc.in`, is added to create the necessary decoders during
the build.

This simplifies the code, reduces boilerplate, and improves type safety.

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

2 days agoAdd EVP_MD_CTX serialization for SHA3/SHAKE
Simo Sorce [Fri, 10 Oct 2025 17:47:38 +0000 (13:47 -0400)] 
Add EVP_MD_CTX serialization for SHA3/SHAKE

Implement context serialization and deserialization for the SHA3, KECCAK,
SHAKE, and KMAC provider-based digests.

This is achieved by handling the `OSSL_DIGEST_SERIALIZATION` parameter in
get_ctx_params and set_ctx_params. A custom format is used to store the KECCAK
state, including a magic number and an algorithm identifier to ensure the
context is not loaded into an incompatible digest instance.

This allows an EVP_MD_CTX to be saved and restored, which is useful for
applications that need to checkpoint hashing operations. The existing EVP
serialization tests have been extended to cover these new algorithms.

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

2 days agoAdd serialization for SHA-2 digest contexts
Simo Sorce [Thu, 9 Oct 2025 22:27:42 +0000 (18:27 -0400)] 
Add serialization for SHA-2 digest contexts

This commit introduces the ability to serialize and deserialize the internal
state of SHA-2 digest contexts (SHA-256 and SHA-512 families).

This functionality is exposed via the new OSSL_DIGEST_SERIALIZATION parameter,
which can be used with EVP_MD_CTX_get_params() to retrieve the state and with
EVP_DigestInit_ex2() to restore it into a new context.

This allows an application to save the state of a hash operation and resume it
later, which is useful for process migration or for saving the state of long-
unning computations. A new test case has been added to verify this.

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

2 days agoAdd EVP digest context serialization
Simo Sorce [Thu, 20 Nov 2025 15:25:47 +0000 (10:25 -0500)] 
Add EVP digest context serialization

This commit introduces two new functions, EVP_MD_CTX_serialize and
EVP_MD_CTX_deserialize, to the EVP digest API.

These functions allow an application to save the state of a digest
context (EVP_MD_CTX) and restore it later. This is useful for
checkpointing long-running computations, enabling them to be paused
and resumed without starting over.

The implementation adds the OSSL_FUNC_DIGEST_SERIALIZE and
OSSL_FUNC_DIGEST_DESERIALIZE dispatch functions for providers to
supply this functionality.

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

3 days agoAdd static_ASN1_SEQUENCE_END to the list of statment macros feature/method-store-freeze
Bob Beck [Tue, 9 Dec 2025 16:01:16 +0000 (09:01 -0700)] 
Add static_ASN1_SEQUENCE_END to the list of statment macros

This one is pretty special, we should ponder simplifying some of
the clever preprocessor stuff here, but for now..

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

3 days agoEnable send-/recvmmsg for AIX >= 7.2 and disable SUPPORT_LOCAL_ADDR.
Matthias Kraft [Fri, 5 Dec 2025 16:52:28 +0000 (17:52 +0100)] 
Enable send-/recvmmsg for AIX >= 7.2 and disable SUPPORT_LOCAL_ADDR.

AIX doesn't support this implementation for local addresses. The AF_INET
case is unimplemented when sending. The AF_INET6 case is limited to 110
messages. The limiting factor is currently unclear.

Fixes #29292

Signed-off-by: Matthias Kraft <Matthias.Kraft@ibm.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29334)

3 days agoFix memory leak in error path of ec_gen_init()
Niels Dossche [Mon, 8 Dec 2025 14:17:56 +0000 (15:17 +0100)] 
Fix memory leak in error path of ec_gen_init()

ec_gen_set_params() can fail after some big numbers have already been
copied over. Those need to be cleaned to avoid a memory leak on failure.
This can be done with ec_gen_cleanup(), which is also consistent in how
the ecx_gen code does it.

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

3 days agoThe return value of RSA_*_{en,de}crypt() is signed
Viktor Dukhovni [Sat, 6 Dec 2025 04:04:36 +0000 (15:04 +1100)] 
The return value of RSA_*_{en,de}crypt() is signed

The functions RSA_(public|private)_(en|de)crypt() return a signed
result, in particular `-1` may be returned on error, so the caller
MUST treat the value as signed.

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29323)

3 days agoFix memory leak in abnormal branch of mlx_kem_dup function
lan1120 [Fri, 5 Dec 2025 10:09:47 +0000 (18:09 +0800)] 
Fix memory leak in abnormal branch of mlx_kem_dup function

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

3 days agoFix ML-KEM/ML-DSA macro typo
Viktor Dukhovni [Fri, 5 Dec 2025 03:35:18 +0000 (14:35 +1100)] 
Fix ML-KEM/ML-DSA macro typo

This is largely cosmetic, since the macro expands to "seed" either way,
but it is best to avoid this type of error.

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

3 days agodoc/man3: Add OPENSSL_ppccap.pod
George Wilson [Thu, 16 Oct 2025 15:41:26 +0000 (10:41 -0500)] 
doc/man3: Add OPENSSL_ppccap.pod

This patch adds a man page documenting the OPENSSL_ppccap environment
variable that is analogous to capability environment variable man pages
for other architectures.

Fixes #17046

Signed-off-by: George Wilson <gcwilson@linux.ibm.com>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29230)

3 days agodtls: fix DTLSv1_listen msg_callback to report HelloVerifyRequest
Joshua Rogers [Sat, 11 Oct 2025 22:19:29 +0000 (06:19 +0800)] 
dtls: fix DTLSv1_listen msg_callback to report HelloVerifyRequest

DTLSv1_listen built the HelloVerifyRequest in wbuf but invoked
msg_callback with buf and DTLS1_RT_HEADER_LENGTH, and version 0.
That caused incorrect logging and could disclose the ClientHello
to write callbacks. Use wbuf and the actual record version for the
record header, and add a second callback that reports the handshake
message bytes. No change to on-wire behavior.

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Frederik Wedel-Heinen <fwh.openssl@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28916)

3 days agoktls_read_record(): Harden linux recv path
Joshua Rogers [Sat, 11 Oct 2025 06:19:28 +0000 (14:19 +0800)] 
ktls_read_record(): Harden linux recv path

- drop tag subtraction in recv buffer sizing
- enforce MSG_EOR and reject MSG_CTRUNC
- zero prepended header bytes before recvmsg

Signed-off-by: Joshua Rogers <MegaManSec@users.noreply.github.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28861)

3 days agoFix regression when X509_V_FLAG_CRL_CHECK_ALL is set, while X509_V_FLAG_CRL_CHECK...
Carter Thaxton [Thu, 9 Oct 2025 02:20:25 +0000 (19:20 -0700)] 
Fix regression when X509_V_FLAG_CRL_CHECK_ALL is set, while X509_V_FLAG_CRL_CHECK is clear

Fixes #28758

When X509_V_FLAG_CRL_CHECK is not set, the man pages document that X509_V_FLAG_CRL_CHECK_ALL is ignored.
Prior to 3.6.0, this was indeed the case.

In 3.6.0, the behavior changed, and setting X509_V_FLAG_CRL_CHECK_ALL began to imply X509_V_FLAG_CRL_CHECK.
This unfortunately breaks the majority of ruby installations, which relied on the documented behavior.

For consistency, this commit applies the same logic to the new X509_V_FLAG_OCSP_RESP_CHECK and X509_V_FLAG_OCSP_RESP_CHECK_ALL flags,
which are still undocumented as of 3.6.0.

All existing tests continue to pass.  They also make the assumption that the xxx_CHECK_ALL flags are irrelevant unless xxx_CHECK is set.
We could add a new test for this regression.  I'll leave that to another commit.

CLA: trivial

Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/28797)

(cherry picked from commit cbaf28ce48805f47345f39dc6aaf39e181ab4861)

3 days agoapps/cmp.c: add -ta_in_ip_extracerts permitting non-authenticated trust anchors in...
Dr. David von Oheimb [Thu, 10 Jul 2025 15:37:11 +0000 (17:37 +0200)] 
apps/cmp.c: add -ta_in_ip_extracerts permitting non-authenticated trust anchors in IP extracerts according to 3GPP TS 33.310

Fixes #27888

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

3 days agoOSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR: use new TA(s) for whole transaction...
Dr. David von Oheimb [Thu, 10 Jul 2025 15:34:26 +0000 (17:34 +0200)] 
OSSL_CMP_OPT_PERMIT_TA_IN_EXTRACERTS_FOR_IR: use new TA(s) for whole transaction (also pkiconf); update doc

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

4 days agorun codespell pre-commit hook on staged files only
Dmitry Misharov [Tue, 9 Dec 2025 16:39:14 +0000 (17:39 +0100)] 
run codespell pre-commit hook on staged files only

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

4 days agoDocument skey decoder
Dmitry Belyavskiy [Thu, 25 Sep 2025 13:38:53 +0000 (15:38 +0200)] 
Document skey decoder

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Simo Sorce <simo@redhat.com>
(Merged from https://github.com/openssl/openssl/pull/28278)

4 days agoImplementing store support for EVP_SKEY
Dmitry Belyavskiy [Mon, 11 Aug 2025 09:55:06 +0000 (11:55 +0200)] 
Implementing store support for EVP_SKEY

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Simo Sorce <simo@redhat.com>
(Merged from https://github.com/openssl/openssl/pull/28278)

5 days agoAdd SNMPKDF implementation
Helen Zhang [Fri, 21 Nov 2025 19:11:26 +0000 (19:11 +0000)] 
Add SNMPKDF implementation

  In compliance with SP800-135 and RFC7860

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/29195)

5 days agoOnly write to pdays/psecs if they are not null
Neil Horman [Mon, 8 Dec 2025 18:22:05 +0000 (13:22 -0500)] 
Only write to pdays/psecs if they are not null

We have a few cases in which one of the paramters passed to
ASN1_TIME_diff is null (i.e. the caller doesn't care about the psec
differnce and so passes NULL as that pointer parameter).

However, OPENSSL_gmtime_diff assumes both pointers are valid, and so
writes to them unilaterally resulting in a crash as observed here:
https://github.com/openssl/openssl/pull/29333#issuecomment-3628103959

Check the pointers before writing to them.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29337)

5 days agoadd clang-format as a pre-commit hook 29358/head
Dmitry Misharov [Tue, 2 Dec 2025 07:54:53 +0000 (08:54 +0100)] 
add clang-format as a pre-commit hook

Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29282)

5 days agoFix array formatting in evp_extra_test.c
Matt Caswell [Tue, 9 Dec 2025 12:22:02 +0000 (12:22 +0000)] 
Fix array formatting in evp_extra_test.c

The reformat did something silly with some of the arrays in evp_extra_test.c
Fix the arrays such that clang-format is still happy.

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

5 days agoDisable clang-format around this macro
Bob Beck [Tue, 9 Dec 2025 14:01:47 +0000 (07:01 -0700)] 
Disable clang-format around this macro

clang-format sensibly thinks this is an arithmatic operation,
and formats the math. Sadly it does not know we eventually
stringify this behind several other layers of nested macros
and so putting spaces in here is bad.

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29350)

5 days agoadd 4.0 clang-format diff to .git-blame-ignore-revs
Bob Beck [Tue, 9 Dec 2025 08:38:27 +0000 (01:38 -0700)] 
add 4.0 clang-format diff to .git-blame-ignore-revs

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Dmitry Belyavskiy <beldmit@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/29343)

5 days ago4.0-POST-CLANG-FORMAT-WEBKIT 4.0-POST-CLANG-FORMAT-WEBKIT
Bob Beck [Tue, 9 Dec 2025 07:08:07 +0000 (00:08 -0700)] 
4.0-POST-CLANG-FORMAT-WEBKIT

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29242)

5 days ago4.0-PRE-CLANG-FORMAT-WEBKIT 4.0-PRE-CLANG-FORMAT-WEBKIT
Bob Beck [Tue, 9 Dec 2025 07:05:43 +0000 (00:05 -0700)] 
4.0-PRE-CLANG-FORMAT-WEBKIT

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29242)

6 days agokey2any: free val if string is empty
Nikola Pajkovsky [Fri, 5 Dec 2025 10:00:22 +0000 (11:00 +0100)] 
key2any: free val if string is empty

Resolves: https://scan5.scan.coverity.com/#/project-view/65138/10222?selectedIssue=1675327
Signed-off-by: Nikola Pajkovsky <nikolap@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
Reviewed-by: Tim Hudson <tjh@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29317)

9 days agoStart the 4.0 migration guide
Bob Beck [Tue, 25 Nov 2025 19:24:55 +0000 (12:24 -0700)] 
Start the 4.0 migration guide

This includes adding a little internal procedure for when functions
are removed, and a special ossl-ex-api page to document what API has
been removed.

Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29220)

9 days agoAdd GOST provider related docs
Norbert Pocs [Tue, 2 Dec 2025 10:58:07 +0000 (11:58 +0100)] 
Add GOST provider related docs

GOST provider is in a good shape already, so keep the mentions rewritten
to provider instead of the engine.

Resolves: https://github.com/openssl/project/issues/1733

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Viktor Dukhovni <viktor@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29286)

9 days agossl_do_config(): Check for NULL name argument
Alexandr Nedvedicky [Thu, 4 Dec 2025 07:38:04 +0000 (08:38 +0100)] 
ssl_do_config(): Check for NULL name argument

Fixes 0c2a196af8ab9c12da27

Fixes Coverity issue 1675312

Reviewed-by: Nikola Pajkovsky <nikolap@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29306)

9 days agoVarious fixups for SSL_listen_ex (readability/error unwinding)
Neil Horman [Thu, 20 Nov 2025 15:07:19 +0000 (10:07 -0500)] 
Various fixups for SSL_listen_ex (readability/error unwinding)

Various review fixups to clarify meaning of variables and fix unwinding
of operations should we encounter errors in some operations.

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoDrop use of get_using_peeloff for quic connections
Neil Horman [Mon, 3 Nov 2025 17:43:22 +0000 (12:43 -0500)] 
Drop use of get_using_peeloff for quic connections

folow the using_peeloff get/set routines to just a set routine that
fails if the set is for a mode that doesn't match the current mode

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoAdd docs for OSSL_QUIC_method() and SSL_listen_ex()
Neil Horman [Mon, 20 Oct 2025 15:52:44 +0000 (11:52 -0400)] 
Add docs for OSSL_QUIC_method() and SSL_listen_ex()

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoFix segfault on qlog creation with no tls
Neil Horman [Thu, 17 Apr 2025 15:51:07 +0000 (11:51 -0400)] 
Fix segfault on qlog creation with no tls

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoRun make update
Neil Horman [Thu, 17 Apr 2025 14:48:26 +0000 (10:48 -0400)] 
Run make update

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoFixup creation of qlog object
Neil Horman [Thu, 17 Apr 2025 14:17:40 +0000 (10:17 -0400)] 
Fixup creation of qlog object

Changes for SSL_listen_ex squashed creation of qlog objects even when
configured.

Fix that up so qlog objects are created regardless of weather we use
SSL_accept_connection or SSL_listen_ex

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoDon't require SSL_listen_ex to have its return value checked
Neil Horman [Tue, 15 Apr 2025 16:31:05 +0000 (12:31 -0400)] 
Don't require SSL_listen_ex to have its return value checked

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoadding test for SSL_listen_ex
Neil Horman [Sat, 12 Apr 2025 19:06:16 +0000 (15:06 -0400)] 
adding test for SSL_listen_ex

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agostitch in ssls for SSL_listen_ex
Neil Horman [Fri, 11 Apr 2025 20:44:41 +0000 (16:44 -0400)] 
stitch in ssls for SSL_listen_ex

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoUpdate port_make_channel to behave for accept_ex/accept_connection
Neil Horman [Fri, 11 Apr 2025 19:09:54 +0000 (15:09 -0400)] 
Update port_make_channel to behave for accept_ex/accept_connection

Based on the value of the using_peeloff flag, we need to choose if we're
going to create a user_ssl when creating a new channel

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoAdd flag to determine how quic accepts connections
Neil Horman [Fri, 11 Apr 2025 18:52:42 +0000 (14:52 -0400)] 
Add flag to determine how quic accepts connections

The flag defaults to 0 (unknown), and gets set to
1 (using SSL_accept_ex), or -1 (using SSL_accpet_connection)

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoStart implementing SSL_listen_ex
Neil Horman [Thu, 10 Apr 2025 14:05:59 +0000 (10:05 -0400)] 
Start implementing SSL_listen_ex

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoAdd OSSL_QUIC_method
Neil Horman [Thu, 10 Apr 2025 13:12:11 +0000 (09:12 -0400)] 
Add OSSL_QUIC_method

Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/27397)

9 days agoMake find-doc-nits compatible accross git versions
Neil Horman [Wed, 3 Dec 2025 19:36:54 +0000 (14:36 -0500)] 
Make find-doc-nits compatible accross git versions

We recently found that the addition of a git config command in
util/find-doc-nits is broken in some cases, sepecifically because git
around version 2.46 broke command line compatibility, replacing the
--regexp option with the --get-regexp option.  So to maintain usage of
this specific command to parse the .gitconfig file, we would need to do
some extra version detection to construct the proper command line.

However, find-doc-nits already has a fallback condition, which does some
pure perl parsing of the gitconfig file, which works perfectly well.

Instead of trying to do version matching to construct the right form of
the git config command line, just remove it all, and rely on the perl
parrse to do this work for us, which works currently in all cases.

Fixes #29197

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/29304)

9 days agoCMP check_cert_path_3gpp(): add missing checks trying to retrieve newly enrolled...
Dr. David von Oheimb [Wed, 3 Dec 2025 18:00:44 +0000 (19:00 +0100)] 
CMP check_cert_path_3gpp(): add missing checks trying to retrieve newly enrolled cert

Fixes #29285

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29302)

10 days agoClarify/fix encoder/decoder context docs and code
Viktor Dukhovni [Wed, 3 Dec 2025 04:24:46 +0000 (15:24 +1100)] 
Clarify/fix encoder/decoder context docs and code

In was premature to make OSSL_(EN|DE)CODER_CTX_[sg]et_finalized() be
public interfaces.  Forunately, these have not yet appeared outside the
"master" branch, so we can still retract them.

Also, in the case of decoders, the implementation failed to take into
account that the context was duplicated before it was returned to the
user, and the duplicated copy failed to copy the "finalized" field.

This commit also renames "finalized" to "frozen", because
finalisation is a misleading term in this context, it suggests
resource reclamation during garbage collection or deallocation,
not marking a structure partly immutable.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/29206)

10 days agoPer-key encoding formats for ML-KEM and ML-DSA
Viktor Dukhovni [Mon, 24 Nov 2025 13:37:49 +0000 (00:37 +1100)] 
Per-key encoding formats for ML-KEM and ML-DSA

We support selection of ML-KEM and ML-DSA key formats on input and
output at the provider level, these are essentially global defaults,
in effect for the lifetime of the process.

Unfortunately, the JAVA interface in openssl-jostle needs to be able to
output a specific key in seed-only form.  To that end, this PR
introduces a new "output-formats" PKEY encoding parameter, that can be used
with OSSL_ENCODER_CTX_set_params(3) when encoding a key to PKCS#8, after
using OSSL_ENCODER_CTX_new_for_key(3), rather than i2d_PrivateKey(3),
i2d_PKCS8PrivateKey(3) or PEM equivalents.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/29206)

10 days agoseed_src_jitter: prevent hypothetical getrandom fallback
Dimitri John Ledkov [Wed, 26 Nov 2025 11:51:33 +0000 (11:51 +0000)] 
seed_src_jitter: prevent hypothetical getrandom fallback

In a hypothetical scenario that jent_entropy_init_ex fails, or if
get_jitter_random-value fails, there are a few unexpected
posibilities.

If jent_entropy_init_ex fails, the seed initialisation may return NULL
and then DRBG will be initiated with NULL seed, which will
automatically fallback to os-seed, which will escape module boundary
(if this jitter rng is from the fips module), and call getrandom
syscall.

And separately if get_jitter_random_value fails, it may put DRBG in an
error state, but it might not put the FIPS module in error state, like
it should as per the ISO standard.

To instrument these things, I had to create tampered
jitterentropy-library that always returns errors for init_ex and
read_entropy apis, and then use gdb tracing on both libcrypto.so and
fips.so.

The most minimal solution to above hypothetical error code paths, is
to simply call ossl_set_error_state. It is either harmless, or in case
of fips-jitter will correctly put the FIPS module into error state and
prevent any further operation; and cruitially prevent silent fallback
to getrandom syscall.

Note it is unlikely that this ever was out of compliance, as often
enough getrandom syscall goes to a kernel with validated entropy
source; and openssl fips module still did reject sampling which is too
entropy source compliant.

Nonetheless it is good to fix this hypothetical error path, and
backport this to 3.5 and up.

This is similar / additional fixes, to this previous change:
- https://github.com/openssl/openssl/pull/25957
- https://github.com/openssl/openssl/commit/b9886a6f3483e0525596d3b3956416282038da82

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/29226)

10 days agocrypto: Remove internal ENGINE usage from the subdir
Norbert Pocs [Mon, 22 Sep 2025 07:10:19 +0000 (09:10 +0200)] 
crypto: Remove internal ENGINE usage from the subdir

Engines can be removed safely from static and internal functions
clearing out our codebase.

Resolves: https://github.com/openssl/project/issues/1625

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@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/29305)

10 days agoDocs: Clean up ENGINE mentions
Norbert Pocs [Thu, 13 Nov 2025 14:15:41 +0000 (15:15 +0100)] 
Docs: Clean up ENGINE mentions

Engines are removed and the documentation should reflect that, even with
deprecated and legacy API.

Resolves: https://github.com/openssl/project/issues/1366

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@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/29305)

10 days agoDocs: Update ENGINE_add.pod to reflect the engine removal
Norbert Pocs [Thu, 13 Nov 2025 13:28:56 +0000 (14:28 +0100)] 
Docs: Update ENGINE_add.pod to reflect the engine removal

Resolves: https://github.com/openssl/project/issues/1366

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@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/29305)

10 days agoRemove engine related crypto_device option
Norbert Pocs [Fri, 14 Nov 2025 13:31:29 +0000 (14:31 +0100)] 
Remove engine related crypto_device option

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@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/29305)

10 days agoapps: Remove opt_legacy_okay function
Norbert Pocs [Thu, 13 Nov 2025 14:53:28 +0000 (15:53 +0100)] 
apps: Remove opt_legacy_okay function

The function used to check for ENGINEs to determine if a legacy code
path is available, but it makes no sense to keep it after the ENGINE
removal, as the legacy path will always fail.

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@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/29305)

10 days agoRemove no longer needed macro argument
Milan Broz [Tue, 2 Dec 2025 11:51:08 +0000 (12:51 +0100)] 
Remove no longer needed macro argument

Resolves: https://github.com/openssl/project/issues/1736

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@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/29305)

10 days agoUse better description of macros purpose in engine.h
Milan Broz [Tue, 2 Dec 2025 11:37:54 +0000 (12:37 +0100)] 
Use better description of macros purpose in engine.h

Resolves: https://github.com/openssl/project/issues/1735

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@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>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove internal crypto/engineerr.h header
Milan Broz [Fri, 28 Nov 2025 14:56:34 +0000 (15:56 +0100)] 
Remove internal crypto/engineerr.h header

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove engine.h includes for internal code.
Milan Broz [Tue, 25 Nov 2025 11:03:24 +0000 (12:03 +0100)] 
Remove engine.h includes for internal code.

This should no be used anywhere, as typedef for ENGINE is in types.h.

Only apps should include this header for compatibility stubs.

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove *_get0_engine() API calls
Milan Broz [Thu, 27 Nov 2025 08:41:57 +0000 (09:41 +0100)] 
Remove *_get0_engine() API calls

Resolves: https://github.com/openssl/project/issues/1337

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoci: Remove no longer supported config options
Milan Broz [Tue, 25 Nov 2025 18:47:58 +0000 (19:47 +0100)] 
ci: Remove no longer supported config options

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoMake no-engine config permanently set.
Milan Broz [Tue, 25 Nov 2025 16:45:53 +0000 (17:45 +0100)] 
Make no-engine config permanently set.

It enables configuration defines:
OPENSSL_NO_DYNAMIC_ENGINE
OPENSSL_NO_STATIC_ENGINE
OPENSSL_NO_ENGINE

Fixes openssl/project#1711

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove engine-related tests
Milan Broz [Tue, 25 Nov 2025 16:18:46 +0000 (17:18 +0100)] 
Remove engine-related tests

As engines are no longer included in test, these configuration
options make no longer sense.

All other test should be already enabled.

Fixes openssl/project#1376

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove engine.num and make helper functions for engine loading stubs.
Milan Broz [Tue, 25 Nov 2025 13:23:05 +0000 (14:23 +0100)] 
Remove engine.num and make helper functions for engine loading stubs.

Fixes openssl/project#1420

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@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>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove OPENSSL_INIT_ENGINE_* definitions
Norbert Pocs [Fri, 21 Nov 2025 13:04:20 +0000 (14:04 +0100)] 
Remove OPENSSL_INIT_ENGINE_* definitions

Keeping OPENSSL_INIT_ENGINE_ALL_BUILTIN to be defined always to zero as
it might be the most used one outside of the library, meanwhile keeping
the others undefined unless OPENSSL_ENGINE_STUBS is defined.

Resolves: https://github.com/openssl/project/issues/1428

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove ssl_evp_md_fetch()
Norbert Pocs [Fri, 21 Nov 2025 14:24:21 +0000 (15:24 +0100)] 
Remove ssl_evp_md_fetch()

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Paul Yang <paulyang.inf@gmail.com>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@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/29305)

10 days agoRefactor ssl_evp_cipher_fetch()
Norbert Pocs [Fri, 21 Nov 2025 13:52:32 +0000 (14:52 +0100)] 
Refactor ssl_evp_cipher_fetch()

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Paul Yang <paulyang.inf@gmail.com>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@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/29305)

10 days agoClear util dir from engines
Norbert Pocs [Thu, 20 Nov 2025 16:59:16 +0000 (17:59 +0100)] 
Clear util dir from engines

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Paul Yang <paulyang.inf@gmail.com>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@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/29305)

10 days agoClear ssl dir from engines
Norbert Pocs [Thu, 20 Nov 2025 16:39:16 +0000 (17:39 +0100)] 
Clear ssl dir from engines

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Paul Yang <paulyang.inf@gmail.com>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@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/29305)

10 days agoClear providers dir from engines
Norbert Pocs [Thu, 20 Nov 2025 15:13:29 +0000 (16:13 +0100)] 
Clear providers dir from engines

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Paul Yang <paulyang.inf@gmail.com>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@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/29305)

10 days agoProviders: Remove OSSL_ALG_PARAM_ENGINE
Norbert Pocs [Thu, 20 Nov 2025 15:11:27 +0000 (16:11 +0100)] 
Providers: Remove OSSL_ALG_PARAM_ENGINE

Resolves: https://github.com/openssl/project/issues/1427

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Paul Yang <paulyang.inf@gmail.com>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Tomas Mraz <tomas@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/29305)

10 days agoMention ENGINE removal in CHANGES and NEWS
Norbert Pocs [Thu, 13 Nov 2025 11:24:57 +0000 (12:24 +0100)] 
Mention ENGINE removal in CHANGES and NEWS

Resolves: https://github.com/openssl/project/issues/1423

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Paul Yang <paulyang.inf@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoIgnore unused arguments warnings in engine.h stubs.
Milan Broz [Tue, 11 Nov 2025 10:48:41 +0000 (11:48 +0100)] 
Ignore unused arguments warnings in engine.h stubs.

This add pragma setting for gcc an clang compilers.

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoDefine stubs for other ENGINE-related legacy API and revert legacy errors definitions.
Milan Broz [Thu, 6 Nov 2025 08:38:44 +0000 (09:38 +0100)] 
Define stubs for other ENGINE-related legacy API and revert legacy errors definitions.

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoUse stub declarations in engine.h
Milan Broz [Mon, 27 Oct 2025 14:21:26 +0000 (15:21 +0100)] 
Use stub declarations in engine.h

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoTemporary disable ENGINE_* docs tests.
Milan Broz [Wed, 5 Nov 2025 08:59:15 +0000 (09:59 +0100)] 
Temporary disable ENGINE_* docs tests.

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove ENGINE symbols from API.
Milan Broz [Thu, 11 Sep 2025 10:55:55 +0000 (12:55 +0200)] 
Remove ENGINE symbols from API.

Note, that engine.h now does not contain any real forward declarations,
so it should be excluded from the symbols parsing.

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove crypto/engine dir.
Milan Broz [Wed, 10 Sep 2025 09:42:27 +0000 (11:42 +0200)] 
Remove crypto/engine dir.

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove top-level engines dir.
Milan Broz [Tue, 9 Sep 2025 12:59:14 +0000 (14:59 +0200)] 
Remove top-level engines dir.

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoAdditonal removals of engine references in tests/*
Neil Horman [Thu, 25 Sep 2025 15:37:52 +0000 (11:37 -0400)] 
Additonal removals of engine references in tests/*

Spotted by @andrewkdinh, some extra notes about/useages of engines that
are now vestigial.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoremove dasync engine test from test_rand
Neil Horman [Thu, 11 Sep 2025 20:09:56 +0000 (16:09 -0400)] 
remove dasync engine test from test_rand

We're removing the engine, so we don't need to test this anymore.

NOTE: This also removes the engine skip check from the test, and this
breaks testing until such time as PR #28461 is merged (which replaces
the remaining engine test with a provider).

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoDon't enable engines on sysdefault tests
Neil Horman [Thu, 11 Sep 2025 20:00:17 +0000 (16:00 -0400)] 
Don't enable engines on sysdefault tests

With engine removal, we expect that init flag to disappear, so stop
using it here.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoremove afalg tests
Neil Horman [Thu, 11 Sep 2025 19:39:44 +0000 (15:39 -0400)] 
remove afalg tests

We have a specific test suite that exercizes the afalg engine, that is
becoming useless with engine removal.

I had considered that we should perhaps convert this into a provider,
but having looked at the engine itself, it only offers implementations
for AES-128, AES-192 and AES-256.  Given that the default provider
offers these algorithms with hardware acceleration via the aesni
instruction set (or comparable instructions on non-x86 arches), it seems
like the only advantage the afalg engine offers is acceleration of these
ciphers on platforms that have off-cpu accelerators and no cpu based
acceleration support.

given that:
a) Most cpus have instruction based acceleration
b) We don't test with any platforms that use external accelerators

It seems like alot of investment to get no real advantage, so just
remove the test, allowing us to delete the engine entirely in another
PR.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoremove engine.h include from ssl_handshake_rtt_test.c
Neil Horman [Thu, 11 Sep 2025 19:25:49 +0000 (15:25 -0400)] 
remove engine.h include from ssl_handshake_rtt_test.c

It seems like it wasn't ever needed before, so with the removal of
engines, just get rid of it.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove dasync engine from sslapitest and sslbuffertest
Neil Horman [Thu, 11 Sep 2025 19:19:45 +0000 (15:19 -0400)] 
Remove dasync engine from sslapitest and sslbuffertest

With the impending engine removal, we don't have a need to test engine
functionality in these tests anymore, so remove the test cases that make
use of the dasync engine here.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoremove engine references from evp_extra_test
Neil Horman [Thu, 11 Sep 2025 18:46:18 +0000 (14:46 -0400)] 
remove engine references from evp_extra_test

The evp_extra_test code makes use of the dasync engine to ensure that we
can do evp operations (signatures and ciphers) with an engine.

The dasync engine is used for this purpose, but it does not exercize any
specific pipeline functionality.

Given that engines are getting removed, the engine tests here I think
can just be removed.

Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove ENGINESDIR variable and engines installation from Makefiles.
Milan Broz [Fri, 19 Sep 2025 11:03:07 +0000 (13:03 +0200)] 
Remove ENGINESDIR variable and engines installation from Makefiles.

For compatibility reasons, OPENSSL_ENGINES_DIR and OPENSSL_INFO_ENGINES_DIR
are still supported but return values like with engines disabled.

The OPENSSL_ENGINES environment variable will be removed with engine
removal later.

Resolves: https://github.com/openssl/project/issues/1425

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agocrypto/ec: Remove ENGINE usage
Norbert Pocs [Tue, 16 Sep 2025 12:58:08 +0000 (14:58 +0200)] 
crypto/ec: Remove ENGINE usage

Resolves: https://github.com/openssl/project/issues/1615

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agocrypto/dsa: Remove ENGINE usage
Norbert Pocs [Tue, 16 Sep 2025 11:18:53 +0000 (13:18 +0200)] 
crypto/dsa: Remove ENGINE usage

Resolves: https://github.com/openssl/project/issues/1614

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Richard Levitte <levitte@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove README-ENGINES.md
Milan Broz [Tue, 16 Sep 2025 12:45:23 +0000 (14:45 +0200)] 
Remove README-ENGINES.md

Resolves: https://github.com/openssl/project/issues/1616

Signed-off-by: Milan Broz <gmazyland@gmail.com>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agop_lib.c: Remove engine from pkey_set_type
Norbert Pocs [Tue, 16 Sep 2025 08:18:54 +0000 (10:18 +0200)] 
p_lib.c: Remove engine from pkey_set_type

Resolves: https://github.com/openssl/project/issues/1437

Signed-off-by: Norbert Pocs <norbertp@openssl.org>
Reviewed-by: Neil Horman <nhorman@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)

10 days agoRemove ENGINE_TABLE and ENGINE_REF_COUNT trace documentation
Neil Horman [Mon, 15 Sep 2025 20:36:28 +0000 (16:36 -0400)] 
Remove ENGINE_TABLE and ENGINE_REF_COUNT trace documentation

As the subject indicates, with these trace categories gone, we shouldn't
reference them in the docs anymore.

Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Saša Nedvědický <sashan@openssl.org>
Reviewed-by: Eugene Syromiatnikov <esyr@openssl.org>
Reviewed-by: Norbert Pocs <norbertp@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/29305)