From 754ae192a4390baeb4d00b96e72c69023efb22ee Mon Sep 17 00:00:00 2001 From: Mark Lodato Date: Wed, 27 May 2009 23:16:03 -0400 Subject: http.c: add http.sslCertPasswordProtected option Add a configuration option, http.sslCertPasswordProtected, and associated environment variable, GIT_SSL_CERT_PASSWORD_PROTECTED, to enable SSL client certificate password prompt from within git. If this option is false and if the environment variable does not exist, git falls back to OpenSSL's prompts (as in earlier versions of git). The environment variable may only be used to enable, not to disable git's password prompt. This behavior mimics GIT_NO_VERIFY; the mere existence of the variable is all that is checked. Signed-off-by: Mark Lodato Signed-off-by: Junio C Hamano --- http.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'http.c') diff --git a/http.c b/http.c index 1c138135d..1b140d381 100644 --- a/http.c +++ b/http.c @@ -140,6 +140,11 @@ static int http_options(const char *var, const char *value, void *cb) #endif if (!strcmp("http.sslcainfo", var)) return git_config_string(&ssl_cainfo, var, value); + if (!strcmp("http.sslcertpasswordprotected", var)) { + if (git_config_bool(var, value)) + ssl_cert_password_required = 1; + return 0; + } #ifdef USE_CURL_MULTI if (!strcmp("http.maxrequests", var)) { max_requests = git_config_int(var, value); @@ -360,7 +365,9 @@ void http_init(struct remote *remote) if (remote && remote->url && remote->url[0]) { http_auth_init(remote->url[0]); - if (!prefixcmp(remote->url[0], "https://")) + if (!ssl_cert_password_required && + getenv("GIT_SSL_CERT_PASSWORD_PROTECTED") && + !prefixcmp(remote->url[0], "https://")) ssl_cert_password_required = 1; } -- cgit v1.2.1