X-Git-Url: http://sjero.net/git/?p=wget;a=blobdiff_plain;f=src%2Fhttp-ntlm.c;h=def832be9bc6975b9e73f4bc85237c5924dce8fb;hp=9c9914aaa4c3d5c86ff979048861f986abb030f7;hb=2c772204111e678b7715937052c3e7217a42e1ad;hpb=0f61f51a3084aec6d4f586f7d5c927994e3978c9 diff --git a/src/http-ntlm.c b/src/http-ntlm.c index 9c9914aa..def832be 100644 --- a/src/http-ntlm.c +++ b/src/http-ntlm.c @@ -1,12 +1,12 @@ /* NTLM code. - Copyright (C) 2005 Free Software Foundation, Inc. - Donated by Daniel Stenberg. + Copyright (C) 2005, 2006, 2007, 2008 Free Software Foundation, Inc. + Contributed by Daniel Stenberg. This file is part of GNU Wget. GNU Wget is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2 of the License, or +the Free Software Foundation; either version 3 of the License, or (at your option) any later version. GNU Wget is distributed in the hope that it will be useful, @@ -15,20 +15,20 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License -along with Wget; if not, write to the Free Software -Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +along with Wget. If not, see . -In addition, as a special exception, the Free Software Foundation -gives permission to link the code of its release of Wget with the -OpenSSL project's "OpenSSL" library (or with modified versions of it -that use the same license as the "OpenSSL" library), and distribute -the linked executables. You must obey the GNU General Public License -in all respects for all of the code used other than "OpenSSL". If you -modify this file, you may extend this exception to your version of the -file, but you are not obligated to do so. If you do not wish to do -so, delete this exception statement from your version. */ +Additional permission under GNU GPL version 3 section 7 -#include +If you modify this program, or any covered work, by linking or +combining it with the OpenSSL project's OpenSSL library (or a +modified version of that library), containing parts covered by the +terms of the OpenSSL or SSLeay licenses, the Free Software Foundation +grants you additional permission to convey the resulting work. +Corresponding Source for a non-source form of such a combination +shall include the source code for the parts of OpenSSL used as well +as that of the covered work. */ + +#include "wget.h" /* NTLM details: @@ -37,19 +37,14 @@ so, delete this exception statement from your version. */ */ -/* -- WIN32 approved -- */ #include -#ifdef HAVE_STRING_H -# include -#else -# include -#endif +#include #include #include #include +#include -#include "wget.h" #include "utils.h" #include "http-ntlm.h" @@ -118,15 +113,15 @@ so, delete this exception statement from your version. */ beginning of the NTLM message, in bytes. */ -/* return 1 on success, 0 otherwise */ -int +/* return true on success, false otherwise */ +bool ntlm_input (struct ntlmdata *ntlm, const char *header) { if (0 != strncmp (header, "NTLM", 4)) - return 0; + return false; header += 4; - while (*header && ISSPACE(*header)) + while (*header && c_isspace(*header)) header++; if (*header) @@ -151,7 +146,7 @@ ntlm_input (struct ntlmdata *ntlm, const char *header) size = base64_decode (header, buffer); if (size < 0) - return 0; /* malformed base64 from server */ + return false; /* malformed base64 from server */ ntlm->state = NTLMSTATE_TYPE2; /* we got a type-2 */ @@ -164,16 +159,16 @@ ntlm_input (struct ntlmdata *ntlm, const char *header) else { if (ntlm->state >= NTLMSTATE_TYPE1) - { - DEBUGP (("Unexpected empty NTLM message.\n")); - return 0; /* this is an error */ - } + { + DEBUGP (("Unexpected empty NTLM message.\n")); + return false; /* this is an error */ + } DEBUGP (("Empty NTLM message, starting transaction.\n")); ntlm->state = NTLMSTATE_TYPE1; /* we should sent away a type-1 */ } - return 1; + return true; } /* @@ -182,7 +177,7 @@ ntlm_input (struct ntlmdata *ntlm, const char *header) */ static void setup_des_key(unsigned char *key_56, - DES_key_schedule DESKEYARG(ks)) + DES_key_schedule DESKEYARG(ks)) { DES_cblock key; @@ -227,8 +222,8 @@ calc_resp(unsigned char *keys, unsigned char *plaintext, unsigned char *results) */ static void mkhash(const char *password, - unsigned char *nonce, /* 8 bytes */ - unsigned char *lmresp /* must fit 0x18 bytes */ + unsigned char *nonce, /* 8 bytes */ + unsigned char *lmresp /* must fit 0x18 bytes */ #ifdef USE_NTRESPONSES , unsigned char *ntresp /* must fit 0x18 bytes */ #endif @@ -252,7 +247,7 @@ mkhash(const char *password, len = 14; for (i=0; i= sizeof(ntlmbuf)) + return NULL; + memcpy(&ntlmbuf[size], domain, domlen); size += domlen; @@ -555,14 +558,14 @@ ntlm_output (struct ntlmdata *ntlm, const char *user, const char *passwd, output = concat_strings ("NTLM ", base64, (char *) 0); ntlm->state = NTLMSTATE_TYPE3; /* we sent a type-3 */ - *ready = 1; + *ready = true; } break; case NTLMSTATE_TYPE3: /* connection is already authenticated, * don't send a header in future requests */ - *ready = 1; + *ready = true; output = NULL; break; }