X-Git-Url: https://git.enpas.org/?a=blobdiff_plain;f=core%2Fcertmanager.lua;h=4b96e774a8d3cec6ec276498c3f4e6b47b9b26c7;hb=454a3cd294ebd25dd18a38785a0040ab8f4b77fd;hp=b91f7110b57205be6335a2e047200dc4b597b94c;hpb=5a1000e8e61beb0c9ecf56ad9342d5b7031f9b49;p=prosody.git diff --git a/core/certmanager.lua b/core/certmanager.lua index b91f7110..4b96e774 100644 --- a/core/certmanager.lua +++ b/core/certmanager.lua @@ -17,11 +17,12 @@ local prosody = prosody; local resolve_path = configmanager.resolve_relative_path; local config_path = prosody.paths.config; -local luasec_has_noticket, luasec_has_verifyext; +local luasec_has_noticket, luasec_has_verifyext, luasec_has_no_compression; if ssl then local luasec_major, luasec_minor = ssl._VERSION:match("^(%d+)%.(%d+)"); luasec_has_noticket = tonumber(luasec_major)>0 or tonumber(luasec_minor)>=4; luasec_has_verifyext = tonumber(luasec_major)>0 or tonumber(luasec_minor)>=5; + luasec_has_no_compression = tonumber(luasec_major)>0 or tonumber(luasec_minor)>=5; end module "certmanager" @@ -39,12 +40,17 @@ if ssl and not luasec_has_verifyext and ssl.x509 then default_verify[#default_verify+1] = default_verifyext[i]:sub(6); end end +if luasec_has_no_compression and configmanager.get("*", "ssl_compression") ~= true then + default_options[#default_options+1] = "no_compression"; +end function create_context(host, mode, user_ssl_config) user_ssl_config = user_ssl_config or default_ssl_config; if not ssl then return nil, "LuaSec (required for encryption) was not found"; end if not user_ssl_config then return nil, "No SSL/TLS configuration present for "..host; end + if not user_ssl_config.key then return nil, "No key present in SSL/TLS configuration for "..host; end + if not user_ssl_config.certificate then return nil, "No certificate present in SSL/TLS configuration for "..host; end local ssl_config = { mode = mode; @@ -58,6 +64,8 @@ function create_context(host, mode, user_ssl_config) verifyext = user_ssl_config.verifyext or default_verifyext; options = user_ssl_config.options or default_options; depth = user_ssl_config.depth; + curve = user_ssl_config.curve; + dhparam = user_ssl_config.dhparam; }; local ctx, err = ssl_newcontext(ssl_config);