From 6e20e9bcf9b3181eeee335815e06bb7313c17919 Mon Sep 17 00:00:00 2001 From: Evgeniy Khramtsov Date: Thu, 17 Aug 2017 19:32:15 +0300 Subject: [PATCH] Get rid of deprecated crypto functions --- rebar.config | 1 + src/ejabberd_s2s_out.erl | 2 +- src/mod_http_upload.erl | 2 +- src/randoms.erl | 15 +++++++++++++++ 4 files changed, 18 insertions(+), 2 deletions(-) diff --git a/rebar.config b/rebar.config index b8a94611a..e10ab3cd4 100644 --- a/rebar.config +++ b/rebar.config @@ -92,6 +92,7 @@ {if_var_true, elixir, {d, 'ELIXIR_ENABLED'}}, {if_var_true, erlang_deprecated_types, {d, 'ERL_DEPRECATED_TYPES'}}, {if_have_fun, {crypto, strong_rand_bytes, 1}, {d, 'STRONG_RAND_BYTES'}}, + {if_have_fun, {rand, uniform, 1}, {d, 'RAND_UNIFORM'}}, {if_have_fun, {gb_sets, iterator_from, 2}, {d, 'GB_SETS_ITERATOR_FROM'}}, {if_have_fun, {public_key, short_name_hash, 1}, {d, 'SHORT_NAME_HASH'}}, {if_var_true, hipe, native}, diff --git a/src/ejabberd_s2s_out.erl b/src/ejabberd_s2s_out.erl index e8cad9792..fea5d8162 100644 --- a/src/ejabberd_s2s_out.erl +++ b/src/ejabberd_s2s_out.erl @@ -374,7 +374,7 @@ mk_bounce_error(_Lang, _State) -> -spec get_delay() -> non_neg_integer(). get_delay() -> MaxDelay = ejabberd_config:get_option(s2s_max_retry_delay, 300), - crypto:rand_uniform(1, MaxDelay). + randoms:uniform(MaxDelay). -spec set_idle_timeout(state()) -> state(). set_idle_timeout(#{on_route := send, server := LServer} = State) -> diff --git a/src/mod_http_upload.erl b/src/mod_http_upload.erl index 6d981e9ec..8d986d0d3 100644 --- a/src/mod_http_upload.erl +++ b/src/mod_http_upload.erl @@ -658,7 +658,7 @@ make_rand_string(S, N) -> make_rand_string([make_rand_char() | S], N - 1). -spec make_rand_char() -> char(). make_rand_char() -> - map_int_to_char(crypto:rand_uniform(0, 62)). + map_int_to_char(randoms:uniform(0, 61)). -spec map_int_to_char(0..61) -> char(). diff --git a/src/randoms.erl b/src/randoms.erl index ad07b47c2..7686edcff 100644 --- a/src/randoms.erl +++ b/src/randoms.erl @@ -32,6 +32,20 @@ -define(THRESHOLD, 16#10000000000000000). +-ifdef(RAND_UNIFORM). +get_string() -> + R = rand:uniform(?THRESHOLD), + integer_to_binary(R). + +uniform() -> + rand:uniform(). + +uniform(N) -> + rand:uniform(N). + +uniform(N, M) -> + rand:uniform(M-N+1) + N-1. +-else. get_string() -> R = crypto:rand_uniform(0, ?THRESHOLD), integer_to_binary(R). @@ -44,6 +58,7 @@ uniform(N) -> uniform(N, M) -> crypto:rand_uniform(N, M+1). +-endif. -ifdef(STRONG_RAND_BYTES). bytes(N) ->