File tree Expand file tree Collapse file tree 2 files changed +16
-4
lines changed
lib/raiha/tls/handshake/extension
test/raiha/tls/handshake/extension Expand file tree Collapse file tree 2 files changed +16
-4
lines changed Original file line number Diff line number Diff line change @@ -33,10 +33,15 @@ def extension_data=(data)
3333 end
3434
3535 def serialize
36- server_name = [ 0 ] . pack ( "C" ) + # host_name(0)
37- [ @server_name . bytesize ] . pack ( "n" ) + @server_name # HostName
38- server_name_list = [ server_name . bytesize ] . pack ( "n" ) + server_name
39- [ EXTENSION_TYPE_NUMBER ] . pack ( "n" ) + [ server_name_list . bytesize ] . pack ( "n" ) + server_name_list
36+ if @server_name . nil? || @server_name . empty?
37+ # On EncryptedExtensions, the server_name is empty
38+ [ EXTENSION_TYPE_NUMBER ] . pack ( "n" ) + [ 0 ] . pack ( "n" )
39+ else
40+ server_name = [ 0 ] . pack ( "C" ) + # host_name(0)
41+ [ @server_name . bytesize ] . pack ( "n" ) + @server_name # HostName
42+ server_name_list = [ server_name . bytesize ] . pack ( "n" ) + server_name
43+ [ EXTENSION_TYPE_NUMBER ] . pack ( "n" ) + [ server_name_list . bytesize ] . pack ( "n" ) + server_name_list
44+ end
4045 end
4146 end
4247 end
Original file line number Diff line number Diff line change @@ -11,6 +11,10 @@ class RaihaTLSHandshakeExtensionServerNameTest < Minitest::Test
1111 00 00 00 0f 00 0d 00 00 0a 67 6f 6f 67 6c 65 2e
1212 63 6f 6d
1313 DATA
14+
15+ TLS13_SERVER_NAME_EXTENSION_DATA_EMPTY = [ <<~DATA . gsub ( /[[:space:]]/ , '' ) ] . pack ( "H*" )
16+ 00 00 00 00
17+ DATA
1418 def test_serialize
1519 www_example_com = Raiha ::TLS ::Handshake ::Extension ::ServerName . new ( on : :client_hello )
1620 www_example_com . server_name = "www.example.com"
@@ -19,5 +23,8 @@ def test_serialize
1923 google_com = Raiha ::TLS ::Handshake ::Extension ::ServerName . new ( on : :client_hello )
2024 google_com . server_name = "google.com"
2125 assert_equal TLS13_SERVER_NAME_EXTENSION_DATA_GOOGLE_COM , google_com . serialize
26+
27+ empty = Raiha ::TLS ::Handshake ::Extension ::ServerName . new ( on : :encrypted_extensions )
28+ assert_equal TLS13_SERVER_NAME_EXTENSION_DATA_EMPTY , empty . serialize
2229 end
2330end
You can’t perform that action at this time.
0 commit comments