Fix javascript require problem
This commit is contained in:
		@@ -32,8 +32,10 @@ $user = (isset($_POST['user'])) ? $_POST['user'] : "";
 | 
			
		||||
<head>
 | 
			
		||||
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" >
 | 
			
		||||
<link rel="stylesheet" type="text/css" href="ressources/gpass.css" />
 | 
			
		||||
<script src="ressources/gpass.js"></script>
 | 
			
		||||
<script src="ressources/jssha256.js"></script>
 | 
			
		||||
<script src="ressources/hmac.js"></script>
 | 
			
		||||
<script src="ressources/pkdbf2.js"></script>
 | 
			
		||||
<script src="ressources/gpass.js"></script>
 | 
			
		||||
<?php
 | 
			
		||||
    global $user;
 | 
			
		||||
if ($user == "")
 | 
			
		||||
@@ -103,7 +105,8 @@ else
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
        echo "</select>\n";
 | 
			
		||||
    echo '  <b>Master key </b> <input id="see_password" type="password" name="mkey"/> <input name="see" type="submit" value="See" onclick="a=document.getElementById("selected_user") ; return derive_mkey(a.options[a.selectedIndex].value, "see_password") ;"/>' . "\n";
 | 
			
		||||
        echo '  <b>Master key </b> <input id="see_password" type="password" name="mkey"/>';
 | 
			
		||||
        echo "<input name=\"see\" type=\"submit\" value=\"See\" onclick=\"a=document.getElementById('selected_user') ; return derive_mkey(a.options[a.selectedIndex].value, 'see_password') ;\"/>" . "\n";
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
</form>
 | 
			
		||||
@@ -168,7 +171,7 @@ if ($user != "")
 | 
			
		||||
    echo 'password <input id="new_password" type="text" name="pwd"/>';
 | 
			
		||||
    echo 'master key <input id="new_mkey" type="password" name="mkey"/>';
 | 
			
		||||
    echo '<input type="button" value="Generate password" onClick="generate_password();"/>';
 | 
			
		||||
    echo "<input type=\"submit\" name=\"add\" value=\"Add\" onclick=\"a = document.getElementById('new_url') ; a.value = url_domain(a.value); return derive_mkey($user, 'new_mkey') ;\"/>";
 | 
			
		||||
    echo "<input type=\"submit\" name=\"add\" value=\"Add\" onclick=\"a = document.getElementById('new_url') ; a.value = url_domain(a.value); return derive_mkey('$user', 'new_mkey') ;\"/>";
 | 
			
		||||
    echo '</form>' . "\n";
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
 
 | 
			
		||||
@@ -73,8 +73,6 @@ function a2hex(str) {
 | 
			
		||||
    return hex;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
var pkdbf2 = require("pkdbf2").pkdbf2;
 | 
			
		||||
 | 
			
		||||
function derive_mkey(user, mkey_target)
 | 
			
		||||
{
 | 
			
		||||
    mkey_target = document.getElementById(mkey_target) ;
 | 
			
		||||
@@ -88,7 +86,7 @@ function derive_mkey(user, mkey_target)
 | 
			
		||||
 | 
			
		||||
    url = url_domain(document.URL) + "/" + user;
 | 
			
		||||
 | 
			
		||||
    mkey = a2hex(pkdbf2.pkdbf2(mkey, url, 1000, 256/8));
 | 
			
		||||
    mkey = a2hex(pkdbf2(mkey, url, 1000, 256/8));
 | 
			
		||||
    mkey_target.value = mkey;
 | 
			
		||||
 | 
			
		||||
    return true;
 | 
			
		||||
 
 | 
			
		||||
@@ -17,26 +17,22 @@
 | 
			
		||||
  along with gPass.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
var sha256 = require("jssha256").sha256;
 | 
			
		||||
function hmac256(key, message) {
 | 
			
		||||
    var ipad = "";
 | 
			
		||||
    var opad = "";
 | 
			
		||||
 | 
			
		||||
exports.hmac = {
 | 
			
		||||
    hmac : function(key, message) {
 | 
			
		||||
	var ipad = "";
 | 
			
		||||
	var opad = "";
 | 
			
		||||
 | 
			
		||||
	for(i=0; i<key.length; i++)
 | 
			
		||||
	{
 | 
			
		||||
	    ipad += String.fromCharCode(key.charCodeAt(i) ^ 0x36);
 | 
			
		||||
	    opad += String.fromCharCode(key.charCodeAt(i) ^ 0x5c);
 | 
			
		||||
	}
 | 
			
		||||
	while (ipad.length < 512/8)
 | 
			
		||||
	{
 | 
			
		||||
	    ipad += String.fromCharCode(0x36);
 | 
			
		||||
	    opad += String.fromCharCode(0x5c);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	result = sha256.digest(opad + sha256.digest(ipad + message));
 | 
			
		||||
 | 
			
		||||
	return result;
 | 
			
		||||
    for(i=0; i<key.length; i++)
 | 
			
		||||
    {
 | 
			
		||||
	ipad += String.fromCharCode(key.charCodeAt(i) ^ 0x36);
 | 
			
		||||
	opad += String.fromCharCode(key.charCodeAt(i) ^ 0x5c);
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
    while (ipad.length < 512/8)
 | 
			
		||||
    {
 | 
			
		||||
	ipad += String.fromCharCode(0x36);
 | 
			
		||||
	opad += String.fromCharCode(0x5c);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    result = digest256(opad + digest256(ipad + message));
 | 
			
		||||
 | 
			
		||||
    return result;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -232,15 +232,13 @@ function sha256_encode_hex() {
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Main function: returns a hex string representing the SHA256 value of the 
 | 
			
		||||
given data */
 | 
			
		||||
exports.sha256 = {
 | 
			
		||||
    digest : function (data) {
 | 
			
		||||
	sha256_init();
 | 
			
		||||
	sha256_update(data, data.length);
 | 
			
		||||
	sha256_final();
 | 
			
		||||
        return sha256_encode_hex();
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
   given data */
 | 
			
		||||
function digest256 (data) {
 | 
			
		||||
    sha256_init();
 | 
			
		||||
    sha256_update(data, data.length);
 | 
			
		||||
    sha256_final();
 | 
			
		||||
    return sha256_encode_hex();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* test if the JS-interpreter is working properly */
 | 
			
		||||
function sha256_self_test()
 | 
			
		||||
 
 | 
			
		||||
@@ -17,8 +17,6 @@
 | 
			
		||||
  along with gPass.  If not, see <http://www.gnu.org/licenses/>.
 | 
			
		||||
*/
 | 
			
		||||
 | 
			
		||||
var hmac256 = require("hmac").hmac;
 | 
			
		||||
 | 
			
		||||
// http://stackoverflow.com/questions/3745666/how-to-convert-from-hex-to-ascii-in-javascript
 | 
			
		||||
function hex2a(hex) {
 | 
			
		||||
    var str = '';
 | 
			
		||||
@@ -27,37 +25,35 @@ function hex2a(hex) {
 | 
			
		||||
    return str;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
exports.pkdbf2 = {
 | 
			
		||||
    pkdbf2 : function(password, salt, iterations, outlen) {
 | 
			
		||||
	var result = "";
 | 
			
		||||
	var temp = "";
 | 
			
		||||
	var temp2 = "";
 | 
			
		||||
	var temp_res = "";
 | 
			
		||||
	var temp_res2 = "";
 | 
			
		||||
function pkdbf2 (password, salt, iterations, outlen) {
 | 
			
		||||
    var result = "";
 | 
			
		||||
    var temp = "";
 | 
			
		||||
    var temp2 = "";
 | 
			
		||||
    var temp_res = "";
 | 
			
		||||
    var temp_res2 = "";
 | 
			
		||||
 | 
			
		||||
	for (i=1; result.length < outlen; i++)
 | 
			
		||||
    for (i=1; result.length < outlen; i++)
 | 
			
		||||
    {
 | 
			
		||||
	temp = hex2a(hmac256(salt + 
 | 
			
		||||
			     String.fromCharCode((i & 0xff000000) >> 24) +
 | 
			
		||||
			     String.fromCharCode((i & 0x00ff0000) >> 16) +
 | 
			
		||||
			     String.fromCharCode((i & 0x0000ff00) >>  8) +
 | 
			
		||||
			     String.fromCharCode((i & 0x000000ff) >>  0),
 | 
			
		||||
			     password));
 | 
			
		||||
	temp_res = temp;
 | 
			
		||||
 | 
			
		||||
	for(a=1; a<iterations; a++)
 | 
			
		||||
	{
 | 
			
		||||
	    temp = hex2a(hmac256.hmac(salt + 
 | 
			
		||||
				String.fromCharCode((i & 0xff000000) >> 24) +
 | 
			
		||||
				String.fromCharCode((i & 0x00ff0000) >> 16) +
 | 
			
		||||
				String.fromCharCode((i & 0x0000ff00) >>  8) +
 | 
			
		||||
				String.fromCharCode((i & 0x000000ff) >>  0),
 | 
			
		||||
				      password));
 | 
			
		||||
	    temp_res = temp;
 | 
			
		||||
 | 
			
		||||
	    for(a=1; a<iterations; a++)
 | 
			
		||||
	    {
 | 
			
		||||
		temp2 = hex2a(hmac256.hmac(temp, password));
 | 
			
		||||
		temp_res2 = "";
 | 
			
		||||
		for(b = 0; b<temp_res.length; b++)
 | 
			
		||||
		    temp_res2 += String.fromCharCode(temp_res.charCodeAt(b) ^ temp2.charCodeAt(b));
 | 
			
		||||
		temp_res = temp_res2;
 | 
			
		||||
		temp = temp2;
 | 
			
		||||
	    }
 | 
			
		||||
 | 
			
		||||
	    result += temp_res;
 | 
			
		||||
	    temp2 = hex2a(hmac256(temp, password));
 | 
			
		||||
	    temp_res2 = "";
 | 
			
		||||
	    for(b = 0; b<temp_res.length; b++)
 | 
			
		||||
		temp_res2 += String.fromCharCode(temp_res.charCodeAt(b) ^ temp2.charCodeAt(b));
 | 
			
		||||
	    temp_res = temp_res2;
 | 
			
		||||
	    temp = temp2;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	return result.substr(0, outlen);
 | 
			
		||||
	result += temp_res;
 | 
			
		||||
    }
 | 
			
		||||
};
 | 
			
		||||
 | 
			
		||||
    return result.substr(0, outlen);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user