/* Copyright (C) 2013 Grégory Soutadé This file is part of gPass. gPass is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. gPass is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with gPass. If not, see . */ var {Cc, Ci} = require("chrome"); var hmac = Cc["@mozilla.org/security/hmac;1"] .createInstance(Ci.nsICryptoHMAC); function hmac_init(key) { var keyObject = Cc["@mozilla.org/security/keyobjectfactory;1"] .getService(Ci.nsIKeyObjectFactory) .keyFromString(Ci.nsIKeyObject.HMAC, key); hmac.init(hmac.SHA256, keyObject); } function hmac_digest(message) { var data = new Uint8Array(message.length); for(i=0; i> 24) + String.fromCharCode((i & 0x00ff0000) >> 16) + String.fromCharCode((i & 0x0000ff00) >> 8) + String.fromCharCode((i & 0x000000ff) >> 0) ); temp_res = temp; for(a=1; a