diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2017-07-15 13:49:30 +0200 |
---|---|---|
committer | Daniel Stenberg <daniel@haxx.se> | 2017-08-28 14:56:58 +0200 |
commit | b59288f88146b64ac5fda296675c523df11658b8 (patch) | |
tree | 844aecc8b3c588584731b31b0043a9e9e6ac894c /lib/vtls | |
parent | b0989cd3abaff4f9a0717b4875022fa79e33b481 (diff) |
vtls: refactor out essential information about the SSL backends
There is information about the compiled-in SSL backends that is really
no concern of any code other than the SSL backend itself, such as which
function (if any) implements SHA-256 summing.
And there is information that is really interesting to the user, such as
the name, or the curl_sslbackend value.
Let's factor out the latter into a publicly visible struct. This
information will be used in the upcoming API to set the SSL backend
globally.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Diffstat (limited to 'lib/vtls')
-rw-r--r-- | lib/vtls/axtls.c | 3 | ||||
-rw-r--r-- | lib/vtls/cyassl.c | 3 | ||||
-rw-r--r-- | lib/vtls/darwinssl.c | 3 | ||||
-rw-r--r-- | lib/vtls/gskit.c | 3 | ||||
-rw-r--r-- | lib/vtls/gtls.c | 3 | ||||
-rw-r--r-- | lib/vtls/mbedtls.c | 3 | ||||
-rw-r--r-- | lib/vtls/nss.c | 3 | ||||
-rw-r--r-- | lib/vtls/openssl.c | 3 | ||||
-rw-r--r-- | lib/vtls/polarssl.c | 3 | ||||
-rw-r--r-- | lib/vtls/schannel.c | 3 | ||||
-rw-r--r-- | lib/vtls/vtls.c | 7 | ||||
-rw-r--r-- | lib/vtls/vtls.h | 7 |
12 files changed, 18 insertions, 26 deletions
diff --git a/lib/vtls/axtls.c b/lib/vtls/axtls.c index cfdb1b70f..3531296bb 100644 --- a/lib/vtls/axtls.c +++ b/lib/vtls/axtls.c @@ -702,8 +702,7 @@ static void *Curl_axtls_get_internals(struct ssl_connect_data *connssl, } const struct Curl_ssl Curl_ssl_axtls = { - "axtls", /* name */ - CURLSSLBACKEND_AXTLS, + { CURLSSLBACKEND_AXTLS, "axtls" }, /* info */ 0, /* have_ca_path */ 0, /* have_certinfo */ diff --git a/lib/vtls/cyassl.c b/lib/vtls/cyassl.c index d679752fb..122cfda57 100644 --- a/lib/vtls/cyassl.c +++ b/lib/vtls/cyassl.c @@ -978,8 +978,7 @@ static void *Curl_cyassl_get_internals(struct ssl_connect_data *connssl, } const struct Curl_ssl Curl_ssl_cyassl = { - "cyassl", /* name */ - CURLSSLBACKEND_CYASSL, + { CURLSSLBACKEND_CYASSL, "cyassl" }, /* info */ 0, /* have_ca_path */ 0, /* have_certinfo */ diff --git a/lib/vtls/darwinssl.c b/lib/vtls/darwinssl.c index b2ca52cb7..d6503216a 100644 --- a/lib/vtls/darwinssl.c +++ b/lib/vtls/darwinssl.c @@ -2890,8 +2890,7 @@ static void *Curl_darwinssl_get_internals(struct ssl_connect_data *connssl, } const struct Curl_ssl Curl_ssl_darwinssl = { - "darwinssl", /* name */ - CURLSSLBACKEND_DARWINSSL, + { CURLSSLBACKEND_DARWINSSL, "darwinssl" }, /* info */ 0, /* have_ca_path */ 0, /* have_certinfo */ diff --git a/lib/vtls/gskit.c b/lib/vtls/gskit.c index a1599dd5f..ba5faeff8 100644 --- a/lib/vtls/gskit.c +++ b/lib/vtls/gskit.c @@ -1353,8 +1353,7 @@ static void *Curl_gskit_get_internals(struct ssl_connect_data *connssl, } const struct Curl_ssl Curl_ssl_gskit = { - "gskit", /* name */ - CURLSSLBACKEND_GSKIT, + { CURLSSLBACKEND_GSKIT, "gskit" }, /* info */ 0, /* have_ca_path */ 1, /* have_certinfo */ diff --git a/lib/vtls/gtls.c b/lib/vtls/gtls.c index 498634b29..07de85d8f 100644 --- a/lib/vtls/gtls.c +++ b/lib/vtls/gtls.c @@ -1806,8 +1806,7 @@ static void *Curl_gtls_get_internals(struct ssl_connect_data *connssl, } const struct Curl_ssl Curl_ssl_gnutls = { - "gnutls", /* name */ - CURLSSLBACKEND_GNUTLS, + { CURLSSLBACKEND_GNUTLS, "gnutls" }, /* info */ 1, /* have_ca_path */ 1, /* have_certinfo */ diff --git a/lib/vtls/mbedtls.c b/lib/vtls/mbedtls.c index d7e16177b..8a0f05b62 100644 --- a/lib/vtls/mbedtls.c +++ b/lib/vtls/mbedtls.c @@ -1039,8 +1039,7 @@ static void *Curl_mbedtls_get_internals(struct ssl_connect_data *connssl, } const struct Curl_ssl Curl_ssl_mbedtls = { - "mbedtls", /* name */ - CURLSSLBACKEND_MBEDTLS, + { CURLSSLBACKEND_MBEDTLS, "mbedtls" }, /* info */ 0, /* have_ca_path */ 0, /* have_certinfo */ diff --git a/lib/vtls/nss.c b/lib/vtls/nss.c index 91f6530af..d06b8c8ae 100644 --- a/lib/vtls/nss.c +++ b/lib/vtls/nss.c @@ -2343,8 +2343,7 @@ static void *Curl_nss_get_internals(struct ssl_connect_data *connssl, } const struct Curl_ssl Curl_ssl_nss = { - "nss", /* name */ - CURLSSLBACKEND_NSS, + { CURLSSLBACKEND_NSS, "nss" }, /* info */ 1, /* have_ca_path */ 1, /* have_certinfo */ diff --git a/lib/vtls/openssl.c b/lib/vtls/openssl.c index 136d8e475..394ce2e3d 100644 --- a/lib/vtls/openssl.c +++ b/lib/vtls/openssl.c @@ -3416,8 +3416,7 @@ static void *Curl_ossl_get_internals(struct ssl_connect_data *connssl, } const struct Curl_ssl Curl_ssl_openssl = { - "openssl", /* name */ - CURLSSLBACKEND_OPENSSL, + { CURLSSLBACKEND_OPENSSL, "openssl" }, /* info */ 1, /* have_ca_path */ 1, /* have_certinfo */ diff --git a/lib/vtls/polarssl.c b/lib/vtls/polarssl.c index 9d4aeacfb..fdfd12ce5 100644 --- a/lib/vtls/polarssl.c +++ b/lib/vtls/polarssl.c @@ -901,8 +901,7 @@ static void *Curl_polarssl_get_internals(struct ssl_connect_data *connssl, } const struct Curl_ssl Curl_ssl_polarssl = { - "polarssl", /* name */ - CURLSSLBACKEND_POLARSSL, + { CURLSSLBACKEND_POLARSSL, "polarssl" }, /* info */ 1, /* have_ca_path */ 0, /* have_certinfo */ diff --git a/lib/vtls/schannel.c b/lib/vtls/schannel.c index bd7a85bae..473bebe21 100644 --- a/lib/vtls/schannel.c +++ b/lib/vtls/schannel.c @@ -1816,8 +1816,7 @@ static void *Curl_schannel_get_internals(struct ssl_connect_data *connssl, } const struct Curl_ssl Curl_ssl_schannel = { - "schannel", /* name */ - CURLSSLBACKEND_SCHANNEL, + { CURLSSLBACKEND_SCHANNEL, "schannel" }, /* info */ 0, /* have_ca_path */ 1, /* have_certinfo */ diff --git a/lib/vtls/vtls.c b/lib/vtls/vtls.c index ed43e1d46..b149d40cf 100644 --- a/lib/vtls/vtls.c +++ b/lib/vtls/vtls.c @@ -138,7 +138,7 @@ int Curl_ssl_backend(void) { #ifdef USE_SSL multissl_init(); - return Curl_ssl->id; + return Curl_ssl->info.id; #else return (int)CURLSSLBACKEND_NONE; #endif @@ -1099,8 +1099,7 @@ static void Curl_multissl_close(struct connectdata *conn, int sockindex) } static const struct Curl_ssl Curl_ssl_multi = { - "multi", /* name */ - CURLSSLBACKEND_NONE, + { CURLSSLBACKEND_NONE, "multi" }, /* info */ 0, /* have_ca_path */ 0, /* have_certinfo */ @@ -1182,7 +1181,7 @@ static int multissl_init(void) env = getenv("CURL_SSL_BACKEND"); if(env) for(i = 0; available_backends[i]; i++) - if(!strcmp(env, available_backends[i]->name)) { + if(!strcmp(env, available_backends[i]->info.name)) { Curl_ssl = available_backends[i]; return 0; } diff --git a/lib/vtls/vtls.h b/lib/vtls/vtls.h index 7d2296952..3c8e32104 100644 --- a/lib/vtls/vtls.h +++ b/lib/vtls/vtls.h @@ -27,8 +27,11 @@ struct connectdata; struct ssl_connect_data; struct Curl_ssl { - const char *name; - int id; /* one of the CURLSSLBACKEND_* constants */ + /* + * This *must* be the first entry to allow returning the list of available + * backends in curl_global_sslset(). + */ + curl_ssl_backend info; unsigned have_ca_path:1; /* supports CAPATH */ unsigned have_certinfo:1; /* supports CURLOPT_CERTINFO */ |