aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPéter Dimitrov <[email protected]>2018-09-25 16:15:38 +0200
committerPéter Dimitrov <[email protected]>2018-10-15 10:21:23 +0200
commit4c8305120c9d0fbe855d1db2b46ab7c94d82e8bd (patch)
treec4e46fea7dfe0db64d89d10d2b0a67966656184e
parentc115250a755cabfce3cd24429e9eaec70c8d8a59 (diff)
downloadotp-4c8305120c9d0fbe855d1db2b46ab7c94d82e8bd.tar.gz
otp-4c8305120c9d0fbe855d1db2b46ab7c94d82e8bd.tar.bz2
otp-4c8305120c9d0fbe855d1db2b46ab7c94d82e8bd.zip
ssl: Filter "signature_algs_cert" from socket options
Change-Id: Ifb933d1bad647b941b7324c0712a7bc20ae74efa
-rw-r--r--lib/ssl/src/ssl.erl12
1 files changed, 10 insertions, 2 deletions
diff --git a/lib/ssl/src/ssl.erl b/lib/ssl/src/ssl.erl
index ef9aac34bf..7e1c3fc462 100644
--- a/lib/ssl/src/ssl.erl
+++ b/lib/ssl/src/ssl.erl
@@ -1041,8 +1041,8 @@ handle_options(Opts0, Role, Host) ->
alpn_preferred_protocols, next_protocols_advertised,
client_preferred_next_protocols, log_alert, log_level,
server_name_indication, honor_cipher_order, padding_check, crl_check, crl_cache,
- fallback, signature_algs, eccs, honor_ecc_order, beast_mitigation,
- max_handshake_size, handshake, customize_hostname_check],
+ fallback, signature_algs, signature_algs_cert, eccs, honor_ecc_order,
+ beast_mitigation, max_handshake_size, handshake, customize_hostname_check],
SockOpts = lists:foldl(fun(Key, PropList) ->
proplists:delete(Key, PropList)
end, Opts, SslOptions),
@@ -1645,6 +1645,14 @@ new_ssl_options([{signature_algs, Value} | Rest], #ssl_options{} = Opts, RecordC
handle_hashsigns_option(Value,
tls_version(RecordCB:highest_protocol_version()))},
RecordCB);
+new_ssl_options([{signature_algs_cert, Value} | Rest], #ssl_options{} = Opts, RecordCB) ->
+ new_ssl_options(
+ Rest,
+ Opts#ssl_options{signature_algs_cert =
+ handle_signature_algorithms_option(
+ Value,
+ tls_version(RecordCB:highest_protocol_version()))},
+ RecordCB);
new_ssl_options([{protocol, dtls = Value} | Rest], #ssl_options{} = Opts, dtls_record = RecordCB) ->
new_ssl_options(Rest, Opts#ssl_options{protocol = Value}, RecordCB);
new_ssl_options([{protocol, tls = Value} | Rest], #ssl_options{} = Opts, tls_record = RecordCB) ->