Software /
code /
prosody
Comparison
core/certmanager.lua @ 8403:ba39d3a1d42e
certmanager: Change table representing LuaSec capabilities to match capabilities table exposed in LuaSec 0.7
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Mon, 20 Nov 2017 00:25:18 +0100 |
parent | 8279:92cddfe65003 |
child | 8404:ca52d40e74da |
comparison
equal
deleted
inserted
replaced
8391:5edb0d01a94f | 8403:ba39d3a1d42e |
---|---|
35 local resolve_path = require"util.paths".resolve_relative_path; | 35 local resolve_path = require"util.paths".resolve_relative_path; |
36 local config_path = prosody.paths.config or "."; | 36 local config_path = prosody.paths.config or "."; |
37 | 37 |
38 local luasec_major, luasec_minor = ssl._VERSION:match("^(%d+)%.(%d+)"); | 38 local luasec_major, luasec_minor = ssl._VERSION:match("^(%d+)%.(%d+)"); |
39 local luasec_version = tonumber(luasec_major) * 100 + tonumber(luasec_minor); | 39 local luasec_version = tonumber(luasec_major) * 100 + tonumber(luasec_minor); |
40 local luasec_has = { | 40 local luasec_has = softreq"ssl.config" or { |
41 -- TODO If LuaSec ever starts exposing these things itself, use that instead | 41 algorithms = { |
42 cipher_server_preference = luasec_version >= 2; | 42 ec = luasec_version >= 5; |
43 no_ticket = luasec_version >= 4; | 43 }; |
44 no_compression = luasec_version >= 5; | 44 capabilities = { |
45 single_dh_use = luasec_version >= 2; | 45 curves_list = luasec_version >= 7; |
46 single_ecdh_use = luasec_version >= 2; | 46 }; |
47 options = { | |
48 cipher_server_preference = luasec_version >= 2; | |
49 no_ticket = luasec_version >= 4; | |
50 no_compression = luasec_version >= 5; | |
51 single_dh_use = luasec_version >= 2; | |
52 single_ecdh_use = luasec_version >= 2; | |
53 }; | |
47 }; | 54 }; |
48 | 55 |
49 local _ENV = nil; | 56 local _ENV = nil; |
50 | 57 |
51 -- Global SSL options if not overridden per-host | 58 -- Global SSL options if not overridden per-host |
97 capath = "/etc/ssl/certs"; | 104 capath = "/etc/ssl/certs"; |
98 depth = 9; | 105 depth = 9; |
99 protocol = "tlsv1+"; | 106 protocol = "tlsv1+"; |
100 verify = (ssl_x509 and { "peer", "client_once", }) or "none"; | 107 verify = (ssl_x509 and { "peer", "client_once", }) or "none"; |
101 options = { | 108 options = { |
102 cipher_server_preference = luasec_has.cipher_server_preference; | 109 cipher_server_preference = luasec_has.options.cipher_server_preference; |
103 no_ticket = luasec_has.no_ticket; | 110 no_ticket = luasec_has.options.no_ticket; |
104 no_compression = luasec_has.no_compression and configmanager.get("*", "ssl_compression") ~= true; | 111 no_compression = luasec_has.options.no_compression and configmanager.get("*", "ssl_compression") ~= true; |
105 single_dh_use = luasec_has.single_dh_use; | 112 single_dh_use = luasec_has.options.single_dh_use; |
106 single_ecdh_use = luasec_has.single_ecdh_use; | 113 single_ecdh_use = luasec_has.options.single_ecdh_use; |
107 }; | 114 }; |
108 verifyext = { "lsec_continue", "lsec_ignore_purpose" }; | 115 verifyext = { "lsec_continue", "lsec_ignore_purpose" }; |
109 curve = "secp384r1"; | 116 curve = "secp384r1"; |
110 curveslist = { | 117 curveslist = { |
111 "X25519", | 118 "X25519", |
225 end | 232 end |
226 | 233 |
227 local function reload_ssl_config() | 234 local function reload_ssl_config() |
228 global_ssl_config = configmanager.get("*", "ssl"); | 235 global_ssl_config = configmanager.get("*", "ssl"); |
229 global_certificates = configmanager.get("*", "certificates") or "certs"; | 236 global_certificates = configmanager.get("*", "certificates") or "certs"; |
230 if luasec_has.no_compression then | 237 if luasec_has.options.no_compression then |
231 core_defaults.options.no_compression = configmanager.get("*", "ssl_compression") ~= true; | 238 core_defaults.options.no_compression = configmanager.get("*", "ssl_compression") ~= true; |
232 end | 239 end |
233 end | 240 end |
234 | 241 |
235 prosody.events.add_handler("config-reloaded", reload_ssl_config); | 242 prosody.events.add_handler("config-reloaded", reload_ssl_config); |