1
0
mirror of https://github.com/php/php-src.git synced 2026-04-23 07:58:20 +02:00
Commit Graph

784 Commits

Author SHA1 Message Date
Remi Collet 32c5ce3451 Implement GH-13514 PASSWORD_ARGON2 from OpenSSL 3.2 (#13635)
* Implement GH-13514 PASSWORD_ARGON2 from OpenSSL 3.2

* simplify init/shutdown

* use php_base64_encode_ex

* - rename macros - use openssl RAND_bytes - CS

* add --with-openssl-argon2 build option

* check OSSL_KDF_PARAM_ARGON2_LANES instead of OSSL_set_max_threads

* Cleanup and CS

* save/restore old threads config + CS

* remove unneeded check
2024-09-02 13:01:09 +02:00
Gina Peter Bnayard 5853cdb73d Use "must not" instead of "cannot" wording 2024-08-21 21:12:17 +01:00
Tim Düsterhus 29f98e7485 Replace @deprecated by #[\Deprecated] for internal functions / class constants (#14750)
Co-authored-by: Gina Peter Banyard <girgias@php.net>
Co-authored-by: Niels Dossche <7771979+nielsdos@users.noreply.github.com>
2024-07-10 16:47:31 +02:00
Arnaud Le Blanc e63e1afd84 Merge branch 'PHP-8.3'
* PHP-8.3:
  Fix test race condition
2024-07-03 19:17:59 +02:00
Arnaud Le Blanc 6b54d3b26f Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  Fix test race condition
2024-07-03 19:17:43 +02:00
Arnaud Le Blanc 070779c874 Fix test race condition
Closes GH-14790
2024-07-03 19:17:13 +02:00
Jakub Zelenka 82e6040cff Merge branch 'PHP-8.2' into PHP-8.3 2024-06-09 12:40:51 +01:00
Jakub Zelenka 46013f1c55 Skip test for OpenSSL bug #74341 which is not a bug 2024-06-09 12:40:24 +01:00
Jakub Zelenka 98736e8bbd Fix GH-13343: openssl_x509_parse should not allow omitted seconds in UTCTimes
Closes GH-14439

Signed-off-by: Jakub Zelenka <bukka@php.net>
2024-06-09 12:35:05 +01:00
Manuel Mausz 5f2a0c8383 Add support for Curve25519 + Curve448 based keys
For openssl_pkey_get_details we export the priv+pub parameters.

ED25519/ED448 do not support streaming, so we need to use
EVP_Digest{Sign,Verify} instead. In general the older EVP_{Sign,Verify}
interface should be avoided as the key is passed very late.
See BUGS section in OpenSSL manpages of EVP_{Sign,Verify}Final

Additionally per requirement we need to allow sign/verify without
digest. So we need to allow passing 0 as digest. In OpenSSL 3.0+ this also
corresponds to the default digest (see EVP_PKEY_get_default_digest_name).

For CSR creation we need to allow "null" as digest_alg option.

Closes GH-14052
2024-05-27 12:52:57 +01:00
Ilija Tovilo f07f3b4078 Merge branch 'PHP-8.3'
* PHP-8.3:
  [skip ci] Fix typo
2024-05-13 13:08:56 +02:00
Ilija Tovilo 614323e4b6 Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Fix typo
2024-05-13 13:08:49 +02:00
Ilija Tovilo fa7933ef17 [skip ci] Fix typo 2024-05-13 13:08:28 +02:00
Ilija Tovilo 7a20168800 Merge branch 'PHP-8.3'
* PHP-8.3:
  [skip ci] Adjust port for gh13860.phpt
2024-05-13 12:17:12 +02:00
Ilija Tovilo 018ee8dc6e Merge branch 'PHP-8.2' into PHP-8.3
* PHP-8.2:
  [skip ci] Adjust port for gh13860.phpt
2024-05-13 12:17:05 +02:00
Ilija Tovilo 91c53e43c4 [skip ci] Adjust port for gh13860.phpt
Port 64325 is already used in ext/standard/tests/streams/gh11418.phpt. The test
randomly times out, and it's unclear whether it might be related to the
conflicting port.
2024-05-13 12:16:57 +02:00
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