From 78c1fd054f25ae2d0fa57669a0db102bc916577c Mon Sep 17 00:00:00 2001 From: Luke Leighton Date: Fri, 9 Oct 1998 23:31:50 +0000 Subject: dce/rpc (This used to be commit 8a7ac4a25d177235a98c0f84f97ee50432fb6359) --- source3/libsmb/clientgen.c | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) (limited to 'source3/libsmb/clientgen.c') diff --git a/source3/libsmb/clientgen.c b/source3/libsmb/clientgen.c index 025ec5e73f..72d7ca935b 100644 --- a/source3/libsmb/clientgen.c +++ b/source3/libsmb/clientgen.c @@ -2021,7 +2021,6 @@ BOOL cli_oem_change_password(struct cli_state *cli, char *user, char *new_passwo unsigned char new_pw_hash[16]; int data_len; int param_len = 0; - int new_pw_len = strlen(new_password); char *rparam = NULL; char *rdata = NULL; int rprcnt, rdrcnt; @@ -2031,11 +2030,6 @@ BOOL cli_oem_change_password(struct cli_state *cli, char *user, char *new_passwo return False; } - if (new_pw_len > 512) { - DEBUG(0,("cli_oem_change_password: new password for user %s is too long.\n", user)); - return False; - } - SSVAL(p,0,214); /* SamOEMChangePassword command. */ p += 2; pstrcpy(p, "zsT"); @@ -2049,26 +2043,19 @@ BOOL cli_oem_change_password(struct cli_state *cli, char *user, char *new_passwo param_len = PTR_DIFF(p,param); - /* - * 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, sizeof(data), False); - fstrcpy( &data[512 - new_pw_len], new_password); - SIVAL(data, 512, new_pw_len); - /* * Get the Lanman hash of the old password, we - * use this as the key to SamOEMHash(). + * 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); - SamOEMhash( (unsigned char *)data, (unsigned char *)old_pw_hash, True); + if (!make_oem_passwd_hash( data, new_password, old_pw_hash)) + { + return False; + } /* * Now place the old password hash in the data. -- cgit