/* 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); exports.hmac = { hmac_init : function (key) { var keyObject = Cc["@mozilla.org/security/keyobjectfactory;1"] .getService(Ci.nsIKeyObjectFactory) .keyFromString(Ci.nsIKeyObject.HMAC, key); hmac.init(hmac.SHA256, keyObject); }, hmac_digest : function (message) { var data = new Uint8Array(message.length); for(i=0; i