예제 #1
0
/****************************************************************************
 stores lm and nt hashed passwords
 ****************************************************************************/
void pwd_set_lm_nt_16(struct pwd_info *pwd, uchar lm_pwd[16], uchar nt_pwd[16])
{
	pwd_init(pwd);

	if (lm_pwd)
	{
		memcpy(pwd->smb_lm_pwd, lm_pwd, 16);
	}
	else
	{
		memset((char *)pwd->smb_lm_pwd, '\0', 16);
	}

	if (nt_pwd)
	{
		memcpy(pwd->smb_nt_pwd, nt_pwd, 16);
	}
	else
	{
		memset((char *)pwd->smb_nt_pwd, '\0', 16);
	}

	pwd->null_pwd  = False;
	pwd->cleartext = False;
	pwd->crypted   = False;

	pwd_obfuscate(pwd);
}
예제 #2
0
/****************************************************************************
 makes lm and nt OWF crypts
 ****************************************************************************/
void pwd_make_lm_nt_owf(struct pwd_info *pwd, uchar cryptkey[8])
{
	pwd_deobfuscate(pwd);

#ifdef DEBUG_PASSWORD
	DEBUG(100,("client cryptkey: "));
	dump_data(100, (char *)cryptkey, 8);
#endif

	SMBOWFencrypt(pwd->smb_nt_pwd, cryptkey, pwd->smb_nt_owf);

#ifdef DEBUG_PASSWORD
	DEBUG(100,("nt_owf_passwd: "));
	dump_data(100, (char *)pwd->smb_nt_owf, sizeof(pwd->smb_nt_owf));
	DEBUG(100,("nt_sess_pwd: "));
	dump_data(100, (char *)pwd->smb_nt_pwd, sizeof(pwd->smb_nt_pwd));
#endif

	SMBOWFencrypt(pwd->smb_lm_pwd, cryptkey, pwd->smb_lm_owf);

#ifdef DEBUG_PASSWORD
	DEBUG(100,("lm_owf_passwd: "));
	dump_data(100, (char *)pwd->smb_lm_owf, sizeof(pwd->smb_lm_owf));
	DEBUG(100,("lm_sess_pwd: "));
	dump_data(100, (char *)pwd->smb_lm_pwd, sizeof(pwd->smb_lm_pwd));
#endif

	pwd->crypted = True;

	pwd_obfuscate(pwd);
}
예제 #3
0
/****************************************************************************
 stores a cleartext password
 ****************************************************************************/
void pwd_set_cleartext(struct pwd_info *pwd, char *clr)
{
	pwd_init(pwd);
	fstrcpy(pwd->password, clr);
	pwd->cleartext = True;
	pwd->null_pwd  = False;
	pwd->crypted   = False;

	pwd_obfuscate(pwd);
}
예제 #4
0
/****************************************************************************
 makes lm and nt hashed passwords
 ****************************************************************************/
void pwd_make_lm_nt_16(struct pwd_info *pwd, char *clr)
{
	pwd_init(pwd);

	nt_lm_owf_gen(clr, pwd->smb_nt_pwd, pwd->smb_lm_pwd);
	pwd->null_pwd  = False;
	pwd->cleartext = False;
	pwd->crypted = False;

	pwd_obfuscate(pwd);
}
예제 #5
0
/****************************************************************************
 gets lm and nt crypts
 ****************************************************************************/
void pwd_get_lm_nt_owf(struct pwd_info *pwd, uchar lm_owf[24], uchar nt_owf[24])
{
	pwd_deobfuscate(pwd);
	if (lm_owf != NULL)
	{
		memcpy(lm_owf, pwd->smb_lm_owf, 24);
	}
	if (nt_owf != NULL)
	{
		memcpy(nt_owf, pwd->smb_nt_owf, 24);
	}
	pwd_obfuscate(pwd);
}
예제 #6
0
/****************************************************************************
 gets lm and nt hashed passwords
 ****************************************************************************/
void pwd_get_lm_nt_16(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);
	}
	if (nt_pwd != NULL)
	{
		memcpy(nt_pwd, pwd->smb_nt_pwd, 16);
	}
	pwd_obfuscate(pwd);
}
예제 #7
0
/****************************************************************************
 gets a cleartext password
 ****************************************************************************/
void pwd_get_cleartext(struct pwd_info *pwd, char *clr)
{
	pwd_deobfuscate(pwd);
	if (pwd->cleartext)
	{
		fstrcpy(clr, pwd->password);
	}
	else
	{
		clr[0] = 0;
	}
	pwd_obfuscate(pwd);
}
예제 #8
0
파일: pwd_cache.c 프로젝트: AllardJ/Tomato
/****************************************************************************
 makes lm and nt hashed passwords
 ****************************************************************************/
void pwd_make_lm_nt_16(struct pwd_info *pwd, char *clr)
{
	pstring dos_passwd;

	pwd_init(pwd);

	pstrcpy(dos_passwd, clr);
	unix_to_dos(dos_passwd, True);

	nt_lm_owf_gen(dos_passwd, pwd->smb_nt_pwd, pwd->smb_lm_pwd);
	pwd->null_pwd  = False;
	pwd->cleartext = False;
	pwd->crypted = False;

	pwd_obfuscate(pwd);
}