diff options
author | Luke Leighton <lkcl@samba.org> | 1998-10-10 00:46:28 +0000 |
---|---|---|
committer | Luke Leighton <lkcl@samba.org> | 1998-10-10 00:46:28 +0000 |
commit | dfb48aab6153e53a5efd1f8ee518375cc584b101 (patch) | |
tree | f964786620142391dc8e2f0c2be4b5726c985358 /source/libsmb | |
parent | 8a7ac4a25d177235a98c0f84f97ee50432fb6359 (diff) | |
download | samba-dfb48aab6153e53a5efd1f8ee518375cc584b101.tar.gz samba-dfb48aab6153e53a5efd1f8ee518375cc584b101.tar.xz samba-dfb48aab6153e53a5efd1f8ee518375cc584b101.zip |
dce/rpc
Diffstat (limited to 'source/libsmb')
-rw-r--r-- | source/libsmb/clientgen.c | 2 | ||||
-rw-r--r-- | source/libsmb/smbencrypt.c | 18 |
2 files changed, 15 insertions, 5 deletions
diff --git a/source/libsmb/clientgen.c b/source/libsmb/clientgen.c index 72d7ca935b2..64e67c55221 100644 --- a/source/libsmb/clientgen.c +++ b/source/libsmb/clientgen.c @@ -2052,7 +2052,7 @@ BOOL cli_oem_change_password(struct cli_state *cli, char *user, char *new_passwo 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)) + if (!make_oem_passwd_hash( data, new_password, old_pw_hash, False)) { return False; } diff --git a/source/libsmb/smbencrypt.c b/source/libsmb/smbencrypt.c index 27c19d58365..7caf417ea1f 100644 --- a/source/libsmb/smbencrypt.c +++ b/source/libsmb/smbencrypt.c @@ -190,10 +190,9 @@ void SMBNTencrypt(uchar *passwd, uchar *c8, uchar *p24) #endif } - -BOOL make_oem_passwd_hash(char data[516], char *passwd, char old_pw_hash[16]) +BOOL make_oem_passwd_hash(char data[516], char *passwd, char old_pw_hash[16], BOOL unicode) { - int new_pw_len = strlen(passwd); + int new_pw_len = strlen(passwd) * (unicode ? 2 : 1); if (new_pw_len > 512) { @@ -208,9 +207,20 @@ BOOL make_oem_passwd_hash(char data[516], char *passwd, char old_pw_hash[16]) * decrypt. JRA. */ generate_random_buffer((unsigned char *)data, 516, False); - fstrcpy( &data[512 - new_pw_len], passwd); + if (unicode) + { + struni2( (uint16*)(&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); } |