comparison mod_s2s_auth_fingerprint/mod_s2s_auth_fingerprint.lua @ 1324:853a382c9bd6

mod_turncredentials: Advertise the XEP-0215 feature (thanks Gryffus)
author Kim Alvefur <zash@zash.se>
date Fri, 28 Feb 2014 15:36:06 +0100
parents 2b62a3b76d76
children b21236b6b8d8
comparison
equal deleted inserted replaced
1323:c84ff82658cb 1324:853a382c9bd6
3 3
4 module:set_global(); 4 module:set_global();
5 5
6 local digest_algo = module:get_option_string(module:get_name().."_digest", "sha1"); 6 local digest_algo = module:get_option_string(module:get_name().."_digest", "sha1");
7 local must_match = module:get_option_boolean("s2s_pin_fingerprints", false); 7 local must_match = module:get_option_boolean("s2s_pin_fingerprints", false);
8 local tofu = module:get_option_boolean("s2s_tofu", false);
8 9
9 local fingerprints = {}; 10 local fingerprints = {};
10 11
11 local function hashprep(h) 12 local function hashprep(h)
12 return tostring(h):lower():gsub(":",""); 13 return tostring(h):lower():gsub(":","");
36 return true; 37 return true;
37 elseif must_match then 38 elseif must_match then
38 session.cert_chain_status = "invalid"; 39 session.cert_chain_status = "invalid";
39 session.cert_identity_status = "invalid"; 40 session.cert_identity_status = "invalid";
40 end 41 end
42 elseif tofu
43 and ( session.cert_chain_status ~= "valid"
44 or session.cert_identity_status ~= "valid" ) then
45 local digest = cert and cert:digest(digest_algo);
46 fingerprints[host] = {
47 [digest] = true;
48 }
41 end 49 end
42 end); 50 end);
51
52 function module.save()
53 return { fingerprints = fingerprints };
54 end
55
56 function module.restore(state)
57 fingerprints = state.fingerprints;
58 end