/*
Unix SMB/Netbios implementation.
Version 1.9.
- Password cacheing. obfuscation is planned
+ Password cacheing.
Copyright (C) Luke Kenneth Casson Leighton 1996-1998
This program is free software; you can redistribute it and/or modify
return pwd->null_pwd;
}
-/****************************************************************************
-de-obfuscates a password
-****************************************************************************/
-static void pwd_deobfuscate(const struct pwd_info *pwd)
-{
-}
-
-/****************************************************************************
-obfuscates a password
-****************************************************************************/
-static void pwd_obfuscate(const struct pwd_info *pwd)
-{
-}
-
-/****************************************************************************
-sets the obfuscation key info
-****************************************************************************/
-void pwd_obfuscate_key(struct pwd_info *pwd, uint32 int_key, char *str_key)
-{
-}
/****************************************************************************
compares two passwords. hmm, not as trivial as expected. hmm.
****************************************************************************/
-BOOL pwd_compare(const struct pwd_info *_pwd1, const struct pwd_info *_pwd2)
+BOOL pwd_compare(const struct pwd_info *pwd1, const struct pwd_info *pwd2)
{
- struct pwd_info pwd1;
- struct pwd_info pwd2;
-
- memcpy(&pwd1, _pwd1, sizeof(pwd1));
- memcpy(&pwd2, _pwd2, sizeof(pwd2));
-
- pwd_deobfuscate(&pwd1);
- pwd_deobfuscate(&pwd2);
-
if (pwd1.crypted || pwd2.crypted)
{
DEBUG(0,("pwd_compare: cannot compare crypted passwords\n"));
pwd->null_pwd = False;
pwd->crypted = False;
- pwd_obfuscate(pwd);
}
/****************************************************************************
****************************************************************************/
void pwd_get_cleartext(struct pwd_info *pwd, char *clr)
{
- pwd_deobfuscate(pwd);
if (pwd->cleartext)
{
fstrcpy(clr, pwd->password);
{
clr[0] = 0;
}
- pwd_obfuscate(pwd);
}
/****************************************************************************
}
else
{
- bzero(pwd->smb_lm_pwd, 16);
+ memset(pwd->smb_lm_pwd, 0, 16);
}
if (nt_pwd)
}
else
{
- bzero(pwd->smb_nt_pwd, 16);
+ memset(pwd->smb_nt_pwd, 0, 16);
}
pwd->null_pwd = False;
pwd->cleartext = False;
pwd->crypted = False;
- pwd_obfuscate(pwd);
}
/****************************************************************************
****************************************************************************/
void pwd_get_lm_nt_16(const struct pwd_info *pwd, uchar lm_pwd[16], uchar nt_pwd[16])
{
- pwd_deobfuscate(pwd);
if (lm_pwd != NULL)
{
memcpy(lm_pwd, pwd->smb_lm_pwd, 16);
{
memcpy(nt_pwd, pwd->smb_nt_pwd, 16);
}
- pwd_obfuscate(pwd);
}
/****************************************************************************
pwd->cleartext = False;
pwd->crypted = False;
- pwd_obfuscate(pwd);
}
/****************************************************************************
DEBUG(10,("pwd_make_lm_nt_owf2: user %s, srv %s, dom %s\n",
user, server, domain));
- pwd_deobfuscate(pwd);
SMBgenclientchals(pwd->lm_cli_chal,
pwd->nt_cli_chal,
#endif
pwd->crypted = True;
- pwd_obfuscate(pwd);
}
/****************************************************************************
pwd->nt_owf_len = 0;
return;
}
- pwd_deobfuscate(pwd);
/* generate 24-byte hashes */
SMBOWFencrypt(pwd->smb_lm_pwd, cryptkey, pwd->smb_lm_owf);
pwd->crypted = True;
- pwd_obfuscate(pwd);
}
/****************************************************************************
return;
}
- pwd_deobfuscate(pwd);
if (lm_owf != NULL)
{
memcpy(lm_owf, pwd->smb_lm_owf, 24);
{
*nt_owf_len = pwd->nt_owf_len;
}
- pwd_obfuscate(pwd);
}