php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Doc Bug #81540 OpenSSL 3.0.0 is not supported prior to 8.1.0
Submitted: 2021-10-19 05:19 UTC Modified: 2022-03-28 18:56 UTC
Votes:1
Avg. Score:4.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:1 (100.0%)
Same OS:1 (100.0%)
From: fred5 at originsystems dot co dot za Assigned: bukka (profile)
Status: Closed Package: OpenSSL related
PHP Version: 8.0.11 OS: CentOS 7.9
Private report: No CVE-ID: None
 [2021-10-19 05:19 UTC] fred5 at originsystems dot co dot za
Description:
------------
Many errors related to openssl 3.0.0 begin appearing midway through the PHP build. The build failed.

A build with openssl 1.1.1l completes successfully.

Below, I have listed the first errors / warnings that appeared below.

Generally, php.net recommends we upgrade to the latest openssl and I would thus like to know whether openssl 3.0.0 (the latest version) is currently supported by PHP or whether we should stick with 1.1.1l

thanks

----------------------------------------------------------------------------
In file included from /SystemsDevelopment/temp/osWEB/source/php-8.0.11/main/php.h:439:0,
                 from /SystemsDevelopment/temp/osWEB/source/php-8.0.11/ext/openssl/openssl.c:27:
/SystemsDevelopment/temp/osWEB/source/php-8.0.11/ext/openssl/openssl.c: In function \u2018zm_startup_openssl\u2019:
/SystemsDevelopment/temp/osWEB/source/php-8.0.11/ext/openssl/openssl.c:1224:51: error: \u2018RSA_SSLV23_PADDING\u2019 undeclared (first use in this function)
  REGISTER_LONG_CONSTANT("OPENSSL_SSLV23_PADDING", RSA_SSLV23_PADDING, CONST_CS|CONST_PERSISTENT);
                                                   ^
/SystemsDevelopment/temp/osWEB/source/php-8.0.11/Zend/zend_constants.h:50:105: note: in definition of macro \u2018REGISTER_LONG_CONSTANT\u2019
 #define REGISTER_LONG_CONSTANT(name, lval, flags)  zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number)
                                                                                                         ^
/SystemsDevelopment/temp/osWEB/source/php-8.0.11/ext/openssl/openssl.c:1224:51: note: each undeclared identifier is reported only once for each function it appears in
  REGISTER_LONG_CONSTANT("OPENSSL_SSLV23_PADDING", RSA_SSLV23_PADDING, CONST_CS|CONST_PERSISTENT);
                                                   ^
/SystemsDevelopment/temp/osWEB/source/php-8.0.11/Zend/zend_constants.h:50:105: note: in definition of macro \u2018REGISTER_LONG_CONSTANT\u2019
 #define REGISTER_LONG_CONSTANT(name, lval, flags)  zend_register_long_constant((name), sizeof(name)-1, (lval), (flags), module_number)
                                                                                                         ^
/SystemsDevelopment/temp/osWEB/source/php-8.0.11/ext/openssl/openssl.c: In function \u2018php_openssl_generate_private_key\u2019:
/SystemsDevelopment/temp/osWEB/source/php-8.0.11/ext/openssl/openssl.c:3690:7: warning: \u2018RSA_new\u2019 is deprecated (declared at /SystemsDevelopment/temp/osWEB/build/openssl-3.0.0/include/openssl/rsa.h:201): Since OpenSSL 3.0 [-Wdeprecated-declarations]
       rsaparam = RSA_new();
       ^
/SystemsDevelopment/temp/osWEB/source/php-8.0.11/ext/openssl/openssl.c:3692:7: warning: \u2018RSA_generate_key_ex\u2019 is deprecated (declared at /SystemsDevelopment/temp/osWEB/build/openssl-3.0.0/include/openssl/rsa.h:260): Since OpenSSL 3.0 [-Wdeprecated-declarations]
       if (rsaparam == NULL || !RSA_generate_key_ex(rsaparam, req->priv_key_bits, bne, NULL)) {
       ^
/SystemsDevelopment/temp/osWEB/source/php-8.0.11/ext/openssl/openssl.c:3694:8: warning: \u2018RSA_free\u2019 is deprecated (declared at /SystemsDevelopment/temp/osWEB/build/openssl-3.0.0/include/openssl/rsa.h:293): Since OpenSSL 3.0 [-Wdeprecated-declarations]

----------------------------------------------------------------------------



Patches

Add a Patch

Pull Requests

Add a Pull Request

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2021-10-19 08:25 UTC] cmb@php.net
-Type: Bug +Type: Documentation Problem
 [2021-10-19 08:25 UTC] cmb@php.net
To my knowlege, OpenSSL 3 is only supported as of PHP 8.1.0;
sticking with OpenSSL 1.1.1 for older PHP branches should be fine.
 [2021-10-19 08:26 UTC] cmb@php.net
-Summary: PHP build fails with openssl 3.0.0 +Summary: OpenSSL 3.0.0 is not supported prior to 8.1.0
 [2021-10-19 08:35 UTC] nikic@php.net
-Summary: OpenSSL 3.0.0 is not supported prior to 8.1.0 +Summary: Variables become null in if statements -Operating System: CentOS 7.9 +Operating System: Linux -PHP Version: 8.0.11 +PHP Version: 7.4.16
 [2021-10-19 08:35 UTC] nikic@php.net
Right. Full compatibility with OpenSSL 3.0 took a large amount of effort that I'm not willing to backport. You'll have to upgrade if you want to use OpenSSL 3.0.
 [2021-10-19 08:35 UTC] nikic@php.net
-Summary: Variables become null in if statements +Summary: OpenSSL 3.0.0 is not supported prior to 8.1.0 -Operating System: Linux +Operating System: CentOS 7.9 -PHP Version: 7.4.16 +PHP Version: 8.0.11
 [2021-10-19 08:35 UTC] nikic@php.net
Gah, autocomplete bug strikes again.
 [2021-10-19 17:43 UTC] fred5 at originsystems dot co dot za
-Status: Open +Status: Closed
 [2021-10-19 17:43 UTC] fred5 at originsystems dot co dot za
Asked and answered. Thank you.
 [2021-10-19 18:33 UTC] requinix@php.net
-Status: Closed +Status: Re-Opened -Package: Compile Failure +Package: OpenSSL related
 [2021-10-19 18:33 UTC] requinix@php.net
Answered yes, but could be mentioned in the docs.
 [2022-03-28 18:56 UTC] bukka@php.net
-Status: Re-Opened +Status: Closed -Assigned To: +Assigned To: bukka
 [2022-03-28 18:56 UTC] bukka@php.net
This is now documented in the requirements.
 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Tue Apr 23 16:01:30 2024 UTC