Right, this seems to work very well. I consider it solved.
Here is the corrected code: hash: function(str,method) { var converter = Components.classes["@mozilla.org/intl/ scriptableunicodeconverter"].createInstance (Components.interfaces.nsIScriptableUnicodeConverter); converter.charset = "UTF-8"; var result = {}; var data = converter.convertToByteArray(str, result); var hash_engine = Components.classes["@mozilla.org/security/hash; 1"].createInstance().QueryInterface (Components.interfaces.nsICryptoHash); switch(method) { case 'MD5': hash_engine.init(hash_engine.MD5); break; case 'SHA1': hash_engine.init(hash_engine.SHA1); break; case 'SHA256': hash_engine.init(hash_engine.SHA256); break; } hash_engine.update(data, result.value); return TOOLS.convert('bin2hex',hash_engine.finish(false)); }, -- dev-tech-crypto mailing list dev-tech-crypto@lists.mozilla.org https://lists.mozilla.org/listinfo/dev-tech-crypto