comparison mod_s2s_auth_dane/mod_s2s_auth_dane.lua @ 1412:d85695be0441

Backout 33f132c3f4b7 until 0.10
author Kim Alvefur <zash@zash.se>
date Thu, 15 May 2014 11:12:31 +0200
parents 8626abe100e2
children 48141957f719
comparison
equal deleted inserted replaced
1411:8626abe100e2 1412:d85695be0441
20 local type = type; 20 local type = type;
21 local t_insert = table.insert; 21 local t_insert = table.insert;
22 local set = require"util.set"; 22 local set = require"util.set";
23 local dns_lookup = require"net.adns".lookup; 23 local dns_lookup = require"net.adns".lookup;
24 local hashes = require"util.hashes"; 24 local hashes = require"util.hashes";
25 local base64 = require"util.encodings".base64;
25 local idna_to_ascii = require "util.encodings".idna.to_ascii; 26 local idna_to_ascii = require "util.encodings".idna.to_ascii;
26 local idna_to_unicode = require"util.encodings".idna.to_unicode; 27 local idna_to_unicode = require"util.encodings".idna.to_unicode;
27 local nameprep = require"util.encodings".stringprep.nameprep; 28 local nameprep = require"util.encodings".stringprep.nameprep;
28 local cert_verify_identity = require "util.x509".verify_identity; 29 local cert_verify_identity = require "util.x509".verify_identity;
29 local pem2der = require"util.x509".pem2der;
30 30
31 do 31 do
32 local net_dns = require"net.dns"; 32 local net_dns = require"net.dns";
33 if not net_dns.types or not net_dns.types[52] then 33 if not net_dns.types or not net_dns.types[52] then
34 module:log("error", "No TLSA support available, DANE will not be supported"); 34 module:log("error", "No TLSA support available, DANE will not be supported");
35 return 35 return
36 end 36 end
37 end 37 end
38 38
39 local pat = "%-%-%-%-%-BEGIN ([A-Z ]+)%-%-%-%-%-\r?\n"..
40 "([0-9A-Za-z=+/\r\n]*)\r?\n%-%-%-%-%-END %1%-%-%-%-%-";
41 local function pem2der(pem)
42 local typ, data = pem:match(pat);
43 if typ and data then
44 return base64.decode(data), typ;
45 end
46 end
39 local use_map = { ["DANE-EE"] = 3; ["DANE-TA"] = 2; ["PKIX-EE"] = 1; ["PKIX-CA"] = 0 } 47 local use_map = { ["DANE-EE"] = 3; ["DANE-TA"] = 2; ["PKIX-EE"] = 1; ["PKIX-CA"] = 0 }
40 48
41 local implemented_uses = set.new { "DANE-EE", "PKIX-EE" }; 49 local implemented_uses = set.new { "DANE-EE", "PKIX-EE" };
42 if debug.getregistry()["SSL:Certificate"].__index.issued then 50 if debug.getregistry()["SSL:Certificate"].__index.issued then
43 -- Need cert:issued() for these 51 -- Need cert:issued() for these