Hi Enric,
Thanks for chiming in.
On 6/4/26 8:22 AM, Enric Balletbo i Serra wrote:
Hi Quentin and Eddie,
On Fri, May 22, 2026 at 4:38 PM Quentin Schulz <[email protected]> wrote:
Hi Eddie,
On 5/22/26 12:29 AM, Eddie Kovsky wrote:
On 05/12/26, Quentin Schulz wrote:
Hi Eddie,
On 4/29/26 8:02 PM, Eddie Kovsky wrote:
[...]
My understanding is that to fix the Fedora build issues without
breaking existing workflows, Eddie just needs to adjust the control
flow for v4 like you suggested:
If the user explicitly commands an engine via -N, prioritize the
legacy engine path—guarding the engine headers and blocks with #ifndef
OPENSSL_NO_ENGINE instead of a blanket OpenSSL version check.
If no engine flag is passed, route seamlessly into the new Provider API backend.
Fix the build issue by checking whether OpenSSL engines are supported
(and no, a version check is not enough for OpenSSL 3.x (it is for
OpenSSL 4.x though)). If they are, keep the same logic as today. If they
aren't, fail hard when an engine is requested, otherwise keep the same
logic as today. Make use of #ifdef to guard code that cannot compile
when engine support is disabled and you should be good to go. This will
still fail unit tests because we are testing and building a dummy engine
regardless of support. But last time I checked (years ago), many
unrelated unit tests are also failing on Fedora, so it wouldn't be a
deal breaker for me (and I have some "interesting" ideas on how to
handle this in a later commit).
Also, please do not use USE_PKCS11_PROVIDER when it has nothing to do
with PKCS11 provider. I understand this was imported from the kernel,
but they do only support PKCS11 as far as I could tell, so it makes
sense for them.
I honestly don't want to see the Provider/Store API being used only for
loading simple keys. It already works without the provider API and isn't
deprecated as far as I know? Let someone who's interested (my employer
is, therefore I have to be :) ) in supporting OpenSSL providers do the
work of implementing support for OpenSSL providers, with unit tests,
backward compatibility with engines through the OpenSSL provider API, etc...
For PKCS11, we have some interesting logic for the OpenSSL engine, and I
think we may want something similar for the OpenSSL provider.
Note that OpenSSL 1.x is still used in some distros (Bullseye, Slackware
15, AlmaLinux/RockyLinux 8 according to pkgs.org) so I think it's still
premature to entirely remove OpenSSL engine support (and OpenSSL 1.x
doesn't have the provider API).
This fixes the compilation bottleneck on some distros, completely
preserves legacy engine setups, and allows real providers URI
string-mangling issue to be handled as clean, independent follow-up
patches.
We need proper unit tests for supporting OpenSSL providers (and not only
a local key using the Provider/Store API). I'll repeat it once more, I
have local WIP (but tested) patches for OpenSSL provider support, so I
don't think it makes sense for someone to redo the work. The fact this
was started back in November 2025 and it hasn't been really pushed hard
since kinda hinted at this not being a big issue for RH (or they keep
their stuff downstream and upstream can take the time it'll take), hence
why I was waiting for Eddie to answer/send a new version (I've also been
swamped at work for a few weeks, which should end soon hopefully, so it
also worked out for me to wait on Eddie).
Does it makes sense?
Somewhat. I still don't understand the obsession with the Provider API
when the issue (as I understand it) is "I cannot compile OpenSSL engine
support and I don't need it".
Cheers,
Quentin