aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKim Alvefur <zash@zash.se>2013-10-13 01:36:28 +0200
committerKim Alvefur <zash@zash.se>2013-10-13 01:36:28 +0200
commit5ee9fb684a3e444a38be6d4cbcf92c351f1243e6 (patch)
tree034ee0d0b63fdea563450ab5e0cf81715a7d2cf9
parentd2c0175023d1ba650a904ddf80bac12ace72384a (diff)
downloadprosody-5ee9fb684a3e444a38be6d4cbcf92c351f1243e6.tar.gz
prosody-5ee9fb684a3e444a38be6d4cbcf92c351f1243e6.zip
util.sasl.scram: Cache profile name instead of concatenating when used
-rw-r--r--util/sasl/scram.lua5
1 files changed, 3 insertions, 2 deletions
diff --git a/util/sasl/scram.lua b/util/sasl/scram.lua
index 11fa4e7c..e1404b3b 100644
--- a/util/sasl/scram.lua
+++ b/util/sasl/scram.lua
@@ -101,6 +101,7 @@ function getAuthenticationDatabaseSHA1(password, salt, iteration_count)
end
local function scram_gen(hash_name, H_f, HMAC_f)
+ local profile_name = "scram_" .. hashprep(hash_name);
local function scram_hash(self, message)
local support_channel_binding = false;
if self.profile.cb then support_channel_binding = true; end
@@ -168,9 +169,9 @@ local function scram_gen(hash_name, H_f, HMAC_f)
log("error", "Generating authentication database failed. Reason: %s", stored_key);
return "failure", "temporary-auth-failure";
end
- elseif self.profile["scram_"..hashprep(hash_name)] then
+ elseif self.profile[profile_name] then
local state;
- stored_key, server_key, iteration_count, salt, state = self.profile["scram_"..hashprep(hash_name)](self, name, self.realm);
+ stored_key, server_key, iteration_count, salt, state = self.profile[profile_name](self, name, self.realm);
if state == nil then return "failure", "not-authorized"
elseif state == false then return "failure", "account-disabled" end
end