aboutsummaryrefslogtreecommitdiffstats
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
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.
-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.