libcurl: Allow selection of TLS package libcurl will use
authorTrent Piepho <tpiepho@impinj.com>
Thu, 8 Nov 2018 22:25:31 +0000 (22:25 +0000)
committerPeter Korsgaard <peter@korsgaard.com>
Mon, 12 Nov 2018 21:24:18 +0000 (22:24 +0100)
commitb8b78e7e6a1cc15ab085f157250ed1ca04277129
treee96e5efc945271acfc94873078632a168b1bfcaf
parent35f468b0f0dc8de16fda6f8b5824e41e5fd94266
libcurl: Allow selection of TLS package libcurl will use

Instead of defaulting to OpenSSL, allow selection of package to use
through a choice in libcurl's config.  The default will be to select the
first enabled TLS provider in the same preference order as is used now,
i.e. no change from current behavior.

Some of the alternative libraries have advantages over OpenSSL in
certain areas.

For example, gnutls has vastly superior PKCS11 support.  One can use
client TLS private keys by supplying a PKCS11 URI instead of a private
key file name.  The TLS server cert trust store can be a PKCS11 URI,
e.g. configure libcurl with a ca-bundle of "pkcs11:model=p11-kit-trust".
Now server certs can be stored in a software and/or hardware HSM(s).
This doesn't work with OpenSSL.

However, some software only supports OpenSSL for TLS or other crypto
functions.  So it might be necessary to enable OpenSSL for that reason.

Signed-off-by: Trent Piepho <tpiepho@impinj.com>
[Peter: add BR2_PACKAGE_LIBCURL_TLS_SUPPORT and use it to hide choice &
comment, explitly pass --without-foo if option is not enabled,
only do .pc fixup if BR2_PACKAGE_LIBCURL_OPENSSL is enabled]
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
package/libcurl/Config.in
package/libcurl/libcurl.mk