From e357d9106895b165bfa3f8331b9f186004c9a6cd Mon Sep 17 00:00:00 2001 From: Luke Leighton Date: Sun, 9 Nov 1997 17:30:10 +0000 Subject: attempting to mark up 32 bit error codes, needed for NT domains. separated out smb server-mode password validation into a separate file. added called and calling netbios names to client gen state: referenced section in rfc1002.txt. created workstation trust account checking code in ntclient.c there might be a bug in reply_session_setup_andX. i indented and added { } around single-line if statements: the lm password checking code now doesn't look right (around the GUEST_SESSSETUP bits). *no code semantics have been changed by the indentation process*. (This used to be commit f27966957fa7f16d337a4a58719239d036deab4c) --- source3/libsmb/smbencrypt.c | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) (limited to 'source3/libsmb/smbencrypt.c') diff --git a/source3/libsmb/smbencrypt.c b/source3/libsmb/smbencrypt.c index 38d414cf23..1bf0bcc8e6 100644 --- a/source3/libsmb/smbencrypt.c +++ b/source3/libsmb/smbencrypt.c @@ -29,8 +29,9 @@ extern int DEBUGLEVEL; /* This implements the X/Open SMB password encryption It takes a password, a 8 byte "crypt key" and puts 24 bytes of - encrypted password into p24 */ -void SMBencrypt(uchar *passwd, uchar *c8, uchar *p24) + encrypted password into p24 + */ +void SMBencrypt(uchar *passwd, uchar *c8, uchar p24[24]) { uchar p14[15], p21[21]; @@ -97,9 +98,19 @@ void E_md4hash(uchar *passwd, uchar *p16) mdfour(p16, (unsigned char *)wpwd, len); } -/* Does the NT MD4 hash then des encryption. */ +/* Does the des encryption from the NT or LM MD4 hash. */ +void SMBOWFencrypt(char passwd[16], uchar *c8, uchar p24[24]) +{ + uchar p21[21]; + + memset(p21,'\0',21); -void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24) + memcpy(p21, passwd, sizeof(passwd)); + E_P24(p21, c8, p24); +} + +/* Does the NT MD4 hash then des encryption. */ +void SMBNTencrypt(uchar *passwd, uchar *c8, uchar p24[24]) { uchar p21[21]; @@ -110,8 +121,7 @@ void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24) } /* Does both the NT and LM owfs of a user's password */ - -void nt_lm_owf_gen(char *pwd, char *nt_p16, char *p16) +void nt_lm_owf_gen(char *pwd, char nt_p16[16], char p16[16]) { char passwd[130]; StrnCpy(passwd, pwd, sizeof(passwd)-1); -- cgit