Comparison

util/sasl/scram.lua @ 6786:3deeb38d79ab

util.sasl.scram: Get rid of module call
author Kim Alvefur <zash@zash.se>
date Tue, 07 Apr 2015 23:26:32 +0200
parent 5871:e80916ce8d32
child 7216:65e36b81d56a
comparison
equal deleted inserted replaced
6785:bf1f09a5bcf7 6786:3deeb38d79ab
23 local log = require "util.logger".init("sasl"); 23 local log = require "util.logger".init("sasl");
24 local t_concat = table.concat; 24 local t_concat = table.concat;
25 local char = string.char; 25 local char = string.char;
26 local byte = string.byte; 26 local byte = string.byte;
27 27
28 module "sasl.scram" 28 local _ENV = nil;
29 29
30 --========================= 30 --=========================
31 --SASL SCRAM-SHA-1 according to RFC 5802 31 --SASL SCRAM-SHA-1 according to RFC 5802
32 32
33 --[[ 33 --[[
85 85
86 local function hashprep(hashname) 86 local function hashprep(hashname)
87 return hashname:lower():gsub("-", "_"); 87 return hashname:lower():gsub("-", "_");
88 end 88 end
89 89
90 function getAuthenticationDatabaseSHA1(password, salt, iteration_count) 90 local function getAuthenticationDatabaseSHA1(password, salt, iteration_count)
91 if type(password) ~= "string" or type(salt) ~= "string" or type(iteration_count) ~= "number" then 91 if type(password) ~= "string" or type(salt) ~= "string" or type(iteration_count) ~= "number" then
92 return false, "inappropriate argument types" 92 return false, "inappropriate argument types"
93 end 93 end
94 if iteration_count < 4096 then 94 if iteration_count < 4096 then
95 log("warn", "Iteration count < 4096 which is the suggested minimum according to RFC 5802.") 95 log("warn", "Iteration count < 4096 which is the suggested minimum according to RFC 5802.")
233 end 233 end
234 end 234 end
235 return scram_hash; 235 return scram_hash;
236 end 236 end
237 237
238 function init(registerMechanism) 238 local function init(registerMechanism)
239 local function registerSCRAMMechanism(hash_name, hash, hmac_hash) 239 local function registerSCRAMMechanism(hash_name, hash, hmac_hash)
240 registerMechanism("SCRAM-"..hash_name, {"plain", "scram_"..(hashprep(hash_name))}, scram_gen(hash_name:lower(), hash, hmac_hash)); 240 registerMechanism("SCRAM-"..hash_name, {"plain", "scram_"..(hashprep(hash_name))}, scram_gen(hash_name:lower(), hash, hmac_hash));
241 241
242 -- register channel binding equivalent 242 -- register channel binding equivalent
243 registerMechanism("SCRAM-"..hash_name.."-PLUS", {"plain", "scram_"..(hashprep(hash_name))}, scram_gen(hash_name:lower(), hash, hmac_hash), {"tls-unique"}); 243 registerMechanism("SCRAM-"..hash_name.."-PLUS", {"plain", "scram_"..(hashprep(hash_name))}, scram_gen(hash_name:lower(), hash, hmac_hash), {"tls-unique"});
244 end 244 end
245 245
246 registerSCRAMMechanism("SHA-1", sha1, hmac_sha1); 246 registerSCRAMMechanism("SHA-1", sha1, hmac_sha1);
247 end 247 end
248 248
249 return _M; 249 return {
250 getAuthenticationDatabaseSHA1 = getAuthenticationDatabaseSHA1;
251 init = init;
252 }