Fix build with OPENSSL_NO_ENGINE
The ENGINE APIs are deprecated in OpenSSL v3, and Fedora 41 and RHEL 10 no longer ship the openssl/engine.h header by default. This allows the build to succeed as a provider without engine.h present.
https://fedoraproject.org/wiki/Changes/OpensslDeprecateEngine
I have built and loaded this locally with OpenSSL 3.2.2 (F40 and EL9 as an engine, F41+ and EL10+ as a provider), 3.1.4 (F39), and 1.1.1k (EL8); hopefully your CI will check other environments.
thank you @yselkowitz for the PR.. We will look into this.
@yselkowitz - I see that <openssl/engine.h> is not included when QAT_OPENSSL_3 is not set. In QAT Engine, QAT_OPENSSL_3 flag is common for both engine and provider modules. Despite the fact that the engines are deprecated in OpenSSL v3, QAT Engine still has engine support for OpenSSL 3.
I would put like: #ifndef QAT_OPENSSL_PROVIDER
include <openssl/engine.h>
#endif
I have updated the files and internal testing is in progress.
Looks like this was included in 1.7.0, which built successfully on Fedora without engine.h. Anything else to be done here?
@yselkowitz No.