aboutsummaryrefslogtreecommitdiffstats
path: root/lib/ssl
diff options
context:
space:
mode:
authorIngela Anderton Andin <[email protected]>2016-05-10 12:00:15 +0200
committerIngela Anderton Andin <[email protected]>2016-06-09 17:29:31 +0200
commit0f26c3a6f70d9de52199a470cce1163908c223ff (patch)
treef0788f8e6bb9e3cd1c8f023874fa69aa046c097e /lib/ssl
parent1ab69efa960703b86a13ea6ba96f4fd56f1565f9 (diff)
downloadotp-0f26c3a6f70d9de52199a470cce1163908c223ff.tar.gz
otp-0f26c3a6f70d9de52199a470cce1163908c223ff.tar.bz2
otp-0f26c3a6f70d9de52199a470cce1163908c223ff.zip
ssl: ordsets:intersection/2 did not give the expected result
Turns out we can not count on the "hashsigns" sent by the client and the supported "hashigns" sets to have required properties of ordsets.
Diffstat (limited to 'lib/ssl')
-rw-r--r--lib/ssl/src/tls_handshake.erl3
1 files changed, 2 insertions, 1 deletions
diff --git a/lib/ssl/src/tls_handshake.erl b/lib/ssl/src/tls_handshake.erl
index 102dbba198..f34eebb0e4 100644
--- a/lib/ssl/src/tls_handshake.erl
+++ b/lib/ssl/src/tls_handshake.erl
@@ -283,7 +283,8 @@ available_signature_algs(undefined, SupportedHashSigns, _, {Major, Minor}) when
SupportedHashSigns;
available_signature_algs(#hash_sign_algos{hash_sign_algos = ClientHashSigns}, SupportedHashSigns,
_, {Major, Minor}) when (Major >= 3) andalso (Minor >= 3) ->
- ordsets:intersection(ClientHashSigns, SupportedHashSigns);
+ sets:to_list(sets:intersection(sets:from_list(ClientHashSigns),
+ sets:from_list(SupportedHashSigns)));
available_signature_algs(_, _, _, _) ->
undefined.