Comparison

plugins/mod_s2s_auth_certs.lua @ 6320:17344d25a0f6

mod_s2s_auth_certs: Pick a logging function once and stick with it
author Kim Alvefur <zash@zash.se>
date Fri, 25 Jul 2014 21:03:16 +0200
parent 6319:92d009af6eba
child 6373:84e7e418c29a
comparison
equal deleted inserted replaced
6319:92d009af6eba 6320:17344d25a0f6
7 module:hook("s2s-check-certificate", function(event) 7 module:hook("s2s-check-certificate", function(event)
8 local session, host, cert = event.session, event.host, event.cert; 8 local session, host, cert = event.session, event.host, event.cert;
9 local conn = session.conn:socket(); 9 local conn = session.conn:socket();
10 10
11 if cert then 11 if cert then
12 local log = session.log or log;
12 local chain_valid, errors; 13 local chain_valid, errors;
13 if conn.getpeerverification then 14 if conn.getpeerverification then
14 chain_valid, errors = conn:getpeerverification(); 15 chain_valid, errors = conn:getpeerverification();
15 elseif conn.getpeerchainvalid then -- COMPAT mw/luasec-hg 16 elseif conn.getpeerchainvalid then -- COMPAT mw/luasec-hg
16 chain_valid, errors = conn:getpeerchainvalid(); 17 chain_valid, errors = conn:getpeerchainvalid();
18 else 19 else
19 chain_valid, errors = false, { { "Chain verification not supported by this version of LuaSec" } }; 20 chain_valid, errors = false, { { "Chain verification not supported by this version of LuaSec" } };
20 end 21 end
21 -- Is there any interest in printing out all/the number of errors here? 22 -- Is there any interest in printing out all/the number of errors here?
22 if not chain_valid then 23 if not chain_valid then
23 (session.log or log)("debug", "certificate chain validation result: invalid"); 24 log("debug", "certificate chain validation result: invalid");
24 for depth, t in pairs(errors or NULL) do 25 for depth, t in pairs(errors or NULL) do
25 (session.log or log)("debug", "certificate error(s) at depth %d: %s", depth-1, table.concat(t, ", ")) 26 log("debug", "certificate error(s) at depth %d: %s", depth-1, table.concat(t, ", "))
26 end 27 end
27 session.cert_chain_status = "invalid"; 28 session.cert_chain_status = "invalid";
28 else 29 else
29 (session.log or log)("debug", "certificate chain validation result: valid"); 30 log("debug", "certificate chain validation result: valid");
30 session.cert_chain_status = "valid"; 31 session.cert_chain_status = "valid";
31 32
32 -- We'll go ahead and verify the asserted identity if the 33 -- We'll go ahead and verify the asserted identity if the
33 -- connecting server specified one. 34 -- connecting server specified one.
34 if host then 35 if host then
35 if cert_verify_identity(host, "xmpp-server", cert) then 36 if cert_verify_identity(host, "xmpp-server", cert) then
36 session.cert_identity_status = "valid" 37 session.cert_identity_status = "valid"
37 else 38 else
38 session.cert_identity_status = "invalid" 39 session.cert_identity_status = "invalid"
39 end 40 end
40 (session.log or log)("debug", "certificate identity validation result: %s", session.cert_identity_status); 41 log("debug", "certificate identity validation result: %s", session.cert_identity_status);
41 end 42 end
42 end 43 end
43 end 44 end
44 end, 509); 45 end, 509);
45 46