Mercurial > prosody-modules
comparison mod_s2s_auth_samecert/mod_s2s_auth_samecert.lua @ 4675:c9397cd5cfe6
mod_s2s_auth_samecert: Handle lack of provided client certificate
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Fri, 10 Sep 2021 20:15:19 +0200 |
parents | 3024116d6093 |
children |
comparison
equal
deleted
inserted
replaced
4674:1b701f208b1b | 4675:c9397cd5cfe6 |
---|---|
2 | 2 |
3 local hosts = prosody.hosts; | 3 local hosts = prosody.hosts; |
4 | 4 |
5 module:hook("s2s-check-certificate", function(event) | 5 module:hook("s2s-check-certificate", function(event) |
6 local session, cert = event.session, event.cert; | 6 local session, cert = event.session, event.cert; |
7 if session.direction ~= "incoming" then return end | 7 if not cert or session.direction ~= "incoming" then return end |
8 | 8 |
9 local outgoing = hosts[session.to_host].s2sout[session.from_host]; | 9 local outgoing = hosts[session.to_host].s2sout[session.from_host]; |
10 if outgoing and outgoing.type == "s2sout" and outgoing.secure and outgoing.conn:socket():getpeercertificate():pem() == cert:pem() then | 10 if outgoing and outgoing.type == "s2sout" and outgoing.secure and outgoing.conn:socket():getpeercertificate():pem() == cert:pem() then |
11 session.log("debug", "Certificate matches that of s2sout%s", tostring(outgoing):match("[a-f0-9]+$")); | 11 session.log("debug", "Certificate matches that of s2sout%s", tostring(outgoing):match("[a-f0-9]+$")); |
12 session.cert_identity_status = outgoing.cert_identity_status; | 12 session.cert_identity_status = outgoing.cert_identity_status; |
13 session.cert_chain_status = outgoing.cert_chain_status; | 13 session.cert_chain_status = outgoing.cert_chain_status; |