#
b20b3647 |
| 25-Oct-2021 |
Patrick Monnerat |
mime: use percent-escaping for multipart form field and file names Until now, form field and file names where escaped using the backslash-escaping algorithm defined for multipart mails.
mime: use percent-escaping for multipart form field and file names Until now, form field and file names where escaped using the backslash-escaping algorithm defined for multipart mails. This commit replaces this with the percent-escaping method for URLs. As this may introduce incompatibilities with server-side applications, a new libcurl option CURLOPT_MIME_OPTIONS with bitmask CURLMIMEOPT_FORMESCAPE is introduced to revert to legacy use of backslash-escaping. This is controlled by new cli tool option --form-escape. New tests and documentation are provided for this feature. Reported by: Ryan Sleevi Fixes #7789 Closes #7805
show more ...
|
#
5f563495 |
| 18-Sep-2021 |
Jeffrey Tolar |
CURLOPT_MAXLIFETIME_CONN: maximum allowed lifetime for conn reuse ... and close connections that are too old instead of reusing them. By default, this behavior is disabled.
CURLOPT_MAXLIFETIME_CONN: maximum allowed lifetime for conn reuse ... and close connections that are too old instead of reusing them. By default, this behavior is disabled. Bug: https://curl.se/mail/lib-2021-09/0058.html Closes #7751
show more ...
|
#
a517378d |
| 22-Jul-2021 |
Max Dymond |
CURLOPT_PREREQFUNCTION: add new callback Triggered before a request is made but after a connection is set up Changes: - callback: Update docs and callback for pre-request c
CURLOPT_PREREQFUNCTION: add new callback Triggered before a request is made but after a connection is set up Changes: - callback: Update docs and callback for pre-request callback - Add documentation for CURLOPT_PREREQDATA and CURLOPT_PREREQFUNCTION, - Add redirect test and callback failure test - Note that the function may be called multiple times on a redirection - Disable new 2086 test due to Windows weirdness Closes #7477
show more ...
|
#
d1e7d919 |
| 26-Sep-2021 |
Mats Lindestam |
libssh2: add SHA256 fingerprint support Added support for SHA256 fingerprint in command line curl and in libcurl. Closes #7646
|
#
d5a27064 |
| 22-Aug-2021 |
Jay Satiro |
symbols-in-versions: fix CURLSSLBACKEND_QSOSSL last used version ... and also change the 'Removed' column name to 'Last' since that column is for the last version to contain the symbol.
symbols-in-versions: fix CURLSSLBACKEND_QSOSSL last used version ... and also change the 'Removed' column name to 'Last' since that column is for the last version to contain the symbol. Closes https://github.com/curl/curl/pull/7609
show more ...
|
#
b67d3ba7 |
| 31-May-2021 |
Daniel Stenberg |
curl_url_set: reject spaces in URLs w/o CURLU_ALLOW_SPACE They were never officially allowed and slipped in only due to sloppy parsing. Spaces (ascii 32) should be correctly encoded (to
curl_url_set: reject spaces in URLs w/o CURLU_ALLOW_SPACE They were never officially allowed and slipped in only due to sloppy parsing. Spaces (ascii 32) should be correctly encoded (to %20) before being part of a URL. The new flag bit CURLU_ALLOW_SPACE when a full URL is set, makes libcurl allow spaces. Updated test 1560 to verify. Closes #7073
show more ...
|
#
6793332e |
| 02-Jun-2021 |
Daniel Stenberg |
CURLE_SETOPT_OPTION_SYNTAX: new error name for wrong setopt syntax For options that pass in lists or strings that are subsequently parsed and must be correct. This broadens the scope for
CURLE_SETOPT_OPTION_SYNTAX: new error name for wrong setopt syntax For options that pass in lists or strings that are subsequently parsed and must be correct. This broadens the scope for the option previously known as CURLE_TELNET_OPTION_SYNTAX but the old name is of course still provided as a #define for existing applications. Closes #7175
show more ...
|
Revision tags: curl-7_76_1, curl-7_76_0, curl-7_75_0, curl-7_74_0, curl-7_73_0, tiny-curl-7_72_0, curl-7_72_0 |
|
#
77fc3859 |
| 13-Jul-2020 |
Gilles Vollant |
SSL: support in-memory CA certs for some backends - New options CURLOPT_CAINFO_BLOB and CURLOPT_PROXY_CAINFO_BLOB to specify in-memory PEM certificates for OpenSSL, Schannel (Windows)
SSL: support in-memory CA certs for some backends - New options CURLOPT_CAINFO_BLOB and CURLOPT_PROXY_CAINFO_BLOB to specify in-memory PEM certificates for OpenSSL, Schannel (Windows) and Secure Transport (Apple) SSL backends. Prior to this change PEM certificates could only be imported from a file and not from memory. Co-authored-by: moparisthebest@users.noreply.github.com Ref: https://github.com/curl/curl/pull/4679 Ref: https://github.com/curl/curl/pull/5677 Ref: https://github.com/curl/curl/pull/6109 Closes https://github.com/curl/curl/pull/6662
show more ...
|
#
94241a9e |
| 11-Mar-2021 |
ejanchivdorj |
CURLcode: add CURLE_SSL_CLIENTCERT When a TLS server requests a client certificate during handshake and none can be provided, libcurl now returns this new error code CURLE_SSL_CLIENT
CURLcode: add CURLE_SSL_CLIENTCERT When a TLS server requests a client certificate during handshake and none can be provided, libcurl now returns this new error code CURLE_SSL_CLIENTCERT Only supported by Secure Transport and OpenSSL for TLS 1.3 so far. Closes #6721
show more ...
|
#
e540b325 |
| 03-Apr-2021 |
Martin Halle |
version: add gsasl_version to curl_version_info_data - Add gsasl_version string and bump to CURLVERSION_TENTH. Ref: https://curl.se/mail/lib-2021-04/0003.html Closes https:
version: add gsasl_version to curl_version_info_data - Add gsasl_version string and bump to CURLVERSION_TENTH. Ref: https://curl.se/mail/lib-2021-04/0003.html Closes https://github.com/curl/curl/pull/6843
show more ...
|
#
54e74750 |
| 27-Feb-2021 |
Jay Satiro |
schannel: Disable auto credentials; add an option to enable it - Disable auto credentials by default. This is a breaking change for clients that are using it, wittingly or not.
schannel: Disable auto credentials; add an option to enable it - Disable auto credentials by default. This is a breaking change for clients that are using it, wittingly or not. - New libcurl ssl option value CURLSSLOPT_AUTO_CLIENT_CERT tells libcurl to automatically locate and use a client certificate for authentication, when requested by the server. - New curl tool options --ssl-auto-client-cert and --proxy-ssl-auto-client-cert map to CURLSSLOPT_AUTO_CLIENT_CERT. This option is only supported for Schannel (the native Windows SSL library). Prior to this change Schannel would, with no notification to the client, attempt to locate a client certificate and send it to the server, when requested by the server. Since the server can request any certificate that supports client authentication in the OS certificate store it could be a privacy violation and unexpected. Fixes https://github.com/curl/curl/issues/2262 Reported-by: Jeroen Ooms Assisted-by: Wes Hinsley Assisted-by: Rich FitzJohn Ref: https://curl.se/mail/lib-2021-02/0066.html Reported-by: Morten Minde Neergaard Closes https://github.com/curl/curl/pull/6673
show more ...
|
#
44872aef |
| 19-Feb-2021 |
Viktor Szakats |
http: add support to read and store the referrer header - add CURLINFO_REFERER libcurl option - add --write-out '%{referer}' command-line option - extend --xattr command-line option
http: add support to read and store the referrer header - add CURLINFO_REFERER libcurl option - add --write-out '%{referer}' command-line option - extend --xattr command-line option to fill user.xdg.referrer.url extended attribute with the referrer (if there was any) Closes #6591
show more ...
|
#
53022e18 |
| 11-Feb-2021 |
Jay Satiro |
doh: add options to disable ssl verification - New libcurl options CURLOPT_DOH_SSL_VERIFYHOST, CURLOPT_DOH_SSL_VERIFYPEER and CURLOPT_DOH_SSL_VERIFYSTATUS do the same as their re
doh: add options to disable ssl verification - New libcurl options CURLOPT_DOH_SSL_VERIFYHOST, CURLOPT_DOH_SSL_VERIFYPEER and CURLOPT_DOH_SSL_VERIFYSTATUS do the same as their respective counterparts. - New curl tool options --doh-insecure and --doh-cert-status do the same as their respective counterparts. Prior to this change DOH SSL certificate verification settings for verifyhost and verifypeer were supposed to be inherited respectively from CURLOPT_SSL_VERIFYHOST and CURLOPT_SSL_VERIFYPEER, but due to a bug were not. As a result DOH verification remained at the default, ie enabled, and it was not possible to disable. This commit changes behavior so that the DOH verification settings are independent and not inherited. Ref: https://github.com/curl/curl/pull/4579#issuecomment-554723676 Fixes https://github.com/curl/curl/issues/4578 Closes https://github.com/curl/curl/pull/6597
show more ...
|
#
8d9346f1 |
| 11-Feb-2021 |
Daniel Stenberg |
gsasl: provide CURL_VERSION_GSASL if built-in To let applications know the feature is available. Closes #6592
|
#
246399a8 |
| 13-Dec-2020 |
Jacob Hoffman-Andrews |
vtls: initial implementation of rustls backend This adds a new TLS backend, rustls. It uses the C-to-rustls bindings from https://github.com/abetterinternet/crustls. Rustls is a
vtls: initial implementation of rustls backend This adds a new TLS backend, rustls. It uses the C-to-rustls bindings from https://github.com/abetterinternet/crustls. Rustls is at https://github.com/ctz/rustls/. There is still a fair bit to be done, like sending CloseNotify on connection shutdown, respecting CAPATH, and properly indicating features like "supports TLS 1.3 ciphersuites." But it works well enough to make requests and receive responses. Blog post for context: https://www.abetterinternet.org/post/memory-safe-curl/ Closes #6350
show more ...
|
#
f52c6981 |
| 05-Jan-2021 |
Daniel Stenberg |
curl.h: add CURLPROTO_GOPHERS as own protocol identifier Follow-up to a1f06f32b860, to make sure it can be handled separately from plain gopher. Closes #6418
|
#
08e8455d |
| 09-Jul-2020 |
Matthias Gatto |
http: introduce AWS HTTP v4 Signature It is a security process for HTTP. It doesn't seems to be standard, but it is used by some cloud providers. Aws: https://docs.aws.
http: introduce AWS HTTP v4 Signature It is a security process for HTTP. It doesn't seems to be standard, but it is used by some cloud providers. Aws: https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html Outscale: https://wiki.outscale.net/display/EN/Creating+a+Canonical+Request GCP (I didn't test that this code work with GCP though): https://cloud.google.com/storage/docs/access-control/signing-urls-manually most of the code is in lib/http_v4_signature.c Information require by the algorithm: - The URL - Current time - some prefix that are append to some of the signature parameters. The data extracted from the URL are: the URI, the region, the host and the API type example: https://api.eu-west-2.outscale.com/api/latest/ReadNets ~~~ ~~~~~~~~ ~~~~~~~~~~~~~~~~~~~ ^ ^ ^ / \ URI API type region Small description of the algorithm: - make canonical header using content type, the host, and the date - hash the post data - make canonical_request using custom request, the URI, the get data, the canonical header, the signed header and post data hash - hash canonical_request - make str_to_sign using one of the prefix pass in parameter, the date, the credential scope and the canonical_request hash - compute hmac from date, using secret key as key. - compute hmac from region, using above hmac as key - compute hmac from api_type, using above hmac as key - compute hmac from request_type, using above hmac as key - compute hmac from str_to_sign using above hmac as key - create Authorization header using above hmac, prefix pass in parameter, the date, and above hash Signed-off-by: Matthias Gatto <matthias.gatto@outscale.com> Closes #5703
show more ...
|
#
9211cb20 |
| 14-Dec-2020 |
Daniel Stenberg |
version: include hyper version
|
#
2cfc4ed9 |
| 02-Nov-2020 |
Daniel Stenberg |
hsts: add read/write callbacks - read/write callback options - man pages for the 4 new setopts - test 1915 verifies the callbacks Closes #5896
|
#
7385610d |
| 02-Nov-2020 |
Daniel Stenberg |
hsts: add support for Strict-Transport-Security - enable in the build (configure) - header parsing - host name lookup - unit tests for the above - CI build - CURL_VERSION
hsts: add support for Strict-Transport-Security - enable in the build (configure) - header parsing - host name lookup - unit tests for the above - CI build - CURL_VERSION_HSTS bit - curl_version_info support - curl -V output - curl-config --features - CURLOPT_HSTS_CTRL - man page for CURLOPT_HSTS_CTRL - curl --hsts (sets CURLOPT_HSTS_CTRL and works with --libcurl) - man page for --hsts - save cache to disk - load cache from disk - CURLOPT_HSTS - man page for CURLOPT_HSTS - added docs/HSTS.md - fixed --version docs - adjusted curl_easy_duphandle Closes #5896
show more ...
|
#
96450a1a |
| 25-Oct-2020 |
Daniel Stenberg |
alt-svc: enable by default Remove CURLALTSVC_IMMEDIATELY, which was never implemented/supported. alt-svc support in curl is no longer considered experimental Closes #5868
|
#
ede125b7 |
| 29-Aug-2020 |
Michael Baentsch <57787676+baentsch@users.noreply.github.com> |
tls: add CURLOPT_SSL_EC_CURVES and --curves Closes #5892
|
#
6ebe63fa |
| 26-Aug-2020 |
Daniel Stenberg |
options: API for meta-data about easy options const struct curl_easyoption *curl_easy_option_by_name(const char *name); const struct curl_easyoption *curl_easy_option_by_id (CURLo
options: API for meta-data about easy options const struct curl_easyoption *curl_easy_option_by_name(const char *name); const struct curl_easyoption *curl_easy_option_by_id (CURLoption id); const struct curl_easyoption * curl_easy_option_next(const struct curl_easyoption *prev); The purpose is to provide detailed enough information to allow for example libcurl bindings to get option information at run-time about what easy options that exist and what arguments they expect. Assisted-by: Jeroen Ooms Closes #5365
show more ...
|
#
ebc6c54c |
| 15-Jul-2020 |
Michael Musset |
sftp: add the option CURLKHSTAT_FINE_REPLACE Replace the old fingerprint of the host with a new. Closes #5685
|
#
88b1ca7c |
| 24-Aug-2020 |
Daniel Stenberg |
CURLE_PROXY: new error code Failures clearly returned from a (SOCKS) proxy now causes this return code. Previously the situation was not very clear as what would be returned and when
CURLE_PROXY: new error code Failures clearly returned from a (SOCKS) proxy now causes this return code. Previously the situation was not very clear as what would be returned and when. In addition: when this error code is returned, an application can use CURLINFO_PROXY_ERROR to query libcurl for the detailed error, which then returns a value from the new 'CURLproxycode' enum. Closes #5770
show more ...
|