1
0
mirror of https://github.com/php/php-src.git synced 2026-04-29 03:03:26 +02:00
Commit Graph

768 Commits

Author SHA1 Message Date
Jakub Zelenka 1b015947a0 Merge branch 'PHP-8.3' 2024-04-19 14:10:18 +01:00
Jakub Zelenka 353571e29b Merge branch 'PHP-8.2' into PHP-8.3 2024-04-19 14:09:53 +01:00
Jakub Zelenka 04b864e566 Fix GH-13806: openssl_x509_parse_basic test fails with OpenSSL 3.2+ (#13961)
Closes GH-13961
2024-04-19 14:09:22 +01:00
Niels Dossche 68592c84a1 Merge branch 'PHP-8.3'
* PHP-8.3:
  Improve stability of test gh13860.phpt
2024-04-07 22:50:28 +02:00
Niels Dossche 73218e063a Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Improve stability of test gh13860.phpt
2024-04-07 22:50:09 +02:00
Niels Dossche a86256c950 Improve stability of test gh13860.phpt 2024-04-07 22:49:58 +02:00
Niels Dossche 1e4bb039eb Merge branch 'PHP-8.3'
* PHP-8.3:
  Fix GH-13860: Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket
2024-04-07 21:37:09 +02:00
Niels Dossche 92136640aa Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fix GH-13860: Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket
2024-04-07 21:37:01 +02:00
Niels Dossche 2aae14c8a9 Fix GH-13860: Incorrect PHP_STREAM_OPTION_CHECK_LIVENESS case in ext/openssl/xp_ssl.c - causing use of dead socket
php_socket_errno() may return a stale value when recv returns a
value >= 0. As such, the liveness check is wrong.
This is the same bug as #70198 (fixed in GH-1456). So we fix it in the
same way.

Closes GH-13895.
2024-04-07 21:35:43 +02:00
Jakub Zelenka bd3b684e04 Merge branch 'PHP-8.3' 2024-03-30 18:37:51 +00:00
Jakub Zelenka b7992d4eb7 Fix OpenSSL error string tests 2024-03-30 18:36:34 +00:00
Jakub Zelenka 4d7e3fcb86 Merge branch 'PHP-8.3' 2024-03-29 19:40:03 +00:00
Jakub Zelenka 9cf0f30193 Merge branch 'PHP-8.2' into PHP-8.3 2024-03-29 19:39:15 +00:00
Jakub Zelenka 11caf094f1 Fix GH-13620: Failing openssl_private_decrypt tests
Use OPENSSL_PKCS1_OAEP_PADDING padding in tests

Closes GH-13667
2024-03-29 19:33:37 +00:00
Jakub Zelenka 09f5e7921e Merge branch 'PHP-8.3' 2024-03-29 16:33:44 +00:00
Jakub Zelenka 5231e71bfd Merge branch 'PHP-8.2' into PHP-8.3 2024-03-29 16:33:26 +00:00
Jakub Zelenka 100258ffd6 Fix test for GH-10495: feof on OpenSSL stream hangs 2024-03-29 16:32:23 +00:00
Jakub Zelenka af41d58d6f Merge branch 'PHP-8.3' 2024-03-29 16:25:40 +00:00
Jakub Zelenka f4a9ae90f9 Merge branch 'PHP-8.2' into PHP-8.3 2024-03-29 16:25:09 +00:00
Jakub Zelenka c1bd9a932a Fix GH-10495: feof on OpenSSL stream hangs indefinitely
This fixes the issue with unbounded waiting on SSL_peek which can happen
when only part of the record is fetched. It makes socket non blocking so
it is possible to verify if OpenSSL is expecting some more data or if
there is an error.

This also fixes bug #79501

Closes GH-13487
2024-03-29 16:22:22 +00:00
Ayesh Karunaratne 3de3e137bf ext/openssl: Bump minimum required OpenSSL version to 1.1.1
Bumps the minimum required OpenSSL version from 1.0.2 to 1.1.1.

OpenSSL 1.1.1 is an LTS release, but has reached[^1] EOL from upstream. However, Linux distro/OS vendors
continue to ship OpenSSL 1.1.1, so 1.1.1 was picked as the minimum. The current minimum 1.0.2 reached
EOL in 2018.

Bumping the minimum required OpenSSL version makes it possible for ext-openssl to remove a bunch of
conditional code, and assume that TLS 1.3 (shipped with OpenSSL 1.1.1) will be supported everywhere.

 - Debian buster: 1.1.1[^2]
 - Ubuntu 20.04: 1.1.1[^3]
 - CentOS/RHEL 7: 1.0.2
 - RHEL 8/Rocky 8/EL 8: 1.1.1
 - Fedora 38: 3.0.9 (`openssl11` provides OpenSSL 1.1 as well)

RHEL/CentOS 7 reaches EOL mid 2024, so for PHP 8.4 scheduled towards the end of this year, we can safely
bump the minimum OpenSSL version.

[^1]: https://www.openssl.org/blog/blog/2023/03/28/1.1.1-EOL/index.html
[^2]: https://packages.debian.org/buster/libssl-dev
[^3]: https://packages.ubuntu.com/focal/libssl-dev
2024-03-23 15:12:06 +00:00
Ilija Tovilo d667e73f46 Merge branch 'PHP-8.3'
* PHP-8.3:
  [skip ci] Mark another openssl test as xfail
2024-03-10 15:15:40 +01:00
Ilija Tovilo be72bc4b07 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Mark another openssl test as xfail
2024-03-10 15:15:32 +01:00
Ilija Tovilo bc6a1c933f [skip ci] Mark another openssl test as xfail 2024-03-10 15:15:12 +01:00
Ilija Tovilo a8d575ecef Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Mark problematic openssl tests as xfail for now
2024-03-08 19:09:27 +01:00
Ilija Tovilo 932982f867 [skip ci] Mark problematic openssl tests as xfail for now 2024-03-08 19:09:14 +01:00
Ilija Tovilo 089ef2ac61 Merge branch 'PHP-8.3'
* PHP-8.3:
  [skip ci] Mark problematic openssl tests as xfail for now
2024-03-07 17:54:54 +01:00
Ilija Tovilo c3add14b43 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Mark problematic openssl tests as xfail for now
2024-03-07 17:54:46 +01:00
Ilija Tovilo fb423fd1bc [skip ci] Mark problematic openssl tests as xfail for now 2024-03-07 17:54:12 +01:00
Peter Kokot 085da2725f Merge branch 'PHP-8.3'
* PHP-8.3:
  Use EXTENSIONS instead of SKIPIF sections in *.phpt
2024-01-31 11:20:56 +01:00
Peter Kokot 8d5fc8d23f Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Use EXTENSIONS instead of SKIPIF sections in *.phpt
2024-01-31 11:20:44 +01:00
Peter Kokot 218a93b898 Use EXTENSIONS instead of SKIPIF sections in *.phpt
This also fixes skipped tests due to different naming "zend-test"
instead of "zend_test" and "PDO" instead of "pdo":

- ext/dom/tests/libxml_global_state_entity_loader_bypass.phpt
- ext/simplexml/tests/libxml_global_state_entity_loader_bypass.phpt
- ext/xmlreader/tests/libxml_global_state_entity_loader_bypass.phpt
- ext/zend_test/tests/observer_sqlite_create_function.phpt

EXTENSIONS section is used for the Windows build to load the non-static
extensions.

Closes GH-13276
2024-01-31 11:18:21 +01:00
Vincent JARDIN 98e2948ca7 ext/openssl: Add X509 purpose constants.
- X509_PURPOSE_OCSP_HELPER.
- X509_PURPOSE_TIMESTAMP_SIGN.
- Also X509_PURPOSE_ANY is ok since 1.0.1+

Close GH-13149
2024-01-19 07:06:51 +00:00
Jakub Zelenka e0679f3d5e Introduce new serial_hex parameter to openssl_csr_sign
Co-authored-by: Florian Sowade <f.sowade@suora.com>

Closes GH-13023
Closes GH-9851
2024-01-05 14:40:22 +00:00
Jakub Zelenka 3f82da0a4e Add test for openssl_csr_new multi dn entry 2023-12-24 13:53:13 +00:00
Jakub Zelenka e8fde6bd92 Fix bug #80269: OpenSSL sets Subject wrong with extraattribs parameter
Closes GH-12979
2023-12-21 16:51:13 +00:00
Jakub Zelenka b3947744c7 Merge branch 'PHP-8.2' into PHP-8.3 2023-11-17 19:43:34 +00:00
Jakub Zelenka f90b40416f Fix #50713: openssl_pkcs7_verify() may ignore untrusted CAs
Closes GH-12499
2023-11-17 19:42:28 +00:00
Jakub Zelenka ac07b6e7ac Merge branch 'PHP-8.2' into PHP-8.3 2023-10-22 13:23:10 +01:00
Jakub Zelenka b2f6b6ea9c Merge branch 'PHP-8.1' into PHP-8.2 2023-10-22 13:21:56 +01:00
Jakub Zelenka 83a242ec0c Fix GH-12489: Missing sigbio creation checking in openssl_cms_verify
Closes GH-12490
2023-10-22 13:20:43 +01:00
Eno 0dadd6616a Improve openssl ext to generate EC keys with custom EC parameters
This change extends supported parameter when generating EC keys.

Specifically following parameters are now supported: p, a, b, order,
generator, seed, cofactory, g_x, g_y, x, y and d.

Those parameters can be passed to ec field in openssl_pkey_new options.

It also fixes some issues openssl_pkey_get_details related to SM2
support.

Closes GH-9991
2023-07-06 15:51:50 +01:00
Jakub Zelenka 45eae90dab Merge branch 'PHP-8.2' 2023-06-09 16:39:02 +01:00
Jakub Zelenka 58141f062b Merge branch 'PHP-8.1' into PHP-8.2 2023-06-09 16:38:14 +01:00
James Lucas fd09728bb6 Fix bug GH-9356: Incomplete SAN validation of IPv6 address
IPv6 addresses are valid entries in subjectAltNames. Certificate
Authorities may issue certificates including IPv6 addresses except
if they fall within addresses in the RFC 4193 range. Google and
CloudFlare provide IPv6 addresses in their DNS over HTTPS services.

Internal CAs do not have those restrictions and can issue Unique
local addresses in certificates.

Closes GH-11145
2023-06-09 16:33:46 +01:00
Florian Moser 4d4b9604ca Fix GH-11054: Reset OpenSSL errors when using a PEM public key
The error happens when the PEM contains a public key, as it will be
first tried to be parsed as a certificate. The parsing as a certificate
fails, which then leads to a corresponding error tracked by PHP with
the next call to php_openssl_store_errors().

This change introduces an error marking to be able to reset the stored
errors to the state before trying the certificate.

Closes GH-11055
2023-05-06 11:56:31 +01:00
Daniel Kesselberg fa10dfcc81 Add PKCS7_NOOLDMIMETYPE and OPENSSL_CMS_OLDMIMETYPE
PKCS7_NOOLDMIMETYPE to use Content-Type application/pkcs7-mime
OPENSSL_CMS_OLDMIMETYPE to use Content-Type application/x-pkcs7-mime

SMIME_write_PKCS7 and SMIME_write_CMS are using SMIME_write_ASN1_ex.
The Content-Type application/x-pkcs7-mime is generated with the flag SMIME_OLDMIME (0x400).[^1]

SMIME_write_PKCS7 set SMIME_OLDMIME by default.[^2]
SMIME_write_CMS does not.[^3]

I picked OPENSSL_CMS_OLDMIMETYPE over OPENSSL_CMS_NOOLDMIMETYPE because that's what the flag actually does.

[^1]: https://github.com/openssl/openssl/blob/9a2f78e14a67eeaadefc77d05f0778fc9684d26c/crypto/asn1/asn_mime.c#L248-L251
[^2]: https://github.com/openssl/openssl/blob/9a2f78e14a67eeaadefc77d05f0778fc9684d26c/crypto/pkcs7/pk7_mime.c#L41-L43
[^3]: https://github.com/openssl/openssl/blob/9a2f78e14a67eeaadefc77d05f0778fc9684d26c/crypto/cms/cms_io.c#L93

Signed-off-by: Daniel Kesselberg <mail@danielkesselberg.de>
2023-05-06 11:12:31 +01:00
Jakub Holubansky 5a4083181b ext/openssl: pass ini options to extra processes in tests 2023-04-17 12:25:35 +01:00
George Peter Banyard 21e5dfc8ed Merge branch 'PHP-8.2'
* PHP-8.2:
  Fix duplicated FILE section in test bug80747.phpt
2023-01-23 13:51:26 +00:00
George Peter Banyard 81732056fe Merge branch 'PHP-8.1' into PHP-8.2
* PHP-8.1:
  Fix duplicated FILE section in test bug80747.phpt
2023-01-23 13:51:13 +00:00