ejabberd2prosody: Support password stored as SCRAM hashes

vault/0.11
Kim Alvefur 11 years ago
parent 5243ae5fee
commit 37438ca56e
  1. 17
      tools/ejabberd2prosody.lua

@ -72,7 +72,22 @@ function vcard(node, host, stanza)
print("["..(err or "success").."] vCard: "..node.."@"..host);
end
function password(node, host, password)
local ret, err = dm.store(node, host, "accounts", {password = password});
local data = {};
if type(password) == "string" then
data.password = password;
elseif type(password) == "table" and password[1] == "scram" then
local unb64 = require"mime".unb64;
local function hex(s)
return s:gsub(".", function (c)
return ("%02x"):format(c:byte());
end);
end
data.stored_key = hex(unb64(password[2]));
data.server_key = hex(unb64(password[3]));
data.salt = unb64(password[4]);
data.iteration_count = password[5];
end
local ret, err = dm.store(node, host, "accounts", data);
print("["..(err or "success").."] accounts: "..node.."@"..host);
end
function roster(node, host, jid, item)

Loading…
Cancel
Save