diff options
author | Péter Dimitrov <[email protected]> | 2019-06-03 16:51:11 +0200 |
---|---|---|
committer | Péter Dimitrov <[email protected]> | 2019-06-07 14:26:41 +0200 |
commit | d62efe16fc08f6fd95a8c15cc924f66eaa400133 (patch) | |
tree | 0fc2bf618507d175a6aa16ad85fb476e4e9580e1 /lib/ssl/src/ssl_handshake.erl | |
parent | c0cb6399a7e0e2e83435395e301a790a4cbacf42 (diff) | |
download | otp-d62efe16fc08f6fd95a8c15cc924f66eaa400133.tar.gz otp-d62efe16fc08f6fd95a8c15cc924f66eaa400133.tar.bz2 otp-d62efe16fc08f6fd95a8c15cc924f66eaa400133.zip |
ssl: Implement ALPN in TLS 1.3
Diffstat (limited to 'lib/ssl/src/ssl_handshake.erl')
-rw-r--r-- | lib/ssl/src/ssl_handshake.erl | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/ssl/src/ssl_handshake.erl b/lib/ssl/src/ssl_handshake.erl index b51ba0fa2d..53676ab355 100644 --- a/lib/ssl/src/ssl_handshake.erl +++ b/lib/ssl/src/ssl_handshake.erl @@ -76,7 +76,8 @@ handle_client_hello_extensions/9, %% Returns server hello extensions handle_server_hello_extensions/9, select_curve/2, select_curve/3, select_hashsign/4, select_hashsign/5, - select_hashsign_algs/3, empty_extensions/2, add_server_share/3 + select_hashsign_algs/3, empty_extensions/2, add_server_share/3, + add_alpn/2, add_selected_version/1, decode_alpn/1 ]). -export([get_cert_params/1, @@ -1165,6 +1166,13 @@ add_server_share(hello_retry_request, Extensions, Extensions#{key_share => #key_share_hello_retry_request{ selected_group = Group}}. +add_alpn(Extensions, ALPN0) -> + ALPN = encode_alpn([ALPN0], false), + Extensions#{alpn => ALPN}. + +add_selected_version(Extensions) -> + SupportedVersions = #server_hello_selected_version{selected_version = {3,4}}, + Extensions#{server_hello_selected_version => SupportedVersions}. kse_remove_private_key(#key_share_entry{ group = Group, |