summaryrefslogtreecommitdiff
path: root/lib/strcase.c
Commit message (Collapse)AuthorAgeFilesLines
* copyright: update all copyright lines and remove year rangesDaniel Stenberg2023-01-031-1/+1
| | | | | | | | | | | | - they are mostly pointless in all major jurisdictions - many big corporations and projects already don't use them - saves us from pointless churn - git keeps history for us - the year range is kept in COPYING checksrc is updated to allow non-year using copyright statements Closes #10205
* strcase: use curl_str(n)equal for case insensitive matchesDaniel Stenberg2022-11-011-28/+21
| | | | | | | | | No point in having two entry points for the same functions. Also merged the *safe* function treatment into these so that they can also be used when one or both pointers are NULL. Closes #9837
* strcase: add and use Curl_timestrcmpDaniel Stenberg2022-10-081-0/+22
| | | | | | | | | | | | | This is a strcmp() alternative function for comparing "secrets", designed to take the same time no matter the content to not leak match/non-match info to observers based on how fast it is. The time this function takes is only a function of the shortest input string. Reported-by: Trail of Bits Closes #9658
* ctype: remove all use of <ctype.h>, use our own versionsDaniel Stenberg2022-09-061-4/+2
| | | | | | Except in the test servers. Closes #9433
* copyright: make repository REUSE compliantmax.mehl2022-06-131-0/+2
| | | | | | | | | | | Add licensing and copyright information for all files in this repository. This either happens in the file itself as a comment header or in the file `.reuse/dep5`. This commit also adds a Github workflow to check pull requests and adapts copyright.pl to the changes. Closes #8869
* strcase: some optimisationsFrank Gevaerts2022-05-191-11/+47
| | | | | | | | | | | | | | Lookup tables for toupper() and tolower() make Curl_strcasecompare() about 1.5 times faster. Reorganising Curl_strcasecompare() to fully exit early then also allows simplifying the check at the end, for another 15%. In total, the changes make Curl_strcasecompare() around 1.6 to 1.7 times faster. Note that these optimisation assume ASCII. The original Curl_raw_toupper() and raw_tolower() look like they already made that assumption. Closes #8875
* url: check sasl additional parameters for connection reuse.Patrick Monnerat2022-04-251-0/+10
| | | | | | | | | | | Also move static function safecmp() as non-static Curl_safecmp() since its purpose is needed at several places. Bug: https://curl.se/docs/CVE-2022-22576.html CVE-2022-22576 Closes #8746
* lib: remove support for CURL_DOES_CONVERSIONSDaniel Stenberg2022-02-041-125/+5
| | | | | | TPF was the only user and support for that was dropped. Closes #8378
* curl.se: new homeDaniel Stenberg2020-11-041-1/+1
| | | | Closes #6172
* strcase: turn Curl_raw_tolower into staticDaniel Stenberg2020-01-241-3/+5
| | | | Only ever used from within this file.
* copyrights: update all copyright notices to 2019 on files changed this yearVilhelm Prytz2019-11-021-1/+1
| | | | Closes #4547
* strcase: fix raw lowercasing the letter XLucas Pardue2019-09-241-1/+1
| | | | | | | | | | | Casing mistake in Curl_raw_tolower 'X' wasn't lowercased as 'x' prior to this change. Follow-up to 0023fce which added the function several days ago. Ref: https://github.com/curl/curl/pull/4401#discussion_r327396546 Closes https://github.com/curl/curl/pull/4408
* http: lowercase headernames for HTTP/2 and HTTP/3Barry Pollard2019-09-231-0/+84
| | | | | Closes #4401 Fixes #4400
* strcase: corrected comment header for Curl_strcasecompare()Daniel Stenberg2017-08-311-5/+6
|
* Improve code readbilitySylvestre Ledru2017-03-131-3/+3
| | | | | | ... by removing the else branch after a return, break or continue. Closes #1310
* checksrc: stricter no-space-before-paren enforcementDaniel Stenberg2016-12-131-1/+1
| | | | In order to make the code style more uniform everywhere
* proxy: Support HTTPS proxy and SOCKS+HTTP(s)Alex Rousskov2016-11-241-0/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * HTTPS proxies: An HTTPS proxy receives all transactions over an SSL/TLS connection. Once a secure connection with the proxy is established, the user agent uses the proxy as usual, including sending CONNECT requests to instruct the proxy to establish a [usually secure] TCP tunnel with an origin server. HTTPS proxies protect nearly all aspects of user-proxy communications as opposed to HTTP proxies that receive all requests (including CONNECT requests) in vulnerable clear text. With HTTPS proxies, it is possible to have two concurrent _nested_ SSL/TLS sessions: the "outer" one between the user agent and the proxy and the "inner" one between the user agent and the origin server (through the proxy). This change adds supports for such nested sessions as well. A secure connection with a proxy requires its own set of the usual SSL options (their actual descriptions differ and need polishing, see TODO): --proxy-cacert FILE CA certificate to verify peer against --proxy-capath DIR CA directory to verify peer against --proxy-cert CERT[:PASSWD] Client certificate file and password --proxy-cert-type TYPE Certificate file type (DER/PEM/ENG) --proxy-ciphers LIST SSL ciphers to use --proxy-crlfile FILE Get a CRL list in PEM format from the file --proxy-insecure Allow connections to proxies with bad certs --proxy-key KEY Private key file name --proxy-key-type TYPE Private key file type (DER/PEM/ENG) --proxy-pass PASS Pass phrase for the private key --proxy-ssl-allow-beast Allow security flaw to improve interop --proxy-sslv2 Use SSLv2 --proxy-sslv3 Use SSLv3 --proxy-tlsv1 Use TLSv1 --proxy-tlsuser USER TLS username --proxy-tlspassword STRING TLS password --proxy-tlsauthtype STRING TLS authentication type (default SRP) All --proxy-foo options are independent from their --foo counterparts, except --proxy-crlfile which defaults to --crlfile and --proxy-capath which defaults to --capath. Curl now also supports %{proxy_ssl_verify_result} --write-out variable, similar to the existing %{ssl_verify_result} variable. Supported backends: OpenSSL, GnuTLS, and NSS. * A SOCKS proxy + HTTP/HTTPS proxy combination: If both --socks* and --proxy options are given, Curl first connects to the SOCKS proxy and then connects (through SOCKS) to the HTTP or HTTPS proxy. TODO: Update documentation for the new APIs and --proxy-* options. Look for "Added in 7.XXX" marks.
* strcasecompare: include curl.h in strcase.cDan Fandrich2016-10-311-0/+3
| | | | | | | This should fix the "warning: 'curl_strequal' redeclared without dllimport attribute: previous dllimport ignored" message and subsequent link error on Windows because of the missing CURL_EXTERN on the prototype.
* curl_strequal: part of public API/ABI, needs to be keptDaniel Stenberg2016-10-311-2/+13
| | | | | | These two public functions have been mentioned as deprecated since a very long time but since they are still part of the API and ABI we need to keep them around.
* strcasecompare: all case insensitive string compares ignore locale nowDaniel Stenberg2016-10-311-24/+97
| | | | | We had some confusions on when each function was used. We should not act differently on different locales anyway.
* strcasecompare: is the new name for strequal()Daniel Stenberg2016-10-311-0/+79
... to make it less likely that we forget that the function actually does case insentive compares. Also replaced several invokes of the function with a plain strcmp when case sensitivity is not an issue (like comparing with "-").