X-Git-Url: http://git.ozlabs.org/?p=ppp.git;a=blobdiff_plain;f=pppd%2Fchap_ms.c;h=4e50d5bd24018d39ee5de7cc4f0bfe9663ce2d85;hp=318c0b60559f0706535cb161fb38bd86b256d627;hb=1f80e9621160be1758b67634bb4a668f27d77587;hpb=b38527fb14af5ebe3d2559e2f861575c722a1ce9 diff --git a/pppd/chap_ms.c b/pppd/chap_ms.c index 318c0b6..4e50d5b 100644 --- a/pppd/chap_ms.c +++ b/pppd/chap_ms.c @@ -40,7 +40,7 @@ * Copyright (c) 2002 Google, Inc. */ -#define RCSID "$Id: chap_ms.c,v 1.19 2002/04/02 13:54:59 dfs Exp $" +#define RCSID "$Id: chap_ms.c,v 1.22 2002/09/06 22:11:12 kad Exp $" #ifdef CHAPMS @@ -261,11 +261,18 @@ ChallengeHash(u_char PeerChallenge[16], u_char *rchallenge, { SHA1_CTX sha1Context; u_char sha1Hash[SHA1_SIGNATURE_SIZE]; + char *user; + + /* remove domain from "domain\username" */ + if ((user = strrchr(username, '\\')) != NULL) + ++user; + else + user = username; SHA1_Init(&sha1Context); SHA1_Update(&sha1Context, PeerChallenge, 16); SHA1_Update(&sha1Context, rchallenge, 16); - SHA1_Update(&sha1Context, username, strlen(username)); + SHA1_Update(&sha1Context, user, strlen(user)); SHA1_Final(sha1Hash, &sha1Context); BCOPY(sha1Hash, Challenge, 8); @@ -563,18 +570,19 @@ ChapMS(chap_state *cstate, u_char *rchallenge, char *secret, int secret_len, #endif BZERO(response, sizeof(*response)); - /* Calculate both always */ ChapMS_NT(rchallenge, secret, secret_len, response->NTResp); #ifdef MSLANMAN ChapMS_LANMan(rchallenge, secret, secret_len, response); - /* prefered method is set by option */ + /* preferred method is set by option */ response->UseNT[0] = !ms_lanman; #else response->UseNT[0] = 1; #endif + cstate->resp_length = MS_CHAP_RESPONSE_LEN; + #ifdef MPPE Set_Start_Key(rchallenge, secret, secret_len); #endif @@ -618,6 +626,9 @@ ChapMS2(chap_state *cstate, u_char *rchallenge, u_char *PeerChallenge, GenerateAuthenticatorResponse(secret, secret_len, response->NTResp, response->PeerChallenge, rchallenge, user, authResponse); + + cstate->resp_length = MS_CHAP2_RESPONSE_LEN; + #ifdef MPPE SetMasterKeys(secret, secret_len, response->NTResp, authenticator); #endif