// This file contains methods for encryption and decryption of
// user name and password for login web services.

// fetches account password from cookie
function GetHashedAccountPWD()
{
	// decrypt service's name and password
	var hashedpwd = GetCookie("1kdoors_login"); // get account password
	if (hashedpwd == null)
		alert("No password entry");
		
	return hashedpwd; // hash password that will be used as key for decryption
}

// store account password after hashing in a cookie
function SetHashedAccountPWD(pwd)
{
	// hash account password
	var hashedpwd = hex_sha256("1kdoorsaccountpwd" + pwd + "1kdoorsaccountpwd");
		
	// store real password in cookie
	SetCookie("1kdoors_login",hashedpwd,1);
}

// encrypt user name and password
function EncryptLogin(plainUID,plainPWD)
{
	var hashedPwd = GetHashedAccountPWD(); // get hashed account password
	
	// decrypt service password and uid using hashed account password as key
	var cypherUID = EncryptStr(plainUID,hashedPwd);
	var cypherPWD = EncryptStr(plainPWD,hashedPwd);
	
	var resArr = new Array();
	resArr["uid"] = cypherUID;
	resArr["pwd"] = cypherPWD;
	
	return resArr;
}

// decrypt user name and password
function DecryptLogin(cypherUID,cypherPWD)
{
	var hashedPwd = GetHashedAccountPWD(); // get hashed account password
	
	// decrypt service password and uid using hashed account password as key
	var plainUid = DecryptStr(cypherUID,hashedPwd);
	var plainPwd = DecryptStr(cypherPWD,hashedPwd);
	
	var resArr = new Array();
	resArr["uid"] = plainUid;
	resArr["pwd"] = plainPwd;
	
	return resArr;
}

// decrypts the username and password and puts them inside the login form template
function FillLoginFormTemplate(loginFormTemplate,cypherUID,cypherPWD)
{
	var resArr = DecryptLogin(cypherUID,cypherPWD);
	loginFormTemplate = loginFormTemplate.replace(/__phash__USER__phash__/g,resArr["uid"]);
	loginFormTemplate = loginFormTemplate.replace(/__phash__PASSWORD__phash__/g,resArr["pwd"]);
	
	return loginFormTemplate;
}

