diff --git a/ext/curl/curl.stub.php b/ext/curl/curl.stub.php index 5dac22ae7952c..7428ecf3fd83a 100644 --- a/ext/curl/curl.stub.php +++ b/ext/curl/curl.stub.php @@ -3332,6 +3332,13 @@ * @cvalue CURLOPT_SSL_EC_CURVES */ const CURLOPT_SSL_EC_CURVES = UNKNOWN; +#if LIBCURL_VERSION_NUM >= 0x080e00 /* Available since 8.14.0 */ +/** + * @var int + * @cvalue CURLOPT_SSL_SIGNATURE_ALGORITHMS + */ +const CURLOPT_SSL_SIGNATURE_ALGORITHMS = UNKNOWN; +#endif /** * @var int * @cvalue CURLPX_BAD_ADDRESS_TYPE diff --git a/ext/curl/curl_arginfo.h b/ext/curl/curl_arginfo.h index 75be3b75c4983..a1242b32afc54 100644 --- a/ext/curl/curl_arginfo.h +++ b/ext/curl/curl_arginfo.h @@ -1,5 +1,5 @@ /* This is a generated file, edit the .stub.php file instead. - * Stub hash: 533884c442ca1146a61c0824a4f8c9628c31aae3 */ + * Stub hash: dcb11ef0974b5480ca9cb2e05fd3b9a72a355e4e */ ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_close, 0, 1, IS_VOID, 0) ZEND_ARG_OBJ_INFO(0, handle, CurlHandle, 0) @@ -888,6 +888,11 @@ static void register_curl_symbols(int module_number) REGISTER_LONG_CONSTANT("CURLE_PROXY", CURLE_PROXY, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLINFO_PROXY_ERROR", CURLINFO_PROXY_ERROR, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLOPT_SSL_EC_CURVES", CURLOPT_SSL_EC_CURVES, CONST_PERSISTENT); +#endif +#if LIBCURL_VERSION_NUM >= 0x074900 /* Available since 7.73.0 */ && LIBCURL_VERSION_NUM >= 0x080e00 /* Available since 8.14.0 */ + REGISTER_LONG_CONSTANT("CURLOPT_SSL_SIGNATURE_ALGORITHMS", CURLOPT_SSL_SIGNATURE_ALGORITHMS, CONST_PERSISTENT); +#endif +#if LIBCURL_VERSION_NUM >= 0x074900 /* Available since 7.73.0 */ REGISTER_LONG_CONSTANT("CURLPX_BAD_ADDRESS_TYPE", CURLPX_BAD_ADDRESS_TYPE, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLPX_BAD_VERSION", CURLPX_BAD_VERSION, CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CURLPX_CLOSED", CURLPX_CLOSED, CONST_PERSISTENT); diff --git a/ext/curl/interface.c b/ext/curl/interface.c index ffb7889c748b2..d3f681185ab0b 100644 --- a/ext/curl/interface.c +++ b/ext/curl/interface.c @@ -1944,6 +1944,9 @@ static zend_result _php_curl_setopt(php_curl *ch, zend_long option, zval *zvalue case CURLOPT_USERPWD: case CURLOPT_USERNAME: case CURLOPT_PASSWORD: +#if LIBCURL_VERSION_NUM >= 0x080e00 /* Available since 8.14.0 */ + case CURLOPT_SSL_SIGNATURE_ALGORITHMS: +#endif { if (Z_ISNULL_P(zvalue)) { error = curl_easy_setopt(ch->cp, option, NULL); diff --git a/ext/curl/tests/Caddyfile b/ext/curl/tests/Caddyfile index ceba97ee93971..f6f4279af8949 100644 --- a/ext/curl/tests/Caddyfile +++ b/ext/curl/tests/Caddyfile @@ -21,3 +21,8 @@ basic_auth /http-basic-auth { # bcrypt password hash for "password", calculated with 'caddy hash-password' user $2a$14$yUKl9SGqVTAAqPTzLup.DefsbXXx3kfreNnzpJOUHcIrKnr5lgef2 } + +route /ping { + templates + respond `pong` +} diff --git a/ext/curl/tests/curl_setopt_CURLOPT_SSL_SIGNATURE_ALGORITHMS.phpt b/ext/curl/tests/curl_setopt_CURLOPT_SSL_SIGNATURE_ALGORITHMS.phpt new file mode 100644 index 0000000000000..73b4abc85bd4d --- /dev/null +++ b/ext/curl/tests/curl_setopt_CURLOPT_SSL_SIGNATURE_ALGORITHMS.phpt @@ -0,0 +1,40 @@ +--TEST-- +Curl option CURLOPT_SSL_SIGNATURE_ALGORITHMS +--EXTENSIONS-- +curl +--SKIPIF-- += 8.14.0"); + +include 'skipif-nocaddy.inc'; +?> +--FILE-- + +--EXPECT-- +string(4) "pong" +bool(true) +bool(false) +string(52) "failed setting signature algorithms: 'invalid-value'" +bool(true) +string(4) "pong" +bool(true) +string(4) "pong"