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-05-10 12:00:15 +0200
commit07953e9d711962b0cb083098d51697d27b5cb292 (patch)
treecb934719f60d5dbfe528c3b464dffe843646fd40 /lib/ssl
parent929039adce30e62592cec1e8334dab99c4581b83 (diff)
downloadotp-07953e9d711962b0cb083098d51697d27b5cb292.tar.gz
otp-07953e9d711962b0cb083098d51697d27b5cb292.tar.bz2
otp-07953e9d711962b0cb083098d51697d27b5cb292.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.