php_curl.dll with native windows ssl
| From: | Jan Ehrhardt | Date: | Sat, 05 Jan 2019 18:23:44 +0000 |
| Subject: | php_curl.dll with native windows ssl | ||
| Groups: | php.pecl.dev | ||
| Request: | Send a blank email to pecl-dev+get-15681@lists.php.net to get a copy of this message | ||
Vincent Jardin in php.pecl.dev (Sat, 05 Jan 2019 16:32:42 +0100):
>Le 5 janvier 2019 14:41:36 Jan Ehrhardt <phpdev@ehrhardt.nl> a écrit :
>> Vincent Jardin in php.pecl.dev (Sat, 05 Jan 2019 11:56:40 +0100):
>>> Le 5 janvier 2019 06:01:18 Jan Ehrhardt <phpdev@ehrhardt.nl> a écrit :
>>>> In theory php_curl.dll could be built with WINSSL, but that is only
>>>> because libcurl supports it. Most dependent libraries do not have any
>>>> provisions for the native Windows SSL.
>>>
>>> Yes, at least having php_curl.dll using WINSSL, it would be a nice step so
>>> both curl.exe and php_curl.dll would share the same Windows crypto backend
>>> that is important for many security requirements.
>>>
>>> Please, could you send me a notification once it would be available ? I'll
>>> jump on trying it. Currently, the only workaround I found was to call
>>> curl.exe from PHP (I cannot use php_curl.dll).
>>
>> I will give it a try. Which PHP version: 7.2 or 7.3? x64 or x86? NTS ot
>
>If possible PHP 7.2 / NTS / x64
Actually, it was quite easy to build. I already had a routine to quickly
switch to WINSSL, because mod_md.so in Apache needs curl winssl. So here
it is:
https://phpdev.toolsforresearch.com/php_curl-7.63.0-winssl.dll.zip
C:\>curl --version
curl 7.63.0 (x86_64-pc-win32) libcurl/7.63.0 WinSSL zlib/1.2.11 WinIDN
nghttp2/1.36.0
Release-Date: 2018-12-12
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps
pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL
libz HTTP2
zlib and nghttp2 are compiled statically into php_curl.dll. No external
dll's needed whatsoever. No ssh2 (yet?).
I also ran the tests:
=====================================================================
Number of tests : 110 100
Tests skipped : 10 ( 9.1%) --------
Tests warned : 0 ( 0.0%) ( 0.0%)
Tests failed : 2 ( 1.8%) ( 2.0%)
Expected fail : 0 ( 0.0%) ( 0.0%)
Tests passed : 98 ( 89.1%) ( 98.0%)
---------------------------------------------------------------------
Time taken : 26 seconds
=====================================================================
=====================================================================
FAILED TEST SUMMARY
---------------------------------------------------------------------
Check libcurl config on windows [tests\check_win_config.phpt]
Test curl_error() & curl_errno() function with problematic protocol
[tests\curl_basic_009.phpt]
=====================================================================
The fail of 'libcurl config on windows' is not surprising, because the
protocols are different. With the corresponding protocols removed:
025+ Protocols => ldaps
025- Protocols => scp, sftp
027+ SSL Version => WinSSL
027- SSL Version => OpenSSL/%s
029- libSSH Version => libssh2/%s
The winssl build has ldaps as additional protocol, but is missing scp &
sftp because I did not compile ssh2 into it yet.
diff for curl_basic_009.phpt:
001+ string(0) ""
002+ int(3)
001- string(%d) "%Srotocol%s"
002- int(1)
--
Jan