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