aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/curl/lib/http_digest.c
diff options
context:
space:
mode:
authorNikita Slyusarev <nslus@yandex-team.com>2022-02-10 16:46:53 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:46:53 +0300
commit469afdc4e2587bf62ecdd096b75a0baa444c4012 (patch)
tree49e222ea1c5804306084bb3ae065bb702625360f /contrib/libs/curl/lib/http_digest.c
parentcd77cecfc03a3eaf87816af28a33067c4f0cdb59 (diff)
downloadydb-469afdc4e2587bf62ecdd096b75a0baa444c4012.tar.gz
Restoring authorship annotation for Nikita Slyusarev <nslus@yandex-team.com>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/curl/lib/http_digest.c')
-rw-r--r--contrib/libs/curl/lib/http_digest.c214
1 files changed, 107 insertions, 107 deletions
diff --git a/contrib/libs/curl/lib/http_digest.c b/contrib/libs/curl/lib/http_digest.c
index 36727b35f0..dfa40dcb61 100644
--- a/contrib/libs/curl/lib/http_digest.c
+++ b/contrib/libs/curl/lib/http_digest.c
@@ -1,99 +1,99 @@
-/***************************************************************************
- * _ _ ____ _
- * Project ___| | | | _ \| |
- * / __| | | | |_) | |
- * | (__| |_| | _ <| |___
- * \___|\___/|_| \_\_____|
- *
+/***************************************************************************
+ * _ _ ____ _
+ * Project ___| | | | _ \| |
+ * / __| | | | |_) | |
+ * | (__| |_| | _ <| |___
+ * \___|\___/|_| \_\_____|
+ *
* Copyright (C) 1998 - 2020, Daniel Stenberg, <daniel@haxx.se>, et al.
- *
- * This software is licensed as described in the file COPYING, which
- * you should have received as part of this distribution. The terms
+ *
+ * This software is licensed as described in the file COPYING, which
+ * you should have received as part of this distribution. The terms
* are also available at https://curl.se/docs/copyright.html.
- *
- * You may opt to use, copy, modify, merge, publish, distribute and/or sell
- * copies of the Software, and permit persons to whom the Software is
- * furnished to do so, under the terms of the COPYING file.
- *
- * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
- * KIND, either express or implied.
- *
- ***************************************************************************/
-
-#include "curl_setup.h"
-
-#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_CRYPTO_AUTH)
-
-#include "urldata.h"
+ *
+ * You may opt to use, copy, modify, merge, publish, distribute and/or sell
+ * copies of the Software, and permit persons to whom the Software is
+ * furnished to do so, under the terms of the COPYING file.
+ *
+ * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY
+ * KIND, either express or implied.
+ *
+ ***************************************************************************/
+
+#include "curl_setup.h"
+
+#if !defined(CURL_DISABLE_HTTP) && !defined(CURL_DISABLE_CRYPTO_AUTH)
+
+#include "urldata.h"
#include "strcase.h"
#include "vauth/vauth.h"
-#include "http_digest.h"
+#include "http_digest.h"
/* The last 3 #include files should be in this order */
#include "curl_printf.h"
-#include "curl_memory.h"
-#include "memdebug.h"
-
-/* Test example headers:
-
-WWW-Authenticate: Digest realm="testrealm", nonce="1053604598"
-Proxy-Authenticate: Digest realm="testrealm", nonce="1053604598"
-
-*/
-
+#include "curl_memory.h"
+#include "memdebug.h"
+
+/* Test example headers:
+
+WWW-Authenticate: Digest realm="testrealm", nonce="1053604598"
+Proxy-Authenticate: Digest realm="testrealm", nonce="1053604598"
+
+*/
+
CURLcode Curl_input_digest(struct connectdata *conn,
bool proxy,
const char *header) /* rest of the *-authenticate:
header */
-{
+{
struct Curl_easy *data = conn->data;
-
+
/* Point to the correct struct with this */
struct digestdata *digest;
- if(proxy) {
+ if(proxy) {
digest = &data->state.proxydigest;
- }
- else {
+ }
+ else {
digest = &data->state.digest;
- }
-
+ }
+
if(!checkprefix("Digest", header))
return CURLE_BAD_CONTENT_ENCODING;
header += strlen("Digest");
- while(*header && ISSPACE(*header))
- header++;
-
+ while(*header && ISSPACE(*header))
+ header++;
+
return Curl_auth_decode_digest_http_message(header, digest);
-}
-
-CURLcode Curl_output_digest(struct connectdata *conn,
- bool proxy,
- const unsigned char *request,
- const unsigned char *uripath)
-{
+}
+
+CURLcode Curl_output_digest(struct connectdata *conn,
+ bool proxy,
+ const unsigned char *request,
+ const unsigned char *uripath)
+{
CURLcode result;
struct Curl_easy *data = conn->data;
unsigned char *path = NULL;
- char *tmp = NULL;
+ char *tmp = NULL;
char *response;
size_t len;
bool have_chlg;
/* Point to the address of the pointer that holds the string to send to the
server, which is for a plain host or for a HTTP proxy */
- char **allocuserpwd;
+ char **allocuserpwd;
/* Point to the name and password for this */
- const char *userp;
- const char *passwdp;
+ const char *userp;
+ const char *passwdp;
/* Point to the correct struct with this */
struct digestdata *digest;
- struct auth *authp;
-
- if(proxy) {
+ struct auth *authp;
+
+ if(proxy) {
#ifdef CURL_DISABLE_PROXY
return CURLE_NOT_BUILT_IN;
#else
@@ -101,26 +101,26 @@ CURLcode Curl_output_digest(struct connectdata *conn,
allocuserpwd = &data->state.aptr.proxyuserpwd;
userp = conn->http_proxy.user;
passwdp = conn->http_proxy.passwd;
- authp = &data->state.authproxy;
+ authp = &data->state.authproxy;
#endif
- }
- else {
+ }
+ else {
digest = &data->state.digest;
allocuserpwd = &data->state.aptr.userpwd;
- userp = conn->user;
- passwdp = conn->passwd;
- authp = &data->state.authhost;
- }
-
- Curl_safefree(*allocuserpwd);
-
- /* not set means empty */
- if(!userp)
+ userp = conn->user;
+ passwdp = conn->passwd;
+ authp = &data->state.authhost;
+ }
+
+ Curl_safefree(*allocuserpwd);
+
+ /* not set means empty */
+ if(!userp)
userp = "";
-
- if(!passwdp)
+
+ if(!passwdp)
passwdp = "";
-
+
#if defined(USE_WINDOWS_SSPI)
have_chlg = digest->input_token ? TRUE : FALSE;
#else
@@ -128,58 +128,58 @@ CURLcode Curl_output_digest(struct connectdata *conn,
#endif
if(!have_chlg) {
- authp->done = FALSE;
- return CURLE_OK;
- }
-
- /* So IE browsers < v7 cut off the URI part at the query part when they
- evaluate the MD5 and some (IIS?) servers work with them so we may need to
- do the Digest IE-style. Note that the different ways cause different MD5
- sums to get sent.
-
- Apache servers can be set to do the Digest IE-style automatically using
- the BrowserMatch feature:
+ authp->done = FALSE;
+ return CURLE_OK;
+ }
+
+ /* So IE browsers < v7 cut off the URI part at the query part when they
+ evaluate the MD5 and some (IIS?) servers work with them so we may need to
+ do the Digest IE-style. Note that the different ways cause different MD5
+ sums to get sent.
+
+ Apache servers can be set to do the Digest IE-style automatically using
+ the BrowserMatch feature:
https://httpd.apache.org/docs/2.2/mod/mod_auth_digest.html#msie
-
- Further details on Digest implementation differences:
- http://www.fngtps.com/2006/09/http-authentication
- */
-
+
+ Further details on Digest implementation differences:
+ http://www.fngtps.com/2006/09/http-authentication
+ */
+
if(authp->iestyle) {
tmp = strchr((char *)uripath, '?');
if(tmp) {
size_t urilen = tmp - (char *)uripath;
path = (unsigned char *) aprintf("%.*s", urilen, uripath);
}
- }
+ }
if(!tmp)
path = (unsigned char *) strdup((char *) uripath);
-
+
if(!path)
- return CURLE_OUT_OF_MEMORY;
-
+ return CURLE_OUT_OF_MEMORY;
+
result = Curl_auth_create_digest_http_message(data, userp, passwdp, request,
path, digest, &response, &len);
free(path);
if(result)
return result;
-
+
*allocuserpwd = aprintf("%sAuthorization: Digest %s\r\n",
proxy ? "Proxy-" : "",
response);
free(response);
- if(!*allocuserpwd)
- return CURLE_OUT_OF_MEMORY;
-
+ if(!*allocuserpwd)
+ return CURLE_OUT_OF_MEMORY;
+
authp->done = TRUE;
-
- return CURLE_OK;
-}
-
+
+ return CURLE_OK;
+}
+
void Curl_http_auth_cleanup_digest(struct Curl_easy *data)
-{
+{
Curl_auth_digest_cleanup(&data->state.digest);
Curl_auth_digest_cleanup(&data->state.proxydigest);
-}
-
-#endif
+}
+
+#endif