From 1c7088b39c97fcb16ff58ad3d555188e20a9b5e6 Mon Sep 17 00:00:00 2001 From: Graham Wilson Date: Tue, 31 Aug 2004 20:27:25 +0000 Subject: Remove libntlm-0.21, as the top-level directory contains the same files. svn path=/trunk/; revision=3936 --- libntlm-0.21/smbutil.c | 218 ------------------------------------------------- 1 file changed, 218 deletions(-) delete mode 100644 libntlm-0.21/smbutil.c (limited to 'libntlm-0.21/smbutil.c') diff --git a/libntlm-0.21/smbutil.c b/libntlm-0.21/smbutil.c deleted file mode 100644 index 415e0665..00000000 --- a/libntlm-0.21/smbutil.c +++ /dev/null @@ -1,218 +0,0 @@ -#include -#include -#include -#include -#include -#include -#include "ntlm.h" -#include "smbencrypt.h" -#include "smbbyteorder.h" - -char versionString[] ="libntlm version 0.21"; - -/* Utility routines that handle NTLM auth structures. */ - -/* The [IS]VAL macros are to take care of byte order for non-Intel - * Machines -- I think this file is OK, but it hasn't been tested. - * The other files (the ones stolen from Samba) should be OK. - */ - - -/* I am not crazy about these macros -- they seem to have gotten - * a bit complex. A new scheme for handling string/buffer fields - * in the structures probably needs to be designed - */ - -#define AddBytes(ptr, header, buf, count) \ -{ \ -if (buf && count) \ - { \ - SSVAL(&ptr->header.len,0,count); \ - SSVAL(&ptr->header.maxlen,0,count); \ - SIVAL(&ptr->header.offset,0,((ptr->buffer - ((uint8*)ptr)) + ptr->bufIndex)); \ - memcpy(ptr->buffer+ptr->bufIndex, buf, count); \ - ptr->bufIndex += count; \ - } \ -else \ - { \ - ptr->header.len = \ - ptr->header.maxlen = 0; \ - SIVAL(&ptr->header.offset,0,ptr->bufIndex); \ - } \ -} - -#define AddString(ptr, header, string) \ -{ \ -char *p = string; \ -int len = 0; \ -if (p) len = strlen(p); \ -AddBytes(ptr, header, ((unsigned char*)p), len); \ -} - -#define AddUnicodeString(ptr, header, string) \ -{ \ -char *p = string; \ -unsigned char *b = NULL; \ -int len = 0; \ -if (p) \ - { \ - len = strlen(p); \ - b = strToUnicode(p); \ - } \ -AddBytes(ptr, header, b, len*2); \ -} - - -#define GetUnicodeString(structPtr, header) \ -unicodeToString(((char*)structPtr) + IVAL(&structPtr->header.offset,0) , SVAL(&structPtr->header.len,0)/2) -#define GetString(structPtr, header) \ -toString((((char *)structPtr) + IVAL(&structPtr->header.offset,0)), SVAL(&structPtr->header.len,0)) -#define DumpBuffer(fp, structPtr, header) \ -dumpRaw(fp,((unsigned char*)structPtr)+IVAL(&structPtr->header.offset,0),SVAL(&structPtr->header.len,0)) - - -static void dumpRaw(FILE *fp, unsigned char *buf, size_t len) - { - int i; - - for (i=0; iident); - fprintf(fp," mType = %d\n",IVAL(&request->msgType,0)); - fprintf(fp," Flags = %08x\n",IVAL(&request->flags,0)); - fprintf(fp," User = %s\n",GetString(request,user)); - fprintf(fp," Domain = %s\n",GetString(request,domain)); - } - -void dumpSmbNtlmAuthChallenge(FILE *fp, tSmbNtlmAuthChallenge *challenge) - { - fprintf(fp,"NTLM Challenge:\n"); - fprintf(fp," Ident = %s\n",challenge->ident); - fprintf(fp," mType = %d\n",IVAL(&challenge->msgType,0)); - fprintf(fp," Domain = %s\n",GetUnicodeString(challenge,uDomain)); - fprintf(fp," Flags = %08x\n",IVAL(&challenge->flags,0)); - fprintf(fp," Challenge = "); dumpRaw(fp, challenge->challengeData,8); - } - -void dumpSmbNtlmAuthResponse(FILE *fp, tSmbNtlmAuthResponse *response) - { - fprintf(fp,"NTLM Response:\n"); - fprintf(fp," Ident = %s\n",response->ident); - fprintf(fp," mType = %d\n",IVAL(&response->msgType,0)); - fprintf(fp," LmResp = "); DumpBuffer(fp,response,lmResponse); - fprintf(fp," NTResp = "); DumpBuffer(fp,response,ntResponse); - fprintf(fp," Domain = %s\n",GetUnicodeString(response,uDomain)); - fprintf(fp," User = %s\n",GetUnicodeString(response,uUser)); - fprintf(fp," Wks = %s\n",GetUnicodeString(response,uWks)); - fprintf(fp," sKey = "); DumpBuffer(fp, response,sessionKey); - fprintf(fp," Flags = %08x\n",IVAL(&response->flags,0)); - } - -void buildSmbNtlmAuthRequest(tSmbNtlmAuthRequest *request, char *user, char *domain) - { - char *u = strdup(user); - char *p = strchr(u,'@'); - - if (p) - { - if (!domain) - domain = p+1; - *p = '\0'; - } - - request->bufIndex = 0; - memcpy(request->ident,"NTLMSSP\0\0\0",8); - SIVAL(&request->msgType,0,1); - SIVAL(&request->flags,0,0x0000b207); /* have to figure out what these mean */ - AddString(request,user,u); - AddString(request,domain,domain); - free(u); - } - -void buildSmbNtlmAuthResponse(tSmbNtlmAuthChallenge *challenge, tSmbNtlmAuthResponse *response, char *user, char *password) - { - uint8 lmRespData[24]; - uint8 ntRespData[24]; - char *d = strdup(GetUnicodeString(challenge,uDomain)); - char *domain = d; - char *u = strdup(user); - char *p = strchr(u,'@'); - - if (p) - { - domain = p+1; - *p = '\0'; - } - - SMBencrypt(password, challenge->challengeData, lmRespData); - SMBNTencrypt(password, challenge->challengeData, ntRespData); - - response->bufIndex = 0; - memcpy(response->ident,"NTLMSSP\0\0\0",8); - SIVAL(&response->msgType,0,3); - - AddBytes(response,lmResponse,lmRespData,24); - AddBytes(response,ntResponse,ntRespData,24); - AddUnicodeString(response,uDomain,domain); - AddUnicodeString(response,uUser,u); - AddUnicodeString(response,uWks,u); - AddString(response,sessionKey,NULL); - - response->flags = challenge->flags; - - free(d); - free(u); - } - -- cgit v1.2.3