Software /
code /
prosody
Comparison
util/sasl/scram.lua @ 3098:e5d349c0acde
util.sasl.scram: Fixed global access.
author | Waqas Hussain <waqas20@gmail.com> |
---|---|
date | Thu, 06 May 2010 15:19:20 +0500 |
parent | 3097:9341ef1a3345 |
child | 3099:2c4d06e7e3d3 |
comparison
equal
deleted
inserted
replaced
3097:9341ef1a3345 | 3098:e5d349c0acde |
---|---|
115 | 115 |
116 self.state["servernonce"] = generate_uuid(); | 116 self.state["servernonce"] = generate_uuid(); |
117 | 117 |
118 -- retreive credentials | 118 -- retreive credentials |
119 if self.profile.plain then | 119 if self.profile.plain then |
120 password, state = self.profile.plain(self.state.name, self.realm) | 120 local password, state = self.profile.plain(self.state.name, self.realm) |
121 if state == nil then return "failure", "not-authorized" | 121 if state == nil then return "failure", "not-authorized" |
122 elseif state == false then return "failure", "account-disabled" end | 122 elseif state == false then return "failure", "account-disabled" end |
123 | 123 |
124 password = saslprep(password); | 124 password = saslprep(password); |
125 if not password then | 125 if not password then |
127 return "failure", "not-authorized", "Invalid password." | 127 return "failure", "not-authorized", "Invalid password." |
128 end | 128 end |
129 self.state.salt = generate_uuid(); | 129 self.state.salt = generate_uuid(); |
130 self.state.iteration_count = default_i; | 130 self.state.iteration_count = default_i; |
131 self.state.salted_password = Hi(HMAC_f, password, self.state.salt, default_i); | 131 self.state.salted_password = Hi(HMAC_f, password, self.state.salt, default_i); |
132 elseif self.profile["scram-"..hash_name] then | 132 elseif self.profile["scram_"..hash_name] then |
133 salted_password, iteration_count, salt, state = self.profile["scram-"..hash_name](self.state.name, self.realm); | 133 local salted_password, iteration_count, salt, state = self.profile["scram-"..hash_name](self.state.name, self.realm); |
134 if state == nil then return "failure", "not-authorized" | 134 if state == nil then return "failure", "not-authorized" |
135 elseif state == false then return "failure", "account-disabled" end | 135 elseif state == false then return "failure", "account-disabled" end |
136 | 136 |
137 self.state.salted_password = salted_password; | 137 self.state.salted_password = salted_password; |
138 self.state.iteration_count = iteration_count; | 138 self.state.iteration_count = iteration_count; |
175 return scram_hash; | 175 return scram_hash; |
176 end | 176 end |
177 | 177 |
178 function init(registerMechanism) | 178 function init(registerMechanism) |
179 local function registerSCRAMMechanism(hash_name, hash, hmac_hash) | 179 local function registerSCRAMMechanism(hash_name, hash, hmac_hash) |
180 registerMechanism("SCRAM-"..hash_name, {"plain", "scram-"..(hash_name:lower())}, scram_gen(hash_name:lower(), hash, hmac_hash)); | 180 registerMechanism("SCRAM-"..hash_name, {"plain", "scram_"..(hash_name:lower())}, scram_gen(hash_name:lower(), hash, hmac_hash)); |
181 end | 181 end |
182 | 182 |
183 registerSCRAMMechanism("SHA-1", sha1, hmac_sha1); | 183 registerSCRAMMechanism("SHA-1", sha1, hmac_sha1); |
184 end | 184 end |
185 | 185 |