Menu

#1187 winsspi ssl engine was unable connect through ssl

closed-fixed
5
2014-08-16
2013-02-04
No

winsspi ssl engine was unable connect through ssl with curl build with winsspi(no openssl):
[-----]
curl --verbose -k https://XX.XX.XX.XX

  • About to connect() to test port 443 (#0)
  • Trying XX.XX.XX.XX...
  • connected
  • Connected to XX.XX.XX.XX (XX.XX.XX.XX) port 443 (#0)
  • schannel: SSL/TLS connection with XX.XX.XX.XX port 443 (step 1/3)
  • schannel: disable server certificate revocation checks
  • schannel: verifyhost setting prevents Schannel from comparing the supplied target name with the subject names in server certificates. Also disables SNI.
  • schannel: sending initial handshake data: sending 119 bytes...
  • schannel: sent initial handshake data: sent 119 bytes
  • schannel: SSL/TLS connection with XX.XX.XX.XX port 443 (step 2/3)
  • schannel: encrypted data buffer: offset 3326 length 4096
  • schannel: sending next handshake data: sending 326 bytes...
  • schannel: SSL/TLS connection with XX.XX.XX.XX port 443 (step 2/3)
  • schannel: encrypted data buffer: offset 59 length 4096
  • schannel: SSL/TLS handshake complete
  • schannel: SSL/TLS connection with XX.XX.XX.XX port 443 (step 3/3)
  • schannel: failed to setup extended errors
  • Closing connection #0
  • schannel: shutting down SSL/TLS connection with XX.XX.XX.XX port 443
    curl: (35) schannel: failed to setup extended errors
    [-----]
    this error occured only on some specific machine: win7 without sp1
    maybe it's related to http://support.microsoft.com/kb/975858

i have made following changes:
[-----]
Index: lib/curl_schannel.c
===================================================================
--- lib/curl_schannel.c (revision)
+++ lib/curl_schannel.c (working copy)
@@ -219,7 +219,7 @@

/ setup request flags /
connssl->req_flags = ISC_REQ_SEQUENCE_DETECT | ISC_REQ_REPLAY_DETECT |

  • ISC_REQ_CONFIDENTIALITY | ISC_REQ_EXTENDED_ERROR |
  • ISC_REQ_CONFIDENTIALITY | // ISC_REQ_EXTENDED_ERROR |
    ISC_REQ_ALLOCATE_MEMORY | ISC_REQ_STREAM;

/ allocate memory for the security context handle /
@@ -503,8 +503,10 @@
failf(data, "schannel: failed to setup replay detection");
if(!(connssl->ret_flags & ISC_RET_CONFIDENTIALITY))
failf(data, "schannel: failed to setup confidentiality");
+/
if(!(connssl->ret_flags & ISC_RET_EXTENDED_ERROR))
failf(data, "schannel: failed to setup extended errors");
+
/
if(!(connssl->ret_flags & ISC_RET_ALLOCATED_MEMORY))
failf(data, "schannel: failed to setup memory allocation");
if(!(connssl->ret_flags & ISC_RET_STREAM))
[-----]

and the problem has gone. i don't now if CURL really need specify ISC_REQ_EXTENDED_ERROR cause it's not related to client side;

Discussion

  • Daniel Stenberg

    Daniel Stenberg - 2013-02-05
    • status: open --> closed-fixed
    • assigned_to: Daniel Stenberg
    • milestone: -->
     
  • Daniel Stenberg

    Daniel Stenberg - 2013-02-05

    Thanks, this is now fixed in git!

     
MongoDB Logo MongoDB