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 | |||