Comparison

plugins/mod_auth_internal_hashed.lua @ 10522:b1ca849b8e3a 0.11

mod_auth_internal_hashed: Pass on errors from password hash function (fixes #1477)
author Kim Alvefur <zash@zash.se>
date Mon, 23 Dec 2019 22:42:39 +0100
parent 8192:4354f556c5db
child 10563:e8db377a2983
child 10914:0d7d71dee0a0
comparison
equal deleted inserted replaced
10520:225fade2ab4d 10522:b1ca849b8e3a
66 local account = accounts:get(username); 66 local account = accounts:get(username);
67 if account then 67 if account then
68 account.salt = generate_uuid(); 68 account.salt = generate_uuid();
69 account.iteration_count = max(account.iteration_count or 0, default_iteration_count); 69 account.iteration_count = max(account.iteration_count or 0, default_iteration_count);
70 local valid, stored_key, server_key = getAuthenticationDatabaseSHA1(password, account.salt, account.iteration_count); 70 local valid, stored_key, server_key = getAuthenticationDatabaseSHA1(password, account.salt, account.iteration_count);
71 if not valid then
72 return valid, stored_key;
73 end
71 local stored_key_hex = to_hex(stored_key); 74 local stored_key_hex = to_hex(stored_key);
72 local server_key_hex = to_hex(server_key); 75 local server_key_hex = to_hex(server_key);
73 76
74 account.stored_key = stored_key_hex 77 account.stored_key = stored_key_hex
75 account.server_key = server_key_hex 78 account.server_key = server_key_hex
97 if password == nil then 100 if password == nil then
98 return accounts:set(username, {}); 101 return accounts:set(username, {});
99 end 102 end
100 local salt = generate_uuid(); 103 local salt = generate_uuid();
101 local valid, stored_key, server_key = getAuthenticationDatabaseSHA1(password, salt, default_iteration_count); 104 local valid, stored_key, server_key = getAuthenticationDatabaseSHA1(password, salt, default_iteration_count);
105 if not valid then
106 return valid, stored_key;
107 end
102 local stored_key_hex = to_hex(stored_key); 108 local stored_key_hex = to_hex(stored_key);
103 local server_key_hex = to_hex(server_key); 109 local server_key_hex = to_hex(server_key);
104 return accounts:set(username, { 110 return accounts:set(username, {
105 stored_key = stored_key_hex, server_key = server_key_hex, 111 stored_key = stored_key_hex, server_key = server_key_hex,
106 salt = salt, iteration_count = default_iteration_count 112 salt = salt, iteration_count = default_iteration_count