Merge branch 'sm/ssl-key-type-config'
Add a few configuration variables to tell the cURL library that different types of ssl-cert and ssl-key are in use. * sm/ssl-key-type-config: http: add support for different sslcert and sslkey types.
This commit is contained in:
commit
0a8c337394
12
http.c
12
http.c
@ -40,6 +40,7 @@ static int curl_ssl_verify = -1;
|
||||
static int curl_ssl_try;
|
||||
static const char *curl_http_version = NULL;
|
||||
static const char *ssl_cert;
|
||||
static const char *ssl_cert_type;
|
||||
static const char *ssl_cipherlist;
|
||||
static const char *ssl_version;
|
||||
static struct {
|
||||
@ -59,6 +60,7 @@ static struct {
|
||||
#endif
|
||||
};
|
||||
static const char *ssl_key;
|
||||
static const char *ssl_key_type;
|
||||
static const char *ssl_capath;
|
||||
static const char *curl_no_proxy;
|
||||
#ifdef GIT_CURL_HAVE_CURLOPT_PINNEDPUBLICKEY
|
||||
@ -374,8 +376,12 @@ static int http_options(const char *var, const char *value, void *cb)
|
||||
return git_config_string(&ssl_version, var, value);
|
||||
if (!strcmp("http.sslcert", var))
|
||||
return git_config_pathname(&ssl_cert, var, value);
|
||||
if (!strcmp("http.sslcerttype", var))
|
||||
return git_config_string(&ssl_cert_type, var, value);
|
||||
if (!strcmp("http.sslkey", var))
|
||||
return git_config_pathname(&ssl_key, var, value);
|
||||
if (!strcmp("http.sslkeytype", var))
|
||||
return git_config_string(&ssl_key_type, var, value);
|
||||
if (!strcmp("http.sslcapath", var))
|
||||
return git_config_pathname(&ssl_capath, var, value);
|
||||
if (!strcmp("http.sslcainfo", var))
|
||||
@ -1014,10 +1020,14 @@ static CURL *get_curl_handle(void)
|
||||
|
||||
if (ssl_cert)
|
||||
curl_easy_setopt(result, CURLOPT_SSLCERT, ssl_cert);
|
||||
if (ssl_cert_type)
|
||||
curl_easy_setopt(result, CURLOPT_SSLCERTTYPE, ssl_cert_type);
|
||||
if (has_cert_password())
|
||||
curl_easy_setopt(result, CURLOPT_KEYPASSWD, cert_auth.password);
|
||||
if (ssl_key)
|
||||
curl_easy_setopt(result, CURLOPT_SSLKEY, ssl_key);
|
||||
if (ssl_key_type)
|
||||
curl_easy_setopt(result, CURLOPT_SSLKEYTYPE, ssl_key_type);
|
||||
if (ssl_capath)
|
||||
curl_easy_setopt(result, CURLOPT_CAPATH, ssl_capath);
|
||||
#ifdef GIT_CURL_HAVE_CURLOPT_PINNEDPUBLICKEY
|
||||
@ -1252,7 +1262,9 @@ void http_init(struct remote *remote, const char *url, int proactive_auth)
|
||||
curl_ssl_verify = 0;
|
||||
|
||||
set_from_env(&ssl_cert, "GIT_SSL_CERT");
|
||||
set_from_env(&ssl_cert_type, "GIT_SSL_CERT_TYPE");
|
||||
set_from_env(&ssl_key, "GIT_SSL_KEY");
|
||||
set_from_env(&ssl_key_type, "GIT_SSL_KEY_TYPE");
|
||||
set_from_env(&ssl_capath, "GIT_SSL_CAPATH");
|
||||
set_from_env(&ssl_cainfo, "GIT_SSL_CAINFO");
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user