1
1

* samba/libsmb/clientgen.c (cli_oem_change_password): Removed.

* samba/libsmb/smbencrypt.c (make_oem_passwd_hash): Removed.
* samba/lib/util_sock.c (reset_globals_after_fork): Removed.
Этот коммит содержится в:
Andrew V. Samoilov 2005-01-20 16:32:23 +00:00
родитель d83d988c73
Коммит 1ed4f8c110
4 изменённых файлов: 5 добавлений и 146 удалений

Просмотреть файл

@ -1,5 +1,9 @@
2005-01-20 Andrew V. Samoilov <sav@bcs.zp.ua> 2005-01-20 Andrew V. Samoilov <sav@bcs.zp.ua>
* samba/libsmb/clientgen.c (cli_oem_change_password): Removed.
* samba/libsmb/smbencrypt.c (make_oem_passwd_hash): Removed.
* samba/lib/util_sock.c (reset_globals_after_fork): Removed.
* samba/lib/util_file.c: Comment out all but fgets_slash(). * samba/lib/util_file.c: Comment out all but fgets_slash().
* samba/lib/util.c: Comment out some more unused functions. * samba/lib/util.c: Comment out some more unused functions.
@ -8,7 +12,7 @@
(remote_proto, remote_arch): Make static const char * instead of (remote_proto, remote_arch): Make static const char * instead of
fstring. fstring.
(local_machine, remote_machine): Ditto. (local_machine, remote_machine): Ditto.
* samba/libsmb/clientgen.c (interpret_long_filename): Fix (interpret_long_filename): Fix
def_finfo declaration. def_finfo declaration.
2005-01-19 Andrew V. Samoilov <sav@bcs.zp.ua> 2005-01-19 Andrew V. Samoilov <sav@bcs.zp.ua>

Просмотреть файл

@ -800,22 +800,6 @@ connect_again:
static BOOL global_client_name_done = False; static BOOL global_client_name_done = False;
static BOOL global_client_addr_done = False; static BOOL global_client_addr_done = False;
void reset_globals_after_fork(void)
{
global_client_name_done = False;
global_client_addr_done = False;
/*
* Re-seed the random crypto generator, so all smbd's
* started from the same parent won't generate the same
* sequence.
*/
{
unsigned char dummy;
generate_random_buffer( &dummy, 1, True);
}
}
/******************************************************************* /*******************************************************************
return the DNS name of the client return the DNS name of the client
******************************************************************/ ******************************************************************/

Просмотреть файл

@ -2156,98 +2156,6 @@ int cli_list(struct cli_state *cli,const char *Mask,uint16 attribute,
} }
/****************************************************************************
Send a SamOEMChangePassword command
****************************************************************************/
BOOL cli_oem_change_password(struct cli_state *cli, const char *user, const char *new_password,
const char *old_password)
{
char param[16+sizeof(fstring)];
char data[532];
char *p = param;
fstring upper_case_old_pw;
fstring upper_case_new_pw;
unsigned char old_pw_hash[16];
unsigned char new_pw_hash[16];
int data_len;
int param_len = 0;
char *rparam = NULL;
char *rdata = NULL;
int rprcnt, rdrcnt;
if (strlen(user) >= sizeof(fstring)-1) {
DEBUG(0,("cli_oem_change_password: user name %s is too long.\n", user));
return False;
}
SSVAL(p,0,214); /* SamOEMChangePassword command. */
p += 2;
pstrcpy(p, "zsT");
p = skip_string(p,1);
pstrcpy(p, "B516B16");
p = skip_string(p,1);
pstrcpy(p,user);
p = skip_string(p,1);
SSVAL(p,0,532);
p += 2;
param_len = PTR_DIFF(p,param);
/*
* Get the Lanman hash of the old password, we
* use this as the key to make_oem_passwd_hash().
*/
memset(upper_case_old_pw, '\0', sizeof(upper_case_old_pw));
fstrcpy(upper_case_old_pw, old_password);
strupper(upper_case_old_pw);
E_P16((uchar *)upper_case_old_pw, old_pw_hash);
if (!make_oem_passwd_hash( data, new_password, old_pw_hash, False))
{
return False;
}
/*
* Now place the old password hash in the data.
*/
memset(upper_case_new_pw, '\0', sizeof(upper_case_new_pw));
fstrcpy(upper_case_new_pw, new_password);
strupper(upper_case_new_pw);
E_P16((uchar *)upper_case_new_pw, new_pw_hash);
E_old_pw_hash( new_pw_hash, old_pw_hash, (uchar *)&data[516]);
data_len = 532;
if (cli_send_trans(cli,SMBtrans,
PIPE_LANMAN,strlen(PIPE_LANMAN), /* name, length */
0,0, /* fid, flags */
NULL,0,0, /* setup, length, max */
param,param_len,2, /* param, length, max */
data,data_len,0 /* data, length, max */
) == False) {
DEBUG(0,("cli_oem_change_password: Failed to send password change for user %s\n",
user ));
return False;
}
if (cli_receive_trans(cli,SMBtrans,
&rparam, &rprcnt,
&rdata, &rdrcnt)) {
if (rparam)
cli->rap_error = SVAL(rparam,0);
}
if (rparam)
free(rparam);
if (rdata)
free(rdata);
return (cli->rap_error == 0);
}
/**************************************************************************** /****************************************************************************
send a negprot command send a negprot command
****************************************************************************/ ****************************************************************************/

Просмотреть файл

@ -189,40 +189,3 @@ void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24)
dump_data(100, (char *)p24, 24); dump_data(100, (char *)p24, 24);
#endif #endif
} }
BOOL make_oem_passwd_hash(char data[516], const char *passwd, uchar old_pw_hash[16], BOOL unicode)
{
int new_pw_len = strlen(passwd) * (unicode ? 2 : 1);
if (new_pw_len > 512)
{
DEBUG(0,("make_oem_passwd_hash: new password is too long.\n"));
return False;
}
/*
* Now setup the data area.
* We need to generate a random fill
* for this area to make it harder to
* decrypt. JRA.
*/
generate_random_buffer((unsigned char *)data, 516, False);
if (unicode)
{
struni2( &data[512 - new_pw_len], passwd);
}
else
{
fstrcpy( &data[512 - new_pw_len], passwd);
}
SIVAL(data, 512, new_pw_len);
#ifdef DEBUG_PASSWORD
DEBUG(100,("make_oem_passwd_hash\n"));
dump_data(100, data, 516);
#endif
SamOEMhash( (unsigned char *)data, (unsigned char *)old_pw_hash, True);
return True;
}