1
0
mirror of https://github.com/moparisthebest/curl synced 2024-08-13 17:03:50 -04:00
curl/lib/vtls
Johannes Schindelin b0989cd3ab
vtls: allow selecting which SSL backend to use at runtime
When building software for the masses, it is sometimes not possible to
decide for all users which SSL backend is appropriate.

Git for Windows, for example,  uses cURL to perform clones, fetches and
pushes via HTTPS, and some users strongly prefer OpenSSL, while other
users really need to use Secure Channel because it offers
enterprise-ready tools to manage credentials via Windows' Credential
Store.

The current Git for Windows versions use the ugly work-around of
building libcurl once with OpenSSL support and once with Secure Channel
support, and switching out the binaries in the installer depending on
the user's choice.

Needless to say, this is a super ugly workaround that actually only
works in some cases: Git for Windows also comes in a portable form, and
in a form intended for third-party applications requiring Git
functionality, in which cases this "swap out libcurl-4.dll" simply is
not an option.

Therefore, the Git for Windows project has a vested interest in teaching
cURL to make the SSL backend a *runtime* option.

This patch makes that possible.

By running ./configure with multiple --with-<backend> options, cURL will
be built with multiple backends.

For the moment, the backend can be configured using the environment
variable CURL_SSL_BACKEND (valid values are e.g. "openssl" and
"schannel").

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
2017-08-28 14:56:58 +02:00
..
axtls.c vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
axtls.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
cyassl.c vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
cyassl.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
darwinssl.c vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
darwinssl.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
gskit.c vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
gskit.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
gtls.c vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
gtls.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
mbedtls.c vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
mbedtls.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
nss.c vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
nssg.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
openssl.c vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
openssl.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
polarssl_threadlock.c Curl_polarsslthreadlock_thread_setup: clear array at init 2016-10-18 13:05:43 +02:00
polarssl_threadlock.h URLs: change all http:// URLs to https:// 2016-02-03 00:19:02 +01:00
polarssl.c vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
polarssl.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
schannel.c vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
schannel.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00
vtls.c vtls: allow selecting which SSL backend to use at runtime 2017-08-28 14:56:58 +02:00
vtls.h vtls: fold the backend ID into the Curl_ssl structure 2017-08-28 14:56:58 +02:00