From e9ba9604f1e987a58c5faa62fa33cc977565f424 Mon Sep 17 00:00:00 2001 From: Sergey Frolov Date: Wed, 5 Dec 2018 14:38:38 -0700 Subject: [PATCH 1/2] Adapt uTLS for new TLS 1.3 code --- key_schedule.go | 6 +- ...nt-TLSv12-UTLS-AES128-GCM-SHA256-Chrome-58 | 77 ++--- ...ent-TLSv12-UTLS-AES128-GCM-SHA256-Golang-0 | 55 ++-- ...S-ECDHE-ECDSA-AES128-GCM-SHA256-Firefox-55 | 101 ++++--- ...TLS-ECDHE-ECDSA-AES128-GCM-SHA256-Golang-0 | 79 ++--- ...v12-UTLS-ECDHE-ECDSA-AES128-SHA-Firefox-55 | 107 +++---- ...LSv12-UTLS-ECDHE-ECDSA-AES128-SHA-Golang-0 | 87 +++--- ...v12-UTLS-ECDHE-ECDSA-AES256-SHA-Firefox-55 | 109 +++---- ...LSv12-UTLS-ECDHE-ECDSA-AES256-SHA-Golang-0 | 85 +++--- ...S-ECDHE-ECDSA-CHACHA20-POLY1305-Firefox-55 | 97 +++--- ...TLS-ECDHE-ECDSA-CHACHA20-POLY1305-Golang-0 | 70 +++-- ...UTLS-ECDHE-RSA-AES128-GCM-SHA256-Chrome-58 | 99 +++--- ...TLS-ECDHE-RSA-AES128-GCM-SHA256-Firefox-55 | 99 +++--- ...-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Golang-0 | 77 ++--- ...TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Chrome-58 | 105 +++---- ...LSv12-UTLS-ECDHE-RSA-AES128-SHA-Firefox-55 | 105 +++---- ...-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Golang-0 | 83 ++--- ...TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Chrome-58 | 105 +++---- ...LSv12-UTLS-ECDHE-RSA-AES256-SHA-Firefox-55 | 105 +++---- ...-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Golang-0 | 83 ++--- ...UTLS-ECDHE-RSA-CHACHA20-POLY1305-Chrome-58 | 95 +++--- ...TLS-ECDHE-RSA-CHACHA20-POLY1305-Firefox-55 | 95 +++--- ...-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Golang-0 | 68 +++-- ...ello-ECDHE-RSA-AES128-GCM-SHA256-Chrome-58 | 99 +++--- ticket.go | 2 +- u_common.go | 10 +- u_conn.go | 285 ++++++++++-------- u_conn_test.go | 92 ++++-- u_parrots.go | 24 +- u_public.go | 257 ++++++++++++++-- u_tls_extensions.go | 23 +- 31 files changed, 1579 insertions(+), 1205 deletions(-) diff --git a/key_schedule.go b/key_schedule.go index 310d92e..3cd6e82 100644 --- a/key_schedule.go +++ b/key_schedule.go @@ -8,9 +8,9 @@ import ( "crypto/elliptic" "crypto/hmac" "errors" - "golang_org/x/crypto/cryptobyte" - "golang_org/x/crypto/curve25519" - "golang_org/x/crypto/hkdf" + "golang.org/x/crypto/cryptobyte" + "golang.org/x/crypto/curve25519" + "golang.org/x/crypto/hkdf" "hash" "io" "math/big" diff --git a/testdata/Client-TLSv12-UTLS-AES128-GCM-SHA256-Chrome-58 b/testdata/Client-TLSv12-UTLS-AES128-GCM-SHA256-Chrome-58 index 5cec97d..4e463ef 100644 --- a/testdata/Client-TLSv12-UTLS-AES128-GCM-SHA256-Chrome-58 +++ b/testdata/Client-TLSv12-UTLS-AES128-GCM-SHA256-Chrome-58 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 b7 01 00 00 b3 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 d7 01 00 00 d3 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 0a 0a |................| -00000030 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| -00000040 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| -00000050 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| -00000060 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| -00000070 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| -00000080 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| -00000090 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| -000000a0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| -000000b0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 0a 0a |................| +00000050 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| +00000060 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| +00000070 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| +00000080 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| +00000090 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| +000000a0 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| +000000b0 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| +000000c0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| +000000d0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| >>> Flow 2 (server to client) -00000000 16 03 03 00 39 02 00 00 35 03 03 ca f3 38 48 47 |....9...5....8HG| -00000010 ad 1d 6b d5 f4 8d 5e 02 85 64 10 62 7c 2b 2b d3 |..k...^..d.b|++.| -00000020 96 b0 92 85 7d ce cd 6d 02 fa 35 00 00 9c 00 00 |....}..m..5.....| +00000000 16 03 03 00 39 02 00 00 35 03 03 1b 07 4c f4 9b |....9...5....L..| +00000010 35 e4 cd 1e 02 50 49 9d 90 38 60 ec ed 69 57 cc |5....PI..8`..iW.| +00000020 bd de 55 f7 9f 9d 60 c3 ea 57 0c 00 00 9c 00 00 |..U...`..W......| 00000030 0d ff 01 00 01 00 00 23 00 00 00 17 00 00 16 03 |.......#........| 00000040 03 02 59 0b 00 02 55 00 02 52 00 02 4f 30 82 02 |..Y...U..R..O0..| 00000050 4b 30 82 01 b4 a0 03 02 01 02 02 09 00 e8 f0 9d |K0..............| @@ -65,29 +67,28 @@ 00000060 c5 70 0f 08 83 48 e9 48 ef 6e 50 8b 05 7e e5 84 |.p...H.H.nP..~..| 00000070 25 fa 55 c7 ae 31 02 27 00 ef 3f 98 86 20 12 89 |%.U..1.'..?.. ..| 00000080 91 59 28 b4 f7 d7 af d2 69 61 35 14 03 03 00 01 |.Y(.....ia5.....| -00000090 01 16 03 03 00 28 00 00 00 00 00 00 00 00 cb 39 |.....(.........9| -000000a0 76 6b af 9a 58 21 5b 4a f7 76 84 37 d8 06 bb 07 |vk..X![J.v.7....| -000000b0 71 a3 d1 06 9f 90 e6 6b b9 27 5f f8 33 99 |q......k.'_.3.| +00000090 01 16 03 03 00 28 00 00 00 00 00 00 00 00 60 96 |.....(........`.| +000000a0 1f d8 53 96 25 4d 3a bc 8c ea 27 41 d9 e9 2c cf |..S.%M:...'A..,.| +000000b0 b7 8b fd 08 9b e9 8c 64 cb 83 f9 56 86 b1 |.......d...V..| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 d3 |............ ...| -00000010 41 c8 0b 7a d7 05 a0 94 54 06 cc c3 fd e3 a4 bc |A..z....T.......| -00000020 8a 76 0b 2d 64 51 3d eb 6a d3 43 b6 7b ca 4c 6f |.v.-dQ=.j.C.{.Lo| -00000030 58 38 81 a0 98 92 58 2f 73 2d c3 35 b0 fe 3a 3a |X8....X/s-.5..::| -00000040 ee 40 6e 4b d9 40 85 f8 04 3b 90 ec 56 4e 09 8c |.@nK.@...;..VN..| -00000050 65 fb 83 0b 9f d2 97 c6 af af 98 7c f7 09 1f ea |e..........|....| -00000060 94 f7 e9 88 a3 e0 5c 04 a7 0c 31 53 4c d2 5c 71 |......\...1SL.\q| -00000070 4e a2 e2 fa b4 a3 80 7c 34 bc 1f 99 a9 97 6c 50 |N......|4.....lP| -00000080 6f 81 f7 2c 11 ed d8 9c ef a4 47 4e 1f 56 0a 5b |o..,......GN.V.[| -00000090 df d8 ce 01 e4 e2 fc 7b 6f fc 3a 5c a7 c4 79 58 |.......{o.:\..yX| -000000a0 81 3d 8c 0a 45 73 0e da 8d fb 6a fc e4 c7 ad d1 |.=..Es....j.....| -000000b0 93 ad a1 b4 18 5d 75 39 f0 72 ea b3 bf 2a 21 14 |.....]u9.r...*!.| -000000c0 03 03 00 01 01 16 03 03 00 28 ff 77 85 73 69 a3 |.........(.w.si.| -000000d0 3b 49 bb fc bb 4c 2a 66 20 cc 28 f7 e5 a6 0b 39 |;I...L*f .(....9| -000000e0 a3 f8 3b 85 c3 da 9b 9c 43 a4 94 7f 49 71 6c ae |..;.....C...Iql.| -000000f0 a2 97 |..| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 34 |............ ..4| +00000010 f2 90 c0 e1 bf 5d fe 7c a1 ab d1 44 da ad 68 e7 |.....].|...D..h.| +00000020 17 4c c0 bd be d5 3c fd 0a 34 dc e5 04 b9 4c 7f |.L....<..4....L.| +00000030 0b 6c 41 34 30 b2 0c f8 5f ac 9c bc 73 08 6b 15 |.lA40..._...s.k.| +00000040 51 8e 11 01 18 e0 1d 18 08 f5 9a 2d 38 75 06 98 |Q..........-8u..| +00000050 74 a9 a9 7b af 9c ae d1 cb 65 b9 0a 3a 7c d8 30 |t..{.....e..:|.0| +00000060 6f 51 cc d9 af 1b a3 c5 dc f3 3a 79 ac a8 4e 00 |oQ........:y..N.| +00000070 d7 7f f9 85 50 6f fb 62 64 e7 a9 e7 4d 71 ec 12 |....Po.bd...Mq..| +00000080 bf 66 5f 0b 91 d2 95 80 f4 81 59 cd 37 aa 02 75 |.f_.......Y.7..u| +00000090 66 38 56 bb 15 bf 13 f4 ee 24 21 65 01 1f bc 19 |f8V......$!e....| +000000a0 04 10 5e 54 10 5a be e4 89 9c 47 46 b6 86 2e 14 |..^T.Z....GF....| +000000b0 03 03 00 01 01 16 03 03 00 28 f7 92 40 20 0d 64 |.........(..@ .d| +000000c0 91 7c 38 a7 59 cd 1d 36 61 32 ae 4e cd 3f 7d 01 |.|8.Y..6a2.N.?}.| +000000d0 03 9e 3e 48 74 14 6d 7e d9 0e 07 32 1a 3d 45 1d |..>Ht.m~...2.=E.| +000000e0 6d 8b |m.| >>> Flow 5 (client to server) -00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 06 18 dc |................| -00000010 5a c4 c0 fe 21 28 86 86 be 0a 1c a4 3e 4b f3 7d |Z...!(......>K.}| -00000020 07 b6 81 15 03 03 00 1a 00 00 00 00 00 00 00 02 |................| -00000030 6c f9 9c 20 a9 92 4c 73 c7 ae 16 ec 7b 8b 21 db |l.. ..Ls....{.!.| -00000040 f0 df |..| +00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 69 f1 78 |.............i.x| +00000010 10 82 58 75 73 95 e6 df 05 6d 98 52 9a 42 56 9f |..Xus....m.R.BV.| +00000020 32 f9 f6 15 03 03 00 1a 00 00 00 00 00 00 00 02 |2...............| +00000030 b5 20 a8 92 73 bf 62 e6 f5 6f a9 10 3c ef 89 6e |. ..s.b..o..<..n| +00000040 93 d6 |..| diff --git a/testdata/Client-TLSv12-UTLS-AES128-GCM-SHA256-Golang-0 b/testdata/Client-TLSv12-UTLS-AES128-GCM-SHA256-Golang-0 index 06d8996..9187010 100644 --- a/testdata/Client-TLSv12-UTLS-AES128-GCM-SHA256-Golang-0 +++ b/testdata/Client-TLSv12-UTLS-AES128-GCM-SHA256-Golang-0 @@ -1,20 +1,23 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 95 01 00 00 91 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 c6 01 00 00 c2 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| -00000030 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| -00000040 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| -00000050 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 3c 00 05 |.............<..| -00000060 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| -00000070 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 12 00 |................| -00000080 10 04 01 04 03 05 01 05 03 06 01 06 03 02 01 02 |................| -00000090 03 ff 01 00 01 00 00 12 00 00 |..........| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| +00000050 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| +00000060 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| +00000070 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 4d 00 05 |.............M..| +00000080 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| +00000090 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 18 00 |................| +000000a0 16 08 04 08 05 08 06 04 01 04 03 05 01 05 03 06 |................| +000000b0 01 06 03 02 01 02 03 ff 01 00 01 00 00 12 00 00 |................| +000000c0 00 2b 00 07 06 03 03 03 02 03 01 |.+.........| >>> Flow 2 (server to client) -00000000 16 03 03 00 51 02 00 00 4d 03 03 51 12 cc 2a 1b |....Q...M..Q..*.| -00000010 8b 7c 80 a2 77 de 87 93 f4 82 77 21 04 14 95 38 |.|..w.....w!...8| -00000020 fd c6 2f f4 17 8b e0 75 ce 89 4e 20 30 b7 55 b0 |../....u..N 0.U.| -00000030 83 93 8d 5d ec 9f 7c 8c 10 d0 0d 4e 94 32 5a cf |...]..|....N.2Z.| -00000040 5e 8d cc 1b c4 75 17 5f 24 fa 13 0d 00 9c 00 00 |^....u._$.......| +00000000 16 03 03 00 51 02 00 00 4d 03 03 25 53 6d 66 b9 |....Q...M..%Smf.| +00000010 79 9f 70 3b 4d 7d bc 0f f0 1d ee 39 2f 58 fa 9e |y.p;M}.....9/X..| +00000020 8c eb 83 b8 6f 12 68 80 76 df 14 20 ad ea c7 14 |....o.h.v.. ....| +00000030 09 53 24 90 56 14 99 6a 09 c5 0a 23 78 87 01 f2 |.S$.V..j...#x...| +00000040 54 a3 24 24 36 fc d1 cd b4 5d c2 cc 00 9c 00 00 |T.$$6....]......| 00000050 05 ff 01 00 01 00 16 03 03 02 59 0b 00 02 55 00 |..........Y...U.| 00000060 02 52 00 02 4f 30 82 02 4b 30 82 01 b4 a0 03 02 |.R..O0..K0......| 00000070 01 02 02 09 00 e8 f0 9d 3f e2 5b ea a6 30 0d 06 |........?.[..0..| @@ -64,17 +67,17 @@ 00000060 c5 70 0f 08 83 48 e9 48 ef 6e 50 8b 05 7e e5 84 |.p...H.H.nP..~..| 00000070 25 fa 55 c7 ae 31 02 27 00 ef 3f 98 86 20 12 89 |%.U..1.'..?.. ..| 00000080 91 59 28 b4 f7 d7 af d2 69 61 35 14 03 03 00 01 |.Y(.....ia5.....| -00000090 01 16 03 03 00 28 00 00 00 00 00 00 00 00 11 55 |.....(.........U| -000000a0 a7 e3 e1 ad 7f 61 9b 09 f3 06 be d8 05 86 1e 65 |.....a.........e| -000000b0 bd 16 47 13 9c 17 ce fc e5 40 e8 64 3e d6 |..G......@.d>.| +00000090 01 16 03 03 00 28 00 00 00 00 00 00 00 00 e8 67 |.....(.........g| +000000a0 29 c3 34 6c 2d 13 a6 85 09 60 18 9a f5 92 08 a2 |).4l-....`......| +000000b0 2d a6 a5 b5 f1 91 fd 74 b6 f0 d1 23 10 d8 |-......t...#..| >>> Flow 4 (server to client) -00000000 14 03 03 00 01 01 16 03 03 00 28 d1 9f 63 f8 33 |..........(..c.3| -00000010 bb b1 db e7 32 1a c5 83 59 3e c9 a9 ce 9c 7a 66 |....2...Y>....zf| -00000020 56 a4 7d 6f d7 a6 6a 8e 05 4a 3b cd 1d a0 66 9e |V.}o..j..J;...f.| -00000030 66 61 e0 |fa.| +00000000 14 03 03 00 01 01 16 03 03 00 28 90 2f e3 b2 ae |..........(./...| +00000010 a0 49 e0 a6 71 fa 20 98 2c 6a 65 78 b3 63 89 a1 |.I..q. .,jex.c..| +00000020 1f 19 ee 33 57 02 68 21 d6 0f 2b d0 cf 41 8c f7 |...3W.h!..+..A..| +00000030 1f 66 3d |.f=| >>> Flow 5 (client to server) -00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 92 0d 47 |...............G| -00000010 ac aa 60 4d df 84 db 41 cc 9e 7b dd e0 d5 63 fe |..`M...A..{...c.| -00000020 8d 6f 3e 15 03 03 00 1a 00 00 00 00 00 00 00 02 |.o>.............| -00000030 68 de a9 3b a0 ed 1d 5a ef 67 11 59 86 04 d3 ed |h..;...Z.g.Y....| -00000040 c7 ae |..| +00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 f6 2a 46 |..............*F| +00000010 c4 7f 93 01 a2 5b 47 1f f1 ec 16 3c 58 55 48 94 |.....[G....>> Flow 1 (client to server) -00000000 16 03 01 00 ac 01 00 00 a8 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 cc 01 00 00 c8 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| -00000030 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| -00000040 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| -00000050 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| -00000060 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| -00000070 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| -00000080 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| -00000090 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| -000000a0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| -000000b0 01 |.| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| +00000050 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| +00000060 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| +00000070 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| +00000080 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| +00000090 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| +000000a0 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| +000000b0 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| +000000c0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| +000000d0 01 |.| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 fe e0 dc 36 bf |....A...=.....6.| -00000010 ee 4e 73 26 5c 4c 54 55 50 d9 99 55 68 08 72 e4 |.Ns&\LTUP..Uh.r.| -00000020 d5 5d 8a d0 98 bf e0 a6 e4 41 5a 00 c0 2b 00 00 |.].......AZ..+..| +00000000 16 03 03 00 41 02 00 00 3d 03 03 d7 34 2e ae ae |....A...=...4...| +00000010 8b a0 85 21 48 fb 01 92 bb 15 fa fd a5 b5 50 53 |...!H.........PS| +00000020 a7 57 1b 50 9e cc 69 c8 8b 9f 6f 00 c0 2b 00 00 |.W.P..i...o..+..| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 0e 0b 00 02 0a 00 |................| 00000050 02 07 00 02 04 30 82 02 00 30 82 01 62 02 09 00 |.....0...0..b...| @@ -50,45 +52,44 @@ 00000230 7a f6 ec 7a c9 86 2e dd d7 11 69 7f 85 7c 56 de |z..z......i..|V.| 00000240 fb 31 78 2b e4 c7 78 0d ae cb be 9e 4e 36 24 31 |.1x+..x.....N6$1| 00000250 7b 6a 0f 39 95 12 07 8f 2a 16 03 03 00 b6 0c 00 |{j.9....*.......| -00000260 00 b2 03 00 1d 20 c1 cc e8 a4 02 17 d9 f5 02 d7 |..... ..........| -00000270 06 c1 5d be c7 cc fa a3 f2 ac 35 01 35 a1 b8 0e |..].......5.5...| -00000280 c2 0d 27 0c d1 55 04 03 00 8a 30 81 87 02 42 01 |..'..U....0...B.| -00000290 6c f6 8a 34 8d ef 52 75 c4 30 d3 71 ac c4 8e 27 |l..4..Ru.0.q...'| -000002a0 cf 12 da c5 7d 5a 5c e4 b5 18 77 d0 e7 47 4f 82 |....}Z\...w..GO.| -000002b0 a7 bd 92 e0 da 09 28 9e 67 c6 b0 99 d4 c3 d7 8e |......(.g.......| -000002c0 2e 2f 4b e3 c3 df 29 31 b5 18 71 f6 9a cd 1e 9d |./K...)1..q.....| -000002d0 f8 02 41 41 3a 39 6b 78 8f ee 37 0b 35 85 df 66 |..AA:9kx..7.5..f| -000002e0 f8 5b ba 03 c2 74 9f f6 d2 e4 01 db 93 ff c2 ad |.[...t..........| -000002f0 57 c5 da 56 d7 c3 c7 75 5e c8 3c a5 0e 86 9c 66 |W..V...u^.<....f| -00000300 e7 99 ed 51 5e ad a2 79 49 80 ab 59 4f 72 33 cb |...Q^..yI..YOr3.| -00000310 7d 2f a8 48 16 03 03 00 04 0e 00 00 00 |}/.H.........| +00000260 00 b2 03 00 1d 20 72 dc 48 f0 38 d6 b4 a9 d3 d7 |..... r.H.8.....| +00000270 78 02 e9 cc ed 24 7f 22 47 d2 81 22 8f 75 d8 38 |x....$."G..".u.8| +00000280 24 85 c2 3d a2 52 04 03 00 8a 30 81 87 02 41 13 |$..=.R....0...A.| +00000290 4e 8d b9 ee d6 7f 4a 05 8e 6a 18 a1 87 16 43 4b |N.....J..j....CK| +000002a0 a2 5a b0 f8 4a c1 0e 4e bc f9 b1 e3 00 db 27 2f |.Z..J..N......'/| +000002b0 32 2c 71 53 7c 7f 9c 0f 3f 7c 56 95 b8 8c d8 76 |2,qS|...?|V....v| +000002c0 81 56 c0 dc 61 8b 47 88 d6 3b f6 31 1a 88 c4 c6 |.V..a.G..;.1....| +000002d0 02 42 01 3f 4c 88 97 b8 60 98 2f 86 ea b6 27 60 |.B.?L...`./...'`| +000002e0 94 96 70 f7 3c d7 93 4b e9 c5 74 e7 5f 2f 35 c9 |..p.<..K..t._/5.| +000002f0 4b 12 52 2b 9b 27 90 36 dc 70 0b 4a 0b 4a d6 bf |K.R+.'.6.p.J.J..| +00000300 04 00 ee a7 0c 2b e1 62 4d 6d 8c c4 41 3a 16 72 |.....+.bMm..A:.r| +00000310 ba c2 50 43 16 03 03 00 04 0e 00 00 00 |..PC.........| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| -00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 b4 4a bb |....(.........J.| -00000040 e0 dd 8c be 2e da 63 3a 1f 58 d9 be 46 1d ea f0 |......c:.X..F...| -00000050 15 73 66 be b8 af fb 71 72 44 f1 cf a4 |.sf....qrD...| +00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 1b 4d 4d |....(.........MM| +00000040 20 d4 ca 9c 85 2d 8a 44 c9 19 cc 05 7f 4d 63 97 | ....-.D.....Mc.| +00000050 cc 97 28 9e c5 3c 1d 1e 6a ea ba e9 0b |..(..<..j....| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 f9 |............ ...| -00000010 35 a1 2c f3 c0 3b d6 2a a6 aa 69 60 ef 02 49 ff |5.,..;.*..i`..I.| -00000020 e1 4b c3 03 d7 99 d0 07 0a dd 93 2b 1c b3 d8 52 |.K.........+...R| -00000030 9d bf 11 f8 f7 a5 01 16 0e 5e 3c 1d ef 41 e6 da |.........^<..A..| -00000040 9b a7 26 c9 f2 ca 16 98 bd a9 74 d9 6b 24 e2 cc |..&.......t.k$..| -00000050 0b 07 a3 b1 d8 e0 fc 68 39 3a aa a0 10 83 00 b0 |.......h9:......| -00000060 5e 79 eb 4d 11 95 07 53 b8 2e f8 ec d8 51 45 13 |^y.M...S.....QE.| -00000070 55 65 a7 1d 90 dc ff 3a df e3 a4 25 0a 85 a2 24 |Ue.....:...%...$| -00000080 e3 c2 78 31 51 98 e3 54 3f 04 49 40 5f 38 53 e6 |..x1Q..T?.I@_8S.| -00000090 bf 94 4f 42 19 35 48 cb c2 01 59 df 5e d1 76 50 |..OB.5H...Y.^.vP| -000000a0 9c eb 7d 0f 9a b6 85 f9 94 dd ac ac 07 2c 45 7c |..}..........,E|| -000000b0 22 6e 00 bf 77 4b bf 3d f0 68 61 2e 21 99 e7 14 |"n..wK.=.ha.!...| -000000c0 03 03 00 01 01 16 03 03 00 28 7b 7c b2 77 4b 94 |.........({|.wK.| -000000d0 a6 78 4f 90 82 9e c3 4d 37 7a a0 f0 19 1b 2f d1 |.xO....M7z..../.| -000000e0 24 13 d3 bf 63 2c 1f c5 e6 71 a0 b2 f8 30 0a e7 |$...c,...q...0..| -000000f0 a3 ef |..| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 f7 |............ ...| +00000010 7f d5 0f d4 02 f1 32 07 6f 9b 27 30 aa 0f 56 cd |......2.o.'0..V.| +00000020 fe ce 10 a5 a8 46 68 00 63 42 c0 bd be 63 cc 2f |.....Fh.cB...c./| +00000030 74 72 fd d5 40 c4 d7 02 7e 06 8c e6 b8 ef 99 26 |tr..@...~......&| +00000040 d8 15 ab 27 29 56 fd 87 87 47 7e 4e f5 c1 8a a1 |...')V...G~N....| +00000050 a1 ca 96 fd 8b 18 29 48 f4 10 9a c8 fb fe 2d df |......)H......-.| +00000060 a9 5f 30 f6 58 f5 e2 e9 9f 0e cb 15 83 1a 56 db |._0.X.........V.| +00000070 15 30 65 b7 b3 6c 25 15 90 f9 a4 d8 9f 9f 9d 85 |.0e..l%.........| +00000080 31 a2 42 fc ee 0b 7d b6 40 f8 82 0d d3 90 bc e8 |1.B...}.@.......| +00000090 07 f3 69 3d 99 94 8a e3 47 2e 5e ac 42 1c c6 0f |..i=....G.^.B...| +000000a0 12 8e ca 90 7a 82 43 b5 0e 63 36 fe 09 6b bf 14 |....z.C..c6..k..| +000000b0 03 03 00 01 01 16 03 03 00 28 1b f5 e1 2d 1c ef |.........(...-..| +000000c0 ba 0e e6 57 ff 59 a0 39 99 4a 8a 49 95 f1 86 4d |...W.Y.9.J.I...M| +000000d0 f8 fe 44 95 fe 11 fe 31 f2 90 d9 db 80 94 bd a0 |..D....1........| +000000e0 0f cf |..| >>> Flow 5 (client to server) -00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 47 e2 44 |.............G.D| -00000010 01 ff 5d dc e4 71 13 cb 23 70 fe 56 ad e4 84 8d |..]..q..#p.V....| -00000020 f4 5f 29 15 03 03 00 1a 00 00 00 00 00 00 00 02 |._).............| -00000030 0e 3d 51 c4 a0 ec 3e 2f c6 08 48 b6 58 e1 6b ff |.=Q...>/..H.X.k.| -00000040 c0 74 |.t| +00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 6b f6 b4 |.............k..| +00000010 21 15 07 8f e3 53 66 f4 7f 45 ce 2b 4e 58 5e 48 |!....Sf..E.+NX^H| +00000020 07 9b b5 15 03 03 00 1a 00 00 00 00 00 00 00 02 |................| +00000030 d4 23 91 15 21 7d d6 f8 86 b9 12 0e 05 c7 fe c1 |.#..!}..........| +00000040 6e f8 |n.| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-GCM-SHA256-Golang-0 b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-GCM-SHA256-Golang-0 index fd07411..e419468 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-GCM-SHA256-Golang-0 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-GCM-SHA256-Golang-0 @@ -1,20 +1,23 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 95 01 00 00 91 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 c6 01 00 00 c2 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| -00000030 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| -00000040 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| -00000050 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 3c 00 05 |.............<..| -00000060 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| -00000070 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 12 00 |................| -00000080 10 04 01 04 03 05 01 05 03 06 01 06 03 02 01 02 |................| -00000090 03 ff 01 00 01 00 00 12 00 00 |..........| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| +00000050 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| +00000060 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| +00000070 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 4d 00 05 |.............M..| +00000080 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| +00000090 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 18 00 |................| +000000a0 16 08 04 08 05 08 06 04 01 04 03 05 01 05 03 06 |................| +000000b0 01 06 03 02 01 02 03 ff 01 00 01 00 00 12 00 00 |................| +000000c0 00 2b 00 07 06 03 03 03 02 03 01 |.+.........| >>> Flow 2 (server to client) -00000000 16 03 03 00 59 02 00 00 55 03 03 2c 2a a3 4e 84 |....Y...U..,*.N.| -00000010 a3 07 e3 5b f0 d0 60 bf ee 04 da b4 5d 00 d7 4f |...[..`.....]..O| -00000020 ca 98 a1 8e ba f1 af 18 db ac 3b 20 44 44 5f 79 |..........; DD_y| -00000030 7b 6f cd 5c b3 fc d5 84 ca 61 e8 83 a3 9c 1a b7 |{o.\.....a......| -00000040 fc ea 43 d5 79 49 9d ce 4f eb f8 6f c0 2b 00 00 |..C.yI..O..o.+..| +00000000 16 03 03 00 59 02 00 00 55 03 03 42 5a 08 d4 eb |....Y...U..BZ...| +00000010 bd 08 e8 f6 77 00 bc 2d b6 26 9c b5 2c b3 bd f4 |....w..-.&..,...| +00000020 da da 62 40 a9 ca 11 c3 f7 b5 c0 20 cf 73 82 fd |..b@....... .s..| +00000030 a5 a9 8e a2 65 7e 52 d9 65 d3 4d e6 f4 2e e7 7e |....e~R.e.M....~| +00000040 32 58 88 76 96 70 10 2d 11 6d 1c fd c0 2b 00 00 |2X.v.p.-.m...+..| 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 00000060 03 02 0e 0b 00 02 0a 00 02 07 00 02 04 30 82 02 |.............0..| 00000070 00 30 82 01 62 02 09 00 b8 bf 2d 47 a0 d2 eb f4 |.0..b.....-G....| @@ -49,34 +52,34 @@ 00000240 13 83 0d 94 06 bb d4 37 7a f6 ec 7a c9 86 2e dd |.......7z..z....| 00000250 d7 11 69 7f 85 7c 56 de fb 31 78 2b e4 c7 78 0d |..i..|V..1x+..x.| 00000260 ae cb be 9e 4e 36 24 31 7b 6a 0f 39 95 12 07 8f |....N6$1{j.9....| -00000270 2a 16 03 03 00 b7 0c 00 00 b3 03 00 1d 20 b7 cc |*............ ..| -00000280 46 e3 23 b3 1e 9e 28 cb f4 6d ce 98 c9 a7 52 8c |F.#...(..m....R.| -00000290 7a 7d 6e f9 10 d2 bf 85 3f 6a 91 f4 cf 5b 04 03 |z}n.....?j...[..| -000002a0 00 8b 30 81 88 02 42 01 c1 8f 86 b2 a9 c9 32 5d |..0...B.......2]| -000002b0 72 66 f9 65 b1 47 8f 99 4f 0a 1e 80 4e 98 4d 91 |rf.e.G..O...N.M.| -000002c0 b2 a0 a9 60 a6 a0 a4 59 24 98 84 e9 16 2e 07 3c |...`...Y$......<| -000002d0 b4 b5 89 4d b7 bb ce fc f1 59 67 f7 4e 70 6c 00 |...M.....Yg.Npl.| -000002e0 a0 16 ea 1f f4 d3 cc 20 01 02 42 00 b5 17 59 43 |....... ..B...YC| -000002f0 bb 0d 57 68 dc 2a 7a e6 b9 0e 12 54 81 6a a0 27 |..Wh.*z....T.j.'| -00000300 f5 30 f5 4a f3 17 75 6b 3d 4d d5 e8 9d b9 5e 71 |.0.J..uk=M....^q| -00000310 a5 7a 9e fa 14 c5 4d 62 dd 0f 2d 5e e6 e2 39 a1 |.z....Mb..-^..9.| -00000320 8f b5 7a 1f 38 43 09 08 23 12 14 04 f6 16 03 03 |..z.8C..#.......| +00000270 2a 16 03 03 00 b7 0c 00 00 b3 03 00 1d 20 93 c5 |*............ ..| +00000280 9c 01 de 59 13 9c a3 26 f1 4d c6 e9 b4 95 fd b9 |...Y...&.M......| +00000290 ce 40 f9 d7 17 de 32 19 f9 9c ff 62 b8 05 04 03 |.@....2....b....| +000002a0 00 8b 30 81 88 02 42 01 9d 27 00 f8 37 94 38 4c |..0...B..'..7.8L| +000002b0 d7 11 a5 42 1b e4 9b 55 0a 53 ae 82 8e 45 72 31 |...B...U.S...Er1| +000002c0 71 4f 43 f6 a8 91 3e 20 cf 7c c3 b0 93 eb e0 a3 |qOC...> .|......| +000002d0 79 dc af a8 41 72 68 7d 37 8c 47 f6 44 e6 7a 99 |y...Arh}7.G.D.z.| +000002e0 2b 79 fb cd 90 50 79 c7 23 02 42 01 4d 33 a1 1b |+y...Py.#.B.M3..| +000002f0 da 96 05 3e 34 66 30 43 b7 21 68 40 de 58 33 df |...>4f0C.!h@.X3.| +00000300 dd c1 88 b1 ae 56 19 ac 70 e1 a0 0e fa 09 9b e5 |.....V..p.......| +00000310 2e 3c cd 16 e7 b5 52 00 4d 70 49 9c 8c b7 34 a9 |.<....R.MpI...4.| +00000320 28 36 66 15 e8 8c 37 1a 0e aa 1d 2c 8f 16 03 03 |(6f...7....,....| 00000330 00 04 0e 00 00 00 |......| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| -00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 e2 31 93 |....(.........1.| -00000040 df 60 a1 2c 59 ea ae 27 1f d3 de f0 31 c9 3b cc |.`.,Y..'....1.;.| -00000050 4a 01 1d 42 c1 7d 14 0a dc 59 f8 6c ff |J..B.}...Y.l.| +00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 7d 6a 44 |....(........}jD| +00000040 6f f5 bc d5 57 45 1d 7a f7 8e 93 3c 13 75 d5 47 |o...WE.z...<.u.G| +00000050 eb db c6 39 ff a3 12 01 44 08 8d 29 1d |...9....D..).| >>> Flow 4 (server to client) -00000000 14 03 03 00 01 01 16 03 03 00 28 ef b1 9d 8c 21 |..........(....!| -00000010 42 2a bf b6 1f fa e6 0a 55 a1 d1 7d 20 b2 f8 de |B*......U..} ...| -00000020 0e a9 9e 7c 7a 12 28 7e 88 12 d5 8b ad 35 ce b4 |...|z.(~.....5..| -00000030 97 0d 2a |..*| +00000000 14 03 03 00 01 01 16 03 03 00 28 f0 2d dc 65 de |..........(.-.e.| +00000010 cc b7 06 47 1c 5b f6 f2 2c e5 c3 c7 2d 23 9c a4 |...G.[..,...-#..| +00000020 bb ac 09 31 51 c1 42 15 7e c5 62 e2 7b 45 d0 38 |...1Q.B.~.b.{E.8| +00000030 2d 73 e2 |-s.| >>> Flow 5 (client to server) -00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 60 ce a6 |.............`..| -00000010 e2 24 31 d3 dd 45 8a be 1d 76 cd c3 90 4f 72 0f |.$1..E...v...Or.| -00000020 4a 2b 4f 15 03 03 00 1a 00 00 00 00 00 00 00 02 |J+O.............| -00000030 3a a9 2d f3 ea 30 69 8f f4 f7 38 dc de 5a 17 ff |:.-..0i...8..Z..| -00000040 14 12 |..| +00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 5b b7 0c |.............[..| +00000010 ae 21 77 61 44 90 56 c9 09 5e 2f 2d dd 36 61 13 |.!waD.V..^/-.6a.| +00000020 18 63 8e 15 03 03 00 1a 00 00 00 00 00 00 00 02 |.c..............| +00000030 76 a8 1c c1 98 12 1d ec 5c cc 3b bb 90 db ec d4 |v.......\.;.....| +00000040 3f 98 |?.| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-SHA-Firefox-55 b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-SHA-Firefox-55 index bebf5d4..215e9d1 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-SHA-Firefox-55 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-SHA-Firefox-55 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 ac 01 00 00 a8 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 cc 01 00 00 c8 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| -00000030 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| -00000040 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| -00000050 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| -00000060 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| -00000070 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| -00000080 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| -00000090 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| -000000a0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| -000000b0 01 |.| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| +00000050 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| +00000060 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| +00000070 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| +00000080 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| +00000090 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| +000000a0 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| +000000b0 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| +000000c0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| +000000d0 01 |.| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 ab dd 86 90 34 |....A...=......4| -00000010 82 c7 96 79 13 83 a5 fd 57 91 51 7b da 68 01 b7 |...y....W.Q{.h..| -00000020 cb 79 3d dd 7a 87 1b c9 5f 86 bf 00 c0 09 00 00 |.y=.z..._.......| +00000000 16 03 03 00 41 02 00 00 3d 03 03 4a 58 ff 0e c5 |....A...=..JX...| +00000010 27 38 1b da 91 6f 90 51 b5 34 31 46 30 58 e1 dc |'8...o.Q.41F0X..| +00000020 2f 28 80 9d bd 3e b1 5c 6b c9 f1 00 c0 09 00 00 |/(...>.\k.......| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 0e 0b 00 02 0a 00 |................| 00000050 02 07 00 02 04 30 82 02 00 30 82 01 62 02 09 00 |.....0...0..b...| @@ -50,50 +52,49 @@ 00000230 7a f6 ec 7a c9 86 2e dd d7 11 69 7f 85 7c 56 de |z..z......i..|V.| 00000240 fb 31 78 2b e4 c7 78 0d ae cb be 9e 4e 36 24 31 |.1x+..x.....N6$1| 00000250 7b 6a 0f 39 95 12 07 8f 2a 16 03 03 00 b7 0c 00 |{j.9....*.......| -00000260 00 b3 03 00 1d 20 1c 1a bb c8 de d4 35 6c 8d 59 |..... ......5l.Y| -00000270 1b 94 ab 5d 62 7b d0 92 b7 8c f4 a6 da 2e 81 3c |...]b{.........<| -00000280 39 d5 37 1b 95 16 04 03 00 8b 30 81 88 02 42 00 |9.7.......0...B.| -00000290 ef dd 9d 69 31 ed 33 7c 0e 79 70 cd 7a da 14 e3 |...i1.3|.yp.z...| -000002a0 11 ce 8c db b0 4c f4 a5 3c f9 63 d3 de 78 92 ca |.....L..<.c..x..| -000002b0 c3 9f 96 3f 24 ec 38 07 9e ce 48 ba e1 b2 50 71 |...?$.8...H...Pq| -000002c0 9a d5 f3 19 b9 43 0e 66 f7 47 dc 98 61 33 81 4c |.....C.f.G..a3.L| -000002d0 f1 02 42 00 d2 5c 9f 8c cb c9 b1 27 37 8c da b0 |..B..\.....'7...| -000002e0 c3 15 52 6c 7c 9b bc 4a c1 2a 39 51 03 78 a9 ec |..Rl|..J.*9Q.x..| -000002f0 5e 69 66 07 f6 d7 1d f1 8d 6e c8 b4 95 e5 e6 26 |^if......n.....&| -00000300 6f 7d 18 24 af b8 56 5f 46 cd da aa 6c d0 4d b5 |o}.$..V_F...l.M.| -00000310 7e c5 3c c9 37 16 03 03 00 04 0e 00 00 00 |~.<.7.........| +00000260 00 b3 03 00 1d 20 f5 db 9b ff e7 38 1f 36 ca bf |..... .....8.6..| +00000270 28 a1 75 57 d9 56 32 22 e0 b0 be 1c 05 d6 97 4f |(.uW.V2".......O| +00000280 fb 7f 4d 34 85 54 04 03 00 8b 30 81 88 02 42 00 |..M4.T....0...B.| +00000290 9a e7 de dc 5b 5c f0 bf 0d 9e 58 41 87 72 2e 6a |....[\....XA.r.j| +000002a0 a0 ed 68 02 b7 44 89 81 c8 bd 82 15 fd a3 c4 fa |..h..D..........| +000002b0 58 c9 3c 5a ac 1d 70 3c e4 23 bd 59 02 0b e6 5c |X...| +000002f0 51 68 79 a1 f8 fc 50 f9 bc 3f 8f 16 2d 56 84 19 |Qhy...P..?..-V..| +00000300 6f c7 d1 fb 4b 66 ab d6 04 0b b7 2f bc eb 3b 52 |o...Kf...../..;R| +00000310 66 06 a0 60 e2 16 03 03 00 04 0e 00 00 00 |f..`..........| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| 00000030 16 03 03 00 40 00 00 00 00 00 00 00 00 00 00 00 |....@...........| -00000040 00 00 00 00 00 4b 10 7a 65 d1 81 3a ed ac b2 19 |.....K.ze..:....| -00000050 56 16 ac e1 d6 54 e6 2d 04 c2 e4 a1 08 36 bc 0b |V....T.-.....6..| -00000060 e6 32 6b f1 84 e7 23 41 6e 14 19 ac 56 0d 05 d1 |.2k...#An...V...| -00000070 54 0e 23 54 0e |T.#T.| +00000040 00 00 00 00 00 66 8d 68 04 58 84 2d f5 f3 7c 84 |.....f.h.X.-..|.| +00000050 3a 6f 97 f9 19 4c 07 81 1c c0 59 74 61 97 fc e6 |:o...L....Yta...| +00000060 ab 0b 72 25 5b 71 35 72 14 ac 1d ca dc 62 38 83 |..r%[q5r.....b8.| +00000070 e6 d9 f0 0e e7 |.....| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 29 |............ ..)| -00000010 b0 21 ef 81 33 28 2a d3 2c 7a ed 68 b9 17 59 e6 |.!..3(*.,z.h..Y.| -00000020 23 7b 29 7f 20 4f e4 6b 14 32 75 a6 00 33 83 46 |#{). O.k.2u..3.F| -00000030 ef 38 55 44 22 15 11 4a 0b bc 48 1d 13 dd 7d 3d |.8UD"..J..H...}=| -00000040 ff 51 2a ca a3 0a 65 c0 d2 50 7c fa dc 59 77 4d |.Q*...e..P|..YwM| -00000050 db fe 6e 2d 18 91 b8 5b 80 d4 d7 0d 70 52 d9 15 |..n-...[....pR..| -00000060 ec 14 98 7e e5 65 7b ff c0 be 8a cb 0a 74 ed 50 |...~.e{......t.P| -00000070 ca c0 42 19 eb 26 4a 41 12 07 07 cb 50 c4 14 f8 |..B..&JA....P...| -00000080 4f 27 02 c7 da 19 b2 d7 8a c6 81 9d 57 be 7f 30 |O'..........W..0| -00000090 a1 9a 3d f5 51 3a 00 06 64 e6 e7 3d 92 af c1 e3 |..=.Q:..d..=....| -000000a0 06 fd 94 9c e6 f4 aa 84 f9 67 cb 69 55 17 de 2e |.........g.iU...| -000000b0 9f 03 44 a8 cc ca be f4 ca ef fa 5d d5 27 5d 14 |..D........].'].| -000000c0 03 03 00 01 01 16 03 03 00 40 26 3a b9 8a ef 09 |.........@&:....| -000000d0 14 53 9c ad 8a 25 3e 45 c1 d2 16 02 ab 11 b2 ee |.S...%>E........| -000000e0 7f a8 0f 7c 10 5f df 72 89 a3 e5 ca 88 a5 6f d8 |...|._.r......o.| -000000f0 22 57 18 f6 0d 94 96 31 94 5d 43 c8 2e 1a 48 9e |"W.....1.]C...H.| -00000100 25 09 21 2b dc a4 10 2b d1 27 |%.!+...+.'| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 fb |............ ...| +00000010 4a 5f f7 4f 37 86 72 16 1f a3 fa 89 80 75 7f 74 |J_.O7.r......u.t| +00000020 08 37 00 dc b1 58 f3 38 a6 58 99 0e 81 73 50 2f |.7...X.8.X...sP/| +00000030 ee db 47 78 de 68 64 b0 2e 80 6d ce ed 86 c6 65 |..Gx.hd...m....e| +00000040 94 e2 30 b6 27 a6 e0 96 fe 9a a6 38 33 92 5f a8 |..0.'......83._.| +00000050 35 ee 6e 58 16 44 58 b7 82 3e 5d 1d 34 c4 3b cc |5.nX.DX..>].4.;.| +00000060 78 e3 9c 80 54 50 2b 28 4a f3 1f 3c 68 c0 6f 9b |x...TP+(J..{| +000000d0 07 0f c9 43 3f 9b c6 b7 a3 c7 cc b6 99 da 5a 36 |...C?.........Z6| +000000e0 2b 7e c2 44 77 f0 a1 a8 03 ea 46 20 b3 12 ce 6a |+~.Dw.....F ...j| +000000f0 c8 96 b2 59 80 3e 0f 90 ea d9 |...Y.>....| >>> Flow 5 (client to server) 00000000 17 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| -00000010 00 00 00 00 00 83 ea f9 57 a2 fd 33 45 7a 94 ea |........W..3Ez..| -00000020 cb 3a 45 84 a0 ef 24 6c e8 7f f2 c3 6b 83 82 d2 |.:E...$l....k...| -00000030 0a cd 57 b3 22 15 03 03 00 30 00 00 00 00 00 00 |..W."....0......| -00000040 00 00 00 00 00 00 00 00 00 00 3a 35 3e 26 af c6 |..........:5>&..| -00000050 84 be c9 00 71 e3 1b a5 41 9b 4d cd 1c 9b b1 e2 |....q...A.M.....| -00000060 36 e0 f8 93 20 0f 33 34 8f a9 |6... .34..| +00000010 00 00 00 00 00 99 fd 06 13 8c dc 7e 64 79 51 0b |...........~dyQ.| +00000020 eb 60 34 36 8f d3 c9 22 19 9a 6b 01 d2 7d 88 41 |.`46..."..k..}.A| +00000030 6c 9b 02 f8 08 15 03 03 00 30 00 00 00 00 00 00 |l........0......| +00000040 00 00 00 00 00 00 00 00 00 00 bc 3c fb 73 65 b1 |...........<.se.| +00000050 cb 77 a4 8c 8a 83 b1 6a 64 fb e7 d5 7e df ee e3 |.w.....jd...~...| +00000060 a1 ee c0 1a c6 ba df af fd 21 |.........!| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-SHA-Golang-0 b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-SHA-Golang-0 index 65e645f..f0e7c49 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-SHA-Golang-0 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES128-SHA-Golang-0 @@ -1,20 +1,23 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 95 01 00 00 91 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 c6 01 00 00 c2 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| -00000030 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| -00000040 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| -00000050 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 3c 00 05 |.............<..| -00000060 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| -00000070 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 12 00 |................| -00000080 10 04 01 04 03 05 01 05 03 06 01 06 03 02 01 02 |................| -00000090 03 ff 01 00 01 00 00 12 00 00 |..........| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| +00000050 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| +00000060 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| +00000070 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 4d 00 05 |.............M..| +00000080 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| +00000090 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 18 00 |................| +000000a0 16 08 04 08 05 08 06 04 01 04 03 05 01 05 03 06 |................| +000000b0 01 06 03 02 01 02 03 ff 01 00 01 00 00 12 00 00 |................| +000000c0 00 2b 00 07 06 03 03 03 02 03 01 |.+.........| >>> Flow 2 (server to client) -00000000 16 03 03 00 59 02 00 00 55 03 03 e1 da 3b 6f eb |....Y...U....;o.| -00000010 2f 83 39 e2 9e 75 d5 37 18 40 ff a0 18 de c2 cb |/.9..u.7.@......| -00000020 f0 aa 70 7f 7a 6e 64 80 52 8f 74 20 3a 85 88 ac |..p.znd.R.t :...| -00000030 6c fa 15 f5 a9 35 0a d3 9d f8 f1 91 b2 4b 7f 60 |l....5.......K.`| -00000040 1f 2c 5a 07 ac 18 2e 70 9e b7 0e 1a c0 09 00 00 |.,Z....p........| +00000000 16 03 03 00 59 02 00 00 55 03 03 b1 2a bd e0 cc |....Y...U...*...| +00000010 5a 32 45 e3 51 0b 47 a9 a7 5e 93 65 1d 74 79 1a |Z2E.Q.G..^.e.ty.| +00000020 04 a8 a9 a8 af c1 89 7a 7f 8d 97 20 17 6b b8 aa |.......z... .k..| +00000030 8a b0 5d 5f 2a 0b 8b 6d ca ce e0 33 17 57 82 ac |..]_*..m...3.W..| +00000040 09 a0 29 7c 19 ac cc 72 b3 36 20 9e c0 09 00 00 |..)|...r.6 .....| 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 00000060 03 02 0e 0b 00 02 0a 00 02 07 00 02 04 30 82 02 |.............0..| 00000070 00 30 82 01 62 02 09 00 b8 bf 2d 47 a0 d2 eb f4 |.0..b.....-G....| @@ -49,39 +52,39 @@ 00000240 13 83 0d 94 06 bb d4 37 7a f6 ec 7a c9 86 2e dd |.......7z..z....| 00000250 d7 11 69 7f 85 7c 56 de fb 31 78 2b e4 c7 78 0d |..i..|V..1x+..x.| 00000260 ae cb be 9e 4e 36 24 31 7b 6a 0f 39 95 12 07 8f |....N6$1{j.9....| -00000270 2a 16 03 03 00 b6 0c 00 00 b2 03 00 1d 20 ea db |*............ ..| -00000280 39 68 ee e5 61 ff 27 7b 4c 0d 7b 6c fa 18 62 ce |9h..a.'{L.{l..b.| -00000290 4f e6 ea b1 7b 21 da 63 7d fd c3 58 89 23 04 03 |O...{!.c}..X.#..| -000002a0 00 8a 30 81 87 02 42 01 3f 63 b8 43 e1 d0 28 8d |..0...B.?c.C..(.| -000002b0 18 89 6e d8 a8 1e c4 d9 9e a3 0c ca 0e 72 b2 71 |..n..........r.q| -000002c0 da 0d da 51 4e f9 34 b6 59 73 5d 79 42 4e 00 d5 |...QN.4.Ys]yBN..| -000002d0 48 c9 e4 bc 21 d9 60 f9 d4 61 63 53 9a e8 56 99 |H...!.`..acS..V.| -000002e0 59 ed b8 f8 f9 30 18 87 85 02 41 75 db 74 d5 47 |Y....0....Au.t.G| -000002f0 19 a2 bf c5 b0 15 dc 51 de 6c ea 6b 39 13 9d 6b |.......Q.l.k9..k| -00000300 5c 15 7c 19 73 ae be ed ca 49 0d 05 10 2e f1 21 |\.|.s....I.....!| -00000310 97 70 6a 14 47 52 f8 fa 26 0f ab 92 6a 26 cd 2f |.pj.GR..&...j&./| -00000320 59 8c 84 5a d0 8c 22 bd d7 a3 2a 96 16 03 03 00 |Y..Z.."...*.....| -00000330 04 0e 00 00 00 |.....| +00000270 2a 16 03 03 00 b7 0c 00 00 b3 03 00 1d 20 6e f7 |*............ n.| +00000280 4e 74 7f 2a 18 23 2b c4 bb f7 85 86 fb f9 fc 61 |Nt.*.#+........a| +00000290 ab f3 55 ab 3e 97 75 24 be 2c a7 3f 11 49 04 03 |..U.>.u$.,.?.I..| +000002a0 00 8b 30 81 88 02 42 01 71 c0 4a f8 a8 65 d7 62 |..0...B.q.J..e.b| +000002b0 d6 38 d8 d8 0d 06 c4 e1 93 fe fb a4 0e ac 95 c3 |.8..............| +000002c0 e7 42 d2 11 f0 ad 6e c6 cc 9e a7 44 85 49 cf 15 |.B....n....D.I..| +000002d0 a0 96 2a 38 b9 b8 d8 eb e7 07 06 db 59 0e 66 3b |..*8........Y.f;| +000002e0 6c 27 48 ee 83 0d 28 fd 51 02 42 01 8f 21 15 82 |l'H...(.Q.B..!..| +000002f0 97 91 94 7e 0a f5 33 e4 ed 2a 03 19 e5 f9 ca 34 |...~..3..*.....4| +00000300 c8 d3 49 48 0a ae 6b 33 4c b9 aa dc e4 60 1a 54 |..IH..k3L....`.T| +00000310 2a 38 15 06 eb bc 56 4c 6e a0 35 43 b8 47 6d 84 |*8....VLn.5C.Gm.| +00000320 7a 0c 13 a6 e2 e9 5c 20 0e d4 13 90 a8 16 03 03 |z.....\ ........| +00000330 00 04 0e 00 00 00 |......| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| 00000030 16 03 03 00 40 00 00 00 00 00 00 00 00 00 00 00 |....@...........| -00000040 00 00 00 00 00 ce 7e 60 1b dd 2f 6c 48 5a a4 4c |......~`../lHZ.L| -00000050 16 ac a1 f6 02 8d 06 cc ab aa 8c 88 d6 16 24 83 |..............$.| -00000060 c5 64 2c 45 4a 61 56 e5 fb e6 f9 20 76 a5 59 ed |.d,EJaV.... v.Y.| -00000070 28 1e e0 32 14 |(..2.| +00000040 00 00 00 00 00 cd 6c 29 e8 8f c9 60 21 3b c2 fe |......l)...`!;..| +00000050 07 b9 8c 34 76 69 ac b3 ac 17 9d fb 1a 14 c1 80 |...4vi..........| +00000060 ce ef d2 58 81 ee 88 3b 52 ec a4 73 50 62 5a 56 |...X...;R..sPbZV| +00000070 a7 19 14 61 d8 |...a.| >>> Flow 4 (server to client) -00000000 14 03 03 00 01 01 16 03 03 00 40 25 6a 19 f7 c5 |..........@%j...| -00000010 a5 12 f0 5f 0c 85 d0 85 b5 09 a8 fb 44 fe d1 03 |..._........D...| -00000020 ad bf 2c 45 56 e0 cf cb d0 8c 4c 40 c8 fa 0a 31 |..,EV.....L@...1| -00000030 c5 83 0c 82 4c d2 37 7c 3d 93 3c f2 c0 22 1c 7a |....L.7|=.<..".z| -00000040 e1 3b 90 74 31 8a 98 57 fa ee 44 |.;.t1..W..D| +00000000 14 03 03 00 01 01 16 03 03 00 40 37 fb f7 d7 f0 |..........@7....| +00000010 84 da 17 07 75 2f 69 5d 6b e3 c2 58 0d 69 9f 86 |....u/i]k..X.i..| +00000020 14 b3 ac e4 ca c4 32 c6 39 f5 a2 bd 89 1a 95 c9 |......2.9.......| +00000030 1e 8d 64 be be e5 f8 2a a2 cd 0e 2a a7 b2 61 25 |..d....*...*..a%| +00000040 f6 9f f7 ad 27 42 df b6 a9 d6 e2 |....'B.....| >>> Flow 5 (client to server) 00000000 17 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| -00000010 00 00 00 00 00 7e 1f 4f 5f c8 40 17 4e 20 96 73 |.....~.O_.@.N .s| -00000020 63 da 84 4f 3a 72 6f e7 66 af 89 b4 c1 20 73 b7 |c..O:ro.f.... s.| -00000030 e2 79 72 bc f3 15 03 03 00 30 00 00 00 00 00 00 |.yr......0......| -00000040 00 00 00 00 00 00 00 00 00 00 4b 49 0e 31 c9 37 |..........KI.1.7| -00000050 11 80 97 46 72 14 da 12 90 89 9e 41 78 61 99 55 |...Fr......Axa.U| -00000060 a5 d2 01 c1 fa 0e 44 b9 38 a0 |......D.8.| +00000010 00 00 00 00 00 1e ab c7 8d 40 15 c0 93 f6 ea c2 |.........@......| +00000020 55 fa 9a 45 2c 08 b4 d8 ca ba 81 6a bd f2 fa f3 |U..E,......j....| +00000030 11 5b d3 4b 72 15 03 03 00 30 00 00 00 00 00 00 |.[.Kr....0......| +00000040 00 00 00 00 00 00 00 00 00 00 dc af 53 90 4c 8d |............S.L.| +00000050 e1 e2 73 07 54 59 d1 4b 4b b3 32 63 45 6e 41 4f |..s.TY.KK.2cEnAO| +00000060 96 84 b1 25 d0 45 a4 17 32 f2 |...%.E..2.| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES256-SHA-Firefox-55 b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES256-SHA-Firefox-55 index 54803a5..a04d112 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES256-SHA-Firefox-55 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES256-SHA-Firefox-55 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 ac 01 00 00 a8 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 cc 01 00 00 c8 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| -00000030 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| -00000040 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| -00000050 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| -00000060 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| -00000070 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| -00000080 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| -00000090 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| -000000a0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| -000000b0 01 |.| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| +00000050 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| +00000060 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| +00000070 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| +00000080 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| +00000090 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| +000000a0 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| +000000b0 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| +000000c0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| +000000d0 01 |.| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 8e 73 41 3a 7b |....A...=...sA:{| -00000010 c2 23 19 82 e8 37 39 d4 9c 7b 35 f6 3c 5b a7 ac |.#...79..{5.<[..| -00000020 4e 9f 44 90 8e 20 87 18 e7 49 bc 00 c0 0a 00 00 |N.D.. ...I......| +00000000 16 03 03 00 41 02 00 00 3d 03 03 af 1f 2d 57 33 |....A...=....-W3| +00000010 ed 65 80 d6 38 3b d8 0a 55 94 b7 de 83 d9 6f 43 |.e..8;..U.....oC| +00000020 47 55 9f 65 3a f7 c2 45 37 e9 0b 00 c0 0a 00 00 |GU.e:..E7.......| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 0e 0b 00 02 0a 00 |................| 00000050 02 07 00 02 04 30 82 02 00 30 82 01 62 02 09 00 |.....0...0..b...| @@ -49,51 +51,50 @@ 00000220 0e bd 3f a3 8c 25 c1 33 13 83 0d 94 06 bb d4 37 |..?..%.3.......7| 00000230 7a f6 ec 7a c9 86 2e dd d7 11 69 7f 85 7c 56 de |z..z......i..|V.| 00000240 fb 31 78 2b e4 c7 78 0d ae cb be 9e 4e 36 24 31 |.1x+..x.....N6$1| -00000250 7b 6a 0f 39 95 12 07 8f 2a 16 03 03 00 b7 0c 00 |{j.9....*.......| -00000260 00 b3 03 00 1d 20 0a f1 74 03 82 05 96 1c 71 96 |..... ..t.....q.| -00000270 aa 95 1b 01 11 3a 43 76 9b 86 7b ec 17 2e 07 14 |.....:Cv..{.....| -00000280 bc 92 6f 9b ad 42 04 03 00 8b 30 81 88 02 42 00 |..o..B....0...B.| -00000290 cb 1f 92 ad dd e2 92 ec 52 46 a2 b1 11 3f 0c 23 |........RF...?.#| -000002a0 75 29 f7 e6 af 2b 5c 80 3d 44 8f c3 d9 ae a9 b1 |u)...+\.=D......| -000002b0 c8 78 a2 70 4a db 91 a9 45 42 5c ef 42 15 52 b9 |.x.pJ...EB\.B.R.| -000002c0 c3 0d 3e a1 bd 02 c9 6c 5e 38 01 6a d5 0c 7d 5b |..>....l^8.j..}[| -000002d0 c6 02 42 01 e2 86 38 16 0b 6f b8 35 57 4c 54 78 |..B...8..o.5WLTx| -000002e0 a9 54 0a 57 37 7a 96 80 c3 30 f6 a3 76 97 c8 85 |.T.W7z...0..v...| -000002f0 6e 8b 70 3f 0d 31 1d 41 7e 44 ac 0e 2b 85 f5 7c |n.p?.1.A~D..+..|| -00000300 ce 2b 60 80 c3 09 db 63 28 c4 17 c2 b5 e2 ba c4 |.+`....c(.......| -00000310 4f 7c ce ae 0d 16 03 03 00 04 0e 00 00 00 |O|............| +00000250 7b 6a 0f 39 95 12 07 8f 2a 16 03 03 00 b6 0c 00 |{j.9....*.......| +00000260 00 b2 03 00 1d 20 26 4d 85 a7 a7 7f f0 41 af 69 |..... &M.....A.i| +00000270 2f 5d ef e5 a4 01 3e ad 56 d4 0a bd 25 ca 23 d2 |/]....>.V...%.#.| +00000280 24 66 35 8a bc 5b 04 03 00 8a 30 81 87 02 42 00 |$f5..[....0...B.| +00000290 c0 d4 12 c9 1b eb 95 f5 b0 58 be a9 6e cf 9a d1 |.........X..n...| +000002a0 65 6a 08 95 62 a4 88 42 fb 00 d5 e4 fe 28 ee b1 |ej..b..B.....(..| +000002b0 11 77 e9 05 59 01 8b c4 af b6 a3 30 8d e9 bc 20 |.w..Y......0... | +000002c0 26 80 e1 44 f9 ef 61 eb 05 2a a6 f7 f1 0d 31 f3 |&..D..a..*....1.| +000002d0 e5 02 41 6a 28 c8 09 11 ee 9b cf 87 60 e5 f8 88 |..Aj(.......`...| +000002e0 75 0d d6 0a 8e 24 c9 d8 e2 11 d4 d1 c1 9a 64 85 |u....$........d.| +000002f0 3a e8 f2 17 3c 5c 72 3b c8 27 99 13 eb fe 76 cc |:...<\r;.'....v.| +00000300 43 a0 71 8a 7b f7 56 7a e9 a8 c6 87 8f 41 a7 fe |C.q.{.Vz.....A..| +00000310 e5 d8 1b 6e 16 03 03 00 04 0e 00 00 00 |...n.........| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| 00000030 16 03 03 00 40 00 00 00 00 00 00 00 00 00 00 00 |....@...........| -00000040 00 00 00 00 00 61 3f 68 37 cf 0b 5c 85 e3 9c 64 |.....a?h7..\...d| -00000050 e1 f4 13 0c bc 8c 8a b7 e4 72 77 bb 2c 2a 43 6f |.........rw.,*Co| -00000060 70 ca 02 71 1a 7b 70 d3 36 3e 1b a0 60 46 d3 ac |p..q.{p.6>..`F..| -00000070 ec a6 53 c4 ad |..S..| +00000040 00 00 00 00 00 2b 49 85 e1 0a 8d d9 a6 ce 01 9e |.....+I.........| +00000050 79 dd f5 ad 0b 83 5f 75 e6 27 d7 9e 9e 5f 90 77 |y....._u.'..._.w| +00000060 54 85 5e 9a 0a e3 6d 5b 5c 75 a9 f5 9f 85 35 f0 |T.^...m[\u....5.| +00000070 4a 15 d7 6d 03 |J..m.| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 0a |............ ...| -00000010 dd 08 4f 1e f4 96 fb e1 16 03 3f 7b 9c e9 40 d1 |..O.......?{..@.| -00000020 da 31 6b 31 bf 81 35 db 6d 47 97 41 b6 63 ba 8b |.1k1..5.mG.A.c..| -00000030 ae 7d a1 69 23 d5 70 e8 42 79 de fa 4e bc ba 90 |.}.i#.p.By..N...| -00000040 fc 06 ff 19 c8 62 d8 ca 93 3d e2 2d 92 d2 8f c2 |.....b...=.-....| -00000050 bf 3f 56 51 c5 36 75 7b c9 4a 1a 84 ee 98 fa 4f |.?VQ.6u{.J.....O| -00000060 58 48 65 62 b9 9a 03 c5 57 a3 7d f7 e0 83 42 5a |XHeb....W.}...BZ| -00000070 e8 72 78 53 b1 fa 0d 19 c6 a0 df 42 e1 e2 48 9a |.rxS.......B..H.| -00000080 54 6e 59 1b 7a 86 15 cf bd e0 c4 77 65 6c 1d e2 |TnY.z......wel..| -00000090 55 84 ae 44 9d c7 c7 15 a3 2b 7c fa d3 26 63 a0 |U..D.....+|..&c.| -000000a0 78 86 5a 97 0a 2a 89 7a c3 44 e4 7c c4 52 a0 08 |x.Z..*.z.D.|.R..| -000000b0 25 48 72 e2 73 9f 4e ae e8 92 2c c9 a0 a1 c8 14 |%Hr.s.N...,.....| -000000c0 03 03 00 01 01 16 03 03 00 40 8d 63 c6 0c 07 59 |.........@.c...Y| -000000d0 d2 93 43 d0 f4 46 9c 78 b5 f6 cf 13 a5 86 ea 0f |..C..F.x........| -000000e0 49 51 f8 03 82 3a b1 fb 3c d8 a0 50 15 d3 36 75 |IQ...:..<..P..6u| -000000f0 89 b1 9a e9 21 69 03 79 32 7e f3 17 a6 36 74 91 |....!i.y2~...6t.| -00000100 18 c8 28 49 5e e2 d5 61 14 87 |..(I^..a..| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 0e |............ ...| +00000010 57 44 82 4f 1a 55 e5 f2 99 7c 1e 04 9c c5 13 a7 |WD.O.U...|......| +00000020 d6 0f ee 02 ef 55 41 21 ae 10 ae a5 61 4a 9f c0 |.....UA!....aJ..| +00000030 61 ab 6c a3 4d 7a 29 da f1 fd ad 08 85 bc a4 82 |a.l.Mz).........| +00000040 07 5e 39 4b 02 24 94 56 9d 94 bc 77 7a d3 16 f5 |.^9K.$.V...wz...| +00000050 dd 20 ee 05 43 26 e4 49 ed e8 6f f2 22 55 47 c9 |. ..C&.I..o."UG.| +00000060 27 10 18 6d ca 85 01 6b 6e 64 92 54 1d fa 79 87 |'..m...knd.T..y.| +00000070 e8 ca cf 62 ad 4f 9b 24 64 90 d2 92 7d 68 46 26 |...b.O.$d...}hF&| +00000080 97 ba b3 1f 7d 52 7a ff 68 ae 12 e0 7c 2d 98 1a |....}Rz.h...|-..| +00000090 74 85 c7 19 3a e9 df d2 35 54 81 3a 55 6f 6b ce |t...:...5T.:Uok.| +000000a0 d6 71 f0 d0 f6 e8 28 93 23 1a 4f 13 7e 3a 05 14 |.q....(.#.O.~:..| +000000b0 03 03 00 01 01 16 03 03 00 40 a9 04 3a bb 85 f4 |.........@..:...| +000000c0 21 bc 2d 04 22 4b 12 9b 6e 9f 51 2b 8f 37 93 72 |!.-."K..n.Q+.7.r| +000000d0 39 67 12 c9 91 89 86 5b d7 20 dd 0b fb 08 c0 9d |9g.....[. ......| +000000e0 03 8e cb 37 1c 04 ad cd f9 37 02 de eb 99 22 00 |...7.....7....".| +000000f0 64 09 1a 32 49 1f bb 88 ed 2a |d..2I....*| >>> Flow 5 (client to server) 00000000 17 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| -00000010 00 00 00 00 00 03 98 e0 1d 2b a0 43 05 ec 5d 09 |.........+.C..].| -00000020 22 2c 2e 4b 6f c8 9c 0c a4 1f 4b a7 4d a5 85 08 |",.Ko.....K.M...| -00000030 54 c5 9b ef 29 15 03 03 00 30 00 00 00 00 00 00 |T...)....0......| -00000040 00 00 00 00 00 00 00 00 00 00 61 2d a7 5c d4 d0 |..........a-.\..| -00000050 91 bb 4b e3 aa 7a 97 3e 05 94 42 88 d3 c8 13 ff |..K..z.>..B.....| -00000060 b6 5f 13 1f 56 80 45 e2 b8 ea |._..V.E...| +00000010 00 00 00 00 00 34 8f d4 54 60 34 68 3f 83 8d 4d |.....4..T`4h?..M| +00000020 fa 3c 89 a5 e7 ee e5 1a fc 19 82 d1 55 ab a2 14 |.<..........U...| +00000030 35 2a 68 e4 cc 15 03 03 00 30 00 00 00 00 00 00 |5*h......0......| +00000040 00 00 00 00 00 00 00 00 00 00 31 7b 11 fd f1 2e |..........1{....| +00000050 7a 52 14 9b 9c 88 28 d2 dc 9f 4f c5 36 34 e6 d2 |zR....(...O.64..| +00000060 87 c4 4f 19 54 b6 46 93 ac 0e |..O.T.F...| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES256-SHA-Golang-0 b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES256-SHA-Golang-0 index 474d632..1d04ae8 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES256-SHA-Golang-0 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-AES256-SHA-Golang-0 @@ -1,20 +1,23 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 95 01 00 00 91 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 c6 01 00 00 c2 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| -00000030 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| -00000040 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| -00000050 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 3c 00 05 |.............<..| -00000060 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| -00000070 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 12 00 |................| -00000080 10 04 01 04 03 05 01 05 03 06 01 06 03 02 01 02 |................| -00000090 03 ff 01 00 01 00 00 12 00 00 |..........| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| +00000050 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| +00000060 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| +00000070 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 4d 00 05 |.............M..| +00000080 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| +00000090 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 18 00 |................| +000000a0 16 08 04 08 05 08 06 04 01 04 03 05 01 05 03 06 |................| +000000b0 01 06 03 02 01 02 03 ff 01 00 01 00 00 12 00 00 |................| +000000c0 00 2b 00 07 06 03 03 03 02 03 01 |.+.........| >>> Flow 2 (server to client) -00000000 16 03 03 00 59 02 00 00 55 03 03 5c f0 92 e4 e7 |....Y...U..\....| -00000010 0c 3d 15 f1 a3 62 47 77 52 43 b5 f0 1b 90 82 81 |.=...bGwRC......| -00000020 b1 f8 7d 6e 6e c1 9d 88 23 31 9e 20 46 e8 12 3e |..}nn...#1. F..>| -00000030 a2 64 9c 07 cf 12 eb 58 2e 23 d1 fa 60 13 22 30 |.d.....X.#..`."0| -00000040 84 32 6b 8d 1a c8 b1 e0 8f b7 a2 4a c0 0a 00 00 |.2k........J....| +00000000 16 03 03 00 59 02 00 00 55 03 03 1c 0e 04 a1 c1 |....Y...U.......| +00000010 23 9f 1f b7 ca 8a 14 9c cb 18 67 cf ea 3d 36 ef |#.........g..=6.| +00000020 e0 8e dc b3 0b 2c c2 f4 e2 8b 80 20 17 f6 61 30 |.....,..... ..a0| +00000030 a0 00 d4 fc 2c 6c ef 4a b3 d8 d2 94 d5 e9 af 0b |....,l.J........| +00000040 aa 0e 62 2b ae 5a 01 7b b8 04 98 a6 c0 0a 00 00 |..b+.Z.{........| 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 00000060 03 02 0e 0b 00 02 0a 00 02 07 00 02 04 30 82 02 |.............0..| 00000070 00 30 82 01 62 02 09 00 b8 bf 2d 47 a0 d2 eb f4 |.0..b.....-G....| @@ -49,39 +52,39 @@ 00000240 13 83 0d 94 06 bb d4 37 7a f6 ec 7a c9 86 2e dd |.......7z..z....| 00000250 d7 11 69 7f 85 7c 56 de fb 31 78 2b e4 c7 78 0d |..i..|V..1x+..x.| 00000260 ae cb be 9e 4e 36 24 31 7b 6a 0f 39 95 12 07 8f |....N6$1{j.9....| -00000270 2a 16 03 03 00 b7 0c 00 00 b3 03 00 1d 20 dc 68 |*............ .h| -00000280 ee c6 04 c6 f6 cb 12 4a bf 62 c3 c7 c1 28 e3 85 |.......J.b...(..| -00000290 77 f2 3b 6a 0c 5b 34 55 e7 ed 2f fd 4f 76 04 03 |w.;j.[4U../.Ov..| -000002a0 00 8b 30 81 88 02 42 00 8d d0 3d b8 7d 09 2b eb |..0...B...=.}.+.| -000002b0 fe dd 5d 2d 39 fb 97 41 f2 35 17 17 77 f9 f0 08 |..]-9..A.5..w...| -000002c0 42 f6 50 29 9c d7 8a 56 1a 99 39 82 2e 6a 72 96 |B.P)...V..9..jr.| -000002d0 d8 27 37 de eb eb 3e 36 54 54 a6 b2 8e 76 6f a5 |.'7...>6TT...vo.| -000002e0 d0 65 f5 bb 8d 7b 02 73 ed 02 42 01 31 77 1c 43 |.e...{.s..B.1w.C| -000002f0 89 f7 c1 2f 8e 5c 97 a3 54 21 1f 99 aa 2b 3a 9a |.../.\..T!...+:.| -00000300 d0 ab 3f 4a 40 6f f0 af a3 92 56 74 30 fd 3c c5 |..?J@o....Vt0.<.| -00000310 87 40 8b 32 d2 d9 f8 ab 66 cd 81 86 2c 01 e8 db |.@.2....f...,...| -00000320 57 d1 f8 e1 9e 36 f7 5b 27 54 ff 34 4c 16 03 03 |W....6.['T.4L...| +00000270 2a 16 03 03 00 b7 0c 00 00 b3 03 00 1d 20 0f 74 |*............ .t| +00000280 70 c0 69 c0 13 15 51 2d b8 16 29 1a 84 9d 0a 49 |p.i...Q-..)....I| +00000290 88 98 73 15 01 f9 d7 ac f8 08 6e 94 82 76 04 03 |..s.......n..v..| +000002a0 00 8b 30 81 88 02 42 00 8a e9 78 a1 e2 4d df 77 |..0...B...x..M.w| +000002b0 0c 96 fc 0b b4 0c e4 46 28 f5 8b 17 8a 76 b7 61 |.......F(....v.a| +000002c0 1e 32 d1 b1 0a 7f a4 ed 1e e9 01 c5 6f 50 a5 c3 |.2..........oP..| +000002d0 a4 76 93 5a 62 0c 2b c0 3e 0b fa 28 24 5e 9a d1 |.v.Zb.+.>..($^..| +000002e0 4a 3b 32 7e 88 46 41 b2 e5 02 42 01 4c d3 2d 3d |J;2~.FA...B.L.-=| +000002f0 26 62 58 4f 9f d3 cf 80 d8 d1 ae b4 06 3f ab 3d |&bXO.........?.=| +00000300 45 2a 93 5a 4c e9 c1 c3 74 e0 79 3e 5d a4 0c 0e |E*.ZL...t.y>]...| +00000310 72 81 39 fc b5 c8 6b 4a c4 6d 11 9f c9 95 d1 d8 |r.9...kJ.m......| +00000320 6c 25 23 c0 92 c0 5c 84 c4 ad 68 69 12 16 03 03 |l%#...\...hi....| 00000330 00 04 0e 00 00 00 |......| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| 00000030 16 03 03 00 40 00 00 00 00 00 00 00 00 00 00 00 |....@...........| -00000040 00 00 00 00 00 51 b8 76 e3 c6 2a 9a 27 58 f4 4f |.....Q.v..*.'X.O| -00000050 4c c7 7e 40 8e a6 b4 9e fe 86 e0 85 8a 81 9d ff |L.~@............| -00000060 a3 2b e1 a0 01 2b 57 17 49 ce fd b0 b5 c5 23 32 |.+...+W.I.....#2| -00000070 11 1c a9 ed 74 |....t| +00000040 00 00 00 00 00 26 0a 23 c9 ee 10 94 99 85 3a 01 |.....&.#......:.| +00000050 af f5 c1 06 20 d7 7d dc 73 66 87 ac 0a a1 e8 66 |.... .}.sf.....f| +00000060 43 29 35 9e 24 95 90 73 89 19 7f 1d c8 86 dd 51 |C)5.$..s.......Q| +00000070 4e 1a 67 8d e4 |N.g..| >>> Flow 4 (server to client) -00000000 14 03 03 00 01 01 16 03 03 00 40 15 8b 7f 8e a0 |..........@.....| -00000010 54 16 59 41 3d a1 4b 96 e8 9a 6f 8e 7a 74 01 3b |T.YA=.K...o.zt.;| -00000020 d4 4e cb f6 05 7d a6 13 e9 7c 15 45 24 5f 12 b6 |.N...}...|.E$_..| -00000030 e0 09 58 fc c5 d5 c8 5c 3c 2c 4a c9 ef 3e 3f 16 |..X....\<,J..>?.| -00000040 c6 21 5f 1b 77 ab 3e 64 c4 78 1d |.!_.w.>d.x.| +00000000 14 03 03 00 01 01 16 03 03 00 40 c1 e8 0b bf 0e |..........@.....| +00000010 74 fe f0 fc 93 e9 10 91 64 cf db 0e 36 f7 33 32 |t.......d...6.32| +00000020 29 86 54 af 10 b5 49 9e b7 f6 f5 3b 29 b9 4e b0 |).T...I....;).N.| +00000030 e5 96 4b 80 8c 6d 29 65 b2 b0 e7 a3 3b 33 9c 03 |..K..m)e....;3..| +00000040 3b ef d4 2e d6 7c 60 f7 7e ba 56 |;....|`.~.V| >>> Flow 5 (client to server) 00000000 17 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| -00000010 00 00 00 00 00 00 64 27 ba 99 21 11 0c 5f 85 62 |......d'..!.._.b| -00000020 e2 28 c6 62 c9 ea 8c 2c 69 f0 c0 8a 18 08 92 b0 |.(.b...,i.......| -00000030 d8 f1 23 fa 84 15 03 03 00 30 00 00 00 00 00 00 |..#......0......| -00000040 00 00 00 00 00 00 00 00 00 00 3a 85 b2 65 07 19 |..........:..e..| -00000050 52 15 03 33 db 6f 87 58 18 d2 01 ff d8 0b 9f 75 |R..3.o.X.......u| -00000060 93 d7 48 c4 a1 58 8d 4a 46 ff |..H..X.JF.| +00000010 00 00 00 00 00 84 be 46 b7 9f 10 15 e5 fa a2 1b |.......F........| +00000020 b9 48 03 f3 04 1b 81 41 a9 aa 68 9d 89 c4 41 f0 |.H.....A..h...A.| +00000030 51 2a b0 57 34 15 03 03 00 30 00 00 00 00 00 00 |Q*.W4....0......| +00000040 00 00 00 00 00 00 00 00 00 00 eb a7 f2 5c a0 0a |.............\..| +00000050 da f5 8b 5e cc 56 2a 9b ad 6b 4c 33 37 c4 56 00 |...^.V*..kL37.V.| +00000060 a1 03 95 60 59 71 c8 63 2e fc |...`Yq.c..| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-CHACHA20-POLY1305-Firefox-55 b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-CHACHA20-POLY1305-Firefox-55 index 3fc78ee..b5dbc76 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-CHACHA20-POLY1305-Firefox-55 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-CHACHA20-POLY1305-Firefox-55 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 ac 01 00 00 a8 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 cc 01 00 00 c8 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| -00000030 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| -00000040 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| -00000050 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| -00000060 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| -00000070 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| -00000080 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| -00000090 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| -000000a0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| -000000b0 01 |.| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| +00000050 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| +00000060 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| +00000070 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| +00000080 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| +00000090 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| +000000a0 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| +000000b0 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| +000000c0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| +000000d0 01 |.| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 8e 86 f0 aa 88 |....A...=.......| -00000010 81 fc 7f 23 d1 19 3c 96 fe cd 8d 03 f6 1d df 18 |...#..<.........| -00000020 47 09 bb 12 b4 45 bf 40 42 9f b5 00 cc a9 00 00 |G....E.@B.......| +00000000 16 03 03 00 41 02 00 00 3d 03 03 94 59 44 ef e5 |....A...=...YD..| +00000010 a7 0e 67 c6 58 3b 8c 0e 83 93 6b eb 12 34 ff 78 |..g.X;....k..4.x| +00000020 15 f3 82 cc 99 b6 ac 06 6c 35 93 00 cc a9 00 00 |........l5......| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 0e 0b 00 02 0a 00 |................| 00000050 02 07 00 02 04 30 82 02 00 30 82 01 62 02 09 00 |.....0...0..b...| @@ -50,43 +52,42 @@ 00000230 7a f6 ec 7a c9 86 2e dd d7 11 69 7f 85 7c 56 de |z..z......i..|V.| 00000240 fb 31 78 2b e4 c7 78 0d ae cb be 9e 4e 36 24 31 |.1x+..x.....N6$1| 00000250 7b 6a 0f 39 95 12 07 8f 2a 16 03 03 00 b7 0c 00 |{j.9....*.......| -00000260 00 b3 03 00 1d 20 74 88 7b a8 3c 44 4f 90 e1 ba |..... t.{..4....0...B.| -00000290 a8 c9 ee bc 91 cd b3 cd 03 84 d0 75 34 31 f1 85 |...........u41..| -000002a0 61 f8 a9 83 87 24 fc d5 71 57 76 4b f0 f9 47 43 |a....$..qWvK..GC| -000002b0 2f cb cf f2 8c 1b 8c 1f 3c 7f 7b 2e b1 57 5f d1 |/.......<.{..W_.| -000002c0 76 61 62 3a 1e df af 28 34 52 e6 41 ce a7 92 81 |vab:...(4R.A....| -000002d0 f1 02 42 00 a0 70 f9 dd 50 11 83 72 02 3a e9 ae |..B..p..P..r.:..| -000002e0 4f 94 9b 5f 92 8d 2b 54 8a aa 94 2a f6 99 7a e1 |O.._..+T...*..z.| -000002f0 37 de a5 08 49 80 ec ff 05 7b 00 e0 85 67 2c 66 |7...I....{...g,f| -00000300 ff 1a 45 11 02 85 9f da 90 02 25 4e 82 89 96 bd |..E.......%N....| -00000310 52 6f 51 d6 34 16 03 03 00 04 0e 00 00 00 |RoQ.4.........| +00000260 00 b3 03 00 1d 20 cc 0c 1b cb 8f 59 0d fd 27 ba |..... .....Y..'.| +00000270 c8 9d 52 8b b5 3b 6f 70 2b 51 33 8c 49 1a 07 e3 |..R..;op+Q3.I...| +00000280 64 68 91 ee 1d 64 04 03 00 8b 30 81 88 02 42 01 |dh...d....0...B.| +00000290 65 39 1e 85 61 6d 66 fb f8 e4 00 48 69 9e e9 2b |e9..amf....Hi..+| +000002a0 fa 34 32 43 9b 58 c1 19 af 36 24 01 88 c9 7a 20 |.42C.X...6$...z | +000002b0 eb 22 18 bc 8c 0c 4a f0 7e 9e 59 fe 6c 41 81 d0 |."....J.~.Y.lA..| +000002c0 72 64 7a 92 0e 18 ac 9d 30 2d 11 55 cc 75 c9 65 |rdz.....0-.U.u.e| +000002d0 ee 02 42 01 87 35 28 61 9e de 39 86 63 4e e6 d3 |..B..5(a..9.cN..| +000002e0 50 79 2e ec 7a 1e de 41 d0 35 50 5a 4f a5 1f 5d |Py..z..A.5PZO..]| +000002f0 89 eb 62 b4 56 21 39 4f 6c fb 3c 2f f2 45 b1 75 |..b.V!9Ol.>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| -00000030 16 03 03 00 20 46 f5 07 56 02 27 12 b8 62 81 fe |.... F..V.'..b..| -00000040 6d a3 43 3d 2b c1 96 14 bc 71 b0 d1 d2 94 da 6b |m.C=+....q.....k| -00000050 f2 59 67 64 48 |.YgdH| +00000030 16 03 03 00 20 bd f9 8a 69 c6 5d d9 b0 ea d7 b3 |.... ...i.].....| +00000040 e8 2a 57 9c 21 69 94 2e f6 27 9c 95 2a 10 6e 1f |.*W.!i...'..*.n.| +00000050 ee e0 8f b7 bb |.....| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 33 |............ ..3| -00000010 09 af a9 04 cc 10 ec 56 a1 6c 5d 78 51 c3 d4 68 |.......V.l]xQ..h| -00000020 d0 8f e0 43 60 7e ef 19 40 64 fe de 9b e2 f5 25 |...C`~..@d.....%| -00000030 28 e3 2f 0a dd 35 23 a5 75 9a 10 7f 35 be 30 5c |(./..5#.u...5.0\| -00000040 09 20 cf 63 81 73 b1 52 12 20 d1 d8 df d2 4f 85 |. .c.s.R. ....O.| -00000050 e7 4d fc 0b 86 b7 b2 d4 7d ea f0 ee c6 a7 0f 0c |.M......}.......| -00000060 83 85 7e d4 61 65 b8 f0 e7 15 c6 b9 a1 d8 2d 1c |..~.ae........-.| -00000070 bd 87 84 44 7e 21 a0 47 da 77 c4 76 84 41 84 9a |...D~!.G.w.v.A..| -00000080 ac 4e b9 1e 83 c3 54 d5 0e 5f a7 0e 4e 7a 2e 8d |.N....T.._..Nz..| -00000090 a0 45 e6 11 56 fc 97 ad 7d fb db 3e fb 0a f5 78 |.E..V...}..>...x| -000000a0 d8 4a ea cc 27 17 b9 55 1c b0 61 1c 7e c4 5e 2e |.J..'..U..a.~.^.| -000000b0 c9 c4 fb 6e dd ac 0c 05 4a fd e1 ca 7f 0f 1e 14 |...n....J.......| -000000c0 03 03 00 01 01 16 03 03 00 20 92 f6 15 01 8f ca |......... ......| -000000d0 a6 34 fa bb 9a 74 e5 cb 7f 03 f0 19 84 2e 00 1e |.4...t..........| -000000e0 5e 24 f6 1a c2 28 92 d7 22 83 |^$...(..".| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 fc |............ ...| +00000010 fd a3 50 b8 8f dc 0c 77 eb d4 54 13 47 9b fb 6a |..P....w..T.G..j| +00000020 fa 05 ec 8e a0 e3 ff 37 e8 d6 b1 6e 1f 01 5c 05 |.......7...n..\.| +00000030 e1 ef ee 36 8c 6e b2 6a 01 15 3c 3f 93 62 e5 a0 |...6.n.j..| +00000070 22 b5 8d 5c 6b ce 67 ac b8 b2 3e 27 cf fa c1 17 |"..\k.g...>'....| +00000080 2e 51 99 c7 70 a3 d5 fc 3f 5a 41 4b e8 92 73 b8 |.Q..p...?ZAK..s.| +00000090 08 40 68 3e 78 58 09 59 b3 7e cf ea 11 5e 3f 26 |.@h>xX.Y.~...^?&| +000000a0 e3 3a 76 e4 eb ca 9c 17 56 2e 91 a0 6a e5 78 14 |.:v.....V...j.x.| +000000b0 03 03 00 01 01 16 03 03 00 20 a5 e1 a0 1f 78 4f |......... ....xO| +000000c0 95 44 19 7d af 53 df a5 df 83 3f 8e cc 5a 61 4d |.D.}.S....?..ZaM| +000000d0 63 45 d9 7c 89 0d 94 18 28 26 |cE.|....(&| >>> Flow 5 (client to server) -00000000 17 03 03 00 16 7d bd ea a7 69 61 b3 5c 79 1a 33 |.....}...ia.\y.3| -00000010 73 a5 7c 32 76 94 57 c1 80 89 a7 15 03 03 00 12 |s.|2v.W.........| -00000020 32 0d f5 8b b0 51 20 6e 8c 91 77 b9 e1 0e d0 72 |2....Q n..w....r| -00000030 00 33 |.3| +00000000 17 03 03 00 16 17 31 9a 7e 53 84 70 2e f3 0f 28 |......1.~S.p...(| +00000010 ba 68 90 fc 51 52 88 66 e3 19 fc 15 03 03 00 12 |.h..QR.f........| +00000020 34 58 18 a2 7d 24 0c 42 20 22 5f fa 57 25 7f 62 |4X..}$.B "_.W%.b| +00000030 1f 73 |.s| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-CHACHA20-POLY1305-Golang-0 b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-CHACHA20-POLY1305-Golang-0 index 5cbb65c..047321e 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-CHACHA20-POLY1305-Golang-0 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-ECDSA-CHACHA20-POLY1305-Golang-0 @@ -1,17 +1,21 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 6b 01 00 00 67 03 03 00 00 00 00 00 |....k...g.......| +00000000 16 03 01 00 9c 01 00 00 98 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 02 cc a9 |................| -00000030 01 00 00 3c 00 05 00 05 01 00 00 00 00 00 0a 00 |...<............| -00000040 0a 00 08 00 1d 00 17 00 18 00 19 00 0b 00 02 01 |................| -00000050 00 00 0d 00 12 00 10 04 01 04 03 05 01 05 03 06 |................| -00000060 01 06 03 02 01 02 03 ff 01 00 01 00 00 12 00 00 |................| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 02 cc a9 |................| +00000050 01 00 00 4d 00 05 00 05 01 00 00 00 00 00 0a 00 |...M............| +00000060 0a 00 08 00 1d 00 17 00 18 00 19 00 0b 00 02 01 |................| +00000070 00 00 0d 00 18 00 16 08 04 08 05 08 06 04 01 04 |................| +00000080 03 05 01 05 03 06 01 06 03 02 01 02 03 ff 01 00 |................| +00000090 01 00 00 12 00 00 00 2b 00 07 06 03 03 03 02 03 |.......+........| +000000a0 01 |.| >>> Flow 2 (server to client) -00000000 16 03 03 00 59 02 00 00 55 03 03 3f a2 95 b4 06 |....Y...U..?....| -00000010 8d 99 50 da ee 0d a1 2b 63 37 a9 38 d2 3a 17 29 |..P....+c7.8.:.)| -00000020 c6 01 4d 9d 78 f7 6c 31 11 3c 14 20 bf 50 57 16 |..M.x.l1.<. .PW.| -00000030 d8 f4 37 04 e0 ed 0e 73 a1 50 66 a9 20 f1 18 f7 |..7....s.Pf. ...| -00000040 ec 5b f2 f7 ec ca 26 d7 10 38 92 9b cc a9 00 00 |.[....&..8......| +00000000 16 03 03 00 59 02 00 00 55 03 03 4b 8c 54 10 d6 |....Y...U..K.T..| +00000010 8e 02 2e f9 ab cc b7 1c 79 fe 93 0b af 6e b2 e0 |........y....n..| +00000020 ca 31 09 b7 86 5e 10 af bd 3d bd 20 b0 6e 85 8f |.1...^...=. .n..| +00000030 a7 1f f0 83 68 b7 a3 0e 6e b6 27 03 4a 0f 01 2f |....h...n.'.J../| +00000040 43 ca ed fb de 7f e1 59 c1 a2 f4 b8 cc a9 00 00 |C......Y........| 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 00000060 03 02 0e 0b 00 02 0a 00 02 07 00 02 04 30 82 02 |.............0..| 00000070 00 30 82 01 62 02 09 00 b8 bf 2d 47 a0 d2 eb f4 |.0..b.....-G....| @@ -46,32 +50,32 @@ 00000240 13 83 0d 94 06 bb d4 37 7a f6 ec 7a c9 86 2e dd |.......7z..z....| 00000250 d7 11 69 7f 85 7c 56 de fb 31 78 2b e4 c7 78 0d |..i..|V..1x+..x.| 00000260 ae cb be 9e 4e 36 24 31 7b 6a 0f 39 95 12 07 8f |....N6$1{j.9....| -00000270 2a 16 03 03 00 b7 0c 00 00 b3 03 00 1d 20 6f 2b |*............ o+| -00000280 a9 a4 84 2e a0 61 d7 6d 4c 39 7e 8b 5f 29 dd f5 |.....a.mL9~._)..| -00000290 47 5e 74 5d 73 4e 4a 9c 72 7e b5 f9 8d 45 04 03 |G^t]sNJ.r~...E..| -000002a0 00 8b 30 81 88 02 42 00 8e d1 8c 24 67 98 86 aa |..0...B....$g...| -000002b0 33 61 7a 66 2f d2 05 e7 6a 8f 16 0a 63 29 1c ed |3azf/...j...c)..| -000002c0 7f 38 c8 4d b4 56 7d 3e 89 24 b7 9a e3 33 73 7b |.8.M.V}>.$...3s{| -000002d0 ea 15 45 40 2d 7a 5a 4b 2d df fd 38 f5 d3 2e d5 |..E@-zZK-..8....| -000002e0 99 8a f5 8b 09 9d cc cf 1c 02 42 01 a8 2a 9f 80 |..........B..*..| -000002f0 61 ec 1f 55 e3 2f 95 7c bc 8c 45 25 f6 e7 9c 9d |a..U./.|..E%....| -00000300 a3 73 0c c6 a4 2c d6 82 b0 47 8a 6a e6 0d df 8b |.s...,...G.j....| -00000310 e8 92 4c 59 f1 25 ff e3 40 4f 82 ae 23 4e 05 6b |..LY.%..@O..#N.k| -00000320 4c 18 c8 67 2d 37 f5 eb 7f a8 46 0a 76 16 03 03 |L..g-7....F.v...| +00000270 2a 16 03 03 00 b7 0c 00 00 b3 03 00 1d 20 1a 7c |*............ .|| +00000280 be 9a c6 01 25 42 55 5d 16 6a ee 46 2b f7 64 3b |....%BU].j.F+.d;| +00000290 74 2c 82 75 78 db 87 e7 1a fd 24 db 1f 30 04 03 |t,.ux.....$..0..| +000002a0 00 8b 30 81 88 02 42 01 9e 8d c9 f6 ed 69 74 85 |..0...B......it.| +000002b0 e4 66 5c 36 30 c7 df d5 f6 e1 45 91 73 bf 9a 4a |.f\60.....E.s..J| +000002c0 93 35 f2 75 55 64 ae 25 d0 25 dd 2d 69 6b fc 7a |.5.uUd.%.%.-ik.z| +000002d0 50 50 c1 8e 5f 67 42 05 a7 f2 b5 ce c3 af fd e7 |PP.._gB.........| +000002e0 fe aa f9 e9 61 74 04 b9 f9 02 42 00 9c 35 88 7b |....at....B..5.{| +000002f0 0b b3 02 b7 73 1b c8 95 ee 71 a7 4d 15 d2 c5 80 |....s....q.M....| +00000300 b1 93 6b 68 bc a8 8c c9 19 cf 0a 19 ed f9 17 cc |..kh............| +00000310 9c ec f4 14 dc e9 53 41 e1 52 da 4c 66 b6 6e 4a |......SA.R.Lf.nJ| +00000320 15 fa 15 91 9b c2 a5 f8 22 b7 b4 7c 7a 16 03 03 |........"..|z...| 00000330 00 04 0e 00 00 00 |......| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| -00000030 16 03 03 00 20 4f 5d 46 7d 55 82 a4 18 41 35 d6 |.... O]F}U...A5.| -00000040 d6 1b a8 39 2b 36 a0 24 6a f4 a0 bd 5a 21 3e fb |...9+6.$j...Z!>.| -00000050 c5 36 b3 88 fc |.6...| +00000030 16 03 03 00 20 ee 0f d3 78 a0 04 70 ce 37 b6 c3 |.... ...x..p.7..| +00000040 a2 ac e0 a7 3b ea a7 5f 13 2d ed f8 a8 5f ba bf |....;.._.-..._..| +00000050 8c 66 6d 23 15 |.fm#.| >>> Flow 4 (server to client) -00000000 14 03 03 00 01 01 16 03 03 00 20 45 72 a1 4b 9d |.......... Er.K.| -00000010 1a 70 f1 c3 ad 95 d2 44 1b 1f e4 88 a2 99 94 a9 |.p.....D........| -00000020 90 92 fc 34 32 f0 d4 15 13 03 5a |...42.....Z| +00000000 14 03 03 00 01 01 16 03 03 00 20 f8 7b e6 39 8f |.......... .{.9.| +00000010 be 0d b7 32 b5 6d b1 cb c4 cc 00 18 50 4f f8 f4 |...2.m......PO..| +00000020 2e aa 7c b0 eb 19 b1 97 bb 8d 2f |..|......./| >>> Flow 5 (client to server) -00000000 17 03 03 00 16 36 98 d9 d3 82 f9 ff fc e8 52 4b |.....6........RK| -00000010 ce a7 aa bc 9c c8 ec 72 df 8d 6b 15 03 03 00 12 |.......r..k.....| -00000020 87 6f 5f b8 c6 26 f3 d3 e5 7a 26 50 35 f0 c0 15 |.o_..&...z&P5...| -00000030 b8 02 |..| +00000000 17 03 03 00 16 3f 1c b5 cd 4d bf 29 76 d3 5b 0f |.....?...M.)v.[.| +00000010 71 e1 4f 0b 32 90 d0 c4 92 15 59 15 03 03 00 12 |q.O.2.....Y.....| +00000020 8f c6 89 d3 a0 0a e9 bd f1 42 95 80 2c d8 31 fc |.........B..,.1.| +00000030 33 0e |3.| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Chrome-58 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Chrome-58 index 9bec80b..e62a9d7 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Chrome-58 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Chrome-58 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 b7 01 00 00 b3 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 d7 01 00 00 d3 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 0a 0a |................| -00000030 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| -00000040 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| -00000050 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| -00000060 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| -00000070 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| -00000080 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| -00000090 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| -000000a0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| -000000b0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 0a 0a |................| +00000050 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| +00000060 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| +00000070 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| +00000080 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| +00000090 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| +000000a0 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| +000000b0 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| +000000c0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| +000000d0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 4a 57 94 ec 2f |....A...=..JW../| -00000010 4d ed 23 7c b1 21 9e 2a 71 4a 56 18 a4 a0 6c a1 |M.#|.!.*qJV...l.| -00000020 51 75 65 74 bd dd e9 ed a2 fd cd 00 c0 2f 00 00 |Quet........./..| +00000000 16 03 03 00 41 02 00 00 3d 03 03 1c 5c 8f 41 92 |....A...=...\.A.| +00000010 a1 c7 a2 d6 ac 9c 36 02 58 ac 80 ff 0e dd 14 18 |......6.X.......| +00000020 25 26 0e a7 14 e9 5e 62 bf 8b 77 00 c0 2f 00 00 |%&....^b..w../..| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 59 0b 00 02 55 00 |..........Y...U.| 00000050 02 52 00 02 4f 30 82 02 4b 30 82 01 b4 a0 03 02 |.R..O0..K0......| @@ -55,44 +57,43 @@ 00000280 40 83 61 c9 4c 72 2b 9d ae db 46 06 06 4d f4 c1 |@.a.Lr+...F..M..| 00000290 b3 3e c0 d1 bd 42 d4 db fe 3d 13 60 84 5c 21 d3 |.>...B...=.`.\!.| 000002a0 3b e9 fa e7 16 03 03 00 ac 0c 00 00 a8 03 00 1d |;...............| -000002b0 20 ff 0a 72 a1 2f 3a b7 cd 7b e7 40 e1 c6 c2 73 | ..r./:..{.@...s| -000002c0 54 4c 65 c2 92 00 42 bf 9d 05 b8 2e a4 66 f8 74 |TLe...B......f.t| -000002d0 40 04 01 00 80 af f5 a5 53 82 66 e9 e8 d7 ad 63 |@.......S.f....c| -000002e0 af f7 b6 c6 fb b2 9a 8f c8 36 b8 fa 46 27 91 c4 |.........6..F'..| -000002f0 07 cc 27 e4 93 a5 e2 bd f9 cf ca 15 04 0a 58 a2 |..'...........X.| -00000300 36 a9 f3 5d 45 25 41 ba 01 c7 01 7a f9 10 82 f2 |6..]E%A....z....| -00000310 36 f9 1a 0c 75 69 b1 2a 76 d5 2b 74 55 ac 36 34 |6...ui.*v.+tU.64| -00000320 35 ca 49 30 d0 ff 0c ce bd 9e b8 f0 48 28 00 89 |5.I0........H(..| -00000330 19 7d 60 b0 7a 1a e8 63 43 23 72 0e c8 52 2a ca |.}`.z..cC#r..R*.| -00000340 2d ee a5 ed d7 30 35 18 e0 cc c1 f0 fd 82 3f e8 |-....05.......?.| -00000350 ea ef 00 57 98 16 03 03 00 04 0e 00 00 00 |...W..........| +000002b0 20 36 15 10 e1 88 62 09 87 ad 43 3a e0 df ef 27 | 6....b...C:...'| +000002c0 81 05 a0 db 2b 46 af 06 81 6b 54 2b 15 70 be 37 |....+F...kT+.p.7| +000002d0 3d 08 04 00 80 05 75 5b ab bf 31 86 4b a9 ed f7 |=.....u[..1.K...| +000002e0 9e a6 0a 0d f7 11 f7 dc 58 29 3a cc 25 16 a6 66 |........X):.%..f| +000002f0 60 39 b2 19 09 27 68 9f 95 35 7c a0 78 57 76 b7 |`9...'h..5|.xWv.| +00000300 9c f9 cf 44 ee e3 1d f8 85 5b 8f e9 96 a7 8f 83 |...D.....[......| +00000310 f7 50 51 f9 25 f7 72 4b 4b a7 b0 fc 1e 9d 41 98 |.PQ.%.rKK.....A.| +00000320 d4 cf a5 be 21 25 e5 1a bc 8a ce 41 99 78 c5 e6 |....!%.....A.x..| +00000330 5d c0 8e 01 62 f3 39 00 6a 3d 3a 1f b1 e5 41 0e |]...b.9.j=:...A.| +00000340 5d 09 ea 57 ea d2 09 8a 85 f4 72 30 6b 6d 34 14 |]..W......r0km4.| +00000350 40 38 41 e2 25 16 03 03 00 04 0e 00 00 00 |@8A.%.........| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| -00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 38 00 f6 |....(........8..| -00000040 a1 c5 fc 51 71 90 be 9f 16 6d 79 d5 5f 53 5c 8f |...Qq....my._S\.| -00000050 b0 c3 6d 8e c0 6c 07 c0 82 b2 e6 21 b4 |..m..l.....!.| +00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 c0 85 41 |....(..........A| +00000040 6f c9 8d cd 73 7f a2 eb c8 d7 82 3a 00 d8 40 87 |o...s......:..@.| +00000050 21 5e cb 3b 26 c4 38 2f 54 28 c9 d7 1b |!^.;&.8/T(...| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 9e |............ ...| -00000010 4b 46 e2 df 11 90 af 9b ec aa ab c2 a0 71 af a9 |KF...........q..| -00000020 a6 5c a3 c1 46 ab a4 09 8a 19 ea 88 37 87 3f e6 |.\..F.......7.?.| -00000030 1e ba 03 62 22 c1 f8 30 03 9f 8c 35 a9 a8 58 49 |...b"..0...5..XI| -00000040 b9 cb 18 74 3e 0d be 36 89 cb ce f6 1f c6 4b 27 |...t>..6......K'| -00000050 e5 69 39 e0 23 39 c5 eb 52 82 b8 d4 ab 75 16 4b |.i9.#9..R....u.K| -00000060 ae 10 9c 7b 3a 96 0b 59 40 0f d7 4c 5b b6 01 11 |...{:..Y@..L[...| -00000070 d0 39 7c 0c e0 e7 98 2a 57 98 79 d6 6c b2 e5 99 |.9|....*W.y.l...| -00000080 d8 52 12 3f 2c 7c 3f 38 b1 16 44 5c 3a 92 c0 73 |.R.?,|?8..D\:..s| -00000090 84 43 eb b7 47 e6 ac 21 91 88 be 64 60 9a c0 46 |.C..G..!...d`..F| -000000a0 e1 52 75 dd e1 ee 0f b5 02 32 f3 9f 06 84 b6 05 |.Ru......2......| -000000b0 aa dd 01 f8 da bf 10 aa 3d bb a2 f9 0a b8 61 14 |........=.....a.| -000000c0 03 03 00 01 01 16 03 03 00 28 3a 90 41 49 ca fe |.........(:.AI..| -000000d0 e8 6b f6 6b 63 8f c3 58 ba 40 f2 82 43 aa e8 8b |.k.kc..X.@..C...| -000000e0 15 fc 05 f3 e5 ae a0 be d3 ed 06 4d 64 fe 2b b7 |...........Md.+.| -000000f0 45 c3 |E.| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 79 |............ ..y| +00000010 df da 32 a0 b2 16 2a 73 57 e9 af 53 25 67 ac 30 |..2...*sW..S%g.0| +00000020 86 dc 05 97 bf 1c d6 40 c5 01 ef 80 5c 6c 82 31 |.......@....\l.1| +00000030 f0 48 be 9d 68 a2 b9 da 6c 55 79 8d da e8 36 61 |.H..h...lUy...6a| +00000040 c2 00 6c 0e 23 f0 bb f6 ef 46 cb a4 69 96 b1 54 |..l.#....F..i..T| +00000050 3f 8c 3a de b4 1e eb 65 ca 22 99 fc a1 01 2e 78 |?.:....e.".....x| +00000060 08 fa a2 41 1b e9 66 82 96 8c be de 74 25 5c 9d |...A..f.....t%\.| +00000070 c3 82 02 68 2c 0a 2e b3 63 0b e2 72 1c 06 d9 20 |...h,...c..r... | +00000080 e4 6d ec 80 34 b4 95 91 77 64 6d ca 4a e6 a0 e3 |.m..4...wdm.J...| +00000090 a4 40 ae 8f a9 87 f0 c3 97 bd aa f3 7c 1d 70 bd |.@..........|.p.| +000000a0 88 d9 00 9a 23 ba b3 ac 95 69 dd 8a 5a d6 59 14 |....#....i..Z.Y.| +000000b0 03 03 00 01 01 16 03 03 00 28 c7 1b 50 e4 6d fa |.........(..P.m.| +000000c0 ba 4a 6e 34 7b 85 79 a4 37 ec 21 d4 2c 14 db 8c |.Jn4{.y.7.!.,...| +000000d0 42 7a 39 5e d6 06 5d 31 01 cd 38 00 ab 8b 26 0c |Bz9^..]1..8...&.| +000000e0 8c 70 |.p| >>> Flow 5 (client to server) -00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 f2 73 2c |..............s,| -00000010 d2 03 57 6c 03 68 f5 43 29 71 60 55 aa 5c 3a 30 |..Wl.h.C)q`U.\:0| -00000020 68 5a 33 15 03 03 00 1a 00 00 00 00 00 00 00 02 |hZ3.............| -00000030 16 3a 8a f2 d9 f2 2c dc d8 87 31 23 26 98 d6 2c |.:....,...1#&..,| -00000040 1a cf |..| +00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 30 d1 d0 |.............0..| +00000010 48 b6 11 0b 60 72 79 60 b9 55 b8 e2 76 4c 2f b5 |H...`ry`.U..vL/.| +00000020 a0 92 98 15 03 03 00 1a 00 00 00 00 00 00 00 02 |................| +00000030 90 7d b8 54 f2 af 4a c8 0c 21 ce c2 15 61 c6 e2 |.}.T..J..!...a..| +00000040 cf 4d |.M| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Firefox-55 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Firefox-55 index e8f9deb..4294d81 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Firefox-55 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Firefox-55 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 ac 01 00 00 a8 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 cc 01 00 00 c8 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| -00000030 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| -00000040 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| -00000050 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| -00000060 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| -00000070 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| -00000080 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| -00000090 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| -000000a0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| -000000b0 01 |.| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| +00000050 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| +00000060 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| +00000070 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| +00000080 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| +00000090 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| +000000a0 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| +000000b0 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| +000000c0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| +000000d0 01 |.| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 c7 37 2b 61 19 |....A...=...7+a.| -00000010 9a 35 75 fc d8 05 df eb fd 6d 63 37 9a 65 76 fb |.5u......mc7.ev.| -00000020 07 11 93 5d 00 c2 10 61 f1 ed 99 00 c0 2f 00 00 |...]...a...../..| +00000000 16 03 03 00 41 02 00 00 3d 03 03 63 6e d0 26 93 |....A...=..cn.&.| +00000010 d2 4a 30 45 98 44 f5 b6 d8 56 18 52 e8 04 03 23 |.J0E.D...V.R...#| +00000020 de dc ec ac e8 41 d5 39 7c fa 14 00 c0 2f 00 00 |.....A.9|..../..| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 59 0b 00 02 55 00 |..........Y...U.| 00000050 02 52 00 02 4f 30 82 02 4b 30 82 01 b4 a0 03 02 |.R..O0..K0......| @@ -55,44 +57,43 @@ 00000280 40 83 61 c9 4c 72 2b 9d ae db 46 06 06 4d f4 c1 |@.a.Lr+...F..M..| 00000290 b3 3e c0 d1 bd 42 d4 db fe 3d 13 60 84 5c 21 d3 |.>...B...=.`.\!.| 000002a0 3b e9 fa e7 16 03 03 00 ac 0c 00 00 a8 03 00 1d |;...............| -000002b0 20 83 cb 97 92 b6 5d 77 92 06 08 12 a1 17 6e 34 | .....]w......n4| -000002c0 78 f5 52 7f c0 d1 ba aa 57 63 be 63 f0 e2 68 91 |x.R.....Wc.c..h.| -000002d0 17 04 01 00 80 db 40 ff 86 1e 26 83 b3 99 58 7b |......@...&...X{| -000002e0 0f 2b 54 72 a1 22 da 2b f2 3e f9 4a 92 c7 ec 8f |.+Tr.".+.>.J....| -000002f0 a1 87 60 71 fd 85 df cd e9 f4 ef 98 d9 68 4e 2f |..`q.........hN/| -00000300 40 c9 fd 3c 43 31 18 4f 31 3a d9 70 01 f6 7f b7 |@..>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| -00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 51 99 54 |....(........Q.T| -00000040 2b 58 31 d9 12 2e c2 11 3f e9 09 d3 86 85 ae 85 |+X1.....?.......| -00000050 d7 84 87 fa b2 f0 d1 23 69 ee d4 c1 e0 |.......#i....| +00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 61 2e 38 |....(........a.8| +00000040 1c 84 ee 6b 6c 6c b5 cc 3b 2c 36 40 92 1f e3 ae |...kll..;,6@....| +00000050 86 0c aa bf 29 9d 0a 3c 7e 5f df ce d3 |....)..<~_...| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 6a |............ ..j| -00000010 45 1e 85 1c b0 ae 8b 14 8f a3 58 de d3 77 ba 2c |E.........X..w.,| -00000020 a3 7a 02 8f c6 59 92 6a f0 4d dc c7 4a 29 08 45 |.z...Y.j.M..J).E| -00000030 d6 b5 a1 9e b8 5e 4c d6 ab 32 38 1f e7 e8 9f d5 |.....^L..28.....| -00000040 5e bd f6 bf d3 65 34 9a 70 0a 89 67 79 44 5b 3a |^....e4.p..gyD[:| -00000050 51 3a cd 66 e2 9c 8c 2b c5 ba d9 08 fd 24 fa 66 |Q:.f...+.....$.f| -00000060 4a e2 37 ea 1e c3 63 0b 6f a2 01 53 64 ad b9 af |J.7...c.o..Sd...| -00000070 e4 6d e2 ff 9c 2b 4d 2b c4 3a 1d 1d 9b a3 98 d7 |.m...+M+.:......| -00000080 25 cf c9 b8 40 af 99 fd 15 fc f7 85 93 f3 22 ae |%...@.........".| -00000090 07 dc f8 3f 56 d7 21 1e 2c 5c b2 90 40 1c f4 ff |...?V.!.,\..@...| -000000a0 6f 79 3e 9f c3 23 6d 8d b3 32 dc eb ec 5c 14 87 |oy>..#m..2...\..| -000000b0 f5 12 f1 1c 49 bf b3 7f 69 78 3a 87 8d bf a9 14 |....I...ix:.....| -000000c0 03 03 00 01 01 16 03 03 00 28 6d a4 27 4b 0d 8d |.........(m.'K..| -000000d0 cf 61 57 9a c9 82 52 3f 1a 27 4c 54 f7 73 71 50 |.aW...R?.'LT.sqP| -000000e0 e8 f8 9e 71 ea bd c2 41 2d 55 e3 45 56 cb 00 b3 |...q...A-U.EV...| -000000f0 37 1a |7.| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 ac |............ ...| +00000010 50 67 20 f5 63 20 03 36 39 35 6a c5 ea 5f e3 99 |Pg .c .695j.._..| +00000020 f3 2b d3 2c d7 72 fb e9 12 91 d8 70 2a 84 7e 60 |.+.,.r.....p*.~`| +00000030 62 ca 76 f2 eb 22 1a 2d 7e ab c1 20 7c 95 23 fb |b.v..".-~.. |.#.| +00000040 b0 fb be eb 9d 67 81 33 f9 92 4d 15 1a 22 45 d5 |.....g.3..M.."E.| +00000050 09 42 05 1f 8c 9f f3 01 2c d8 69 bc 40 e3 80 7b |.B......,.i.@..{| +00000060 61 5c 64 e5 ce 10 ac 0f 4a a0 33 29 cf 3d a1 af |a\d.....J.3).=..| +00000070 d1 97 6f 4e 12 cd d8 fa a5 e2 1f 08 4f 9d 37 21 |..oN........O.7!| +00000080 0e d9 2a bc d6 c7 ac a0 52 77 0e e0 9b 39 73 d8 |..*.....Rw...9s.| +00000090 da 40 47 c7 35 09 55 22 9f 58 4f 64 ef 2f 5b a9 |.@G.5.U".XOd./[.| +000000a0 ca 48 a8 6b 45 24 9d 5b 62 3b ac 5a fb 28 03 14 |.H.kE$.[b;.Z.(..| +000000b0 03 03 00 01 01 16 03 03 00 28 ef 0e 02 d1 41 00 |.........(....A.| +000000c0 1e bc cc d0 34 85 bf 8d 89 ab 02 79 0b 22 af 7f |....4......y."..| +000000d0 d0 d8 c7 f9 8a 3b 7b e3 67 66 73 7e 96 9a aa ba |.....;{.gfs~....| +000000e0 2a 05 |*.| >>> Flow 5 (client to server) -00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 d2 4f fc |..............O.| -00000010 4c 46 8f 69 00 08 ec 85 07 14 0f 1b e0 8b cf 69 |LF.i...........i| -00000020 0a b8 5b 15 03 03 00 1a 00 00 00 00 00 00 00 02 |..[.............| -00000030 de 7a ce 52 1d 2c 90 80 f6 de ec eb b8 3e 0f 56 |.z.R.,.......>.V| -00000040 a5 c9 |..| +00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 96 40 4a |..............@J| +00000010 81 1d 54 df 15 60 a7 97 0e 77 77 fa a9 9b d5 9f |..T..`...ww.....| +00000020 54 80 d1 15 03 03 00 1a 00 00 00 00 00 00 00 02 |T...............| +00000030 e6 1f b4 bc 4f d0 0a 10 b1 bc 22 ba f5 90 62 c3 |....O....."...b.| +00000040 ea 07 |..| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Golang-0 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Golang-0 index 197b036..adf885a 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Golang-0 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-GCM-SHA256-Golang-0 @@ -1,20 +1,23 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 95 01 00 00 91 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 c6 01 00 00 c2 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| -00000030 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| -00000040 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| -00000050 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 3c 00 05 |.............<..| -00000060 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| -00000070 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 12 00 |................| -00000080 10 04 01 04 03 05 01 05 03 06 01 06 03 02 01 02 |................| -00000090 03 ff 01 00 01 00 00 12 00 00 |..........| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| +00000050 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| +00000060 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| +00000070 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 4d 00 05 |.............M..| +00000080 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| +00000090 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 18 00 |................| +000000a0 16 08 04 08 05 08 06 04 01 04 03 05 01 05 03 06 |................| +000000b0 01 06 03 02 01 02 03 ff 01 00 01 00 00 12 00 00 |................| +000000c0 00 2b 00 07 06 03 03 03 02 03 01 |.+.........| >>> Flow 2 (server to client) -00000000 16 03 03 00 59 02 00 00 55 03 03 db 47 28 30 72 |....Y...U...G(0r| -00000010 f1 d3 12 26 d1 2e c6 52 0d 7b 05 4b dd a6 8e 1c |...&...R.{.K....| -00000020 b8 a1 43 15 27 b1 40 1c fb 6b 91 20 34 f5 30 81 |..C.'.@..k. 4.0.| -00000030 64 75 ba f6 0c c7 d4 6a 94 d8 6a d9 5d 74 3f 78 |du.....j..j.]t?x| -00000040 bd c5 62 de ad 3e 6b da 01 6a f4 f0 c0 2f 00 00 |..b..>k..j.../..| +00000000 16 03 03 00 59 02 00 00 55 03 03 0c 93 1d 2b 06 |....Y...U.....+.| +00000010 59 46 66 9c 3e b7 03 00 2a c4 43 3f 48 af 20 e3 |YFf.>...*.C?H. .| +00000020 d0 e1 27 ba 94 4f 35 bb 87 29 55 20 49 5f f9 c9 |..'..O5..)U I_..| +00000030 15 85 af 45 a5 60 6b 3f dd 6d f4 39 4b 44 ce 49 |...E.`k?.m.9KD.I| +00000040 4c eb 2a 02 66 e6 eb 29 1b 12 3b f5 c0 2f 00 00 |L.*.f..)..;../..| 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 00000060 03 02 59 0b 00 02 55 00 02 52 00 02 4f 30 82 02 |..Y...U..R..O0..| 00000070 4b 30 82 01 b4 a0 03 02 01 02 02 09 00 e8 f0 9d |K0..............| @@ -54,33 +57,33 @@ 00000290 77 8d 0c 1c f1 0f a1 d8 40 83 61 c9 4c 72 2b 9d |w.......@.a.Lr+.| 000002a0 ae db 46 06 06 4d f4 c1 b3 3e c0 d1 bd 42 d4 db |..F..M...>...B..| 000002b0 fe 3d 13 60 84 5c 21 d3 3b e9 fa e7 16 03 03 00 |.=.`.\!.;.......| -000002c0 ac 0c 00 00 a8 03 00 1d 20 f1 ec 1a dc 8a 56 4c |........ .....VL| -000002d0 bb de 1b 60 a6 ad 1b 55 ae cc 74 c2 5f 05 7f f5 |...`...U..t._...| -000002e0 96 72 64 58 7f ec 00 24 2b 04 01 00 80 06 d4 78 |.rdX...$+......x| -000002f0 02 ea ea c5 c0 d9 12 df 9b af 6d 33 98 c9 6e e6 |..........m3..n.| -00000300 3b 05 ca 40 84 60 4e 77 b9 33 ec f4 42 37 ba 6a |;..@.`Nw.3..B7.j| -00000310 0b 9b 1c f9 b4 51 c2 8a 8e 65 a8 cb 2e 3d 2f 63 |.....Q...e...=/c| -00000320 32 88 8e c2 13 0e 16 8b 7d 0f 17 73 2a bf c2 c7 |2.......}..s*...| -00000330 16 aa 66 5c e3 bb 1c 8f 81 3b 1e 28 f5 93 36 f9 |..f\.....;.(..6.| -00000340 a9 38 e1 50 8f b3 19 46 1d fe 54 5e 75 f7 88 e3 |.8.P...F..T^u...| -00000350 29 26 5e 7b 26 36 2c a5 2c 65 6f 6b 4e 44 32 5e |)&^{&6,.,eokND2^| -00000360 af e2 c9 44 22 b2 c9 95 e7 e4 35 22 93 16 03 03 |...D".....5"....| +000002c0 ac 0c 00 00 a8 03 00 1d 20 e4 c6 e3 7f b7 f7 cf |........ .......| +000002d0 c3 60 10 45 bd cc c1 c2 76 e1 96 80 6c f1 ab a9 |.`.E....v...l...| +000002e0 3b 5a 9e 88 ae 8c 53 8b 42 08 04 00 80 a3 37 0e |;Z....S.B.....7.| +000002f0 fe a9 c3 fc 0f 10 37 11 f7 db 58 66 32 c0 de e4 |......7...Xf2...| +00000300 cd ac 21 a7 ea f6 91 fd a4 99 c4 c5 29 be 23 61 |..!.........).#a| +00000310 c1 f6 e5 84 4f b3 5f df d1 4c 6d 71 22 ee 86 e7 |....O._..Lmq"...| +00000320 f9 b4 8e 9e 42 b3 13 c0 dd 1b 4a 27 8c 57 08 53 |....B.....J'.W.S| +00000330 8f c6 42 83 a7 6f 9c e7 88 3a 1b 7c 5a 75 24 23 |..B..o...:.|Zu$#| +00000340 d8 73 a9 2a e6 06 bb 97 8d 52 75 b8 12 fe 5c be |.s.*.....Ru...\.| +00000350 12 f2 ea 93 18 cf 92 ca 4d 6a f2 d4 98 c1 9a c4 |........Mj......| +00000360 cb 88 77 20 ad a2 a9 bd a7 ca a7 c0 05 16 03 03 |..w ............| 00000370 00 04 0e 00 00 00 |......| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| -00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 6f 8e 92 |....(........o..| -00000040 97 47 21 ae 2e a8 a0 ed 41 3c 05 98 5d 2f 86 8d |.G!.....A<..]/..| -00000050 59 38 36 ec 1d a1 65 b9 e0 fc 02 c8 c6 |Y86...e......| +00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 14 70 fb |....(.........p.| +00000040 f9 4a 9e ac ab 9e ed d0 4b dd 78 fd 37 b1 88 f1 |.J......K.x.7...| +00000050 03 ff 0d ba 30 e9 68 f9 2a a7 e0 dd 5d |....0.h.*...]| >>> Flow 4 (server to client) -00000000 14 03 03 00 01 01 16 03 03 00 28 ab 54 9a 2c b6 |..........(.T.,.| -00000010 94 78 35 fb 77 7d d9 0e 1a 88 ec 95 fc a6 df 01 |.x5.w}..........| -00000020 ad b4 16 3f 7c be a8 ea 33 58 87 62 e8 39 5b c4 |...?|...3X.b.9[.| -00000030 2d 42 94 |-B.| +00000000 14 03 03 00 01 01 16 03 03 00 28 23 f6 77 70 d6 |..........(#.wp.| +00000010 9c 2f 87 a8 4b 2c 06 85 81 8d e2 de 51 92 ac 93 |./..K,......Q...| +00000020 64 56 3c a4 e1 61 73 26 b6 09 be 90 18 ce d0 19 |dV<..as&........| +00000030 cb 17 03 |...| >>> Flow 5 (client to server) -00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 14 53 0f |..............S.| -00000010 24 57 00 39 de 8e 2f 00 6e 95 61 27 9b 20 07 ba |$W.9../.n.a'. ..| -00000020 51 80 92 15 03 03 00 1a 00 00 00 00 00 00 00 02 |Q...............| -00000030 38 a2 92 3c 2c 41 5d ff 53 12 f9 ae d4 35 a0 6b |8..<,A].S....5.k| -00000040 83 f5 |..| +00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 7c 87 73 |.............|.s| +00000010 60 13 e2 f4 92 ea 27 69 47 87 ac 92 78 d8 dc 0a |`.....'iG...x...| +00000020 f6 cf 36 15 03 03 00 1a 00 00 00 00 00 00 00 02 |..6.............| +00000030 6c ac f3 96 be 7f b5 82 50 de b7 66 6e 55 0a e7 |l.......P..fnU..| +00000040 a3 3f |.?| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Chrome-58 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Chrome-58 index 5709f20..a1da616 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Chrome-58 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Chrome-58 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 b7 01 00 00 b3 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 d7 01 00 00 d3 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 0a 0a |................| -00000030 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| -00000040 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| -00000050 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| -00000060 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| -00000070 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| -00000080 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| -00000090 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| -000000a0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| -000000b0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 0a 0a |................| +00000050 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| +00000060 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| +00000070 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| +00000080 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| +00000090 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| +000000a0 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| +000000b0 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| +000000c0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| +000000d0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 52 fe 3c 96 79 |....A...=..R.<.y| -00000010 e5 4d 09 05 e5 d7 36 04 86 71 ee 45 52 b8 0b c8 |.M....6..q.ER...| -00000020 37 fa bd b6 c5 68 40 19 12 42 64 00 c0 13 00 00 |7....h@..Bd.....| +00000000 16 03 03 00 41 02 00 00 3d 03 03 0a e6 31 0a 3c |....A...=....1.<| +00000010 f1 db 40 28 06 3f d0 27 a0 a0 6a 4b 00 5c 2d 59 |..@(.?.'..jK.\-Y| +00000020 5f 85 03 aa 7d ce cf 4c a2 a2 fc 00 c0 13 00 00 |_...}..L........| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 59 0b 00 02 55 00 |..........Y...U.| 00000050 02 52 00 02 4f 30 82 02 4b 30 82 01 b4 a0 03 02 |.R..O0..K0......| @@ -55,49 +57,48 @@ 00000280 40 83 61 c9 4c 72 2b 9d ae db 46 06 06 4d f4 c1 |@.a.Lr+...F..M..| 00000290 b3 3e c0 d1 bd 42 d4 db fe 3d 13 60 84 5c 21 d3 |.>...B...=.`.\!.| 000002a0 3b e9 fa e7 16 03 03 00 ac 0c 00 00 a8 03 00 1d |;...............| -000002b0 20 10 06 c5 d6 8f b1 4d 5a d3 61 c3 50 d0 a1 4c | ......MZ.a.P..L| -000002c0 27 4f c8 3e 39 fe ad 88 a8 df cc d2 2a 81 46 32 |'O.>9.......*.F2| -000002d0 17 04 01 00 80 6c ab 88 f1 e6 32 ce eb b5 92 40 |.....l....2....@| -000002e0 87 f4 d8 e6 2a 1f d3 22 89 81 f1 ee ca 8f 68 bd |....*.."......h.| -000002f0 d4 dc 8b c4 e3 7d 13 0f 13 67 95 76 12 f4 78 ff |.....}...g.v..x.| -00000300 98 13 a0 39 f2 d2 b0 95 f8 34 50 b5 ca f2 8d 26 |...9.....4P....&| -00000310 8c e0 74 08 0b 8e 8d 05 10 68 31 1a f8 a7 f0 5e |..t......h1....^| -00000320 e8 a6 5f 3d 28 2b 53 25 ec 78 1a f1 8a 31 b9 6f |.._=(+S%.x...1.o| -00000330 25 50 bf b2 d0 f4 0b 6a a4 e7 1c 2c ae 13 f1 39 |%P.....j...,...9| -00000340 a9 9f af ce 6f 72 db 79 32 cd 62 30 91 28 ac 9e |....or.y2.b0.(..| -00000350 65 45 17 d0 09 16 03 03 00 04 0e 00 00 00 |eE............| +000002b0 20 c1 ba 0f d0 37 7e 9d 47 cc 5d e6 e6 1b 4d 4a | ....7~.G.]...MJ| +000002c0 88 71 71 1d f0 ec 9a c0 e9 3d 0b b5 a6 11 19 57 |.qq......=.....W| +000002d0 3a 08 04 00 80 10 b3 52 16 a7 58 17 7f a3 4e 7e |:......R..X...N~| +000002e0 51 93 6d f1 8b 84 3d a0 8a 8d 60 65 60 1e 4b 08 |Q.m...=...`e`.K.| +000002f0 7f 81 b4 2f 42 75 82 8b 1e 36 87 6e 2d 90 e5 b6 |.../Bu...6.n-...| +00000300 2d a9 41 d1 2b 17 57 08 4b 73 c5 ee de da 94 6a |-.A.+.W.Ks.....j| +00000310 28 59 90 45 3a 45 43 06 2e 98 c4 52 12 12 5e a8 |(Y.E:EC....R..^.| +00000320 a4 f6 aa dc 74 ff fe bc 2f 09 13 51 97 99 aa db |....t.../..Q....| +00000330 5f d1 2c e7 b7 fc a0 e8 8c b8 fe 28 35 d9 18 14 |_.,........(5...| +00000340 b2 7b b6 de 4a bb 70 04 37 17 c6 fe 2a b9 87 5e |.{..J.p.7...*..^| +00000350 59 fd d4 62 ab 16 03 03 00 04 0e 00 00 00 |Y..b..........| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| 00000030 16 03 03 00 40 00 00 00 00 00 00 00 00 00 00 00 |....@...........| -00000040 00 00 00 00 00 78 88 29 0a af 32 f5 ad 61 6a 76 |.....x.)..2..ajv| -00000050 1b 5b 36 f5 23 1a c0 73 60 67 2c d0 cf 91 cf f2 |.[6.#..s`g,.....| -00000060 7b b9 54 54 48 d6 da c5 19 fb 33 6a 4d 19 bc cd |{.TTH.....3jM...| -00000070 7f d3 c5 45 0e |...E.| +00000040 00 00 00 00 00 8e 36 95 ba 08 36 5a a1 8f 18 61 |......6...6Z...a| +00000050 1a c3 6e 22 60 8f ce f0 4e 9c 6a ef bd d8 a5 41 |..n"`...N.j....A| +00000060 f0 a6 66 ae c1 0d 6d b7 63 b5 8d 99 dc df 29 0a |..f...m.c.....).| +00000070 ea 37 69 1b 06 |.7i..| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 e3 |............ ...| -00000010 4a fd 24 d2 71 23 f4 79 13 4c 98 f9 91 e3 b1 25 |J.$.q#.y.L.....%| -00000020 be 86 37 c3 cd 39 c3 e3 7f c3 0c 8d 59 1e 68 41 |..7..9......Y.hA| -00000030 32 71 9b b5 47 6f b2 d7 79 e9 6d 52 5f f9 62 e9 |2q..Go..y.mR_.b.| -00000040 7c d7 d3 1d 0a 84 89 ba b3 b6 00 50 6c 0c e1 06 ||..........Pl...| -00000050 34 bc 0d 2d f9 7e 99 9a 05 da b0 df 71 38 40 58 |4..-.~......q8@X| -00000060 60 5b ce 2f 0b 6d 6c 3e 2b bd ce 09 32 01 31 e6 |`[./.ml>+...2.1.| -00000070 0a f8 b0 1d 24 86 34 c3 97 54 aa 12 4a 9c 13 87 |....$.4..T..J...| -00000080 bc 3d 6e bd 61 bc b6 06 c1 3a 36 4d 3e 71 57 8b |.=n.a....:6M>qW.| -00000090 10 f7 df ca b2 86 ba 10 64 ab c0 7f 60 df 8e 15 |........d...`...| -000000a0 47 48 f9 c9 68 93 f8 a7 88 b5 04 93 54 23 65 d1 |GH..h.......T#e.| -000000b0 23 88 e7 70 1f 04 01 92 af 5d 72 b5 2e 02 80 14 |#..p.....]r.....| -000000c0 03 03 00 01 01 16 03 03 00 40 aa dd 7d 5a 49 73 |.........@..}ZIs| -000000d0 a8 83 30 4e eb 64 d9 68 96 0c 70 44 7c c7 11 ee |..0N.d.h..pD|...| -000000e0 62 ab ea 80 17 a1 d9 8e 06 e8 a7 94 0f ed 6c b0 |b.............l.| -000000f0 7a 91 f0 b5 45 0f 84 b1 fd 99 b8 21 d3 10 cc a6 |z...E......!....| -00000100 3b f3 eb b8 8f c3 c2 63 c7 c4 |;......c..| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 4b |............ ..K| +00000010 88 24 be ae e6 70 e3 9b c2 92 12 1b 97 23 ca 46 |.$...p.......#.F| +00000020 3a 67 c0 b5 47 e4 a0 11 b4 d6 cf ea 85 5f aa fc |:g..G........_..| +00000030 6a 76 ec 02 7f 3c 15 8e 25 5c d6 9c 91 bd 4a 41 |jv...<..%\....JA| +00000040 97 4d d9 7a ae 5b be 50 7e f8 7d 09 a8 24 2b 62 |.M.z.[.P~.}..$+b| +00000050 81 42 93 e8 01 1e 65 4d 87 4a 57 7f b3 09 d3 2f |.B....eM.JW..../| +00000060 76 dd ba d8 a9 7e b7 0b 4f e9 9e 66 94 2e 6c e6 |v....~..O..f..l.| +00000070 f7 02 07 38 d2 39 4e 2a 25 13 38 9c 9a 38 50 e7 |...8.9N*%.8..8P.| +00000080 49 71 02 fc 85 62 1f 43 d2 ae a9 cc b0 3b 38 ba |Iq...b.C.....;8.| +00000090 0d 08 23 d3 dd 33 64 d8 8e 78 01 8e db 0f 44 44 |..#..3d..x....DD| +000000a0 54 a6 42 cf 10 a7 77 ba f8 40 cd 4c 17 d6 5a 14 |T.B...w..@.L..Z.| +000000b0 03 03 00 01 01 16 03 03 00 40 43 59 1f d8 3f 9b |.........@CY..?.| +000000c0 09 0d da ee d0 c9 53 43 af b7 5e 51 d5 a2 41 d2 |......SC..^Q..A.| +000000d0 95 7d 45 11 8b 2a c2 4a 9e f6 30 8f 7c 12 7d f4 |.}E..*.J..0.|.}.| +000000e0 67 03 dc bb 7f b5 56 5b 27 56 a5 ab 35 58 d2 32 |g.....V['V..5X.2| +000000f0 32 7f 12 77 6f b5 fb 11 9f 21 |2..wo....!| >>> Flow 5 (client to server) 00000000 17 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| -00000010 00 00 00 00 00 93 09 45 68 3f 05 18 ac 4f f9 8a |.......Eh?...O..| -00000020 81 81 34 bc 9e 13 df de be 78 f8 d2 e0 4c ca c8 |..4......x...L..| -00000030 5d 01 63 ae 61 15 03 03 00 30 00 00 00 00 00 00 |].c.a....0......| -00000040 00 00 00 00 00 00 00 00 00 00 14 e9 43 80 fb b2 |............C...| -00000050 29 7d 9a 79 87 00 a2 11 08 dc 8b b6 16 9b 7e 39 |)}.y..........~9| -00000060 8b 39 51 1d 57 af 1c c0 66 b1 |.9Q.W...f.| +00000010 00 00 00 00 00 12 e9 99 22 91 f9 41 fd 36 07 96 |........"..A.6..| +00000020 7f 93 8b 9b 2a 77 b8 af c3 c9 cf fc f6 f4 ff 92 |....*w..........| +00000030 4e de 46 4d 09 15 03 03 00 30 00 00 00 00 00 00 |N.FM.....0......| +00000040 00 00 00 00 00 00 00 00 00 00 d0 05 cc 25 f9 ca |.............%..| +00000050 cd 77 7a 44 2d 93 a3 74 60 f7 2e 1c ba be 49 93 |.wzD-..t`.....I.| +00000060 76 0b 63 ba 74 e6 46 fc 4c e3 |v.c.t.F.L.| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Firefox-55 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Firefox-55 index 9fe6f1b..8efb83e 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Firefox-55 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Firefox-55 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 ac 01 00 00 a8 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 cc 01 00 00 c8 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| -00000030 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| -00000040 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| -00000050 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| -00000060 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| -00000070 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| -00000080 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| -00000090 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| -000000a0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| -000000b0 01 |.| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| +00000050 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| +00000060 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| +00000070 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| +00000080 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| +00000090 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| +000000a0 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| +000000b0 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| +000000c0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| +000000d0 01 |.| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 84 f5 ef 14 85 |....A...=.......| -00000010 e3 94 c6 93 ad c6 b2 93 ce 54 05 c1 74 72 1b 70 |.........T..tr.p| -00000020 d3 5e 44 e3 f6 6a 70 cf 37 11 f5 00 c0 13 00 00 |.^D..jp.7.......| +00000000 16 03 03 00 41 02 00 00 3d 03 03 4d 40 92 59 a9 |....A...=..M@.Y.| +00000010 3e 0e 7e bf 21 4c 3a 97 1e b7 00 05 92 bf 19 6f |>.~.!L:........o| +00000020 d1 8e 59 23 47 fb 3e 72 52 fb 94 00 c0 13 00 00 |..Y#G.>rR.......| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 59 0b 00 02 55 00 |..........Y...U.| 00000050 02 52 00 02 4f 30 82 02 4b 30 82 01 b4 a0 03 02 |.R..O0..K0......| @@ -55,49 +57,48 @@ 00000280 40 83 61 c9 4c 72 2b 9d ae db 46 06 06 4d f4 c1 |@.a.Lr+...F..M..| 00000290 b3 3e c0 d1 bd 42 d4 db fe 3d 13 60 84 5c 21 d3 |.>...B...=.`.\!.| 000002a0 3b e9 fa e7 16 03 03 00 ac 0c 00 00 a8 03 00 1d |;...............| -000002b0 20 a9 4e c0 d0 16 c9 cb be 6f 32 c9 ba 47 3a e5 | .N......o2..G:.| -000002c0 94 fe 3c d0 90 00 55 97 81 05 23 d7 3a 35 33 21 |..<...U...#.:53!| -000002d0 77 04 01 00 80 4b e5 2c c0 f6 83 5c e0 24 9b 8b |w....K.,...\.$..| -000002e0 a7 66 60 68 42 9d 89 54 23 4e a5 56 d8 2e 9a e4 |.f`hB..T#N.V....| -000002f0 e9 b5 6d de 67 6b 65 a5 0d 13 57 ce f2 fa 53 89 |..m.gke...W...S.| -00000300 9c f8 56 08 2c fa 91 14 cc 35 16 ee 91 c7 e2 3f |..V.,....5.....?| -00000310 d6 3e 50 39 52 9f ac bd 56 7f d7 7e 61 90 28 77 |.>P9R...V..~a.(w| -00000320 7d d2 57 75 3c 31 95 17 1b 1d fd 14 a8 87 8d 36 |}.Wu<1.........6| -00000330 11 18 45 f6 03 61 13 89 42 1c 37 86 97 92 cc 65 |..E..a..B.7....e| -00000340 a2 a9 94 55 8c ad bf 16 25 a3 72 d2 66 57 5f bd |...U....%.r.fW_.| -00000350 7b 9b 1c 74 19 16 03 03 00 04 0e 00 00 00 |{..t..........| +000002b0 20 fa 59 52 a4 b2 2a 5b de e8 28 65 de 9d 64 70 | .YR..*[..(e..dp| +000002c0 10 5b 29 d4 1a ad 6a 06 94 dd 28 6f 7b ee 0c f5 |.[)...j...(o{...| +000002d0 23 08 04 00 80 15 0b 34 62 b8 c0 c5 0c 16 c5 28 |#......4b......(| +000002e0 b0 15 99 d2 95 31 23 c5 c5 9d 88 97 b7 e9 12 bf |.....1#.........| +000002f0 2e d3 65 4f dd d6 c3 c3 13 6e f9 ce e0 49 21 80 |..eO.....n...I!.| +00000300 19 52 88 8b 01 39 58 cc f4 29 38 0a f7 40 4d e4 |.R...9X..)8..@M.| +00000310 5d 14 4a 12 2b 5a 6d 9f d9 73 7f 5f 31 4c 75 04 |].J.+Zm..s._1Lu.| +00000320 39 45 64 74 8d e5 22 4d e8 c3 a2 0b 0e 49 57 ca |9Edt.."M.....IW.| +00000330 12 b2 a7 6c 2d e3 a4 18 54 04 b6 57 15 10 68 90 |...l-...T..W..h.| +00000340 c2 42 93 ef 5a 9c b3 6e ba 0a bd 59 73 18 6d e6 |.B..Z..n...Ys.m.| +00000350 0d d9 85 d1 f4 16 03 03 00 04 0e 00 00 00 |..............| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| 00000030 16 03 03 00 40 00 00 00 00 00 00 00 00 00 00 00 |....@...........| -00000040 00 00 00 00 00 d7 6a d0 00 01 e5 ff 51 3b f2 67 |......j.....Q;.g| -00000050 3c 7a ef 11 fd 26 cd 72 41 7b b0 d8 40 ec 70 19 |>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 8d |............ ...| -00000010 d0 0b c2 d0 6a ba f2 ba 93 f3 a4 e3 b6 52 e1 77 |....j........R.w| -00000020 00 99 0e 43 45 a4 48 80 30 c0 f1 c2 3e 56 13 18 |...CE.H.0...>V..| -00000030 06 24 22 51 19 9a 65 69 6a f3 33 d3 1e e8 23 f8 |.$"Q..eij.3...#.| -00000040 10 cf 9a 57 dc 8f be 19 5d f5 ff c6 70 df 51 f9 |...W....]...p.Q.| -00000050 1f 9a de 8b d4 1d 7d b1 93 16 ae 3e 31 d7 e6 1c |......}....>1...| -00000060 9e 55 0f b9 47 df 30 ce ea 6b 5b e1 14 b5 b4 19 |.U..G.0..k[.....| -00000070 fc c4 7d 68 3d 51 7b 1c 0e 15 a0 9b 8e ae 8e 02 |..}h=Q{.........| -00000080 2d f8 fb f0 0c 43 89 67 e7 30 b1 6c 14 8c ff 81 |-....C.g.0.l....| -00000090 0c 83 fc 83 62 74 7d 34 c4 40 f9 53 c7 e8 6c 6c |....bt}4.@.S..ll| -000000a0 91 c5 70 b5 74 65 a8 66 e3 84 f2 ed 92 9b 92 f4 |..p.te.f........| -000000b0 ee 31 74 18 4a 06 b5 8a 56 49 6c aa 7c e3 4c 14 |.1t.J...VIl.|.L.| -000000c0 03 03 00 01 01 16 03 03 00 40 a8 91 e6 c5 02 03 |.........@......| -000000d0 32 c8 88 16 f3 3b 80 05 dd dd ed ab d6 f5 8e c3 |2....;..........| -000000e0 6c cc f9 1d 6e 7f d6 2f 5e 39 18 b8 77 11 dd ce |l...n../^9..w...| -000000f0 17 5c 40 7f 6c 08 9a ce ee ee 58 51 7e 2f 1b 60 |.\@.l.....XQ~/.`| -00000100 f0 eb bb 20 81 03 4a 0e cf 70 |... ..J..p| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 cb |............ ...| +00000010 0e b8 59 ec 01 cc 17 f2 f3 90 02 a1 5a a3 70 d0 |..Y.........Z.p.| +00000020 13 6f 64 b3 f3 9b 89 25 05 6c ea 23 00 67 73 74 |.od....%.l.#.gst| +00000030 d0 23 05 0b 0d 22 cb e6 d4 63 4a ba cd 66 50 c7 |.#..."...cJ..fP.| +00000040 c6 e7 38 f2 4a 37 a9 57 c9 ee ce bc c8 b6 4b cb |..8.J7.W......K.| +00000050 d5 59 a7 ff 27 f0 26 63 08 7f f4 a2 fd e4 2e 93 |.Y..'.&c........| +00000060 77 14 a4 16 c9 77 7f db 9e ca 10 a9 72 12 48 48 |w....w......r.HH| +00000070 c2 f8 dc fe 22 c7 b1 f6 99 81 3f 81 7c 36 3c a7 |....".....?.|6<.| +00000080 3d 8c e6 7a e4 c1 25 c7 2f 27 d2 1b b5 7a b9 e2 |=..z..%./'...z..| +00000090 00 3b 07 5d 3e 92 79 b4 53 2a 26 4b ae b3 47 59 |.;.]>.y.S*&K..GY| +000000a0 ef de 93 83 ab 6a d4 e1 e0 e7 17 3d 61 23 bd 14 |.....j.....=a#..| +000000b0 03 03 00 01 01 16 03 03 00 40 89 34 04 2d ee a1 |.........@.4.-..| +000000c0 8e f6 8b 34 69 b7 be 14 2b 49 ac 3b a6 6d e2 27 |...4i...+I.;.m.'| +000000d0 61 35 07 06 ae 7f 33 29 35 58 c7 ad 16 31 cb c5 |a5....3)5X...1..| +000000e0 12 2a 65 8a d7 47 77 e9 df 97 96 56 16 4a c4 33 |.*e..Gw....V.J.3| +000000f0 4f f1 3a 1e e1 69 ab ba cc 09 |O.:..i....| >>> Flow 5 (client to server) 00000000 17 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| -00000010 00 00 00 00 00 38 e9 a6 59 b4 01 1f 75 46 9d 89 |.....8..Y...uF..| -00000020 78 7c 63 c9 7e e9 7e 12 3a 46 01 90 6c 99 87 b7 |x|c.~.~.:F..l...| -00000030 dc 23 f8 e3 2a 15 03 03 00 30 00 00 00 00 00 00 |.#..*....0......| -00000040 00 00 00 00 00 00 00 00 00 00 63 21 2d 3d ab 9b |..........c!-=..| -00000050 0f 53 74 92 3a d5 ee 88 c8 5d 49 dc 3e 41 73 34 |.St.:....]I.>As4| -00000060 ed 56 4a 04 b2 e7 02 e9 7a 94 |.VJ.....z.| +00000010 00 00 00 00 00 c3 7f 47 5e c1 ac 69 49 19 3d f7 |.......G^..iI.=.| +00000020 4b 68 d1 75 d7 e0 d5 b9 86 68 6f 53 3d a2 a4 28 |Kh.u.....hoS=..(| +00000030 af 84 92 e8 ea 15 03 03 00 30 00 00 00 00 00 00 |.........0......| +00000040 00 00 00 00 00 00 00 00 00 00 8d 21 74 7e 3a 84 |...........!t~:.| +00000050 f8 a2 0d 92 2f 9a a7 e8 67 4b 2e 5b ca bd 6f 1c |..../...gK.[..o.| +00000060 c1 9d df c0 dd 8b dc 8e c2 60 |.........`| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Golang-0 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Golang-0 index 5aeb753..a23e079 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Golang-0 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES128-SHA-Golang-0 @@ -1,20 +1,23 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 95 01 00 00 91 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 c6 01 00 00 c2 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| -00000030 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| -00000040 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| -00000050 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 3c 00 05 |.............<..| -00000060 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| -00000070 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 12 00 |................| -00000080 10 04 01 04 03 05 01 05 03 06 01 06 03 02 01 02 |................| -00000090 03 ff 01 00 01 00 00 12 00 00 |..........| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| +00000050 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| +00000060 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| +00000070 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 4d 00 05 |.............M..| +00000080 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| +00000090 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 18 00 |................| +000000a0 16 08 04 08 05 08 06 04 01 04 03 05 01 05 03 06 |................| +000000b0 01 06 03 02 01 02 03 ff 01 00 01 00 00 12 00 00 |................| +000000c0 00 2b 00 07 06 03 03 03 02 03 01 |.+.........| >>> Flow 2 (server to client) -00000000 16 03 03 00 59 02 00 00 55 03 03 ac 16 d8 67 66 |....Y...U.....gf| -00000010 07 18 16 c5 70 2e 95 68 0c 5b 47 da f5 17 b7 cb |....p..h.[G.....| -00000020 d2 f4 6c 4f ed 2d 62 6f 83 be 72 20 4c 9e b1 d3 |..lO.-bo..r L...| -00000030 fa 60 44 e4 13 8f 92 9c bf e5 48 5c c6 7d 19 e3 |.`D.......H\.}..| -00000040 64 b7 21 a0 20 08 eb df 00 f6 f2 82 c0 13 00 00 |d.!. ...........| +00000000 16 03 03 00 59 02 00 00 55 03 03 22 29 03 31 80 |....Y...U..").1.| +00000010 b5 53 cd 30 7d 15 74 84 b3 71 46 6c d6 e3 76 c7 |.S.0}.t..qFl..v.| +00000020 d0 f5 6c 90 60 b6 b0 6c ab 40 44 20 f4 ed cb de |..l.`..l.@D ....| +00000030 06 b4 dd 96 e7 42 e3 90 f9 0f b3 74 53 59 53 5b |.....B.....tSYS[| +00000040 7f 9e fd 86 fc 22 ff 42 7a 35 f8 2c c0 13 00 00 |.....".Bz5.,....| 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 00000060 03 02 59 0b 00 02 55 00 02 52 00 02 4f 30 82 02 |..Y...U..R..O0..| 00000070 4b 30 82 01 b4 a0 03 02 01 02 02 09 00 e8 f0 9d |K0..............| @@ -54,38 +57,38 @@ 00000290 77 8d 0c 1c f1 0f a1 d8 40 83 61 c9 4c 72 2b 9d |w.......@.a.Lr+.| 000002a0 ae db 46 06 06 4d f4 c1 b3 3e c0 d1 bd 42 d4 db |..F..M...>...B..| 000002b0 fe 3d 13 60 84 5c 21 d3 3b e9 fa e7 16 03 03 00 |.=.`.\!.;.......| -000002c0 ac 0c 00 00 a8 03 00 1d 20 8a ac fd c2 1f 31 bc |........ .....1.| -000002d0 cf 5f 61 70 4c 04 ba 05 2b 52 7c b3 f4 40 bf 9a |._apL...+R|..@..| -000002e0 3c 88 ac a1 46 46 e5 43 32 04 01 00 80 0c 79 a7 |<...FF.C2.....y.| -000002f0 d6 ac 65 d0 7c e6 9c 81 78 f4 8e 74 a3 e4 41 76 |..e.|...x..t..Av| -00000300 9e f1 0a b7 a3 03 0f 8c 6d 4c b6 2c 96 39 46 62 |........mL.,.9Fb| -00000310 90 7e f0 fa 9c 15 db 86 67 a1 ee e2 f8 77 60 c3 |.~......g....w`.| -00000320 60 ac e3 17 2a 5d 1b bb 6a 64 1e af f4 46 a4 b6 |`...*]..jd...F..| -00000330 ba 3d dc 7e 29 e5 98 f3 32 ea 9f d1 a7 c2 a6 97 |.=.~)...2.......| -00000340 a6 e1 77 61 5a 47 93 ae d2 72 c3 59 6c 0a b3 2a |..waZG...r.Yl..*| -00000350 f2 57 6d 6b 05 99 7a ee 52 6e 41 80 0c 4f d7 80 |.Wmk..z.RnA..O..| -00000360 5c f4 07 a8 94 ca 5a 4c 66 55 9d bd a3 16 03 03 |\.....ZLfU......| +000002c0 ac 0c 00 00 a8 03 00 1d 20 34 75 89 e4 16 7c 4c |........ 4u...|L| +000002d0 ad aa bd dd 30 e2 d6 9d 38 15 63 a1 62 96 92 b3 |....0...8.c.b...| +000002e0 4e 38 41 c6 d5 05 20 20 49 08 04 00 80 8f f3 96 |N8A... I.......| +000002f0 2a e1 d0 63 5a 24 21 4c 4f 96 fb 20 57 a0 9f 47 |*..cZ$!LO.. W..G| +00000300 41 7c fc 3b 89 4b 50 92 ed 9c 92 b1 ca 16 13 e7 |A|.;.KP.........| +00000310 cf fe 25 7e 59 b2 6e ab 5b ab 6f d1 e9 04 c7 a3 |..%~Y.n.[.o.....| +00000320 f8 43 a3 8b 47 57 9e 80 66 15 41 02 b2 67 81 fe |.C..GW..f.A..g..| +00000330 08 47 f1 82 7b d7 04 d3 15 97 23 bb a7 26 09 81 |.G..{.....#..&..| +00000340 0f e5 89 df 05 6f 19 5b 05 1d 4a e0 06 32 32 4c |.....o.[..J..22L| +00000350 72 77 db c6 bc 49 d7 c0 c3 99 f9 65 8b 70 db f5 |rw...I.....e.p..| +00000360 c5 d1 d2 14 a5 24 2a 07 a6 3e 48 18 a1 16 03 03 |.....$*..>H.....| 00000370 00 04 0e 00 00 00 |......| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| 00000030 16 03 03 00 40 00 00 00 00 00 00 00 00 00 00 00 |....@...........| -00000040 00 00 00 00 00 47 8d 9b 76 66 6c b4 04 99 3f 07 |.....G..vfl...?.| -00000050 35 83 4b c2 d0 9a a4 e3 e8 23 30 ed 59 91 2d 3d |5.K......#0.Y.-=| -00000060 d4 73 95 6b fa 95 0a e5 d3 2f c9 cc 2c 8a 53 57 |.s.k...../..,.SW| -00000070 78 cc 51 94 14 |x.Q..| +00000040 00 00 00 00 00 e4 e1 70 90 ea 46 75 0a 9a 67 63 |.......p..Fu..gc| +00000050 b1 74 ac 2a 0b 3e f4 c3 90 72 3f bb 55 b0 db fe |.t.*.>...r?.U...| +00000060 8a ea 1d da 46 41 58 5f f0 92 d5 28 ef b3 1b 4c |....FAX_...(...L| +00000070 19 d1 4a c8 31 |..J.1| >>> Flow 4 (server to client) -00000000 14 03 03 00 01 01 16 03 03 00 40 79 61 f4 c6 02 |..........@ya...| -00000010 aa 02 d2 71 e6 70 20 35 75 39 02 c9 e1 be cf 6f |...q.p 5u9.....o| -00000020 c7 f5 b7 3b 99 56 32 2b c8 ce 1f e3 d5 a8 5f e6 |...;.V2+......_.| -00000030 c2 77 bf 2b a4 26 0c cf 38 33 ab c3 e6 83 62 45 |.w.+.&..83....bE| -00000040 7c 01 dd 1b ab 43 d8 27 5a 6a 8b ||....C.'Zj.| +00000000 14 03 03 00 01 01 16 03 03 00 40 14 fc 16 33 1b |..........@...3.| +00000010 de 54 ab 7b 84 9d 3e 7f 55 57 ac 9f dd a2 64 53 |.T.{..>.UW....dS| +00000020 57 96 dc 3a bb 9b 77 7c 87 c5 a6 ec b2 59 1f ac |W..:..w|.....Y..| +00000030 c5 be 81 4b ef 80 82 47 6c ab 23 10 42 df 17 a4 |...K...Gl.#.B...| +00000040 6e db f4 4e c0 bb 00 17 aa 19 be |n..N.......| >>> Flow 5 (client to server) 00000000 17 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| -00000010 00 00 00 00 00 21 83 72 fb f8 16 74 43 ab 51 69 |.....!.r...tC.Qi| -00000020 5e d3 0f bf 69 cb 24 8a bf 5c 22 82 9f e3 c6 37 |^...i.$..\"....7| -00000030 62 d4 05 bb c0 15 03 03 00 30 00 00 00 00 00 00 |b........0......| -00000040 00 00 00 00 00 00 00 00 00 00 32 d2 fe 77 e9 51 |..........2..w.Q| -00000050 d3 6d 3b f3 37 56 bd 84 bb 31 86 e4 bf 1f bb d3 |.m;.7V...1......| -00000060 34 8b 8f a2 d3 57 1a 64 f1 72 |4....W.d.r| +00000010 00 00 00 00 00 8f 35 36 06 6c aa 7f 4e 03 ed c2 |......56.l..N...| +00000020 a3 c7 72 89 af 8e a0 2a db 5c 53 ec 21 b5 1d f4 |..r....*.\S.!...| +00000030 2f 5f 23 e6 99 15 03 03 00 30 00 00 00 00 00 00 |/_#......0......| +00000040 00 00 00 00 00 00 00 00 00 00 7a 4f 0c 0b 63 d8 |..........zO..c.| +00000050 44 ad c3 01 85 48 1d e5 2e ce ee 00 3f 17 19 52 |D....H......?..R| +00000060 3b 3f da f7 80 f4 ac 94 d1 6c |;?.......l| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Chrome-58 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Chrome-58 index 356e349..0aed1f8 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Chrome-58 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Chrome-58 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 b7 01 00 00 b3 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 d7 01 00 00 d3 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 0a 0a |................| -00000030 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| -00000040 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| -00000050 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| -00000060 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| -00000070 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| -00000080 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| -00000090 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| -000000a0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| -000000b0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 0a 0a |................| +00000050 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| +00000060 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| +00000070 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| +00000080 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| +00000090 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| +000000a0 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| +000000b0 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| +000000c0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| +000000d0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 fc 96 a2 98 48 |....A...=......H| -00000010 f8 b5 c4 d8 3b cb 90 31 fc c4 6a 10 1a 87 ee 1d |....;..1..j.....| -00000020 ea e7 d2 8f 32 2a 80 18 01 eb 35 00 c0 14 00 00 |....2*....5.....| +00000000 16 03 03 00 41 02 00 00 3d 03 03 b9 1e 79 24 cc |....A...=....y$.| +00000010 e9 42 b8 86 bc ea 6b a6 c2 72 ca a6 7e 63 ad 02 |.B....k..r..~c..| +00000020 b1 e6 7f 97 78 8f 71 07 08 5c cd 00 c0 14 00 00 |....x.q..\......| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 59 0b 00 02 55 00 |..........Y...U.| 00000050 02 52 00 02 4f 30 82 02 4b 30 82 01 b4 a0 03 02 |.R..O0..K0......| @@ -55,49 +57,48 @@ 00000280 40 83 61 c9 4c 72 2b 9d ae db 46 06 06 4d f4 c1 |@.a.Lr+...F..M..| 00000290 b3 3e c0 d1 bd 42 d4 db fe 3d 13 60 84 5c 21 d3 |.>...B...=.`.\!.| 000002a0 3b e9 fa e7 16 03 03 00 ac 0c 00 00 a8 03 00 1d |;...............| -000002b0 20 c5 24 9e 5c 6b 81 43 3d 47 39 4a 7e 53 69 c3 | .$.\k.C=G9J~Si.| -000002c0 a6 ae 35 ab 39 e2 a0 be b0 6b 6c bb 36 89 04 d4 |..5.9....kl.6...| -000002d0 69 04 01 00 80 da a8 43 12 c4 23 ec d5 43 44 91 |i......C..#..CD.| -000002e0 2c f4 98 c5 70 af ca 63 b8 bc 5d f8 5c da 6e 61 |,...p..c..].\.na| -000002f0 64 05 72 62 25 96 2c be ca 64 4b ee b4 4b e3 ae |d.rb%.,..dK..K..| -00000300 d8 93 e8 da 68 97 af aa c9 d6 7f fb 18 78 bc 03 |....h........x..| -00000310 02 e4 d3 75 0e dd 55 3b d2 cd 7c e0 9d 5d 2f 0c |...u..U;..|..]/.| -00000320 7c 47 83 14 5a 65 71 75 27 bd e9 ee 8c a1 43 61 ||G..Zequ'.....Ca| -00000330 68 ca 14 47 cf 38 04 15 23 59 15 90 30 e2 b2 ff |h..G.8..#Y..0...| -00000340 9e 90 e7 53 97 e4 04 e0 0b 81 88 0b 20 2e ac a4 |...S........ ...| -00000350 02 37 63 61 07 16 03 03 00 04 0e 00 00 00 |.7ca..........| +000002b0 20 39 10 f4 89 00 a8 90 30 31 5b 5d fb a5 9a 8e | 9......01[]....| +000002c0 b1 85 06 13 5d 91 d9 d8 76 28 61 b0 37 2c 5a b2 |....]...v(a.7,Z.| +000002d0 4b 08 04 00 80 1f c0 fb 93 34 ad c0 a2 ec b1 2b |K........4.....+| +000002e0 f5 08 3f dd a0 fa 9d 5a e9 4f 21 a9 79 62 2b 8b |..?....Z.O!.yb+.| +000002f0 55 3b b0 89 14 19 c8 42 61 a2 46 8c cf c5 58 1d |U;.....Ba.F...X.| +00000300 91 51 fc 56 2b 09 70 78 dd 53 dc f5 93 2c 4c d4 |.Q.V+.px.S...,L.| +00000310 bd 8b 62 b0 98 e2 92 1b 02 96 f2 d0 23 13 ab 6a |..b.........#..j| +00000320 ea 15 11 61 3d e9 5f 45 9e 80 98 0d 3b a7 03 82 |...a=._E....;...| +00000330 09 cb 6b b9 12 bb 66 71 9d 2c 6e d2 78 0e b1 3e |..k...fq.,n.x..>| +00000340 5e db fc 51 2e 4c ab d0 ca d6 91 b2 30 11 16 c4 |^..Q.L......0...| +00000350 3f 84 3b 26 9f 16 03 03 00 04 0e 00 00 00 |?.;&..........| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| 00000030 16 03 03 00 40 00 00 00 00 00 00 00 00 00 00 00 |....@...........| -00000040 00 00 00 00 00 cc a9 91 66 4b 11 31 e4 b6 43 cc |........fK.1..C.| -00000050 81 f4 20 fe a7 0f c1 99 f7 8c 66 ec 57 7f 98 50 |.. .......f.W..P| -00000060 f2 03 9e 66 c7 70 5a ac f7 99 cd 38 ea 90 bf 76 |...f.pZ....8...v| -00000070 86 7f 94 56 e5 |...V.| +00000040 00 00 00 00 00 1d d2 2b 68 15 31 84 0b 91 fc d7 |.......+h.1.....| +00000050 e7 95 ca 5b d7 a8 fd 1d e5 fe 73 61 81 7d fe cb |...[......sa.}..| +00000060 c6 16 68 00 16 44 fa 80 69 fb ec 03 08 5d 41 d1 |..h..D..i....]A.| +00000070 05 4e 06 e9 7d |.N..}| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 66 |............ ..f| -00000010 b2 7b 88 b5 c2 af a5 fb 3a 06 40 b4 6e c1 97 48 |.{......:.@.n..H| -00000020 6a cb 01 b1 8a 2d b0 be 83 2f 01 4c 0e 7d 66 de |j....-.../.L.}f.| -00000030 0c 17 2a 82 21 f5 43 2a 19 fc 7c 32 9d 59 2f 2d |..*.!.C*..|2.Y/-| -00000040 55 4d 7c 90 33 d1 e6 87 22 db bb 8a 2a f6 ba cb |UM|.3..."...*...| -00000050 bc 5a 70 a6 e8 a9 36 33 ab fc 46 9d 0c 66 1e 85 |.Zp...63..F..f..| -00000060 b5 aa 0b f8 35 46 cc 83 56 3d 70 7e 0f 58 cc 8e |....5F..V=p~.X..| -00000070 55 07 36 2b 35 4a e3 37 b3 d6 4f eb 9e 22 e2 5f |U.6+5J.7..O.."._| -00000080 b9 3b 79 b9 d1 fa 90 8d ad 9c 90 26 71 7b 8e f2 |.;y........&q{..| -00000090 61 f0 11 2d 69 4f 06 9d 20 af 31 29 df c8 f2 ac |a..-iO.. .1)....| -000000a0 4d a7 72 95 06 49 79 c6 09 e1 ac d3 2c 9a ed 44 |M.r..Iy.....,..D| -000000b0 1b eb ce 6c b8 60 73 70 0b e8 43 29 d8 bb 11 14 |...l.`sp..C)....| -000000c0 03 03 00 01 01 16 03 03 00 40 55 8a f3 15 e5 c7 |.........@U.....| -000000d0 e2 c1 83 4b 42 5f b5 93 bd b2 68 99 db 98 fd 3d |...KB_....h....=| -000000e0 c1 8d 68 0f ed 48 8a c6 a0 9a 33 b2 3e a9 a3 e7 |..h..H....3.>...| -000000f0 87 c6 14 dc 61 48 9f f1 a7 9c 63 ce e7 60 fe 2e |....aH....c..`..| -00000100 d8 f6 82 17 39 0e fa 52 54 e6 |....9..RT.| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 c2 |............ ...| +00000010 7d ec dc b4 8c 52 9f bb 0c 28 96 99 70 a8 42 9e |}....R...(..p.B.| +00000020 b8 12 15 48 6c 86 80 f3 dc d0 73 a7 a2 0b 54 fe |...Hl.....s...T.| +00000030 75 0e f4 67 12 57 c7 1a e9 d1 dd 03 65 55 0b 0a |u..g.W......eU..| +00000040 28 63 a2 a9 46 9e c1 06 48 fd cd 6c f3 00 f0 48 |(c..F...H..l...H| +00000050 e3 59 96 70 39 7f 22 d9 e1 dc 15 01 84 28 3e df |.Y.p9."......(>.| +00000060 31 7c 12 55 78 01 87 0e 8f 73 0c a9 d3 b6 a1 b8 |1|.Ux....s......| +00000070 f1 94 5b 19 11 c8 c2 24 79 71 f6 49 9d 72 13 6e |..[....$yq.I.r.n| +00000080 c6 d9 4b a4 9f a9 3a 76 6a f7 33 99 c8 db f2 ad |..K...:vj.3.....| +00000090 df 84 d6 69 46 36 83 92 5f 20 4c ce 73 0c 26 a0 |...iF6.._ L.s.&.| +000000a0 e5 22 13 5b a0 fe 9f 31 25 cf 26 8f 5f 23 86 14 |.".[...1%.&._#..| +000000b0 03 03 00 01 01 16 03 03 00 40 ab 0b 68 b2 05 a0 |.........@..h...| +000000c0 4e c8 d2 df 95 c1 d2 f7 b8 c9 1a dc a7 78 ba c7 |N............x..| +000000d0 02 b9 c1 20 8a c0 30 92 15 1a d4 f8 9c 05 15 46 |... ..0........F| +000000e0 66 57 5b a3 ea 24 d9 15 44 25 78 54 07 85 4f ac |fW[..$..D%xT..O.| +000000f0 5e 82 88 45 d2 a5 78 65 0c f8 |^..E..xe..| >>> Flow 5 (client to server) 00000000 17 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| -00000010 00 00 00 00 00 5e 26 50 47 77 72 e3 84 76 4f 02 |.....^&PGwr..vO.| -00000020 89 b8 93 50 ce 6c cd 2d 97 61 31 91 ab 0f 8e e7 |...P.l.-.a1.....| -00000030 9d a9 0c 53 ec 15 03 03 00 30 00 00 00 00 00 00 |...S.....0......| -00000040 00 00 00 00 00 00 00 00 00 00 f4 51 48 fe ef 11 |...........QH...| -00000050 54 11 6a 4e 76 da 44 f9 45 48 61 73 f3 e2 1c 17 |T.jNv.D.EHas....| -00000060 9d de e0 e2 7c 8b d9 79 c0 a5 |....|..y..| +00000010 00 00 00 00 00 27 95 a8 3a 06 ca 08 54 24 8c 19 |.....'..:...T$..| +00000020 9c e7 37 9b 3f 82 56 db ec 5b 0a c9 c8 f4 ed 9e |..7.?.V..[......| +00000030 f6 44 a2 70 60 15 03 03 00 30 00 00 00 00 00 00 |.D.p`....0......| +00000040 00 00 00 00 00 00 00 00 00 00 57 fe 3f be 6c ed |..........W.?.l.| +00000050 71 65 91 04 cc e3 8a 0f 19 dd 8b 35 62 84 5d ef |qe.........5b.].| +00000060 a3 e6 c7 27 e3 01 51 a9 54 74 |...'..Q.Tt| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Firefox-55 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Firefox-55 index a27233c..d6a55d8 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Firefox-55 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Firefox-55 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 ac 01 00 00 a8 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 cc 01 00 00 c8 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| -00000030 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| -00000040 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| -00000050 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| -00000060 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| -00000070 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| -00000080 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| -00000090 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| -000000a0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| -000000b0 01 |.| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| +00000050 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| +00000060 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| +00000070 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| +00000080 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| +00000090 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| +000000a0 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| +000000b0 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| +000000c0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| +000000d0 01 |.| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 de b7 b9 ea 49 |....A...=......I| -00000010 8a 83 97 fa dd bd e4 22 6b d7 0c a2 31 c3 24 0c |......."k...1.$.| -00000020 0b ac c5 13 30 9a 64 84 40 5f dd 00 c0 14 00 00 |....0.d.@_......| +00000000 16 03 03 00 41 02 00 00 3d 03 03 90 db 5c 6a e1 |....A...=....\j.| +00000010 d9 bb eb 46 a3 47 59 f8 e7 15 4e b6 89 47 10 98 |...F.GY...N..G..| +00000020 d3 b7 aa 60 05 aa ef a5 9f 03 b4 00 c0 14 00 00 |...`............| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 59 0b 00 02 55 00 |..........Y...U.| 00000050 02 52 00 02 4f 30 82 02 4b 30 82 01 b4 a0 03 02 |.R..O0..K0......| @@ -55,49 +57,48 @@ 00000280 40 83 61 c9 4c 72 2b 9d ae db 46 06 06 4d f4 c1 |@.a.Lr+...F..M..| 00000290 b3 3e c0 d1 bd 42 d4 db fe 3d 13 60 84 5c 21 d3 |.>...B...=.`.\!.| 000002a0 3b e9 fa e7 16 03 03 00 ac 0c 00 00 a8 03 00 1d |;...............| -000002b0 20 52 67 a5 3c 49 72 61 10 b9 25 09 ad 11 1a 5c | Rg.w.| +000002c0 7f cb bc 77 52 56 fd 1b 2d 63 43 4e 02 a6 28 e4 |...wRV..-cCN..(.| +000002d0 23 08 04 00 80 81 c0 cb 44 d4 4e 32 bb df 16 5f |#.......D.N2..._| +000002e0 93 a0 a2 72 23 f0 df 67 b6 e0 b3 60 25 aa e7 86 |...r#..g...`%...| +000002f0 69 7a 1a f4 29 19 87 d6 36 32 99 27 e7 2b 33 45 |iz..)...62.'.+3E| +00000300 b9 0b 08 ee a5 34 59 35 aa 1b 06 42 f7 17 2c 02 |.....4Y5...B..,.| +00000310 62 21 96 2f 28 49 62 81 7a d8 e1 e7 3f 8f e0 07 |b!./(Ib.z...?...| +00000320 45 c5 ff 52 43 d3 b7 6f e7 53 fe 04 2a 0a 2d 20 |E..RC..o.S..*.- | +00000330 d5 6e 03 97 e7 80 90 7c c8 4a 6c 20 93 91 df 37 |.n.....|.Jl ...7| +00000340 1e 00 9f 68 e0 28 14 9b c8 79 61 85 6b b4 57 ce |...h.(...ya.k.W.| +00000350 6e 3c 41 33 de 16 03 03 00 04 0e 00 00 00 |n>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| 00000030 16 03 03 00 40 00 00 00 00 00 00 00 00 00 00 00 |....@...........| -00000040 00 00 00 00 00 f7 14 65 bd de 3b f6 36 b6 ac 21 |.......e..;.6..!| -00000050 18 88 02 d9 4d 1a a0 19 e1 83 2b 02 50 7f 74 b8 |....M.....+.P.t.| -00000060 66 0e 34 d4 90 58 90 ed 40 fe 01 47 3d df 96 3f |f.4..X..@..G=..?| -00000070 d4 eb 8f 05 25 |....%| +00000040 00 00 00 00 00 27 12 07 4e 70 36 96 53 34 79 43 |.....'..Np6.S4yC| +00000050 9b 13 55 0f 28 0e 99 0b fe 37 8b f5 7e 11 7e 72 |..U.(....7..~.~r| +00000060 c9 8f 78 ed 28 b2 cb f9 51 93 d1 d8 91 29 80 67 |..x.(...Q....).g| +00000070 d5 24 8f 0d e3 |.$...| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 2d |............ ..-| -00000010 a2 d0 63 9d 9c 9c 18 66 95 f0 3d 42 de 2a 65 fd |..c....f..=B.*e.| -00000020 32 69 27 64 ba ee 12 81 34 e4 a8 af 74 0e e3 02 |2i'd....4...t...| -00000030 82 30 e9 e2 0c dc 2e 94 a8 3d fd 7a 33 23 42 b8 |.0.......=.z3#B.| -00000040 dd 48 ff 10 41 4d 2a b1 be 63 24 69 3b 1c e1 51 |.H..AM*..c$i;..Q| -00000050 be 9e 19 ab bd f0 10 d2 69 af 6b 35 d4 a8 d0 33 |........i.k5...3| -00000060 c4 ce a5 37 28 7a 06 41 50 2f 00 38 0f 88 08 ae |...7(z.AP/.8....| -00000070 e3 d3 43 84 9e 6a 2d f8 3d 65 38 44 45 54 7a d8 |..C..j-.=e8DETz.| -00000080 3d ff c2 eb 33 6d 36 c6 f4 02 4a 77 d2 2d 38 20 |=...3m6...Jw.-8 | -00000090 16 39 2d aa 19 08 a8 e6 00 fd 53 5a 3d 1f 5f 4b |.9-.......SZ=._K| -000000a0 e0 9c 14 5d a4 f8 2e ea d6 e0 45 73 c3 3c 41 e7 |...]......Es.e....Ow2..| +000000f0 59 c2 4b 2d d7 41 cc 6e 2a 09 |Y.K-.A.n*.| >>> Flow 5 (client to server) 00000000 17 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| -00000010 00 00 00 00 00 14 d1 6b 0e 42 87 99 f6 ff 4b 68 |.......k.B....Kh| -00000020 84 92 e7 9f 22 b7 ff 87 da 11 35 45 63 ff 7d c9 |....".....5Ec.}.| -00000030 d7 28 ac 5a 78 15 03 03 00 30 00 00 00 00 00 00 |.(.Zx....0......| -00000040 00 00 00 00 00 00 00 00 00 00 d8 77 de 4d 4c 4b |...........w.MLK| -00000050 b9 98 56 6c e5 d7 a0 03 aa 8e 08 f2 ec 33 69 3e |..Vl.........3i>| -00000060 57 df 30 86 13 ab 0c 1c 76 a2 |W.0.....v.| +00000010 00 00 00 00 00 1e d2 2c 50 d3 e8 b5 b8 df 6e 2c |.......,P.....n,| +00000020 74 c5 f0 45 2b 11 63 d9 4e 79 ed d4 34 02 b1 65 |t..E+.c.Ny..4..e| +00000030 a8 d1 6e 4c bf 15 03 03 00 30 00 00 00 00 00 00 |..nL.....0......| +00000040 00 00 00 00 00 00 00 00 00 00 53 e1 1c 76 90 24 |..........S..v.$| +00000050 a3 f7 53 a5 43 1e d2 91 89 95 6d d9 d4 e1 fc 11 |..S.C.....m.....| +00000060 af 62 bb 23 cc ce 0f 72 42 9c |.b.#...rB.| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Golang-0 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Golang-0 index 31a46de..ade2a98 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Golang-0 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-AES256-SHA-Golang-0 @@ -1,20 +1,23 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 95 01 00 00 91 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 c6 01 00 00 c2 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| -00000030 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| -00000040 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| -00000050 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 3c 00 05 |.............<..| -00000060 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| -00000070 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 12 00 |................| -00000080 10 04 01 04 03 05 01 05 03 06 01 06 03 02 01 02 |................| -00000090 03 ff 01 00 01 00 00 12 00 00 |..........| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 2c cc a8 |.............,..| +00000050 cc a9 c0 2f c0 2b c0 30 c0 2c c0 27 c0 13 c0 23 |.../.+.0.,.'...#| +00000060 c0 09 c0 14 c0 0a 00 9c 00 9d 00 3c 00 2f 00 35 |...........<./.5| +00000070 c0 12 00 0a 00 05 c0 11 c0 07 01 00 00 4d 00 05 |.............M..| +00000080 00 05 01 00 00 00 00 00 0a 00 0a 00 08 00 1d 00 |................| +00000090 17 00 18 00 19 00 0b 00 02 01 00 00 0d 00 18 00 |................| +000000a0 16 08 04 08 05 08 06 04 01 04 03 05 01 05 03 06 |................| +000000b0 01 06 03 02 01 02 03 ff 01 00 01 00 00 12 00 00 |................| +000000c0 00 2b 00 07 06 03 03 03 02 03 01 |.+.........| >>> Flow 2 (server to client) -00000000 16 03 03 00 59 02 00 00 55 03 03 fd b8 0b be c5 |....Y...U.......| -00000010 7f a6 cb f0 bf 55 a1 2e bc ae d2 2d a5 32 10 58 |.....U.....-.2.X| -00000020 43 cf 7a 29 8d 12 ea 6d ff c0 45 20 30 16 aa c5 |C.z)...m..E 0...| -00000030 98 84 ac 19 9f 69 51 d1 6a 30 6b 3b 94 f2 7d bb |.....iQ.j0k;..}.| -00000040 59 d4 2b 84 66 bc 40 fd bb 2f d6 37 c0 14 00 00 |Y.+.f.@../.7....| +00000000 16 03 03 00 59 02 00 00 55 03 03 cb ce 1e 64 16 |....Y...U.....d.| +00000010 88 44 b6 5b f1 d7 81 b6 e3 51 8e 4b e7 b5 5c 07 |.D.[.....Q.K..\.| +00000020 4d 14 af 8f e6 b0 bb af b6 a0 1e 20 2f 74 99 06 |M.......... /t..| +00000030 89 30 de fc 59 fb 52 12 4e 85 9b 54 25 e0 ff 59 |.0..Y.R.N..T%..Y| +00000040 f8 8e 59 5f fd aa be a7 5e 75 fd cf c0 14 00 00 |..Y_....^u......| 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 00000060 03 02 59 0b 00 02 55 00 02 52 00 02 4f 30 82 02 |..Y...U..R..O0..| 00000070 4b 30 82 01 b4 a0 03 02 01 02 02 09 00 e8 f0 9d |K0..............| @@ -54,38 +57,38 @@ 00000290 77 8d 0c 1c f1 0f a1 d8 40 83 61 c9 4c 72 2b 9d |w.......@.a.Lr+.| 000002a0 ae db 46 06 06 4d f4 c1 b3 3e c0 d1 bd 42 d4 db |..F..M...>...B..| 000002b0 fe 3d 13 60 84 5c 21 d3 3b e9 fa e7 16 03 03 00 |.=.`.\!.;.......| -000002c0 ac 0c 00 00 a8 03 00 1d 20 b9 a9 5c be f0 22 e8 |........ ..\..".| -000002d0 08 88 af d4 c9 5c c8 d6 ba b1 1e d4 c3 08 21 1b |.....\........!.| -000002e0 31 15 34 59 f5 57 1e ea 41 04 01 00 80 0c 3c 86 |1.4Y.W..A.....<.| -000002f0 32 b7 62 b5 05 cc f0 54 16 75 a7 90 0d 94 bc 1b |2.b....T.u......| -00000300 e9 c5 03 7c 48 4a fb 24 5d fd 2b 44 6e 37 1c 68 |...|HJ.$].+Dn7.h| -00000310 70 e0 ef ef c6 8d f1 cd b8 7a ef f9 50 b0 93 f3 |p........z..P...| -00000320 bd 0c 61 f2 85 61 d6 11 52 0c b4 3e 6e dd ad 96 |..a..a..R..>n...| -00000330 e1 a7 f1 f5 bf 38 39 c1 37 ac 4a e1 c8 db 63 30 |.....89.7.J...c0| -00000340 65 91 64 f1 a7 91 71 a8 d6 c3 0e 30 3c 47 8b de |e.d...q....0| +00000070 ab ad 39 1e f2 |..9..| >>> Flow 4 (server to client) -00000000 14 03 03 00 01 01 16 03 03 00 40 66 ca d6 69 57 |..........@f..iW| -00000010 2e 27 86 ed 42 f5 d3 d6 f8 7f f0 2f 99 7a 90 0f |.'..B....../.z..| -00000020 03 5f a3 02 ae fa a9 09 88 11 b2 29 70 a9 c1 70 |._.........)p..p| -00000030 ec 64 a6 ba 1d c0 8c 77 1a 47 49 27 7d f5 74 c3 |.d.....w.GI'}.t.| -00000040 13 7c f6 f6 20 4f b1 10 4a 70 19 |.|.. O..Jp.| +00000000 14 03 03 00 01 01 16 03 03 00 40 42 79 1e 45 68 |..........@By.Eh| +00000010 b2 4e 37 e3 03 66 ae 87 68 e7 f3 8d 92 57 ec 48 |.N7..f..h....W.H| +00000020 d9 80 b4 30 14 3f ea 0b 62 6c 6b b0 5c 21 6a 6c |...0.?..blk.\!jl| +00000030 1d f2 90 30 8c a2 d7 24 59 11 df b6 da a2 1e 85 |...0...$Y.......| +00000040 9f de f9 98 a8 e4 89 97 73 63 05 |........sc.| >>> Flow 5 (client to server) 00000000 17 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| -00000010 00 00 00 00 00 a5 0d df 18 a0 2b 2b 59 77 57 d5 |..........++YwW.| -00000020 0e 12 45 c8 d5 bd 6f a1 9d 77 22 54 e0 f4 10 29 |..E...o..w"T...)| -00000030 03 51 9d eb cf 15 03 03 00 30 00 00 00 00 00 00 |.Q.......0......| -00000040 00 00 00 00 00 00 00 00 00 00 ed ae 5f f6 71 e2 |............_.q.| -00000050 df d8 a6 b8 34 1f 8f 8c d8 42 de b1 04 fe da f2 |....4....B......| -00000060 49 44 a1 ee d7 18 5c 71 1c 39 |ID....\q.9| +00000010 00 00 00 00 00 44 ea 71 fe ee 7c 7f 8c 15 40 70 |.....D.q..|...@p| +00000020 0a 8b 1f a1 38 48 f2 a2 36 b8 ae 59 e2 d8 7f c7 |....8H..6..Y....| +00000030 e7 c4 69 4b a1 15 03 03 00 30 00 00 00 00 00 00 |..iK.....0......| +00000040 00 00 00 00 00 00 00 00 00 00 b6 99 80 31 23 8d |.............1#.| +00000050 eb 20 d4 f6 ce fe b4 8a a3 08 b8 b4 33 51 7d 5a |. ..........3Q}Z| +00000060 e5 87 93 4b 8f 6c bc d9 1e 77 |...K.l...w| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Chrome-58 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Chrome-58 index f5437c8..e957b2a 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Chrome-58 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Chrome-58 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 b7 01 00 00 b3 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 d7 01 00 00 d3 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 0a 0a |................| -00000030 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| -00000040 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| -00000050 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| -00000060 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| -00000070 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| -00000080 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| -00000090 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| -000000a0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| -000000b0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 0a 0a |................| +00000050 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| +00000060 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| +00000070 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| +00000080 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| +00000090 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| +000000a0 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| +000000b0 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| +000000c0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| +000000d0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 d1 47 b4 54 fa |....A...=...G.T.| -00000010 18 93 4a 75 a9 9d ac f9 48 2a fc 6b f3 32 ea 3e |..Ju....H*.k.2.>| -00000020 61 49 0d 47 2f 60 4b 08 3c 88 cf 00 cc a8 00 00 |aI.G/`K.<.......| +00000000 16 03 03 00 41 02 00 00 3d 03 03 1f 37 2c 33 ee |....A...=...7,3.| +00000010 35 0e 40 94 f5 8d 95 1b 8b b9 2d 84 f1 78 54 bb |5.@.......-..xT.| +00000020 a5 d4 67 1c dc 81 a2 2f 4a e4 31 00 cc a8 00 00 |..g..../J.1.....| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 59 0b 00 02 55 00 |..........Y...U.| 00000050 02 52 00 02 4f 30 82 02 4b 30 82 01 b4 a0 03 02 |.R..O0..K0......| @@ -55,42 +57,41 @@ 00000280 40 83 61 c9 4c 72 2b 9d ae db 46 06 06 4d f4 c1 |@.a.Lr+...F..M..| 00000290 b3 3e c0 d1 bd 42 d4 db fe 3d 13 60 84 5c 21 d3 |.>...B...=.`.\!.| 000002a0 3b e9 fa e7 16 03 03 00 ac 0c 00 00 a8 03 00 1d |;...............| -000002b0 20 83 f8 19 11 db 10 6f aa f9 c3 db 3b 9e a3 b6 | ......o....;...| -000002c0 df d1 65 ae 73 2a 5d bf ed 8f 2d b7 29 dd f3 56 |..e.s*]...-.)..V| -000002d0 4e 04 01 00 80 23 2d 7e 5f c9 60 09 86 d8 b9 47 |N....#-~_.`....G| -000002e0 8b ae b3 e9 36 5b e6 e1 b0 0a 5c 95 05 41 f7 1a |....6[....\..A..| -000002f0 c4 4c bb 98 8b b9 78 8d 14 63 ac dc 48 3d d8 9f |.L....x..c..H=..| -00000300 a7 92 b9 44 40 ea 96 92 b5 51 e2 07 a5 95 8b a6 |...D@....Q......| -00000310 30 94 11 7d dd 6a f9 8d a6 a7 b5 42 8a f9 71 49 |0..}.j.....B..qI| -00000320 57 54 3d 66 05 87 de 3f 0a 4b ab 3b 81 d6 fc 71 |WT=f...?.K.;...q| -00000330 c3 38 5a c7 02 f8 8d 02 c9 69 1f 70 df 32 e4 32 |.8Z......i.p.2.2| -00000340 9c c0 0d e3 a9 ad 34 f9 9b 5a a8 e9 44 a5 91 90 |......4..Z..D...| -00000350 65 a3 4e c0 50 16 03 03 00 04 0e 00 00 00 |e.N.P.........| +000002b0 20 3d 3c 48 27 6a 77 b8 bc 65 0f d4 e7 f8 75 ef | =>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| -00000030 16 03 03 00 20 de 38 16 73 ea 2d f3 58 18 d4 30 |.... .8.s.-.X..0| -00000040 42 64 75 e8 97 f1 28 d9 ee 48 69 75 8a 22 33 9e |Bdu...(..Hiu."3.| -00000050 ec c1 b7 93 1b |.....| +00000030 16 03 03 00 20 3e 66 f8 7f af dc ab 30 6a c8 e7 |.... >f.....0j..| +00000040 a9 ea b5 07 1e 7c 1b 19 a3 c5 c8 50 5d 69 c2 73 |.....|.....P]i.s| +00000050 da c1 8e 7b 81 |...{.| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 74 |............ ..t| -00000010 8a 89 48 a0 16 f1 05 ee 80 16 4b b2 fb 29 08 a9 |..H.......K..)..| -00000020 e7 32 33 47 4d b9 af bd 2d 27 ef 94 54 bc 92 da |.23GM...-'..T...| -00000030 aa 07 25 b4 6e 6d c0 7c 3d 1c c9 5c 7f 98 26 a5 |..%.nm.|=..\..&.| -00000040 96 6d 26 df 09 91 78 13 13 7f 2a 97 7a ab 1c 07 |.m&...x...*.z...| -00000050 5c 42 26 0b 9b 0f e7 31 a0 b8 2e b0 cc f1 1f a7 |\B&....1........| -00000060 09 3a bf d6 9f e5 29 ae 30 b4 f1 b9 ec f8 26 00 |.:....).0.....&.| -00000070 2a 22 d9 4a 56 94 d5 bc db fc d9 1d ed 58 68 19 |*".JV........Xh.| -00000080 a7 a9 2e d5 1b 5c 4b e7 b8 9f 75 c5 e4 79 26 9b |.....\K...u..y&.| -00000090 dd eb 5a 6e a0 8c 9d 3e 79 9d 10 0b 55 c5 65 13 |..Zn...>y...U.e.| -000000a0 d3 fe 22 e5 43 c6 0b 97 2d dc 85 d5 c3 19 f9 b2 |..".C...-.......| -000000b0 87 8e fd 3a 50 e7 e4 11 b1 bc 6b 01 46 0b 0e 14 |...:P.....k.F...| -000000c0 03 03 00 01 01 16 03 03 00 20 2b 6e 26 68 25 43 |......... +n&h%C| -000000d0 83 3f f7 d0 da 3e 4a 8d 52 5d 08 bc 3f 33 da 67 |.?...>J.R]..?3.g| -000000e0 c8 a6 24 c0 fd d7 0f b0 e7 95 |..$.......| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 af |............ ...| +00000010 51 20 79 e6 78 61 a4 54 8f b5 2a 4c 85 5b aa 00 |Q y.xa.T..*L.[..| +00000020 ea 0f e0 1d 6d 77 85 9e 0d 4e 42 e9 26 51 fd 99 |....mw...NB.&Q..| +00000030 95 2c 79 d2 71 1a 68 1a 72 10 7d f8 37 97 e4 35 |.,y.q.h.r.}.7..5| +00000040 2b 12 f5 fd 01 7e 4a 8b cf 0a 45 7d 19 d5 35 e5 |+....~J...E}..5.| +00000050 f6 34 77 7c 97 a6 61 65 7a fb ea cf 1a 55 b2 03 |.4w|..aez....U..| +00000060 02 f9 07 18 b0 18 c3 06 dd a3 5c 3f ee f3 f6 af |..........\?....| +00000070 61 29 38 1b fd 7d f9 00 28 27 8e 1f 4d ca 73 41 |a)8..}..('..M.sA| +00000080 0b 46 db f7 d8 b3 b3 b7 a6 60 6d 3c ae 0b f5 8f |.F.......`m<....| +00000090 d5 48 25 7e b8 59 a5 6c 6d ee 6e ae a2 f0 58 fe |.H%~.Y.lm.n...X.| +000000a0 16 bf d1 cf ec 08 86 fb 51 82 5e 89 f7 e3 c4 14 |........Q.^.....| +000000b0 03 03 00 01 01 16 03 03 00 20 fc 29 de 17 20 8e |......... .).. .| +000000c0 ad 2c 69 e5 c9 cc 70 bd da 98 52 95 2f e5 69 ad |.,i...p...R./.i.| +000000d0 e4 60 1e 19 a1 85 9c cd da 62 |.`.......b| >>> Flow 5 (client to server) -00000000 17 03 03 00 16 9b 42 d5 81 8a 51 5c 9e 95 17 30 |......B...Q\...0| -00000010 6b 96 ac c2 a2 ea db b6 32 d4 fa 15 03 03 00 12 |k.......2.......| -00000020 62 a3 d7 3e 0e eb e3 e2 fd 87 be c7 b8 3c ea 42 |b..>.........<.B| -00000030 58 f9 |X.| +00000000 17 03 03 00 16 86 4d 5f c2 8f 99 49 0d d5 75 24 |......M_...I..u$| +00000010 ed 1a e3 3d f0 e8 c1 c5 4a 90 a2 15 03 03 00 12 |...=....J.......| +00000020 49 d2 d4 fc 98 20 d7 bd 48 d5 6e cd f4 c1 7e 79 |I.... ..H.n...~y| +00000030 40 53 |@S| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Firefox-55 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Firefox-55 index 13d960a..90d6fba 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Firefox-55 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Firefox-55 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 ac 01 00 00 a8 03 03 00 00 00 00 00 |................| +00000000 16 03 01 00 cc 01 00 00 c8 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| -00000030 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| -00000040 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| -00000050 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| -00000060 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| -00000070 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| -00000080 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| -00000090 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| -000000a0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| -000000b0 01 |.| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1e c0 2b |...............+| +00000050 c0 2f cc a9 cc a8 c0 2c c0 30 c0 0a c0 09 c0 13 |./.....,.0......| +00000060 c0 14 00 33 00 39 00 2f 00 35 00 0a 01 00 00 61 |...3.9./.5.....a| +00000070 00 00 00 05 00 03 00 00 00 00 17 00 00 ff 01 00 |................| +00000080 01 00 00 0a 00 0a 00 08 00 1d 00 17 00 18 00 19 |................| +00000090 00 0b 00 02 01 00 00 23 00 00 00 10 00 0e 00 0c |.......#........| +000000a0 02 68 32 08 68 74 74 70 2f 31 2e 31 00 05 00 05 |.h2.http/1.1....| +000000b0 01 00 00 00 00 00 0d 00 18 00 16 04 03 05 03 06 |................| +000000c0 03 08 04 08 05 08 06 04 01 05 01 06 01 02 03 02 |................| +000000d0 01 |.| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 c8 92 39 a3 71 |....A...=....9.q| -00000010 2d 9e 6e 8b 8f 23 9e 52 3e b3 83 59 be 3b 75 32 |-.n..#.R>..Y.;u2| -00000020 f3 1f 1a 30 55 3e d9 20 2c 81 7c 00 cc a8 00 00 |...0U>. ,.|.....| +00000000 16 03 03 00 41 02 00 00 3d 03 03 8f e2 22 d3 bc |....A...=...."..| +00000010 c4 f0 c0 60 eb 05 16 68 0b bf 6a ef 31 66 06 5b |...`...h..j.1f.[| +00000020 26 6a 23 24 ae fd 99 09 9e 1e 2e 00 cc a8 00 00 |&j#$............| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 59 0b 00 02 55 00 |..........Y...U.| 00000050 02 52 00 02 4f 30 82 02 4b 30 82 01 b4 a0 03 02 |.R..O0..K0......| @@ -55,42 +57,41 @@ 00000280 40 83 61 c9 4c 72 2b 9d ae db 46 06 06 4d f4 c1 |@.a.Lr+...F..M..| 00000290 b3 3e c0 d1 bd 42 d4 db fe 3d 13 60 84 5c 21 d3 |.>...B...=.`.\!.| 000002a0 3b e9 fa e7 16 03 03 00 ac 0c 00 00 a8 03 00 1d |;...............| -000002b0 20 bb eb 04 b9 43 34 08 af 12 20 84 75 9b 93 d1 | ....C4... .u...| -000002c0 2f c1 d8 21 0e 95 9c 5f ab 0a bc a6 96 83 49 bb |/..!..._......I.| -000002d0 57 04 01 00 80 ce 10 ba 2e ff 9a de ee 5d ec ae |W............]..| -000002e0 3d 16 39 34 8f 47 36 66 09 8c eb 87 73 11 5f d1 |=.94.G6f....s._.| -000002f0 95 b4 a7 2b e1 c3 42 d2 30 18 01 e7 c3 5b b0 68 |...+..B.0....[.h| -00000300 c0 14 9a 2b a7 f7 f7 58 15 1c 40 97 be c3 83 b1 |...+...X..@.....| -00000310 ca 8a 84 a7 6b f4 eb c9 8a 65 da 8d c9 39 06 91 |....k....e...9..| -00000320 9c 46 c7 31 86 84 86 69 31 63 31 8d ca f7 8a 7f |.F.1...i1c1.....| -00000330 40 c5 a5 4c 27 46 d7 2c c9 a6 24 18 21 78 f0 ed |@..L'F.,..$.!x..| -00000340 0d c7 3e 71 d1 73 45 07 06 a5 f5 e5 82 ca 15 34 |..>q.sE........4| -00000350 8b 26 93 c5 08 16 03 03 00 04 0e 00 00 00 |.&............| +000002b0 20 b3 b9 dc e2 37 69 38 da c4 c9 3c f9 7a 0c 33 | ....7i8...<.z.3| +000002c0 b8 b8 ef 35 20 36 09 92 f5 03 a2 4b 14 bb 67 f2 |...5 6.....K..g.| +000002d0 31 08 04 00 80 6d fd 69 cd 1a 91 8a c5 0a d1 8d |1....m.i........| +000002e0 76 3d d9 ca 99 4a 7b f5 33 11 92 a6 4c ed ae a1 |v=...J{.3...L...| +000002f0 b2 58 e3 2a b1 b7 91 51 ed 29 5d 8a 7c 78 c6 8a |.X.*...Q.)].|x..| +00000300 b9 b0 5f d6 1c a0 e3 f7 d7 03 3a 40 1d 12 5a bc |.._.......:@..Z.| +00000310 45 4d f1 d9 f7 95 f5 bf 27 9b eb 66 19 0a ea 08 |EM......'..f....| +00000320 fe b1 53 51 08 6e df 41 62 22 83 4e 40 0a 39 51 |..SQ.n.Ab".N@.9Q| +00000330 4c 1c 6d 7a 11 ef 02 f0 18 90 2b d5 c6 b8 60 63 |L.mz......+...`c| +00000340 e3 5c 7a 81 61 81 4c c1 dd 95 1d 82 31 37 fc 41 |.\z.a.L.....17.A| +00000350 91 3f 0e 73 3a 16 03 03 00 04 0e 00 00 00 |.?.s:.........| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| -00000030 16 03 03 00 20 53 cb 4a 55 e0 46 fd d7 96 46 b2 |.... S.JU.F...F.| -00000040 38 98 79 54 04 c8 f7 54 8e 51 d4 90 83 84 91 e8 |8.yT...T.Q......| -00000050 e5 8f c3 85 10 |.....| +00000030 16 03 03 00 20 a7 fc bf 0a ff 9e 0f 2b 11 07 76 |.... .......+..v| +00000040 93 07 47 66 43 42 5a 76 bb 0f 38 17 cc a5 ae bf |..GfCBZv..8.....| +00000050 32 0b a5 ea 91 |2....| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 8d |............ ...| -00000010 27 55 9c a2 2a df cb 02 d6 f7 d4 a6 29 26 57 61 |'U..*.......)&Wa| -00000020 c4 97 3d 0c a1 9e 41 45 00 d2 46 76 bf 4f 3d 66 |..=...AE..Fv.O=f| -00000030 ae 89 e1 cd 34 04 f8 9b 31 15 eb de 21 50 62 62 |....4...1...!Pbb| -00000040 92 31 66 a5 0b b7 77 d4 10 0d 75 f7 0a e0 0b 83 |.1f...w...u.....| -00000050 2e ee b0 0e e9 0f 64 31 91 12 86 1c 8a c5 c5 c5 |......d1........| -00000060 11 6a 88 3c 6a 99 39 82 df db ab 49 03 4a 44 99 |.j..S[..E| +00000040 16 8e 24 06 ba 3d af 71 24 2a 54 84 25 c5 d1 2f |..$..=.q$*T.%../| +00000050 0b a0 30 5a 02 2b 67 36 dd da 2e df de 63 0a 34 |..0Z.+g6.....c.4| +00000060 69 6f 7c ca fe 9c 48 26 85 cd 55 80 fb df a8 d5 |io|...H&..U.....| +00000070 02 3a 29 2a ba 0f 6c b4 e3 00 df de a6 3d e3 51 |.:)*..l......=.Q| +00000080 4c a4 af e4 74 45 3b 02 f0 35 7a 49 71 e4 52 00 |L...tE;..5zIq.R.| +00000090 85 b2 c1 2c ae 07 bd 6c 40 e9 44 70 5d 2e 9d 07 |...,...l@.Dp]...| +000000a0 39 33 44 d9 f9 3a a4 dd 13 07 6b 2d c0 07 14 14 |93D..:....k-....| +000000b0 03 03 00 01 01 16 03 03 00 20 2e 61 56 0c ce a0 |......... .aV...| +000000c0 8b 19 ad 63 85 7d f2 8b 69 71 d9 57 bc 7f e9 9a |...c.}..iq.W....| +000000d0 de 83 e2 f4 0f b1 02 e1 7f 5e |.........^| >>> Flow 5 (client to server) -00000000 17 03 03 00 16 c9 2c a5 62 4b a6 93 8a 3f b5 c8 |......,.bK...?..| -00000010 20 09 c6 f5 33 35 65 e9 c0 ef 63 15 03 03 00 12 | ...35e...c.....| -00000020 38 71 f1 64 be 31 2d 9d 07 df 77 b0 bb cf 19 98 |8q.d.1-...w.....| -00000030 7a ee |z.| +00000000 17 03 03 00 16 df a1 9f de c2 76 7b 60 47 69 7c |..........v{`Gi|| +00000010 95 6d 1c 12 ae 7f b7 0f 9f 6e fd 15 03 03 00 12 |.m.......n......| +00000020 07 70 25 5d 89 0e 6d af 6b 91 2e 2b e9 f5 0d f6 |.p%]..m.k..+....| +00000030 aa c0 |..| diff --git a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Golang-0 b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Golang-0 index afd229d..ecfc01f 100644 --- a/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Golang-0 +++ b/testdata/Client-TLSv12-UTLS-ECDHE-RSA-CHACHA20-POLY1305-Golang-0 @@ -1,17 +1,21 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 6b 01 00 00 67 03 03 00 00 00 00 00 |....k...g.......| +00000000 16 03 01 00 9c 01 00 00 98 03 03 00 00 00 00 00 |................| 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| -00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 02 cc a8 |................| -00000030 01 00 00 3c 00 05 00 05 01 00 00 00 00 00 0a 00 |...<............| -00000040 0a 00 08 00 1d 00 17 00 18 00 19 00 0b 00 02 01 |................| -00000050 00 00 0d 00 12 00 10 04 01 04 03 05 01 05 03 06 |................| -00000060 01 06 03 02 01 02 03 ff 01 00 01 00 00 12 00 00 |................| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 00 00 00 00 |........... ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 02 cc a8 |................| +00000050 01 00 00 4d 00 05 00 05 01 00 00 00 00 00 0a 00 |...M............| +00000060 0a 00 08 00 1d 00 17 00 18 00 19 00 0b 00 02 01 |................| +00000070 00 00 0d 00 18 00 16 08 04 08 05 08 06 04 01 04 |................| +00000080 03 05 01 05 03 06 01 06 03 02 01 02 03 ff 01 00 |................| +00000090 01 00 00 12 00 00 00 2b 00 07 06 03 03 03 02 03 |.......+........| +000000a0 01 |.| >>> Flow 2 (server to client) -00000000 16 03 03 00 59 02 00 00 55 03 03 4f 4a 47 8c 81 |....Y...U..OJG..| -00000010 86 b4 22 54 c6 f9 7c aa c2 f1 1d 2a 6a 1f b0 17 |.."T..|....*j...| -00000020 2f 66 e8 7b 9b 78 f1 75 e6 a5 ca 20 27 5e e1 b4 |/f.{.x.u... '^..| -00000030 54 1e 6e 93 e6 dc d9 86 07 39 a8 eb 51 80 79 a9 |T.n......9..Q.y.| -00000040 ae e1 3e 79 a5 f7 5d 5d f1 38 26 4b cc a8 00 00 |..>y..]].8&K....| +00000000 16 03 03 00 59 02 00 00 55 03 03 89 63 eb fa 82 |....Y...U...c...| +00000010 4a ea 04 d6 00 9a b1 ca c8 a8 69 ee ac 04 b1 a3 |J.........i.....| +00000020 d4 8a 80 fc c3 0d 8b 16 31 5a 72 20 04 56 57 2c |........1Zr .VW,| +00000030 aa ae fe 12 6d d6 c4 18 fb 50 b6 1d 1a 10 27 f3 |....m....P....'.| +00000040 f2 59 05 cc a5 d6 6f 19 ff 22 9a 52 cc a8 00 00 |.Y....o..".R....| 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 00000060 03 02 59 0b 00 02 55 00 02 52 00 02 4f 30 82 02 |..Y...U..R..O0..| 00000070 4b 30 82 01 b4 a0 03 02 01 02 02 09 00 e8 f0 9d |K0..............| @@ -51,31 +55,31 @@ 00000290 77 8d 0c 1c f1 0f a1 d8 40 83 61 c9 4c 72 2b 9d |w.......@.a.Lr+.| 000002a0 ae db 46 06 06 4d f4 c1 b3 3e c0 d1 bd 42 d4 db |..F..M...>...B..| 000002b0 fe 3d 13 60 84 5c 21 d3 3b e9 fa e7 16 03 03 00 |.=.`.\!.;.......| -000002c0 ac 0c 00 00 a8 03 00 1d 20 53 4b 6f b4 e4 0e 99 |........ SKo....| -000002d0 48 92 5d 82 b5 0e aa cd 3d 09 fb 3c 07 89 23 f3 |H.].....=..<..#.| -000002e0 3d e0 b1 09 bb 14 b9 b0 7c 04 01 00 80 0b 16 c1 |=.......|.......| -000002f0 3e 29 ea ac d5 47 98 cf cd 5b 83 9f f9 33 5a 31 |>)...G...[...3Z1| -00000300 ea 92 68 58 d2 2f f7 fa 0e 02 d0 ca 08 3a 05 93 |..hX./.......:..| -00000310 86 15 dc a2 72 a3 f3 57 3d e5 de 78 36 c6 2c 31 |....r..W=..x6.,1| -00000320 f5 92 1e 85 df ed 2f f6 5d 7e 0d c9 d3 76 ea a2 |....../.]~...v..| -00000330 ff ac 3d ab 7c c3 ec d6 44 74 11 cd 90 b7 77 b4 |..=.|...Dt....w.| -00000340 a4 30 ee 06 3e 2d cb 28 48 36 2d 4c d1 2a c7 08 |.0..>-.(H6-L.*..| -00000350 62 71 a2 82 c4 be 4c c4 1f 64 cf ba 46 fc 7d d4 |bq....L..d..F.}.| -00000360 c6 93 a0 4d 30 1a 9d ec 1e 5c 6f 6d 75 16 03 03 |...M0....\omu...| +000002c0 ac 0c 00 00 a8 03 00 1d 20 0d 38 8d 00 8f ea 1f |........ .8.....| +000002d0 24 2c 36 11 be 3e 74 08 9b 0e 3a 1d 12 72 d3 55 |$,6..>t...:..r.U| +000002e0 ae e7 7d 4f 88 09 6c 8c 30 08 04 00 80 1d 79 88 |..}O..l.0.....y.| +000002f0 ca df 41 4e 14 69 b7 0f cf 1c 8e e8 6f c5 45 71 |..AN.i......o.Eq| +00000300 cf 33 0e 0d 91 bb bf 5b 8f c4 b6 00 df 62 76 7a |.3.....[.....bvz| +00000310 da 8d 94 fd 96 a6 67 f7 dc fe ad 23 36 9f 82 ca |......g....#6...| +00000320 87 21 0c 44 40 12 f2 b7 76 24 3f 15 03 57 bd db |.!.D@...v$?..W..| +00000330 c8 db 87 48 97 d4 35 43 6a 41 fb 59 c4 d6 66 71 |...H..5CjA.Y..fq| +00000340 d8 42 ba 7c 4c 4d f9 f1 91 9e 74 23 62 6f d5 c9 |.B.|LM....t#bo..| +00000350 bb 8b 40 91 07 09 a3 e1 3f 71 7c 35 84 e7 f8 d7 |..@.....?q|5....| +00000360 30 91 c4 f2 fa b1 81 94 41 c8 a4 4a a4 16 03 03 |0.......A..J....| 00000370 00 04 0e 00 00 00 |......| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| -00000030 16 03 03 00 20 bb 03 6d 47 00 8a 89 7a 98 b8 25 |.... ..mG...z..%| -00000040 0a 09 4a e0 49 00 c4 96 3a 00 d7 6a 19 47 df 83 |..J.I...:..j.G..| -00000050 03 c4 11 df 8e |.....| +00000030 16 03 03 00 20 b8 e3 85 0b a2 8b bf cb 2b 4e 43 |.... ........+NC| +00000040 25 a5 3f 45 17 12 a0 d8 7b b7 85 13 99 2b fb 67 |%.?E....{....+.g| +00000050 c0 42 03 a9 f0 |.B...| >>> Flow 4 (server to client) -00000000 14 03 03 00 01 01 16 03 03 00 20 78 4b 72 4d 7e |.......... xKrM~| -00000010 56 4b 02 74 46 15 a4 02 62 f5 3d 9f 59 73 19 c8 |VK.tF...b.=.Ys..| -00000020 d0 f0 45 99 ca e6 1f ac 53 47 d6 |..E.....SG.| +00000000 14 03 03 00 01 01 16 03 03 00 20 43 75 0e bd 87 |.......... Cu...| +00000010 c7 c3 40 66 a4 d9 50 0d ec 5e 46 cb 96 52 5a a1 |..@f..P..^F..RZ.| +00000020 2d cd 11 b2 66 c9 fa 4f 6f d0 72 |-...f..Oo.r| >>> Flow 5 (client to server) -00000000 17 03 03 00 16 11 6a a0 c7 5f 39 ae 88 fc 16 0b |......j.._9.....| -00000010 0f 3a 18 14 40 37 ea f1 e3 ab 8d 15 03 03 00 12 |.:..@7..........| -00000020 82 be 82 44 63 f6 f2 96 f1 a7 08 63 8c 29 51 45 |...Dc......c.)QE| -00000030 9d 3d |.=| +00000000 17 03 03 00 16 e7 63 1c 12 70 d3 11 d7 d7 35 31 |......c..p....51| +00000010 fc f5 17 86 24 79 1d 95 fb e4 7d 15 03 03 00 12 |....$y....}.....| +00000020 3c 15 c5 08 86 f3 50 98 31 00 b9 15 0d 2a 52 0d |<.....P.1....*R.| +00000030 c3 6f |.o| diff --git a/testdata/Client-TLSv12-UTLS-setclienthello-ECDHE-RSA-AES128-GCM-SHA256-Chrome-58 b/testdata/Client-TLSv12-UTLS-setclienthello-ECDHE-RSA-AES128-GCM-SHA256-Chrome-58 index d1ab71f..c944886 100644 --- a/testdata/Client-TLSv12-UTLS-setclienthello-ECDHE-RSA-AES128-GCM-SHA256-Chrome-58 +++ b/testdata/Client-TLSv12-UTLS-setclienthello-ECDHE-RSA-AES128-GCM-SHA256-Chrome-58 @@ -1,20 +1,22 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 b7 01 00 00 b3 03 03 43 75 73 74 6f |...........Custo| +00000000 16 03 01 00 d7 01 00 00 d3 03 03 43 75 73 74 6f |...........Custo| 00000010 6d 20 43 6c 69 65 6e 74 52 61 6e 64 6f 6d 20 68 |m ClientRandom h| -00000020 5e 78 62 77 38 62 66 30 73 6e 33 00 00 1c 0a 0a |^xbw8bf0sn3.....| -00000030 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| -00000040 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| -00000050 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| -00000060 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| -00000070 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| -00000080 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| -00000090 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| -000000a0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| -000000b0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| +00000020 5e 78 62 77 38 62 66 30 73 6e 33 20 00 00 00 00 |^xbw8bf0sn3 ....| +00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +00000040 00 00 00 00 00 00 00 00 00 00 00 00 00 1c 0a 0a |................| +00000050 c0 2b c0 2f c0 2c c0 30 cc a9 cc a8 c0 13 c0 14 |.+./.,.0........| +00000060 00 9c 00 9d 00 2f 00 35 00 0a 01 00 00 6e 0a 0a |...../.5.....n..| +00000070 00 00 ff 01 00 01 00 00 00 00 05 00 03 00 00 00 |................| +00000080 00 17 00 00 00 23 00 00 00 0d 00 14 00 12 04 03 |.....#..........| +00000090 08 04 04 01 05 03 08 05 05 01 08 06 06 01 02 01 |................| +000000a0 00 05 00 05 01 00 00 00 00 00 12 00 00 00 10 00 |................| +000000b0 0e 00 0c 02 68 32 08 68 74 74 70 2f 31 2e 31 75 |....h2.http/1.1u| +000000c0 50 00 00 00 0b 00 02 01 00 00 0a 00 0a 00 08 0a |P...............| +000000d0 0a 00 1d 00 17 00 18 1a 1a 00 01 00 |............| >>> Flow 2 (server to client) -00000000 16 03 03 00 41 02 00 00 3d 03 03 a0 77 14 2c 7e |....A...=...w.,~| -00000010 d9 cd 1e fa 32 6c bc 76 30 6d d8 d9 f2 20 24 68 |....2l.v0m... $h| -00000020 8f 2d 72 09 a6 22 f3 34 6f 72 8c 00 c0 2f 00 00 |.-r..".4or.../..| +00000000 16 03 03 00 41 02 00 00 3d 03 03 94 60 3f 07 b5 |....A...=...`?..| +00000010 ee ee b3 15 cc 4a a1 e2 83 2a 65 b0 06 10 77 3b |.....J...*e...w;| +00000020 ae 78 94 6c 8a 47 a6 c1 3c 98 5b 00 c0 2f 00 00 |.x.l.G..<.[../..| 00000030 15 ff 01 00 01 00 00 0b 00 04 03 00 01 02 00 23 |...............#| 00000040 00 00 00 17 00 00 16 03 03 02 59 0b 00 02 55 00 |..........Y...U.| 00000050 02 52 00 02 4f 30 82 02 4b 30 82 01 b4 a0 03 02 |.R..O0..K0......| @@ -55,44 +57,43 @@ 00000280 40 83 61 c9 4c 72 2b 9d ae db 46 06 06 4d f4 c1 |@.a.Lr+...F..M..| 00000290 b3 3e c0 d1 bd 42 d4 db fe 3d 13 60 84 5c 21 d3 |.>...B...=.`.\!.| 000002a0 3b e9 fa e7 16 03 03 00 ac 0c 00 00 a8 03 00 1d |;...............| -000002b0 20 9f 68 31 e9 5d 71 ae e4 6e ab b2 6a 62 9f ce | .h1.]q..n..jb..| -000002c0 94 10 56 4d 88 f4 f3 38 fd fc 23 3f de ab 4e 2b |..VM...8..#?..N+| -000002d0 2f 04 01 00 80 c6 23 60 9e 1d 41 01 72 38 5e 83 |/.....#`..A.r8^.| -000002e0 2d 6d c0 9c 8c 71 c7 ed 93 7e d5 90 25 e7 e8 8f |-m...q...~..%...| -000002f0 2e a5 6a 78 a6 ca 48 7a 61 65 81 40 c3 3b 8c 75 |..jx..Hzae.@.;.u| -00000300 3e 33 db 52 9a 20 05 39 05 ad b7 8b 68 d9 25 46 |>3.R. .9....h.%F| -00000310 a1 d0 e4 a3 17 6e 8c 76 0f 96 40 d0 18 5b d5 79 |.....n.v..@..[.y| -00000320 55 b1 b2 89 8b b8 94 c3 ab 76 70 c7 d2 30 b6 74 |U........vp..0.t| -00000330 31 85 40 26 ab 97 4e 16 5f 38 69 26 7b 31 6e e0 |1.@&..N._8i&{1n.| -00000340 80 4c 0c bb 3b a8 b8 cf a1 60 e7 69 d5 fa 0a 87 |.L..;....`.i....| -00000350 af bb 86 6f f8 16 03 03 00 04 0e 00 00 00 |...o..........| +000002b0 20 55 4b e3 21 e5 97 14 0f 8e 55 8d 9a e1 59 06 | UK.!.....U...Y.| +000002c0 83 8d 13 94 34 f1 93 6a a9 da 4d 43 66 06 66 a5 |....4..j..MCf.f.| +000002d0 78 08 04 00 80 8f 66 9d 94 7d 27 87 dd 0e f7 78 |x.....f..}'....x| +000002e0 9c 6c 13 ad 08 9f f9 c4 b9 23 11 d3 e2 d7 0a ac |.l.......#......| +000002f0 b7 ab 6f 1f b2 9b 56 97 0d c0 80 bb e7 84 ae 03 |..o...V.........| +00000300 2a 95 8e 96 d0 7a b8 ae ce 50 cc 5d 27 2c 65 6e |*....z...P.]',en| +00000310 b2 97 28 f9 88 e3 71 2f 5d c1 08 ec ff ca 4c e3 |..(...q/].....L.| +00000320 bd 85 5c 57 4d d3 a7 b5 d6 9b 98 98 c3 32 75 0e |..\WM........2u.| +00000330 c4 be 32 2d 5d 4f a6 da 44 bd 3a 2d 04 93 33 18 |..2-]O..D.:-..3.| +00000340 7e 6b b6 e6 07 75 a2 31 6b 36 10 3e 81 17 ae 9e |~k...u.1k6.>....| +00000350 e7 34 8c 44 3d 16 03 03 00 04 0e 00 00 00 |.4.D=.........| >>> Flow 3 (client to server) 00000000 16 03 03 00 25 10 00 00 21 20 2f e5 7d a3 47 cd |....%...! /.}.G.| 00000010 62 43 15 28 da ac 5f bb 29 07 30 ff f6 84 af c4 |bC.(.._.).0.....| 00000020 cf c2 ed 90 99 5f 58 cb 3b 74 14 03 03 00 01 01 |....._X.;t......| -00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 93 b5 ef |....(...........| -00000040 03 c5 c8 b8 b0 3e b8 30 b7 1f 32 ee 2f 10 c0 8b |.....>.0..2./...| -00000050 d2 ee 8a e4 25 af d6 59 02 02 30 cd 0b |....%..Y..0..| +00000030 16 03 03 00 28 00 00 00 00 00 00 00 00 e4 37 ec |....(.........7.| +00000040 99 2e eb 15 3e ec 1a 48 7f 9a 3d 90 6f 81 33 a2 |....>..H..=.o.3.| +00000050 aa 44 d0 27 ef 09 75 0d 4a e4 e2 0f 3f |.D.'..u.J...?| >>> Flow 4 (server to client) -00000000 16 03 03 00 ba 04 00 00 b6 00 00 1c 20 00 b0 a1 |............ ...| -00000010 ad 6a 5c ab f8 93 2e ae 00 d9 0d 0b 7c da 60 71 |.j\.........|.`q| -00000020 89 fa e8 7a a5 cd 6b c4 e3 4f 29 27 5f 01 46 db |...z..k..O)'_.F.| -00000030 14 a7 93 2a cc 3f 60 19 0b 42 d9 35 c7 94 f8 5b |...*.?`..B.5...[| -00000040 a8 28 62 b6 eb 3e c1 63 e3 12 c3 9c d8 aa 74 c1 |.(b..>.c......t.| -00000050 b7 ed d9 ff d1 ec 5d 1b d4 98 3b 4e 79 46 cb f7 |......]...;NyF..| -00000060 5d dd b2 f3 e5 a7 37 ca 09 92 be 69 f0 28 fe ab |].....7....i.(..| -00000070 0b d1 af 2e 2f 94 19 d6 fc b2 53 a1 da bd f7 eb |..../.....S.....| -00000080 af 99 b9 12 2f 7f 92 96 2c 6c 2a 90 81 ab 28 d5 |..../...,l*...(.| -00000090 36 22 33 e3 af 6c b2 f5 ac c9 fc 03 af db 77 cd |6"3..l........w.| -000000a0 75 9c fb f1 fa eb 42 37 ef 41 d9 17 77 5d f7 08 |u.....B7.A..w]..| -000000b0 17 4d 78 ae 30 e9 72 3b 11 ad d8 e6 7d 9e f8 14 |.Mx.0.r;....}...| -000000c0 03 03 00 01 01 16 03 03 00 28 18 85 0a b3 99 29 |.........(.....)| -000000d0 0d d4 54 e9 fb 0f f2 87 a3 2c c1 6f eb 98 5c 08 |..T......,.o..\.| -000000e0 ce 75 ad dd f7 aa 6e a4 a0 17 26 d9 1c 0d fc b7 |.u....n...&.....| -000000f0 0e bb |..| +00000000 16 03 03 00 aa 04 00 00 a6 00 00 1c 20 00 a0 f5 |............ ...| +00000010 a7 9d 0f 98 f6 b5 fe 6f ca 24 a2 94 10 a2 1c b9 |.......o.$......| +00000020 ff 8d 10 46 79 ba ad 21 37 8d 99 b6 77 ce dd 46 |...Fy..!7...w..F| +00000030 92 52 74 72 01 45 34 6c 25 bd 78 62 3f ac 3e 0e |.Rtr.E4l%.xb?.>.| +00000040 af 7c 50 1d 0e 2e c6 50 d0 d6 39 6c 61 75 b4 f0 |.|P....P..9lau..| +00000050 49 10 ac fe ec 6a cd 90 d4 84 7f 06 78 19 70 2c |I....j......x.p,| +00000060 80 03 f4 7d a7 46 eb 70 b1 45 7d 74 2f 76 ab 3c |...}.F.p.E}t/v.<| +00000070 17 cf 43 d9 02 83 21 cd 39 7a ac fe 8b ed 07 a1 |..C...!.9z......| +00000080 fe 60 c9 d3 8f 67 60 c4 3b 69 1a 66 70 cd 2a 9d |.`...g`.;i.fp.*.| +00000090 5f 3c 9d 16 07 9c 84 0b bf ab ea af 67 5e 5e 2e |_<..........g^^.| +000000a0 ae 9b 91 f4 e9 09 78 0f 01 88 d7 61 59 1e b6 14 |......x....aY...| +000000b0 03 03 00 01 01 16 03 03 00 28 81 0f 04 97 8b ce |.........(......| +000000c0 1c 8b 29 b7 c2 60 91 1c 56 52 c9 a1 49 a8 a9 58 |..)..`..VR..I..X| +000000d0 04 b9 a0 67 ca ce 91 fe 86 75 92 f5 9c 5e 7f 40 |...g.....u...^.@| +000000e0 96 7e |.~| >>> Flow 5 (client to server) -00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 d2 1b 22 |..............."| -00000010 0c e3 86 1d 51 47 91 97 cd 2d 40 90 0c 3a 8d 54 |....QG...-@..:.T| -00000020 b2 d6 f8 15 03 03 00 1a 00 00 00 00 00 00 00 02 |................| -00000030 86 c0 10 05 10 37 ff ef 47 c4 df c0 1a 10 d1 bb |.....7..G.......| -00000040 44 99 |D.| +00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 86 41 82 |..............A.| +00000010 17 69 c9 16 f9 8a 25 80 aa b3 82 6a 89 fa 05 a7 |.i....%....j....| +00000020 73 be 14 15 03 03 00 1a 00 00 00 00 00 00 00 02 |s...............| +00000030 95 d8 c9 38 e2 a5 b4 53 65 40 b7 4f 03 e4 63 6c |...8...Se@.O..cl| +00000040 eb 82 |..| diff --git a/ticket.go b/ticket.go index 7f804ee..c873e43 100644 --- a/ticket.go +++ b/ticket.go @@ -12,7 +12,7 @@ import ( "crypto/sha256" "crypto/subtle" "errors" - "golang_org/x/crypto/cryptobyte" + "golang.org/x/crypto/cryptobyte" "io" ) diff --git a/u_common.go b/u_common.go index 053f6ba..82cb015 100644 --- a/u_common.go +++ b/u_common.go @@ -80,8 +80,10 @@ type ClientHelloSpec struct { CompressionMethods []uint8 // nil => no compression Extensions []TLSExtension // nil => no extensions - // GreaseStyle: currently only random + TLSVersMin uint16 // [1.0-1.3] + TLSVersMax uint16 // [1.2-1.3] + // GreaseStyle: currently only random // sessionID may or may not depend on ticket; nil => random GetSessionID func(ticket []byte) [32]byte @@ -118,11 +120,13 @@ var ( ) // based on spec's GreaseStyle, GREASE_PLACEHOLDER may be replaced by another GREASE value +// https://tools.ietf.org/html/draft-ietf-tls-grease-01 const GREASE_PLACEHOLDER = 0x0a0a -// utlsMacSHA384 returns a SHA-384. +// utlsMacSHA384 returns a SHA-384 based MAC. These are only supported in TLS 1.2 +// so the given version is ignored. func utlsMacSHA384(version uint16, key []byte) macFunction { - return tls10MAC{hmac.New(sha512.New384, key)} + return tls10MAC{h: hmac.New(sha512.New384, key)} } var utlsSupportedCipherSuites []*cipherSuite diff --git a/u_conn.go b/u_conn.go index 97be6d1..b416b8a 100644 --- a/u_conn.go +++ b/u_conn.go @@ -10,6 +10,7 @@ import ( "crypto/cipher" "encoding/binary" "errors" + "fmt" "io" "net" "strconv" @@ -22,9 +23,8 @@ type UConn struct { Extensions []TLSExtension clientHelloID ClientHelloID - HandshakeState ClientHandshakeState - - HandshakeStateBuilt bool + ClientHelloBuilt bool + HandshakeState ClientHandshakeState // sessionID may or may not depend on ticket; nil => random GetSessionID func(ticket []byte) [32]byte @@ -44,29 +44,42 @@ func UClient(conn net.Conn, config *Config, clientHelloID ClientHelloID) *UConn return &uconn } -// BuildHandshakeState() overwrites most fields, therefore, it is advised to manually call this function, -// if you need to inspect/change contents after parroting/making default Golang ClientHello. -// Otherwise, there is no need to call this function explicitly. +// BuildHandshakeState behavior varies based on ClientHelloID and +// whether it was already called before. +// If HelloGolang: +// [only once] make default ClientHello and overwrite existing state +// If any other mimicking ClientHelloID is used: +// [only once] make ClientHello based on ID and overwrite existing state +// [each call] apply uconn.Extensions config to internal crypto/tls structures +// [each call] marshal ClientHello. +// +// BuildHandshakeState is automatically called before uTLS performs handshake, +// amd should only be called explicitly to inspect/change fields of +// default/mimicked ClientHello. func (uconn *UConn) BuildHandshakeState() error { if uconn.clientHelloID == HelloGolang { + if uconn.ClientHelloBuilt { + return nil + } + // use default Golang ClientHello. - hello, err := makeClientHello(uconn.config) - if uconn.HandshakeState.Session != nil { - // session is lost at makeClientHello(), let's reapply - uconn.SetSessionState(uconn.HandshakeState.Session) - } - if err != nil { - return err - } - uconn.HandshakeState.Hello = hello.getPublicPtr() - } else { - var err error - err = uconn.applyPresetByID(uconn.clientHelloID) + hello, ecdheParams, err := uconn.makeClientHello() if err != nil { return err } - err = uconn.ApplyConfig() + uconn.HandshakeState.Hello = hello.getPublicPtr() + uconn.HandshakeState.State13.EcdheParams = ecdheParams + uconn.HandshakeState.C = uconn.Conn + } else { + if !uconn.ClientHelloBuilt { + err := uconn.applyPresetByID(uconn.clientHelloID) + if err != nil { + return err + } + } + + err := uconn.ApplyConfig() if err != nil { return err } @@ -75,11 +88,14 @@ func (uconn *UConn) BuildHandshakeState() error { return err } } - uconn.HandshakeStateBuilt = true + uconn.ClientHelloBuilt = true return nil } -// If you want session tickets to be reused - use same cache on following connections +// SetSessionState sets the session ticket, which may be preshared or fake. +// If session is nil, the body of session ticket extension will be unset, +// but the extension itself still MAY be present for mimicking purposes. +// Session tickets to be reused - use same cache on following connections. func (uconn *UConn) SetSessionState(session *ClientSessionState) error { uconn.HandshakeState.Session = session var sessionTicket []uint8 @@ -88,6 +104,7 @@ func (uconn *UConn) SetSessionState(session *ClientSessionState) error { } uconn.HandshakeState.Hello.TicketSupported = true uconn.HandshakeState.Hello.SessionTicket = sessionTicket + for _, ext := range uconn.Extensions { st, ok := ext.(*SessionTicketExtension) if !ok { @@ -111,7 +128,7 @@ func (uconn *UConn) SetSessionState(session *ClientSessionState) error { } return nil } - return errors.New("SessionTicketExtension is not part of current spec and won't be sent") + return nil } // If you want session tickets to be reused - use same cache on following connections @@ -120,7 +137,9 @@ func (uconn *UConn) SetSessionCache(cache ClientSessionCache) { uconn.HandshakeState.Hello.TicketSupported = true } -// r has to be 32 bytes long +// SetClientRandom sets client random explictly. +// BuildHandshakeFirst() must be called before SetClientRandom. +// r must to be 32 bytes long. func (uconn *UConn) SetClientRandom(r []byte) error { if len(r) != 32 { return errors.New("Incorrect client random length! Expected: 32, got: " + strconv.Itoa(len(r))) @@ -145,36 +164,13 @@ func (uconn *UConn) SetSNI(sni string) { // Handshake runs the client handshake using given clientHandshakeState // Requires hs.hello, and, optionally, hs.session to be set. func (c *UConn) Handshake() error { - // This code was copied almost as is from tls/conn.go - // c.handshakeErr and c.handshakeComplete are protected by - // c.handshakeMutex. In order to perform a handshake, we need to lock - // c.in also and c.handshakeMutex must be locked after c.in. - // - // However, if a Read() operation is hanging then it'll be holding the - // lock on c.in and so taking it here would cause all operations that - // need to check whether a handshake is pending (such as Write) to - // block. - // - // Thus we first take c.handshakeMutex to check whether a handshake is - // needed. - // - // If so then, previously, this code would unlock handshakeMutex and - // then lock c.in and handshakeMutex in the correct order to run the - // handshake. The problem was that it was possible for a Read to - // complete the handshake once handshakeMutex was unlocked and then - // keep c.in while waiting for network data. Thus a concurrent - // operation could be blocked on c.in. - // - // Thus handshakeCond is used to signal that a goroutine is committed - // to running the handshake and other goroutines can wait on it if they - // need. handshakeCond is protected by handshakeMutex. c.handshakeMutex.Lock() defer c.handshakeMutex.Unlock() if err := c.handshakeErr; err != nil { return err } - if c.handshakeComplete { + if c.handshakeComplete() { return nil } @@ -182,16 +178,14 @@ func (c *UConn) Handshake() error { defer c.in.Unlock() if c.isClient { - if !c.HandshakeStateBuilt { - err := c.BuildHandshakeState() - if err != nil { - return err - } + // [uTLS section begins] + err := c.BuildHandshakeState() + if err != nil { + return err } + // [uTLS section ends] - privateState := c.HandshakeState.getPrivatePtr() - c.handshakeErr = c.clientHandshakeWithState(privateState) - c.HandshakeState = *privateState.getPublicPtr() + c.handshakeErr = c.clientHandshake() } else { c.handshakeErr = c.serverHandshake() } @@ -203,8 +197,8 @@ func (c *UConn) Handshake() error { c.flush() } - if c.handshakeErr == nil && !c.handshakeComplete { - panic("handshake should have had a result.") + if c.handshakeErr == nil && !c.handshakeComplete() { + c.handshakeErr = errors.New("tls: internal error: handshake should have had a result") } return c.handshakeErr @@ -236,7 +230,7 @@ func (c *UConn) Write(b []byte) (int, error) { return 0, err } - if !c.handshakeComplete { + if !c.handshakeComplete() { return 0, alertInternalError } @@ -249,9 +243,9 @@ func (c *UConn) Write(b []byte) (int, error) { // This can be prevented by splitting each Application Data // record into two records, effectively randomizing the IV. // - // http://www.openssl.org/~bodo/tls-cbc.txt + // https://www.openssl.org/~bodo/tls-cbc.txt // https://bugzilla.mozilla.org/show_bug.cgi?id=665814 - // http://www.imperialviolet.org/2012/01/15/beastfollowup.html + // https://www.imperialviolet.org/2012/01/15/beastfollowup.html var m int if len(b) > 1 && c.vers <= VersionTLS10 { @@ -268,8 +262,19 @@ func (c *UConn) Write(b []byte) (int, error) { return n + m, c.out.setErrorLocked(err) } -// c.out.Mutex <= L; c.handshakeMutex <= L. -func (c *Conn) clientHandshakeWithState(hs *clientHandshakeState) error { +// clientHandshakeWithOneState checks that exactly one expected state is set (1.2 or 1.3) +// and performs client TLS handshake with that state +func (c *UConn) clientHandshake() (err error) { + // [uTLS section begins] + hello := c.HandshakeState.Hello.getPrivatePtr() + defer func() { c.HandshakeState.Hello = hello.getPublicPtr() }() + + sessionIsAlreadySet := c.HandshakeState.Session != nil + + // after this point exactly 1 out of 2 HandshakeState pointers is non-nil, + // useTLS13 variable tells which pointer + // [uTLS section ends] + if c.config == nil { c.config = defaultConfig() } @@ -278,9 +283,9 @@ func (c *Conn) clientHandshakeWithState(hs *clientHandshakeState) error { // need to be reset. c.didResume = false - // UTLS: don't make new ClientHello, use hs.hello - - // UTLS: preserve the check from makeClientHello [start] + // [uTLS section begins] + // don't make new ClientHello, use hs.hello + // preserve the checks from beginning and end of makeClientHello() if len(c.config.ServerName) == 0 && !c.config.InsecureSkipVerify { return errors.New("tls: either ServerName or InsecureSkipVerify must be specified in the tls.Config") } @@ -297,77 +302,82 @@ func (c *Conn) clientHandshakeWithState(hs *clientHandshakeState) error { if nextProtosLength > 0xffff { return errors.New("tls: NextProtos values too large") } - // UTLS: preserve the check from makeClientHello [end] if c.handshakes > 0 { - hs.hello.secureRenegotiation = c.clientFinished[:] + hello.secureRenegotiation = c.clientFinished[:] } + // [uTLS section ends] - var session *ClientSessionState - var cacheKey string - sessionCache := c.config.ClientSessionCache - - if c.config.SessionTicketsDisabled { - sessionCache = nil - } - - if sessionCache != nil { - hs.hello.ticketSupported = true - } - - // Session resumption is not allowed if renegotiating because - // renegotiation is primarily used to allow a client to send a client - // certificate, which would be skipped if session resumption occurred. - if sessionCache != nil && c.handshakes == 0 && hs.session == nil { // [UTLS] hs.session == nil - // Try to resume a previously negotiated TLS session, if - // available. - cacheKey = clientSessionCacheKey(c.conn.RemoteAddr(), c.config) - candidateSession, ok := sessionCache.Get(cacheKey) - if ok { - // Check that the ciphersuite/version used for the - // previous session are still valid. - cipherSuiteOk := false - for _, id := range hs.hello.cipherSuites { - if id == candidateSession.cipherSuite { - cipherSuiteOk = true - break - } + cacheKey, session, earlySecret, binderKey := c.loadSession(hello) + if cacheKey != "" && session != nil { + defer func() { + // If we got a handshake failure when resuming a session, throw away + // the session ticket. See RFC 5077, Section 3.2. + // + // RFC 8446 makes no mention of dropping tickets on failure, but it + // does require servers to abort on invalid binders, so we need to + // delete tickets to recover from a corrupted PSK. + if err != nil { + c.config.ClientSessionCache.Put(cacheKey, nil) } + }() + } - versOk := candidateSession.vers >= c.config.minVersion() && - candidateSession.vers <= c.config.maxVersion() - if versOk && cipherSuiteOk { - session = candidateSession - } + if !sessionIsAlreadySet { // uTLS: do not overwrite already set session + err = c.SetSessionState(session) + if err != nil { + return } } - if session != nil { - if hs.hello.sessionTicket == nil { // [UTLS] check - hs.hello.sessionTicket = session.sessionTicket - } - // A random session ID is used to detect when the - // server accepted the ticket and is resuming a session - // (see RFC 5077). - - if hs.hello.sessionId == nil { // [UTLS] check - hs.hello.sessionId = make([]byte, 16) - if _, err := io.ReadFull(c.config.rand(), hs.hello.sessionId); err != nil { - return errors.New("tls: short read from Rand: " + err.Error()) - } - } + if _, err := c.writeRecord(recordTypeHandshake, hello.marshal()); err != nil { + return err } - if err := hs.handshake(); err != nil { + msg, err := c.readHandshake() + if err != nil { + return err + } + + serverHello, ok := msg.(*serverHelloMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(serverHello, msg) + } + + if err := c.pickTLSVersion(serverHello); err != nil { + return err + } + + // uTLS: do not create new handshakeState, use existing one + if c.vers == VersionTLS13 { + hs13 := c.HandshakeState.toPrivate13() + hs13.serverHello = serverHello + hs13.hello = hello + if !sessionIsAlreadySet { + hs13.earlySecret = earlySecret + hs13.binderKey = binderKey + } + // In TLS 1.3, session tickets are delivered after the handshake. + err = hs13.handshake() + c.HandshakeState = *hs13.toPublic13() + return err + } + + hs12 := c.HandshakeState.toPrivate12() + hs12.serverHello = serverHello + hs12.hello = hello + err = hs12.handshake() + c.HandshakeState = *hs12.toPublic13() + if err != nil { return err } // If we had a successful handshake and hs.session is different from - // the one already cached - cache a new one - if sessionCache != nil && hs.session != nil && session != hs.session { - sessionCache.Put(cacheKey, hs.session) + // the one already cached - cache a new one. + if cacheKey != "" && hs12.session != nil && session != hs12.session { + c.config.ClientSessionCache.Put(cacheKey, hs12.session) } - return nil } @@ -444,16 +454,16 @@ func (uconn *UConn) MarshalClientHello() error { } } - if helloBuffer.Len() != 4+helloLen { - return errors.New("utls: unexpected ClientHello length. Expected: " + strconv.Itoa(4+helloLen) + - ". Got: " + strconv.Itoa(helloBuffer.Len())) - } - err := bufferedWriter.Flush() if err != nil { return err } + if helloBuffer.Len() != 4+helloLen { + return errors.New("utls: unexpected ClientHello length. Expected: " + strconv.Itoa(4+helloLen) + + ". Got: " + strconv.Itoa(helloBuffer.Len())) + } + hello.Raw = helloBuffer.Bytes() return nil } @@ -468,3 +478,28 @@ func (uconn *UConn) GetOutKeystream(length int) ([]byte, error) { } return nil, errors.New("Could not convert OutCipher to cipher.AEAD") } + +// SetVersCreateState set min and max TLS version in all appropriate places. +func (uconn *UConn) SetTLSVers(minTLSVers, maxTLSVers uint16) error { + if minTLSVers < VersionTLS10 || minTLSVers > VersionTLS12 { + return fmt.Errorf("uTLS does not support 0x%X as min version", minTLSVers) + } + + if maxTLSVers < VersionTLS10 || maxTLSVers > VersionTLS13 { + return fmt.Errorf("uTLS does not support 0x%X as max version", maxTLSVers) + } + + makeSupportedVersions := func(maxVers, minVers uint16) []uint16 { + // max goes first + a := make([]uint16, maxVers-minVers+1) + for i := range a { + a[i] = maxVers - uint16(i) + } + return a + } + uconn.HandshakeState.Hello.SupportedVersions = makeSupportedVersions(maxTLSVers, minTLSVers) + uconn.config.MinVersion = minTLSVers + uconn.config.MaxVersion = maxTLSVers + + return nil +} diff --git a/u_conn_test.go b/u_conn_test.go index 70b790c..ac263dc 100644 --- a/u_conn_test.go +++ b/u_conn_test.go @@ -17,14 +17,14 @@ import ( ) func TestUTLSMarshalNoOp(t *testing.T) { - // we rely on str := "We rely on clientHelloMsg.marshal() not doing anything if clientHelloMsg.raw is set" - cHello, err := makeClientHello(getUTLSTestConfig()) + uconn := UClient(&net.TCPConn{}, &Config{ServerName: "foobar"}, HelloGolang) + msg, _, err := uconn.makeClientHello() if err != nil { t.Errorf("Got error: %s; expected to succeed", err) } - cHello.raw = []byte(str) - marshalledHello := cHello.marshal() + msg.raw = []byte(str) + marshalledHello := msg.marshal() if strings.Compare(string(marshalledHello), str) != 0 { t.Errorf("clientHelloMsg.marshal() is not NOOP! Expected to get: %s, got: %s", str, string(marshalledHello)) } @@ -297,7 +297,7 @@ func (test *clientTest) runUTLS(t *testing.T, write bool, helloID ClientHelloID) } clientConn = recordingConn } else { - clientConn, serverConn = net.Pipe() + clientConn, serverConn = localPipe(t) } config := test.config @@ -307,8 +307,13 @@ func (test *clientTest) runUTLS(t *testing.T, write bool, helloID ClientHelloID) } client := UClient(clientConn, config, helloID) if strings.HasPrefix(test.name, "TLSv12-UTLS-setclienthello-") { + err := client.BuildHandshakeState() + if err != nil { + t.Errorf("Client.BuildHandshakeState() failed: %s", err) + return + } // TODO: fix this name hack if we ever decide to use non-standard testing object - err := client.SetClientRandom([]byte("Custom ClientRandom h^xbw8bf0sn3")) + err = client.SetClientRandom([]byte("Custom ClientRandom h^xbw8bf0sn3")) if err != nil { t.Errorf("Client.SetClientRandom() failed: %s", err) return @@ -318,16 +323,13 @@ func (test *clientTest) runUTLS(t *testing.T, write bool, helloID ClientHelloID) doneChan := make(chan bool) go func() { defer func() { + // Give time to the send buffer to drain, to avoid the kernel + // sending a RST and cutting off the flow. See Issue 18701. + time.Sleep(10 * time.Millisecond) + client.Close() + clientConn.Close() doneChan <- true }() - defer clientConn.Close() - defer client.Close() - - err := client.Handshake() - if err != nil { - t.Errorf("Client.Handshake() failed: %s", err) - return - } if _, err := client.Write([]byte("hello\n")); err != nil { t.Errorf("Client.Write failed: %s", err) @@ -356,9 +358,7 @@ func (test *clientTest) runUTLS(t *testing.T, write bool, helloID ClientHelloID) signalChan := make(chan struct{}) go func() { - defer func() { - signalChan <- struct{}{} - }() + defer close(signalChan) buf := make([]byte, 256) n, err := client.Read(buf) @@ -393,11 +393,62 @@ func (test *clientTest) runUTLS(t *testing.T, write bool, helloID ClientHelloID) <-signalChan } + if test.sendKeyUpdate { + if write { + <-stdout.handshakeComplete + stdin <- opensslKeyUpdate + } + + doneRead := make(chan struct{}) + + go func() { + defer close(doneRead) + + buf := make([]byte, 256) + n, err := client.Read(buf) + + if err != nil { + t.Errorf("Client.Read failed after KeyUpdate: %s", err) + return + } + + buf = buf[:n] + if !bytes.Equal([]byte(opensslSentinel), buf) { + t.Errorf("Client.Read returned %q, but wanted %q", string(buf), opensslSentinel) + } + }() + + if write { + // There's no real reason to wait for the client KeyUpdate to + // send data with the new server keys, except that s_server + // drops writes if they are sent at the wrong time. + <-stdout.readKeyUpdate + stdin <- opensslSendSentinel + } + <-doneRead + + if _, err := client.Write([]byte("hello again\n")); err != nil { + t.Errorf("Client.Write failed: %s", err) + return + } + } + if test.validate != nil { if err := test.validate(client.ConnectionState()); err != nil { t.Errorf("validate callback returned error: %s", err) } } + + // If the server sent us an alert after our last flight, give it a + // chance to arrive. + if write && test.renegotiationExpectedToFail == 0 { + client.SetReadDeadline(time.Now().Add(500 * time.Millisecond)) + if _, err := client.Read(make([]byte, 1)); err != nil { + if netErr, ok := err.(net.Error); !ok || !netErr.Timeout() { + t.Errorf("final Read returned an error: %s", err) + } + } + } }() if !write { @@ -407,10 +458,12 @@ func (test *clientTest) runUTLS(t *testing.T, write bool, helloID ClientHelloID) } for i, b := range flows { if i%2 == 1 { + serverConn.SetWriteDeadline(time.Now().Add(1 * time.Minute)) serverConn.Write(b) continue } bb := make([]byte, len(b)) + serverConn.SetReadDeadline(time.Now().Add(1 * time.Minute)) _, err := io.ReadFull(serverConn, bb) if err != nil { t.Fatalf("%s #%d: %s", test.name, i, err) @@ -419,6 +472,9 @@ func (test *clientTest) runUTLS(t *testing.T, write bool, helloID ClientHelloID) t.Fatalf("%s #%d: mismatch on read: got:%x want:%x", test.name, i, bb, b) } } + // Give time to the send buffer to drain, to avoid the kernel + // sending a RST and cutting off the flow. See Issue 18701. + time.Sleep(10 * time.Millisecond) serverConn.Close() } @@ -436,7 +492,7 @@ func (test *clientTest) runUTLS(t *testing.T, write bool, helloID ClientHelloID) childProcess.Process.Kill() childProcess.Wait() if len(recordingConn.flows) < 3 { - os.Stdout.Write(childProcess.Stdout.(*opensslOutputSink).all) + os.Stdout.Write(stdout.all) t.Fatalf("Client connection didn't work") } recordingConn.WriteTo(out) diff --git a/u_parrots.go b/u_parrots.go index 3e34407..4f7f95c 100644 --- a/u_parrots.go +++ b/u_parrots.go @@ -20,6 +20,8 @@ func utlsIdToSpec(id ClientHelloID) (ClientHelloSpec, error) { switch id { case HelloChrome_58, HelloChrome_62: return ClientHelloSpec{ + TLSVersMax: VersionTLS12, + TLSVersMin: VersionTLS10, CipherSuites: []uint16{ GREASE_PLACEHOLDER, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, @@ -68,6 +70,8 @@ func utlsIdToSpec(id ClientHelloID) (ClientHelloSpec, error) { }, nil case HelloFirefox_55, HelloFirefox_56: return ClientHelloSpec{ + TLSVersMax: VersionTLS12, + TLSVersMin: VersionTLS10, CipherSuites: []uint16{ TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, @@ -114,6 +118,8 @@ func utlsIdToSpec(id ClientHelloID) (ClientHelloSpec, error) { }, nil case HelloIOS_11_1: return ClientHelloSpec{ + TLSVersMax: VersionTLS12, + TLSVersMin: VersionTLS10, CipherSuites: []uint16{ TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, @@ -212,12 +218,21 @@ func (uconn *UConn) applyPresetByID(id ClientHelloID) (err error) { // Fields of TLSExtensions that are slices/pointers are shared across different connections with // same ClientHelloSpec. It is advised to use different specs and avoid any shared state. func (uconn *UConn) ApplyPreset(p *ClientHelloSpec) error { + var err error + err = uconn.SetTLSVers(p.TLSVersMin, p.TLSVersMax) + if err != nil { + return err + } + + privateHello, ecdheParams, err := uconn.makeClientHello() + if err != nil { + return err + } + uconn.HandshakeState.Hello = privateHello.getPublicPtr() + uconn.HandshakeState.State13.EcdheParams = ecdheParams hello := uconn.HandshakeState.Hello session := uconn.HandshakeState.Session - if hello.Vers == 0 { - hello.Vers = VersionTLS12 - } switch len(hello.Random) { case 0: hello.Random = make([]byte, 32) @@ -241,7 +256,7 @@ func (uconn *UConn) ApplyPreset(p *ClientHelloSpec) error { // Currently, GREASE is assumed to come from BoringSSL grease_bytes := make([]byte, 2*ssl_grease_last_index) grease_extensions_seen := 0 - _, err := io.ReadFull(uconn.config.rand(), grease_bytes) + _, err = io.ReadFull(uconn.config.rand(), grease_bytes) if err != nil { return errors.New("tls: short read from Rand: " + err.Error()) } @@ -260,7 +275,6 @@ func (uconn *UConn) ApplyPreset(p *ClientHelloSpec) error { } } uconn.GetSessionID = p.GetSessionID - uconn.Extensions = make([]TLSExtension, len(p.Extensions)) copy(uconn.Extensions, p.Extensions) diff --git a/u_public.go b/u_public.go index e2ae90a..09920bc 100644 --- a/u_public.go +++ b/u_public.go @@ -5,56 +5,218 @@ package tls import ( - "crypto/cipher" + "crypto" "crypto/x509" "hash" ) +// ClientHandshakeState includes both TLS 1.3-only and TLS 1.2-only states, +// only one of them will be used, depending on negotiated version. +// +// ClientHandshakeState will be converted into and from either +// - clientHandshakeState (TLS 1.2) +// - clientHandshakeStateTLS13 (TLS 1.3) +// uTLS will call .handshake() on one of these private internal states, +// to perform TLS handshake using standard crypto/tls implementation. type ClientHandshakeState struct { C *Conn ServerHello *ServerHelloMsg Hello *ClientHelloMsg - Suite *CipherSuite - FinishedHash FinishedHash MasterSecret []byte Session *ClientSessionState + + State12 TLS12OnlyState + State13 TLS13OnlyState } -// getPrivatePtr() methods make shallow copies +// TLS 1.3 only +type TLS13OnlyState struct { + Suite *CipherSuiteTLS13 + EcdheParams EcdheParameters + EarlySecret []byte + BinderKey []byte + CertReq *CertificateRequestMsgTLS13 + UsingPSK bool + SentDummyCCS bool + Transcript hash.Hash + TrafficSecret []byte // client_application_traffic_secret_0 +} -func (chs *ClientHandshakeState) getPrivatePtr() *clientHandshakeState { +// TLS 1.2 and before only +type TLS12OnlyState struct { + FinishedHash FinishedHash + Suite CipherSuite +} + +func (chs *ClientHandshakeState) toPrivate13() *clientHandshakeStateTLS13 { + if chs == nil { + return nil + } else { + return &clientHandshakeStateTLS13{ + c: chs.C, + serverHello: chs.ServerHello.getPrivatePtr(), + hello: chs.Hello.getPrivatePtr(), + ecdheParams: chs.State13.EcdheParams, + + session: chs.Session, + earlySecret: chs.State13.EarlySecret, + binderKey: chs.State13.BinderKey, + + certReq: chs.State13.CertReq.toPrivate(), + usingPSK: chs.State13.UsingPSK, + sentDummyCCS: chs.State13.SentDummyCCS, + suite: chs.State13.Suite.toPrivate(), + transcript: chs.State13.Transcript, + masterSecret: chs.MasterSecret, + trafficSecret: chs.State13.TrafficSecret, + } + } +} + +func (chs13 *clientHandshakeStateTLS13) toPublic13() *ClientHandshakeState { + if chs13 == nil { + return nil + } else { + tls13State := TLS13OnlyState{ + EcdheParams: chs13.ecdheParams, + EarlySecret: chs13.earlySecret, + BinderKey: chs13.binderKey, + CertReq: chs13.certReq.toPublic(), + UsingPSK: chs13.usingPSK, + SentDummyCCS: chs13.sentDummyCCS, + Suite: chs13.suite.toPublic(), + TrafficSecret: chs13.trafficSecret, + Transcript: chs13.transcript, + } + return &ClientHandshakeState{ + C: chs13.c, + ServerHello: chs13.serverHello.getPublicPtr(), + Hello: chs13.hello.getPublicPtr(), + + Session: chs13.session, + + MasterSecret: chs13.masterSecret, + + State13: tls13State, + } + } +} + +func (chs *ClientHandshakeState) toPrivate12() *clientHandshakeState { if chs == nil { return nil } else { return &clientHandshakeState{ - c: chs.C, - serverHello: chs.ServerHello.getPrivatePtr(), - hello: chs.Hello.getPrivatePtr(), - suite: chs.Suite.getPrivatePtr(), - finishedHash: *chs.FinishedHash.getPrivatePtr(), + c: chs.C, + serverHello: chs.ServerHello.getPrivatePtr(), + hello: chs.Hello.getPrivatePtr(), + suite: chs.State12.Suite.getPrivatePtr(), + session: chs.Session, + masterSecret: chs.MasterSecret, - session: chs.Session, + + finishedHash: *chs.State12.FinishedHash.getPrivatePtr(), } } } -func (chs *clientHandshakeState) getPublicPtr() *ClientHandshakeState { - if chs == nil { +func (chs12 *clientHandshakeState) toPublic13() *ClientHandshakeState { + if chs12 == nil { return nil } else { + tls12State := TLS12OnlyState{ + Suite: *chs12.suite.getPublicPtr(), + FinishedHash: *chs12.finishedHash.getPublicPtr(), + } return &ClientHandshakeState{ - C: chs.c, - ServerHello: chs.serverHello.getPublicPtr(), - Hello: chs.hello.getPublicPtr(), - Suite: chs.suite.getPublicPtr(), - FinishedHash: *chs.finishedHash.getPublicPtr(), - MasterSecret: chs.masterSecret, - Session: chs.session, + C: chs12.c, + ServerHello: chs12.serverHello.getPublicPtr(), + Hello: chs12.hello.getPublicPtr(), + + Session: chs12.session, + + MasterSecret: chs12.masterSecret, + + State12: tls12State, } } } -type BensStruct serverHelloMsg +type EcdheParameters interface { + ecdheParameters +} + +type CertificateRequestMsgTLS13 struct { + Raw []byte + OcspStapling bool + Scts bool + SupportedSignatureAlgorithms []SignatureScheme + SupportedSignatureAlgorithmsCert []SignatureScheme + CertificateAuthorities [][]byte +} + +func (crm *certificateRequestMsgTLS13) toPublic() *CertificateRequestMsgTLS13 { + if crm == nil { + return nil + } else { + return &CertificateRequestMsgTLS13{ + Raw: crm.raw, + OcspStapling: crm.ocspStapling, + Scts: crm.scts, + SupportedSignatureAlgorithms: crm.supportedSignatureAlgorithms, + SupportedSignatureAlgorithmsCert: crm.supportedSignatureAlgorithmsCert, + CertificateAuthorities: crm.certificateAuthorities, + } + } +} + +func (crm *CertificateRequestMsgTLS13) toPrivate() *certificateRequestMsgTLS13 { + if crm == nil { + return nil + } else { + return &certificateRequestMsgTLS13{ + raw: crm.Raw, + ocspStapling: crm.OcspStapling, + scts: crm.Scts, + supportedSignatureAlgorithms: crm.SupportedSignatureAlgorithms, + supportedSignatureAlgorithmsCert: crm.SupportedSignatureAlgorithmsCert, + certificateAuthorities: crm.CertificateAuthorities, + } + } +} + +type CipherSuiteTLS13 struct { + Id uint16 + KeyLen int + Aead func(key, fixedNonce []byte) aead + Hash crypto.Hash +} + +func (c *cipherSuiteTLS13) toPublic() *CipherSuiteTLS13 { + if c == nil { + return nil + } else { + return &CipherSuiteTLS13{ + Id: c.id, + KeyLen: c.keyLen, + Aead: c.aead, + Hash: c.hash, + } + } +} + +func (c *CipherSuiteTLS13) toPrivate() *cipherSuiteTLS13 { + if c == nil { + return nil + } else { + return &cipherSuiteTLS13{ + id: c.Id, + keyLen: c.KeyLen, + aead: c.Aead, + hash: c.Hash, + } + } +} type ServerHelloMsg struct { Raw []byte @@ -72,6 +234,15 @@ type ServerHelloMsg struct { SecureRenegotiation []byte SecureRenegotiationSupported bool AlpnProtocol string + + // 1.3 + SupportedVersion uint16 + ServerShare keyShare + SelectedIdentityPresent bool + SelectedIdentity uint16 + Cookie []byte // HelloRetryRequest extension + SelectedGroup CurveID // HelloRetryRequest extension + } func (shm *ServerHelloMsg) getPrivatePtr() *serverHelloMsg { @@ -94,6 +265,12 @@ func (shm *ServerHelloMsg) getPrivatePtr() *serverHelloMsg { secureRenegotiation: shm.SecureRenegotiation, secureRenegotiationSupported: shm.SecureRenegotiationSupported, alpnProtocol: shm.AlpnProtocol, + supportedVersion: shm.SupportedVersion, + serverShare: shm.ServerShare, + selectedIdentityPresent: shm.SelectedIdentityPresent, + selectedIdentity: shm.SelectedIdentity, + cookie: shm.Cookie, + selectedGroup: shm.SelectedGroup, } } } @@ -118,6 +295,12 @@ func (shm *serverHelloMsg) getPublicPtr() *ServerHelloMsg { SecureRenegotiation: shm.secureRenegotiation, SecureRenegotiationSupported: shm.secureRenegotiationSupported, AlpnProtocol: shm.alpnProtocol, + SupportedVersion: shm.supportedVersion, + ServerShare: shm.serverShare, + SelectedIdentityPresent: shm.selectedIdentityPresent, + SelectedIdentity: shm.selectedIdentity, + Cookie: shm.cookie, + SelectedGroup: shm.selectedGroup, } } } @@ -133,7 +316,7 @@ type ClientHelloMsg struct { ServerName string OcspStapling bool Scts bool - Ems bool + Ems bool // [UTLS] actually implemented due to its prevalence SupportedCurves []CurveID SupportedPoints []uint8 TicketSupported bool @@ -142,6 +325,16 @@ type ClientHelloMsg struct { SecureRenegotiation []byte SecureRenegotiationSupported bool AlpnProtocols []string + + // 1.3 + SupportedSignatureAlgorithmsCert []SignatureScheme + SupportedVersions []uint16 + Cookie []byte + KeyShares []keyShare + EarlyData bool + PskModes []uint8 + PskIdentities []pskIdentity + PskBinders [][]byte } func (chm *ClientHelloMsg) getPrivatePtr() *clientHelloMsg { @@ -168,6 +361,15 @@ func (chm *ClientHelloMsg) getPrivatePtr() *clientHelloMsg { secureRenegotiation: chm.SecureRenegotiation, secureRenegotiationSupported: chm.SecureRenegotiationSupported, alpnProtocols: chm.AlpnProtocols, + + supportedSignatureAlgorithmsCert: chm.SupportedSignatureAlgorithmsCert, + supportedVersions: chm.SupportedVersions, + cookie: chm.Cookie, + keyShares: chm.KeyShares, + earlyData: chm.EarlyData, + pskModes: chm.PskModes, + pskIdentities: chm.PskIdentities, + pskBinders: chm.PskBinders, } } } @@ -196,6 +398,15 @@ func (chm *clientHelloMsg) getPublicPtr() *ClientHelloMsg { SecureRenegotiation: chm.secureRenegotiation, SecureRenegotiationSupported: chm.secureRenegotiationSupported, AlpnProtocols: chm.alpnProtocols, + + SupportedSignatureAlgorithmsCert: chm.supportedSignatureAlgorithmsCert, + SupportedVersions: chm.supportedVersions, + Cookie: chm.cookie, + KeyShares: chm.keyShares, + EarlyData: chm.earlyData, + PskModes: chm.pskModes, + PskIdentities: chm.pskIdentities, + PskBinders: chm.pskBinders, } } } @@ -213,7 +424,7 @@ type CipherSuite struct { Flags int Cipher func(key, iv []byte, isRead bool) interface{} Mac func(version uint16, macKey []byte) macFunction - Aead func(key, fixedNonce []byte) cipher.AEAD + Aead func(key, fixedNonce []byte) aead } func (cs *CipherSuite) getPrivatePtr() *cipherSuite { diff --git a/u_tls_extensions.go b/u_tls_extensions.go index 6f58f8a..5608aaa 100644 --- a/u_tls_extensions.go +++ b/u_tls_extensions.go @@ -194,7 +194,7 @@ func (e *SignatureAlgorithmsExtension) Read(b []byte) (int, error) { type RenegotiationInfoExtension struct { renegotiation RenegotiationSupport - SecureRenegotiation []byte // you probably want to leave it empty + SecureRenegotiation []byte // if empty, default []byte{0} is assumed } func (e *RenegotiationInfoExtension) writeToUConn(uc *UConn) error { @@ -205,7 +205,7 @@ func (e *RenegotiationInfoExtension) writeToUConn(uc *UConn) error { case RenegotiateFreelyAsClient: uc.HandshakeState.Hello.SecureRenegotiationSupported = true // Note that if we manage to use this in renegotiation(currently only in initial handshake), we'd have to point - // uc.HandshakeState.Hello.SecureRenegotiation = chs.C.clientFinished + // uc.ClientHelloMsg.SecureRenegotiation = chs.C.clientFinished // and probably do something else. It's a mess. case RenegotiateNever: default: @@ -218,7 +218,11 @@ func (e *RenegotiationInfoExtension) Len() int { case RenegotiateOnceAsClient: fallthrough case RenegotiateFreelyAsClient: - return 5 + len(e.SecureRenegotiation) + extBodyLen := len(e.SecureRenegotiation) + if extBodyLen == 0 { + extBodyLen = 1 + } + return 4 + extBodyLen case RenegotiateNever: default: } @@ -233,11 +237,18 @@ func (e *RenegotiationInfoExtension) Read(b []byte) (int, error) { case RenegotiateOnceAsClient: fallthrough case RenegotiateFreelyAsClient: + secureRenegBody := e.SecureRenegotiation + if len(secureRenegBody) == 0 { + secureRenegBody = []byte{0} + } + extBodyLen := len(secureRenegBody) + b[0] = byte(extensionRenegotiationInfo >> 8) b[1] = byte(extensionRenegotiationInfo & 0xff) - b[2] = 0 // TODO: this is not what Chrome does :( - b[3] = byte(len(e.SecureRenegotiation) + 1) - b[4] = byte(len(e.SecureRenegotiation)) + b[2] = byte(extBodyLen >> 8) + b[3] = byte(extBodyLen) + copy(b[4:], secureRenegBody) + if len(e.SecureRenegotiation) != 0 { copy(b[5:], e.SecureRenegotiation) } From 6f3f4a064fb6bde95a765c84f845ebb41abd67e2 Mon Sep 17 00:00:00 2001 From: Sergey Frolov Date: Wed, 5 Dec 2018 14:45:29 -0700 Subject: [PATCH 2/2] CI: bump Go version --- .travis.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index c96626f..4020233 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,8 +1,7 @@ language: go go: - - "1.9" - - "1.10.x" + - "1.11.x" sudo: required dist: trusty