Software / code / prosody
Comparison
util/sasl.lua @ 2188:1fd38975addd sasl
Add support for plain profile in digest-md5 implementation.
| author | Tobias Markmann <tm@ayena.de> |
|---|---|
| date | Fri, 13 Nov 2009 10:54:17 +0100 |
| parent | 2187:f0a85d11823e |
| child | 2190:9657276387af |
comparison
equal
deleted
inserted
replaced
| 2187:f0a85d11823e | 2188:1fd38975addd |
|---|---|
| 14 | 14 |
| 15 local md5 = require "util.hashes".md5; | 15 local md5 = require "util.hashes".md5; |
| 16 local log = require "util.logger".init("sasl"); | 16 local log = require "util.logger".init("sasl"); |
| 17 local tostring = tostring; | 17 local tostring = tostring; |
| 18 local st = require "util.stanza"; | 18 local st = require "util.stanza"; |
| 19 local generate_uuid = require "util.uuid".generate; | |
| 20 local pairs, ipairs = pairs, ipairs; | 19 local pairs, ipairs = pairs, ipairs; |
| 21 local t_insert, t_concat = table.insert, table.concat; | 20 local t_insert, t_concat = table.insert, table.concat; |
| 22 local to_byte, to_char = string.byte, string.char; | |
| 23 local to_unicode = require "util.encodings".idna.to_unicode; | 21 local to_unicode = require "util.encodings".idna.to_unicode; |
| 24 local s_match = string.match; | 22 local s_match = string.match; |
| 25 local gmatch = string.gmatch | 23 local gmatch = string.gmatch |
| 26 local string = string | 24 local string = string |
| 27 local math = require "math" | 25 local math = require "math" |
| 39 local array = require "util.array" | 37 local array = require "util.array" |
| 40 module "sasl" | 38 module "sasl" |
| 41 | 39 |
| 42 --[[ | 40 --[[ |
| 43 Authentication Backend Prototypes: | 41 Authentication Backend Prototypes: |
| 42 | |
| 43 state = false : disabled | |
| 44 state = true : enabled | |
| 45 state = nil : non-existant | |
| 44 | 46 |
| 45 plain: | 47 plain: |
| 46 function(username, realm) | 48 function(username, realm) |
| 47 return password, state; | 49 return password, state; |
| 48 end | 50 end |
| 115 return true; | 117 return true; |
| 116 end | 118 end |
| 117 | 119 |
| 118 -- feed new messages to process into the library | 120 -- feed new messages to process into the library |
| 119 function method:process(message) | 121 function method:process(message) |
| 120 if message == "" or message == nil then return "failure", "malformed-request" end | 122 --if message == "" or message == nil then return "failure", "malformed-request" end |
| 121 return self.mech_i(self, message); | 123 return self.mech_i(self, message); |
| 122 end | 124 end |
| 123 | 125 |
| 124 -- load the mechanisms | 126 -- load the mechanisms |
| 125 m = require "util.sasl.plain" | 127 load_mechs = {"plain", "digest-md5"} |
| 126 m.init(registerMechanism) | 128 for _, mech in ipairs(load_mechs) do |
| 127 --dofile "util/sasl/digest-md5.lua" | 129 local name = "util.sasl."..mech; |
| 128 --dofile "util/sasl/scram.lua" | 130 local m = require(name); |
| 131 m.init(registerMechanism) | |
| 132 end | |
| 129 | 133 |
| 130 return _M; | 134 return _M; |