aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeo Liu <[email protected]>2016-06-08 10:15:14 +0800
committerLeo Liu <[email protected]>2016-06-08 10:16:49 +0800
commita7d5141d13c8944867c9361e544981d9954728c4 (patch)
tree7bf30ebdab195c052450595b7f4793d30e49e0f5
parent8645a8f197b186f4e376bcd3753c5b019830dca8 (diff)
downloadcowlib-a7d5141d13c8944867c9361e544981d9954728c4.tar.gz
cowlib-a7d5141d13c8944867c9361e544981d9954728c4.tar.bz2
cowlib-a7d5141d13c8944867c9361e544981d9954728c4.zip
Fix #39: Prefer crypto:strong_rand_bytes/1
See also https://github.com/erlang/otp/pull/883
-rw-r--r--src/cow_hpack.erl2
-rw-r--r--src/cow_multipart.erl2
-rw-r--r--src/cow_ws.erl16
3 files changed, 10 insertions, 10 deletions
diff --git a/src/cow_hpack.erl b/src/cow_hpack.erl
index 738dd20..4ddd473 100644
--- a/src/cow_hpack.erl
+++ b/src/cow_hpack.erl
@@ -563,7 +563,7 @@ encode(Headers, State, Opts) ->
%% @todo Handle cases where no/never indexing is expected.
encode([], State, _, Acc) ->
{lists:reverse(Acc), State};
-encode([Header0 = {Name, Value0}|Tail], State, Opts, Acc) ->
+encode([_Header0 = {Name, Value0}|Tail], State, Opts, Acc) ->
Value = iolist_to_binary(Value0),
Header = {Name, Value},
case table_find(Header, State) of
diff --git a/src/cow_multipart.erl b/src/cow_multipart.erl
index 276a689..3cbef56 100644
--- a/src/cow_multipart.erl
+++ b/src/cow_multipart.erl
@@ -424,7 +424,7 @@ horse_parse() ->
-spec boundary() -> binary().
boundary() ->
- base64:encode(crypto:rand_bytes(48)).
+ base64:encode(crypto:strong_rand_bytes(48)).
%% @doc Return the first part's head.
%%
diff --git a/src/cow_ws.erl b/src/cow_ws.erl
index dcc81a5..6551cbc 100644
--- a/src/cow_ws.erl
+++ b/src/cow_ws.erl
@@ -60,7 +60,7 @@
-spec key() -> binary().
key() ->
- base64:encode(crypto:rand_bytes(16)).
+ base64:encode(crypto:strong_rand_bytes(16)).
%% @doc Encode the key into the accept value for the Websocket handshake response.
@@ -546,36 +546,36 @@ masked_frame({close, Payload}, Extensions) ->
masked_frame({close, StatusCode, Payload}, _) ->
Len = 2 + iolist_size(Payload),
true = Len =< 125,
- MaskKeyBin = << MaskKey:32 >> = crypto:rand_bytes(4),
+ MaskKeyBin = << MaskKey:32 >> = crypto:strong_rand_bytes(4),
[<< 1:1, 0:3, 8:4, 1:1, Len:7 >>, MaskKeyBin, mask(iolist_to_binary([<< StatusCode:16 >>, Payload]), MaskKey, <<>>)];
masked_frame({ping, Payload}, _) ->
Len = iolist_size(Payload),
true = Len =< 125,
- MaskKeyBin = << MaskKey:32 >> = crypto:rand_bytes(4),
+ MaskKeyBin = << MaskKey:32 >> = crypto:strong_rand_bytes(4),
[<< 1:1, 0:3, 9:4, 1:1, Len:7 >>, MaskKeyBin, mask(iolist_to_binary(Payload), MaskKey, <<>>)];
masked_frame({pong, Payload}, _) ->
Len = iolist_size(Payload),
true = Len =< 125,
- MaskKeyBin = << MaskKey:32 >> = crypto:rand_bytes(4),
+ MaskKeyBin = << MaskKey:32 >> = crypto:strong_rand_bytes(4),
[<< 1:1, 0:3, 10:4, 1:1, Len:7 >>, MaskKeyBin, mask(iolist_to_binary(Payload), MaskKey, <<>>)];
%% Data frames, deflate-frame extension.
masked_frame({text, Payload}, #{deflate := Deflate, deflate_takeover := TakeOver}) ->
- MaskKeyBin = << MaskKey:32 >> = crypto:rand_bytes(4),
+ MaskKeyBin = << MaskKey:32 >> = crypto:strong_rand_bytes(4),
Payload2 = mask(deflate_frame(Payload, Deflate, TakeOver), MaskKey, <<>>),
Len = payload_length(Payload2),
[<< 1:1, 1:1, 0:2, 1:4, 1:1, Len/bits >>, MaskKeyBin, Payload2];
masked_frame({binary, Payload}, #{deflate := Deflate, deflate_takeover := TakeOver}) ->
- MaskKeyBin = << MaskKey:32 >> = crypto:rand_bytes(4),
+ MaskKeyBin = << MaskKey:32 >> = crypto:strong_rand_bytes(4),
Payload2 = mask(deflate_frame(Payload, Deflate, TakeOver), MaskKey, <<>>),
Len = payload_length(Payload2),
[<< 1:1, 1:1, 0:2, 2:4, 1:1, Len/bits >>, MaskKeyBin, Payload2];
%% Data frames.
masked_frame({text, Payload}, _) ->
- MaskKeyBin = << MaskKey:32 >> = crypto:rand_bytes(4),
+ MaskKeyBin = << MaskKey:32 >> = crypto:strong_rand_bytes(4),
Len = payload_length(Payload),
[<< 1:1, 0:3, 1:4, 1:1, Len/bits >>, MaskKeyBin, mask(iolist_to_binary(Payload), MaskKey, <<>>)];
masked_frame({binary, Payload}, _) ->
- MaskKeyBin = << MaskKey:32 >> = crypto:rand_bytes(4),
+ MaskKeyBin = << MaskKey:32 >> = crypto:strong_rand_bytes(4),
Len = payload_length(Payload),
[<< 1:1, 0:3, 2:4, 1:1, Len/bits >>, MaskKeyBin, mask(iolist_to_binary(Payload), MaskKey, <<>>)].