aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl/src/dtls_v1.erl
diff options
context:
space:
mode:
authorIngela Anderton Andin <[email protected]>2017-04-05 12:21:44 +0200
committerIngela Anderton Andin <[email protected]>2017-04-05 12:21:44 +0200
commita1100c46c2ca2121d723edc03cb7885e3014af7c (patch)
tree35fa69527d6e48d55efc911c783c77530c0196fa /lib/ssl/src/dtls_v1.erl
parentc156873ec1a81ce1b2909488ddbf430922d5f8e9 (diff)
parente594aad2f87aab39e99fccf9e021bc94e0bbf7d4 (diff)
downloadotp-a1100c46c2ca2121d723edc03cb7885e3014af7c.tar.gz
otp-a1100c46c2ca2121d723edc03cb7885e3014af7c.tar.bz2
otp-a1100c46c2ca2121d723edc03cb7885e3014af7c.zip
Merge branch 'ingela/ssl/dtls-cookie/OTP-14076'
* ingela/ssl/dtls-cookie/OTP-14076: dtls: Implement DTLS cookie secret generation
Diffstat (limited to 'lib/ssl/src/dtls_v1.erl')
-rw-r--r--lib/ssl/src/dtls_v1.erl12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/ssl/src/dtls_v1.erl b/lib/ssl/src/dtls_v1.erl
index dd0d35d404..4aaf8baa6c 100644
--- a/lib/ssl/src/dtls_v1.erl
+++ b/lib/ssl/src/dtls_v1.erl
@@ -22,7 +22,10 @@
-include("ssl_cipher.hrl").
-export([suites/1, all_suites/1, mac_hash/7, ecc_curves/1,
- corresponding_tls_version/1, corresponding_dtls_version/1]).
+ corresponding_tls_version/1, corresponding_dtls_version/1,
+ cookie_secret/0, cookie_timeout/0]).
+
+-define(COOKIE_BASE_TIMEOUT, 30000).
-spec suites(Minor:: 253|255) -> [ssl_cipher:cipher_suite()].
@@ -47,6 +50,13 @@ ecc_curves({_Major, Minor}) ->
corresponding_tls_version({254, Minor}) ->
{3, corresponding_minor_tls_version(Minor)}.
+cookie_secret() ->
+ crypto:strong_rand_bytes(32).
+
+cookie_timeout() ->
+ %% Cookie will live for two timeouts periods
+ round(rand:uniform() * ?COOKIE_BASE_TIMEOUT/2).
+
corresponding_minor_tls_version(255) ->
2;
corresponding_minor_tls_version(253) ->