diff options
author | Ingela Anderton Andin <[email protected]> | 2014-09-25 13:31:22 +0200 |
---|---|---|
committer | Ingela Anderton Andin <[email protected]> | 2014-09-25 13:31:22 +0200 |
commit | 3b1328d0eaecede8e42b0838f9920e413a19c8d6 (patch) | |
tree | 6e9ab34d50ea8817d4b1f0718f2ca5fc88fa46e3 | |
parent | 97cdb49fdf1c348bd9910fcc9c06732876cf200b (diff) | |
parent | b196730a325cfe74312c3a5f4b1273ba7c705ed6 (diff) | |
download | otp-3b1328d0eaecede8e42b0838f9920e413a19c8d6.tar.gz otp-3b1328d0eaecede8e42b0838f9920e413a19c8d6.tar.bz2 otp-3b1328d0eaecede8e42b0838f9920e413a19c8d6.zip |
Merge branch 'ia/ssl/empty-sni-from-server/OTP-12198' into maint
* ia/ssl/empty-sni-from-server/OTP-12198:
ssl: Servers may include an empty SNI-extension
-rw-r--r-- | lib/ssl/src/ssl_handshake.erl | 3 | ||||
-rw-r--r-- | lib/ssl/test/ssl_handshake_SUITE.erl | 8 |
2 files changed, 11 insertions, 0 deletions
diff --git a/lib/ssl/src/ssl_handshake.erl b/lib/ssl/src/ssl_handshake.erl index 22673e46e2..88ccb94e0b 100644 --- a/lib/ssl/src/ssl_handshake.erl +++ b/lib/ssl/src/ssl_handshake.erl @@ -1732,6 +1732,9 @@ dec_hello_extensions(<<?UINT16(?EC_POINT_FORMATS_EXT), ?UINT16(Len), #ec_point_formats{ec_point_format_list = ECPointFormats}}); +dec_hello_extensions(<<?UINT16(?SNI_EXT), ?UINT16(Len), Rest/binary>>, Acc) when Len == 0 -> + dec_hello_extensions(Rest, Acc#hello_extensions{sni = ""}); %% Server may send an empy SNI + dec_hello_extensions(<<?UINT16(?SNI_EXT), ?UINT16(Len), ExtData:Len/binary, Rest/binary>>, Acc) -> <<?UINT16(_), NameList/binary>> = ExtData, diff --git a/lib/ssl/test/ssl_handshake_SUITE.erl b/lib/ssl/test/ssl_handshake_SUITE.erl index e5e942ce1b..8dca733526 100644 --- a/lib/ssl/test/ssl_handshake_SUITE.erl +++ b/lib/ssl/test/ssl_handshake_SUITE.erl @@ -39,6 +39,7 @@ all() -> [decode_hello_handshake, decode_unknown_hello_extension_correctly, encode_single_hello_sni_extension_correctly, decode_single_hello_sni_extension_correctly, + decode_empty_server_sni_correctly, select_proper_tls_1_2_rsa_default_hashsign]. %%-------------------------------------------------------------------- @@ -106,6 +107,13 @@ decode_single_hello_sni_extension_correctly(_Config) -> Decoded = ssl_handshake:decode_hello_extensions(SNI), Exts = Decoded. +decode_empty_server_sni_correctly(_Config) -> + Exts = #hello_extensions{sni = ""}, + SNI = <<?UINT16(?SNI_EXT),?UINT16(0)>>, + Decoded = ssl_handshake:decode_hello_extensions(SNI), + Exts = Decoded. + + select_proper_tls_1_2_rsa_default_hashsign(_Config) -> % RFC 5246 section 7.4.1.4.1 tells to use {sha1,rsa} as default signature_algorithm for RSA key exchanges {sha, rsa} = ssl_handshake:select_hashsign_algs(undefined, ?rsaEncryption, {3,3}), |