ntlm.h   ntlm.h 
/* ntlm.h header file for libntlm -*- c -*- /* ntlm.h --- Header file for libntlm. -*- c -*-
* *
* This file is part of libntlm. * This file is part of libntlm.
* *
* Libntlm is free software; you can redistribute it and/or * Libntlm is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public * modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either * License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version. * version 2.1 of the License, or (at your option) any later version.
* *
* Libntlm is distributed in the hope that it will be useful, * Libntlm is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details. * Lesser General Public License for more details.
* *
* You should have received a copy of the GNU Lesser General Public * You should have received a copy of the GNU Lesser General Public
* License along with libntlm; if not, write to the Free Software * License along with libntlm; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 US A
* *
*/ */
#ifndef _NTLM_H #ifndef NTLM_H
#define _NTLM_H # define NTLM_H
#ifdef __cplusplus # ifdef __cplusplus
extern "C" { extern "C"
#if 0 /* keep Emacsens's auto-indent happy */ {
} # endif
#endif
#endif
typedef unsigned short uint16; typedef unsigned short uint16;
typedef unsigned int uint32; typedef unsigned int uint32;
typedef unsigned char uint8; typedef unsigned char uint8;
#define NTLM_VERSION "0.3.2" #define NTLM_VERSION "0.3.3"
/* /*
* These structures are byte-order dependant, and should not * These structures are byte-order dependant, and should not
* be manipulated except by the use of the routines provided * be manipulated except by the use of the routines provided
*/ */
typedef struct typedef struct
{ {
uint16 len; uint16 len;
uint16 maxlen; uint16 maxlen;
uint32 offset; uint32 offset;
}tSmbStrHeader; } tSmbStrHeader;
typedef struct typedef struct
{ {
char ident[8]; char ident[8];
uint32 msgType; uint32 msgType;
uint32 flags; uint32 flags;
tSmbStrHeader user; tSmbStrHeader user;
tSmbStrHeader domain; tSmbStrHeader domain;
uint8 buffer[1024]; uint8 buffer[1024];
uint32 bufIndex; uint32 bufIndex;
}tSmbNtlmAuthRequest; } tSmbNtlmAuthRequest;
typedef struct typedef struct
{ {
char ident[8]; char ident[8];
uint32 msgType; uint32 msgType;
tSmbStrHeader uDomain; tSmbStrHeader uDomain;
uint32 flags; uint32 flags;
uint8 challengeData[8]; uint8 challengeData[8];
uint8 reserved[8]; uint8 reserved[8];
tSmbStrHeader emptyString; tSmbStrHeader emptyString;
uint8 buffer[1024]; uint8 buffer[1024];
uint32 bufIndex; uint32 bufIndex;
}tSmbNtlmAuthChallenge; } tSmbNtlmAuthChallenge;
typedef struct typedef struct
{ {
char ident[8]; char ident[8];
uint32 msgType; uint32 msgType;
tSmbStrHeader lmResponse; tSmbStrHeader lmResponse;
tSmbStrHeader ntResponse; tSmbStrHeader ntResponse;
tSmbStrHeader uDomain; tSmbStrHeader uDomain;
tSmbStrHeader uUser; tSmbStrHeader uUser;
tSmbStrHeader uWks; tSmbStrHeader uWks;
tSmbStrHeader sessionKey; tSmbStrHeader sessionKey;
uint32 flags; uint32 flags;
uint8 buffer[1024]; uint8 buffer[1024];
uint32 bufIndex; uint32 bufIndex;
}tSmbNtlmAuthResponse; } tSmbNtlmAuthResponse;
/* public: */ /* public: */
#define SmbLength(ptr) (((ptr)->buffer - (uint8*)(ptr)) + (ptr)->bufIndex) #define SmbLength(ptr) (((ptr)->buffer - (uint8*)(ptr)) + (ptr)->bufIndex)
extern void dumpSmbNtlmAuthRequest(FILE *fp, tSmbNtlmAuthRequest *request); extern void
extern void dumpSmbNtlmAuthChallenge(FILE *fp, tSmbNtlmAuthChallenge *chall dumpSmbNtlmAuthRequest (FILE * fp, tSmbNtlmAuthRequest * request);
enge); extern void
extern void dumpSmbNtlmAuthResponse(FILE *fp, tSmbNtlmAuthResponse *respons dumpSmbNtlmAuthChallenge (FILE * fp, tSmbNtlmAuthChallenge * challenge)
e); ;
extern void
dumpSmbNtlmAuthResponse (FILE * fp, tSmbNtlmAuthResponse * response);
extern void buildSmbNtlmAuthRequest(tSmbNtlmAuthRequest *request, char *use extern void
r, char *domain); buildSmbNtlmAuthRequest (tSmbNtlmAuthRequest * request,
extern void buildSmbNtlmAuthResponse(tSmbNtlmAuthChallenge *challenge, tSmb const char *user, const char *domain);
NtlmAuthResponse *response, char *user, char *password); extern void
buildSmbNtlmAuthResponse (tSmbNtlmAuthChallenge * challenge,
tSmbNtlmAuthResponse * response,
const char *user, const char *password);
#ifdef __cplusplus # ifdef __cplusplus
} }
#endif # endif
#endif #endif /* NTLM_H */
 End of changes. 14 change blocks. 
66 lines changed or deleted 69 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/