diff options
author | Tobias Markmann <tm@ayena.de> | 2010-02-28 22:50:25 +0100 |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2010-02-28 22:50:25 +0100 |
commit | 866437fa873a62c35bc84aad821343cd9fbf377e (patch) | |
tree | 5959cfa4a6b09bcf5f4d6af50d2dbebfba1f46f3 /util/sasl | |
parent | 03e17022ef1117321cd3898e7282f396692d824a (diff) | |
download | prosody-866437fa873a62c35bc84aad821343cd9fbf377e.tar.gz prosody-866437fa873a62c35bc84aad821343cd9fbf377e.zip |
util.sasl.plain: Adding plain_hashed authentication backend support.
Diffstat (limited to 'util/sasl')
-rw-r--r-- | util/sasl/plain.lua | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/util/sasl/plain.lua b/util/sasl/plain.lua index 43bb239f..6369face 100644 --- a/util/sasl/plain.lua +++ b/util/sasl/plain.lua @@ -32,6 +32,11 @@ plain-test: function(username, realm, password) return true or false, state; end + +plain-hashed: + function(username, realm) + return hashed_password, hash_function, state; + end ]] local function plain(self, message) @@ -61,6 +66,10 @@ local function plain(self, message) if correct_password == password then correct = true; else correct = false; end elseif self.profile.plain_test then correct, state = self.profile.plain_test(authentication, self.realm, password); + elseif self.profile.plain_hashed then + local hashed_password, hash_f; + hashed_password, hash_f, state = self.profile.plain_hashed(authentication, self.realm); + if hashed_password == hash_f(password) then correct = true; else correct = false; end end self.username = authentication @@ -76,7 +85,7 @@ local function plain(self, message) end function init(registerMechanism) - registerMechanism("PLAIN", {"plain", "plain_test"}, plain); + registerMechanism("PLAIN", {"plain", "plain_test", "plain_hashed"}, plain); end return _M; |