summaryrefslogtreecommitdiff
path: root/source3/include
diff options
context:
space:
mode:
authorLuke Leighton <lkcl@samba.org>1997-10-25 10:58:18 +0000
committerLuke Leighton <lkcl@samba.org>1997-10-25 10:58:18 +0000
commit390c1f3c4d3136b454fa5eb8681fa9ca34eaacc2 (patch)
treee88107b56beb9fca73376b00fc104dde556a24d0 /source3/include
parent3a25722080b18de19c89c190e64de89317cabcfa (diff)
downloadsamba-390c1f3c4d3136b454fa5eb8681fa9ca34eaacc2.tar.gz
samba-390c1f3c4d3136b454fa5eb8681fa9ca34eaacc2.tar.bz2
samba-390c1f3c4d3136b454fa5eb8681fa9ca34eaacc2.zip
Makefile :
adding bits for new nt domain code byteorder.h : trying to get macros right, and not to crash on SUNOS5... client.c : added #ifdef NTDOMAIN, and created do_nt_login() function. don't want to have to recompile client.c unless absolutely necessary. credentials.c : moved deal_with_creds() [possibly inappropriately] into credentials.c ipc.c reply.c server.c uid.c : attempting to make (un)become_root() functions calleable from smbclient. this is a little tricky: smbclient might have to be another setuid root program, immediately setuid'ing to non-root, so that we can reset-uid to root to get at the smbpasswd file. or, have a secure pipe mechanism to smbd to grab smbpasswd entries. or the like. smbdes.c smbencrypt.c : created a function to generate lm and nt owf hashes. lsaparse.c ntclient.c smbparse.c : added nt client LSA_AUTH2 code. it works, too! pipenetlog.c pipentlsa.c pipesrvsvc.c : simplification. code-shuffling. getting that damn offset right for the opcode in RPC_HDR. smb.h : changed dcinfo xxx_creds to DOM_CRED structures instead of DOM_CHAL. we might need to store the server times as well. proto.h : the usual. (This used to be commit 82436a3d99d4bdce249ce9ff27fd2ca4b2447e07)
Diffstat (limited to 'source3/include')
-rw-r--r--source3/include/byteorder.h6
-rw-r--r--source3/include/proto.h13
-rw-r--r--source3/include/smb.h6
3 files changed, 17 insertions, 8 deletions
diff --git a/source3/include/byteorder.h b/source3/include/byteorder.h
index f43159ecf4..147d20d26d 100644
--- a/source3/include/byteorder.h
+++ b/source3/include/byteorder.h
@@ -226,15 +226,15 @@ it also defines lots of intermediate macros, just ignore those :-)
#define DBG_RW_CVAL(string,depth,base,read,inbuf,outbuf) \
RW_CVAL(read,inbuf,outbuf,0) \
DEBUG(5,("%s%04x %s: %02x\n", \
- tab_depth(depth), PTR_DIFF(inbuf,base),string, *((uint8*)(inbuf))));
+ tab_depth(depth), PTR_DIFF(inbuf,base),string, CVAL(inbuf, 0)));
#define DBG_RW_SVAL(string,depth,base,read,inbuf,outbuf) \
RW_SVAL(read,inbuf,outbuf,0) \
DEBUG(5,("%s%04x %s: %04x\n", \
- tab_depth(depth), PTR_DIFF(inbuf,base),string, *((uint16*)(inbuf))));
+ tab_depth(depth), PTR_DIFF(inbuf,base),string, SVAL(inbuf, 0)));
#define DBG_RW_IVAL(string,depth,base,read,inbuf,outbuf) \
RW_IVAL(read,inbuf,outbuf,0) \
DEBUG(5,("%s%04x %s: %08x\n", \
- tab_depth(depth), PTR_DIFF(inbuf,base),string, *((uint32*)(inbuf))));
+ tab_depth(depth), PTR_DIFF(inbuf,base),string, IVAL(inbuf, 0)));
diff --git a/source3/include/proto.h b/source3/include/proto.h
index 03c3eaf6a5..5321eb4187 100644
--- a/source3/include/proto.h
+++ b/source3/include/proto.h
@@ -100,6 +100,8 @@ void cred_create(uint32 session_key[2], DOM_CHAL *stor_cred, UTIME timestamp,
DOM_CHAL *cred);
int cred_assert(DOM_CHAL *cred, uint32 session_key[2], DOM_CHAL *stored_cred,
UTIME timestamp);
+BOOL srv_deal_with_creds(struct dcinfo *dc, DOM_CRED *clnt_cred, DOM_CRED *srv_cred);
+BOOL clnt_deal_with_creds(struct dcinfo *dc, DOM_CRED *srv_cred, DOM_CRED *clnt_cred);
/*The following definitions come from dir.c */
@@ -378,6 +380,9 @@ void make_q_req_chal(LSA_Q_REQ_CHAL *q_c,
DOM_CHAL *clnt_chal);
char* lsa_io_q_req_chal(BOOL io, LSA_Q_REQ_CHAL *q_c, char *q, char *base, int align, int depth);
char* lsa_io_r_req_chal(BOOL io, LSA_R_REQ_CHAL *r_c, char *q, char *base, int align, int depth);
+void make_q_auth_2(LSA_Q_AUTH_2 *q_a,
+ char *logon_srv, char *acct_name, uint16 sec_chan, char *comp_name,
+ DOM_CHAL *clnt_chal, uint32 clnt_flgs);
char* lsa_io_q_auth_2(BOOL io, LSA_Q_AUTH_2 *q_a, char *q, char *base, int align, int depth);
char* lsa_io_r_auth_2(BOOL io, LSA_R_AUTH_2 *r_a, char *q, char *base, int align, int depth);
char* lsa_io_q_srv_pwset(BOOL io, LSA_Q_SRV_PWSET *q_s, char *q, char *base, int align, int depth);
@@ -633,7 +638,7 @@ void sync_browse_lists(struct subnet_record *d, struct work_record *work,
/*The following definitions come from ntclient.c */
-BOOL cli_lsa_req_chal(DOM_CHAL *srv_chal, char *desthost, char *myhostname,
+BOOL do_nt_login(char *desthost, char *myhostname,
int Client, int cnum);
/*The following definitions come from params.c */
@@ -673,6 +678,7 @@ void pcap_printer_fn(void (*fn)());
/*The following definitions come from pipenetlog.c */
+BOOL get_md4pw(char *md4pw, char *mach_acct);
BOOL api_netlogrpcTNP(int cnum,int uid, char *param,char *data,
int mdrcnt,int mprcnt,
char **rdata,char **rparam,
@@ -884,6 +890,7 @@ void cred_hash2(unsigned char *out,unsigned char *in,unsigned char *key);
void SMBencrypt(uchar *passwd, uchar *c8, uchar *p24);
void E_md4hash(uchar *passwd, uchar *p16);
void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24);
+void nt_lm_owf_gen(char *pwd, char nt_p16[16], char p16[16]);
/*The following definitions come from smbparse.c */
@@ -904,6 +911,8 @@ char* smb_io_dom_sid2(BOOL io, DOM_SID2 *sid2, char *q, char *base, int align, i
void make_dom_rid2(DOM_RID2 *rid2, uint32 rid);
char* smb_io_dom_rid2(BOOL io, DOM_RID2 *rid2, char *q, char *base, int align, int depth);
char* smb_io_clnt_srv(BOOL io, DOM_CLNT_SRV *log, char *q, char *base, int align, int depth);
+void make_log_info(DOM_LOG_INFO *log, char *logon_srv, char *acct_name,
+ uint16 sec_chan, char *comp_name);
char* smb_io_log_info(BOOL io, DOM_LOG_INFO *log, char *q, char *base, int align, int depth);
char* smb_io_chal(BOOL io, DOM_CHAL *chal, char *q, char *base, int align, int depth);
char* smb_io_cred(BOOL io, DOM_CRED *cred, char *q, char *base, int align, int depth);
@@ -1015,7 +1024,7 @@ char *ufc_crypt(char *key,char *salt);
void init_uid(void);
BOOL become_guest(void);
-BOOL become_user(int cnum, uint16 vuid);
+BOOL become_user(connection_struct *conn, int cnum, uint16 vuid);
BOOL unbecome_user(void );
int smbrun(char *cmd,char *outfile,BOOL shared);
void become_root(BOOL save_dir) ;
diff --git a/source3/include/smb.h b/source3/include/smb.h
index 83ed54c998..b6b9d177a1 100644
--- a/source3/include/smb.h
+++ b/source3/include/smb.h
@@ -550,7 +550,7 @@ typedef struct rpc_hdr_info
uint32 alloc_hint; /* allocation hint - data size (bytes) minus header and tail. */
uint16 context_id; /* 0 - presentation context identifier */
uint8 cancel_count; /* 0 - cancel count */
- uint8 reserved; /* 0 - reserved */
+ uint8 opnum; /* request: 0 - reserved. response: opnum */
} RPC_HDR;
@@ -1185,8 +1185,8 @@ struct dcinfo
{
DOM_CHAL clnt_chal; /* Initial challenge received from client */
DOM_CHAL srv_chal; /* Initial server challenge */
- DOM_CHAL clnt_cred; /* Last client credential */
- DOM_CHAL srv_cred; /* Last server credential */
+ DOM_CRED clnt_cred; /* Last client credential */
+ DOM_CRED srv_cred; /* Last server credential */
uint32 sess_key[2]; /* Session key */
uchar md4pw[16]; /* md4(machine password) */