aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIngela Anderton Andin <[email protected]>2015-06-08 12:15:23 +0200
committerIngela Anderton Andin <[email protected]>2015-06-08 15:22:14 +0200
commitae7347bfdcab2486bb55dfe54918a0c994d8b7c7 (patch)
treef0bad2d62437dfdfa2433ede94d9bf5db816ad62
parente6e7ae017ef83ace6e5d303a3860245d623d173a (diff)
downloadotp-ae7347bfdcab2486bb55dfe54918a0c994d8b7c7.tar.gz
otp-ae7347bfdcab2486bb55dfe54918a0c994d8b7c7.tar.bz2
otp-ae7347bfdcab2486bb55dfe54918a0c994d8b7c7.zip
ssl: Do not crash on proprietary hash_sign algorithms
TLS hash_sign algorithms may have proprietary values see http://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml We should add callbacks to let applications handle them. But for now we do not want to crash if they are present and let other algorithms be negotiated.
-rw-r--r--lib/ssl/src/ssl_cipher.erl6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/ssl/src/ssl_cipher.erl b/lib/ssl/src/ssl_cipher.erl
index 8584e56d6c..0039f24adf 100644
--- a/lib/ssl/src/ssl_cipher.erl
+++ b/lib/ssl/src/ssl_cipher.erl
@@ -1573,7 +1573,8 @@ hash_algorithm(?SHA) -> sha;
hash_algorithm(?SHA224) -> sha224;
hash_algorithm(?SHA256) -> sha256;
hash_algorithm(?SHA384) -> sha384;
-hash_algorithm(?SHA512) -> sha512.
+hash_algorithm(?SHA512) -> sha512;
+hash_algorithm(Other) when is_integer(Other) andalso ((Other >= 224) and (Other =< 255)) -> Other.
sign_algorithm(anon) -> ?ANON;
sign_algorithm(rsa) -> ?RSA;
@@ -1582,7 +1583,8 @@ sign_algorithm(ecdsa) -> ?ECDSA;
sign_algorithm(?ANON) -> anon;
sign_algorithm(?RSA) -> rsa;
sign_algorithm(?DSA) -> dsa;
-sign_algorithm(?ECDSA) -> ecdsa.
+sign_algorithm(?ECDSA) -> ecdsa;
+sign_algorithm(Other) when is_integer(Other) andalso ((Other >= 224) and (Other =< 255)) -> Other.
hash_size(null) ->
0;