curl / Mailing Lists / curl-users / Single Mail

curl-users

Re: Upgrading curl on a Win 8.1 system

From: Ray Satiro via curl-users <curl-users_at_cool.haxx.se>
Date: Tue, 2 Jan 2018 01:46:54 -0500

On 1/1/2018 4:57 PM, Daniel Stenberg wrote:
>> However I do notice that the curl.exe here is much
>> larger than the 7.25.0 one was (3911 KB instead of 659 KB).
>>
>> That makes me think that the newer  curl.exe  has had the DLL stuff
>> linked into it.   Is that right?
>
> When it comes to answers about specific binary builds you are
> generally better off asking the one making the package. In this case
> however, it seems you can just invoke "curl -V" and see that it works
> and shows a reasonable version.

Yes, Marc Hörsken's build of curl includes libcurl in the executable
instead of in a dll. In other words it was built with a static library
of libcurl. This can be assumed since it does not include a DLL, and can
be confirmed by using a program like Dependency Walker which shows no
3rd party DLLs are required.

curl -V
curl 7.57.0 (i686-w64-mingw32) libcurl/7.57.0 OpenSSL/1.0.2h (WinSSL)
zlib/1.2.8 WinIDN libssh2/1.7.0_DEV
Release-Date: 2017-11-30
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps
pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
libz TLS-SRP HTTPS-proxy MultiSSL

In the version information you can see it is built to use multiple SSL
libraries, OpenSSL and WinSSL (aka schannel). Notice (WinSSL) is in
parentheses and OpenSSL is not, which means it is set to use OpenSSL. It
can be switched to use WinSSL if CURL_SSL_BACKEND is set to schannel.

set CURL_SSL_BACKEND=schannel
curl -V
curl 7.57.0 (i686-w64-mingw32) libcurl/7.57.0 (OpenSSL/1.0.2h) WinSSL
zlib/1.2.8 WinIDN libssh2/1.7.0_DEV
Release-Date: 2017-11-30
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps
pop3 pop3s rtsp scp sftp smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
libz TLS-SRP MultiSSL

OpenSSL needs a CA certificate bundle file to verify the SSL
connections. You can download it from
https://curl.haxx.se/docs/caextract.html (click the cacert.pem) and then
put it in the same directory as curl.exe and name it curl-ca-bundle.crt,
and curl will auto detect it.

WinSSL does not need a CA certificate bundle since it uses the Windows
OS certificate store.

Granted I realize we could probably explain this better, somewhere. Marc
can you update your readme to explain multi-ssl and that
curl-ca-bundle.crt is needed by default?

-----------------------------------------------------------
Unsubscribe: https://cool.haxx.se/list/listinfo/curl-users
Etiquette: https://curl.haxx.se/mail/etiquette.html
Received on 2018-01-02