summaryrefslogtreecommitdiff
path: root/lib/ssl/src/ssl_config.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/ssl/src/ssl_config.erl')
-rw-r--r--lib/ssl/src/ssl_config.erl33
1 files changed, 32 insertions, 1 deletions
diff --git a/lib/ssl/src/ssl_config.erl b/lib/ssl/src/ssl_config.erl
index 6d09af9b1c..e03f117c82 100644
--- a/lib/ssl/src/ssl_config.erl
+++ b/lib/ssl/src/ssl_config.erl
@@ -29,7 +29,10 @@
-define(DEFAULT_MAX_SESSION_CACHE, 1000).
-export([init/2,
- pre_1_3_session_opts/0
+ pre_1_3_session_opts/0,
+ get_max_early_data_size/0,
+ get_ticket_lifetime/0,
+ get_ticket_store_size/0
]).
%%====================================================================
@@ -66,6 +69,32 @@ pre_1_3_session_opts() ->
[CbOpts#{lifetime => LifeTime, max => Max}].
+get_ticket_lifetime() ->
+ case application:get_env(ssl, server_session_ticket_lifetime) of
+ {ok, Seconds} when is_integer(Seconds) andalso
+ Seconds =< 604800 -> %% MUST be less than 7 days
+ Seconds;
+ _ ->
+ 7200 %% Default 2 hours
+ end.
+
+
+get_ticket_store_size() ->
+ case application:get_env(ssl, server_session_ticket_store_size) of
+ {ok, Size} when is_integer(Size) ->
+ Size;
+ _ ->
+ 1000
+ end.
+
+get_max_early_data_size() ->
+ case application:get_env(ssl, server_session_ticket_max_early_data) of
+ {ok, Size} when is_integer(Size) ->
+ Size;
+ _ ->
+ ?DEFAULT_MAX_EARLY_DATA_SIZE
+ end.
+
%%====================================================================
%% Internal functions
%%====================================================================
@@ -202,6 +231,7 @@ init_diffie_hellman(DbHandle,_, DHParamFile, server) ->
file_error(DHParamFile, {dhfile, Reason})
end.
+
session_cb_init_args() ->
case application:get_env(ssl, session_cb_init_args) of
{ok, Args} when is_list(Args) ->
@@ -225,3 +255,4 @@ max_session_cache_size() ->
_ ->
?DEFAULT_MAX_SESSION_CACHE
end.
+