- Jun 22, 2016
-
-
Daniel Stenberg authored
-
Jay Satiro authored
Prior to this change we called Curl_ssl_getsessionid and Curl_ssl_addsessionid regardless of whether session ID reusing was enabled. According to comments that is in case session ID reuse was disabled but then later enabled. The old way was not intuitive and probably not something users expected. When a user disables session ID caching I'd guess they don't expect the session ID to be cached anyway in case the caching is later enabled.
-
- Jun 06, 2016
-
-
Steve Holme authored
Calling QueryContextAttributes with SECPKG_ATTR_APPLICATION_PROTOCOL fails on Windows < 8.1 so we need to disable ALPN on these OS versions. Inspiration provide by: Daniel Seither Closes #848 Fixes #840
-
- Jun 04, 2016
-
-
Steve Holme authored
Closes #845
-
- Jun 01, 2016
-
-
Ivan Avdeev authored
Sessionid cache management is inseparable from managing individual session lifetimes. E.g. for reference-counted sessions (like those in SChannel and OpenSSL engines) every session addition and removal should be accompanied with refcount increment and decrement respectively. Failing to do so synchronously leads to a race condition that causes symptoms like use-after-free and memory corruption. This commit: - makes existing session cache locking explicit, thus allowing individual engines to manage lock's scope. - fixes OpenSSL and SChannel engines by putting refcount management inside this lock's scope in relevant places. - adds these explicit locking calls to other engines that use sessionid cache to accommodate for this change. Note, however, that it is unknown whether any of these engines could also have this race. Bug: https://github.com/curl/curl/issues/815 Fixes #815 Closes #847
-
Andrew Kurushin authored
Closes #822
-
- May 18, 2016
-
-
Marcel Raad authored
For the Windows XP toolset of Visual C++ 2013/2015, the old Windows SDK 7.1 is used. In this case, _USING_V110_SDK71_ is defined. Closes #812
-
- May 09, 2016
-
-
Daniel Stenberg authored
Only protocols that actually have a protocol registered for ALPN and NPN should try to get that negotiated in the TLS handshake. That is only HTTPS (well, http/1.1 and http/2) right now. Previously ALPN and NPN would wrongly be used in all handshakes if libcurl was built with it enabled. Reported-by: Jay Satiro Fixes #789
-
- Apr 03, 2016
-
-
Daniel Stenberg authored
-
- Mar 26, 2016
-
-
Steve Holme authored
warning C4244: '=': conversion from 'int' to 'unsigned short', possible loss of data
-
- Mar 24, 2016
-
-
JDepooter authored
Add ALPN support for schannel. This allows cURL to negotiate HTTP/2.0 connections when built with schannel. Closes #724
-
- Feb 04, 2016
-
-
Viktor Szakats authored
-
- Feb 02, 2016
-
-
Daniel Stenberg authored
-
- Nov 21, 2015
-
-
Steve Holme authored
-
Steve Holme authored
Regression from commit 7a8e861a as highlighted in the msys autobuilds.
-
- Aug 01, 2015
-
-
Steve Holme authored
schannel.c:1125:5: warning: missing initializer for field 'dwMinorVersion' of 'OSVERSIONINFOEX' [-Wmissing-field-initializers
-
- Jul 22, 2015
-
-
Marcel Raad authored
-
- Jul 17, 2015
-
-
Jay Satiro authored
New tool option --ssl-no-revoke. New value CURLSSLOPT_NO_REVOKE for CURLOPT_SSL_OPTIONS. Currently this option applies only to WinSSL where we have automatic certificate revocation checking by default. According to the ssl-compared chart there are other backends that have automatic checking (NSS, wolfSSL and DarwinSSL) so we could possibly accommodate them at some later point. Bug: https://github.com/bagder/curl/issues/264 Reported-by:
zenden2k <zenden2k@gmail.com>
-
- Jun 17, 2015
-
-
Jay Satiro authored
This commit is several drafts squashed together. The changes from each draft are noted below. If any changes are similar and possibly contradictory the change in the latest draft takes precedence. Bug: https://github.com/bagder/curl/issues/244 Reported-by: Chris Araman %% %% Draft 1 %% - return 0 if len == 0. that will have to be documented. - continue on and process the caches regardless of raw recv - if decrypted data will be returned then set the error code to CURLE_OK and return its count - if decrypted data will not be returned and the connection has closed (eg nread == 0) then return 0 and CURLE_OK - if decrypted data will not be returned and the connection *hasn't* closed then set the error code to CURLE_AGAIN --only if an error code isn't already set-- and return -1 - narrow the Win2k workaround to only Win2k %% %% Draft 2 %% - Trying out a change in flow to handle corner cases. %% %% Draft 3 %% - Back out the lazier decryption change made in draft2. %% %% Draft 4 %% - Some formatting and branching changes - Decrypt all encrypted cached data when len == 0 - Save connection closed state - Change special Win2k check to use connection closed state %% %% Draft 5 %% - Default to CURLE_AGAIN in cleanup if an error code wasn't set and the connection isn't closed. %% %% Draft 6 %% - Save the last error only if it is an unrecoverable error. Prior to this I saved the last error state in all cases; unfortunately the logic to cover that in all cases would lead to some muddle and I'm concerned that could then lead to a bug in the future so I've replaced it by only recording an unrecoverable error and that state will persist. - Do not recurse on renegotiation. Instead we'll continue on to process any trailing encrypted data received during the renegotiation only. - Move the err checks in cleanup after the check for decrypted data. In either case decrypted data is always returned but I think it's easier to understand when those err checks come after the decrypted data check. %% %% Draft 7 %% - Regardless of len value go directly to cleanup if there is an unrecoverable error or a close_notify was already received. Prior to this change we only acknowledged those two states if len != 0. - Fix a bug in connection closed behavior: Set the error state in the cleanup, because we don't know for sure it's an error until that time. - (Related to above) In the case the connection is closed go "greedy" with the decryption to make sure all remaining encrypted data has been decrypted even if it is not needed at that time by the caller. This is necessary because we can only tell if the connection closed gracefully (close_notify) once all encrypted data has been decrypted. - Do not renegotiate when an unrecoverable error is pending. %% %% Draft 8 %% - Don't show 'server closed the connection' info message twice. - Show an info message if server closed abruptly (missing close_notify).
-
- Jun 11, 2015
-
-
Joel Depooter authored
Some servers will request a client certificate, but not require one. This change allows libcurl to connect to such servers when using schannel as its ssl/tls backend. When a server requests a client certificate, libcurl will now continue the handshake without one, rather than terminating the handshake. The server can then decide if that is acceptable or not. Prior to this change, libcurl would terminate the handshake, reporting a SEC_I_INCOMPLETE_CREDENTIALS error.
-
- May 02, 2015
-
-
Marc Hoersken authored
-
Marc Hoersken authored
-
Marc Hoersken authored
-
Chris Araman authored
https://github.com/bagder/curl/issues/244 Commit 145c263a changed the behavior when Curl_read_plain returns CURLE_AGAIN. We now handle CURLE_AGAIN and SEC_I_CONTEXT_EXPIRED correctly.
-
- May 01, 2015
-
-
Marc Hoersken authored
Commit: https://github.com/bagder/curl/commit/926cb9f Reported-by: Ray Satiro
-
- Apr 30, 2015
-
-
Jay Satiro authored
Bug born in changes made several days ago 9a91e805. Bug: http://curl.haxx.se/mail/lib-2015-04/0199.html Reported-by: Brian Chrisman
-
- Apr 26, 2015
-
-
Marc Hoersken authored
-
Marc Hoersken authored
Reported-by: Brian Chrisman
-
Daniel Stenberg authored
white space changes only
-
- Mar 03, 2015
-
-
Daniel Stenberg authored
No need to use _MPRINTF_REPLACE internally.
-
- Feb 07, 2015
-
-
Steve Holme authored
Removed the curl_ prefix from the schannel source files as discussed with Marc and Daniel at FOSDEM.
-
- Feb 04, 2015
-
-
Steve Holme authored
-
- Jan 31, 2015
-
-
Marc Hoersken authored
-
- Jan 12, 2015
-
-
Marc Hoersken authored
If the session is still used by active SSL/TLS connections, it cannot be closed yet. Thus we mark the session as not being cached any longer so that the reference counting mechanism in Curl_schannel_shutdown is used to close and free the session. Reported-by: Jean-Francois Durand
-
- Dec 25, 2014
-
-
Steve Holme authored
The return type of this function is a boolean value, and even uses a bool internally, so use bool in the function declaration as well as the variables that store the return value, to avoid any confusion.
-
Steve Holme authored
-
Steve Holme authored
-
- Dec 14, 2014
-
-
Marc Hoersken authored
- do not grow memory by doubling its size - do not leak previously allocated memory if reallocation fails - replace while-loop with a single check to make sure that the requested amount of data fits into the buffer Bug: http://curl.haxx.se/bug/view.cgi?id=1450 Reported-by: Warren Menzer
-
Marc Hoersken authored
-
- Dec 09, 2014
-
-
Daniel Stenberg authored
Bug: http://curl.haxx.se/bug/view.cgi?id=1462 Reported-by: Tae Hyoung Ahn
-