<div dir="ltr"><div><div><div>Hi!<br><br></div>Ok, the following patch should take away the crash and hopefully make it possible negotiate a valid connection (without making things unsafe),<br>in the short perspective. In a longer perspective we probably will want to add some kind of callbacks to let the application handle proprietary algorithms in the certificate-request and in the client hello.  We will also consider adding code for  ignoring valid but currently not specified codes.<br></div></div><br><br><div><div><div>diff --git a/lib/ssl/src/ssl_cipher.erl b/lib/ssl/src/ssl_cipher.erl<br>index 3ed53b7..0039f24 100644<br>--- a/lib/ssl/src/ssl_cipher.erl<br>+++ b/lib/ssl/src/ssl_cipher.erl<br>@@ -1574,8 +1574,8 @@ hash_algorithm(?SHA224) -> sha224;<br> hash_algorithm(?SHA256) -> sha256;<br> hash_algorithm(?SHA384) -> sha384;<br> hash_algorithm(?SHA512) -> sha512;<br>-hash_algorithm(Other) when is_integer(Other) -> Other.<br>- <br>+hash_algorithm(Other)  when is_integer(Other) andalso ((Other >= 224) and (Other =< 255)) -> Other.<br>+<br> sign_algorithm(anon)  -> ?ANON;<br> sign_algorithm(rsa)   -> ?RSA;<br> sign_algorithm(dsa)   -> ?DSA;<br>@@ -1584,7 +1584,7 @@ sign_algorithm(?ANON) -> anon;<br> sign_algorithm(?RSA) -> rsa;<br> sign_algorithm(?DSA) -> dsa;<br> sign_algorithm(?ECDSA) -> ecdsa;<br>-sign_algorithm(Other) when is_integer(Other) -> Other.<br>+sign_algorithm(Other) when is_integer(Other) andalso ((Other >= 224) and (Other =< 255)) -> Other.<br> <br> hash_size(null) -><br>     0;<br><br></div><div>Regards Ingela Erlang/OTP Team - Ericsson AB<br></div><div><div><div class="gmail_extra"><br><div class="gmail_quote">2015-06-08 12:20 GMT+02:00 Evgeny Khramtsov <span dir="ltr"><<a href="mailto:xramtsov@gmail.com" target="_blank">xramtsov@gmail.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Mon, 8 Jun 2015 09:02:23 +0000 (UTC)<br>
<span class="">Andreas Schultz <<a href="mailto:aschultz@tpip.net">aschultz@tpip.net</a>> wrote:<br>
<br>
> Also, the Apple server send the extension in question in an<br>
> "Certificate Request", with the actual value beeing: 0xEF 0xEF (in<br>
> decimal 239,239).<br>
<br>
</span>In fact there are 3 undefined values in the request: 239, 238 and 237<br>
for both hash and signature algorithm. The complete sequence looks like<br>
this:<br>
[{sha512,rsa},<br>
 {sha512,dsa},<br>
 {sha512,ecdsa},<br>
 {239,239},<br>
 {sha384,rsa},<br>
 {sha384,dsa},<br>
 {sha384,ecdsa},<br>
 {sha256,rsa},<br>
 {sha256,dsa},<br>
 {sha256,ecdsa},<br>
 {238,238},<br>
 {237,237},<br>
 {sha224,rsa},<br>
 {sha224,dsa},<br>
 {sha224,ecdsa},<br>
 {sha,rsa},<br>
 {sha,dsa},<br>
 {sha,ecdsa}].<br>
<div class=""><div class="h5">_______________________________________________<br>
erlang-questions mailing list<br>
<a href="mailto:erlang-questions@erlang.org">erlang-questions@erlang.org</a><br>
<a href="http://erlang.org/mailman/listinfo/erlang-questions" target="_blank">http://erlang.org/mailman/listinfo/erlang-questions</a><br>
</div></div></blockquote></div><br></div></div></div></div></div></div>