mirror of
https://github.com/refraction-networking/utls.git
synced 2025-04-03 20:17:36 +03:00
Support for Ed25519 certificates was added in CL 175478, this wires them up into the TLS stack according to RFC 8422 (TLS 1.2) and RFC 8446 (TLS 1.3). RFC 8422 also specifies support for TLS 1.0 and 1.1, and I initially implemented that, but even OpenSSL doesn't take the complexity, so I just dropped it. It would have required keeping a buffer of the handshake transcript in order to do the direct Ed25519 signatures. We effectively need to support TLS 1.2 because it shares ClientHello signature algorithms with TLS 1.3. While at it, reordered the advertised signature algorithms in the rough order we would want to use them, also based on what curves have fast constant-time implementations. Client and client auth tests changed because of the change in advertised signature algorithms in ClientHello and CertificateRequest. Fixes #25355 Change-Id: I9fdd839afde4fd6b13fcbc5cc7017fd8c35085ee Reviewed-on: https://go-review.googlesource.com/c/go/+/177698 Run-TryBot: Filippo Valsorda <filippo@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Adam Langley <agl@golang.org>
87 lines
6.5 KiB
Text
87 lines
6.5 KiB
Text
>>> Flow 1 (client to server)
|
|
00000000 16 03 01 00 97 01 00 00 93 03 03 af 6e 31 55 9f |............n1U.|
|
|
00000010 fb 22 73 ce a2 0a b6 a3 3e 13 14 83 09 8c e2 98 |."s.....>.......|
|
|
00000020 c3 6f a3 80 79 e4 7c c5 ff 4e a4 00 00 04 00 2f |.o..y.|..N...../|
|
|
00000030 00 ff 01 00 00 66 00 00 00 0e 00 0c 00 00 09 31 |.....f.........1|
|
|
00000040 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........|
|
|
00000050 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................|
|
|
00000060 00 16 00 00 00 17 00 00 00 0d 00 30 00 2e 04 03 |...........0....|
|
|
00000070 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................|
|
|
00000080 08 05 08 06 04 01 05 01 06 01 03 03 02 03 03 01 |................|
|
|
00000090 02 01 03 02 02 02 04 02 05 02 06 02 |............|
|
|
>>> Flow 2 (server to client)
|
|
00000000 16 03 03 00 31 02 00 00 2d 03 03 00 00 00 00 00 |....1...-.......|
|
|
00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
|
|
00000020 00 00 00 44 4f 57 4e 47 52 44 01 00 00 2f 00 00 |...DOWNGRD.../..|
|
|
00000030 05 ff 01 00 01 00 16 03 03 02 59 0b 00 02 55 00 |..........Y...U.|
|
|
00000040 02 52 00 02 4f 30 82 02 4b 30 82 01 b4 a0 03 02 |.R..O0..K0......|
|
|
00000050 01 02 02 09 00 e8 f0 9d 3f e2 5b ea a6 30 0d 06 |........?.[..0..|
|
|
00000060 09 2a 86 48 86 f7 0d 01 01 0b 05 00 30 1f 31 0b |.*.H........0.1.|
|
|
00000070 30 09 06 03 55 04 0a 13 02 47 6f 31 10 30 0e 06 |0...U....Go1.0..|
|
|
00000080 03 55 04 03 13 07 47 6f 20 52 6f 6f 74 30 1e 17 |.U....Go Root0..|
|
|
00000090 0d 31 36 30 31 30 31 30 30 30 30 30 30 5a 17 0d |.160101000000Z..|
|
|
000000a0 32 35 30 31 30 31 30 30 30 30 30 30 5a 30 1a 31 |250101000000Z0.1|
|
|
000000b0 0b 30 09 06 03 55 04 0a 13 02 47 6f 31 0b 30 09 |.0...U....Go1.0.|
|
|
000000c0 06 03 55 04 03 13 02 47 6f 30 81 9f 30 0d 06 09 |..U....Go0..0...|
|
|
000000d0 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 30 |*.H............0|
|
|
000000e0 81 89 02 81 81 00 db 46 7d 93 2e 12 27 06 48 bc |.......F}...'.H.|
|
|
000000f0 06 28 21 ab 7e c4 b6 a2 5d fe 1e 52 45 88 7a 36 |.(!.~...]..RE.z6|
|
|
00000100 47 a5 08 0d 92 42 5b c2 81 c0 be 97 79 98 40 fb |G....B[.....y.@.|
|
|
00000110 4f 6d 14 fd 2b 13 8b c2 a5 2e 67 d8 d4 09 9e d6 |Om..+.....g.....|
|
|
00000120 22 38 b7 4a 0b 74 73 2b c2 34 f1 d1 93 e5 96 d9 |"8.J.ts+.4......|
|
|
00000130 74 7b f3 58 9f 6c 61 3c c0 b0 41 d4 d9 2b 2b 24 |t{.X.la<..A..++$|
|
|
00000140 23 77 5b 1c 3b bd 75 5d ce 20 54 cf a1 63 87 1d |#w[.;.u]. T..c..|
|
|
00000150 1e 24 c4 f3 1d 1a 50 8b aa b6 14 43 ed 97 a7 75 |.$....P....C...u|
|
|
00000160 62 f4 14 c8 52 d7 02 03 01 00 01 a3 81 93 30 81 |b...R.........0.|
|
|
00000170 90 30 0e 06 03 55 1d 0f 01 01 ff 04 04 03 02 05 |.0...U..........|
|
|
00000180 a0 30 1d 06 03 55 1d 25 04 16 30 14 06 08 2b 06 |.0...U.%..0...+.|
|
|
00000190 01 05 05 07 03 01 06 08 2b 06 01 05 05 07 03 02 |........+.......|
|
|
000001a0 30 0c 06 03 55 1d 13 01 01 ff 04 02 30 00 30 19 |0...U.......0.0.|
|
|
000001b0 06 03 55 1d 0e 04 12 04 10 9f 91 16 1f 43 43 3e |..U..........CC>|
|
|
000001c0 49 a6 de 6d b6 80 d7 9f 60 30 1b 06 03 55 1d 23 |I..m....`0...U.#|
|
|
000001d0 04 14 30 12 80 10 48 13 49 4d 13 7e 16 31 bb a3 |..0...H.IM.~.1..|
|
|
000001e0 01 d5 ac ab 6e 7b 30 19 06 03 55 1d 11 04 12 30 |....n{0...U....0|
|
|
000001f0 10 82 0e 65 78 61 6d 70 6c 65 2e 67 6f 6c 61 6e |...example.golan|
|
|
00000200 67 30 0d 06 09 2a 86 48 86 f7 0d 01 01 0b 05 00 |g0...*.H........|
|
|
00000210 03 81 81 00 9d 30 cc 40 2b 5b 50 a0 61 cb ba e5 |.....0.@+[P.a...|
|
|
00000220 53 58 e1 ed 83 28 a9 58 1a a9 38 a4 95 a1 ac 31 |SX...(.X..8....1|
|
|
00000230 5a 1a 84 66 3d 43 d3 2d d9 0b f2 97 df d3 20 64 |Z..f=C.-...... d|
|
|
00000240 38 92 24 3a 00 bc cf 9c 7d b7 40 20 01 5f aa d3 |8.$:....}.@ ._..|
|
|
00000250 16 61 09 a2 76 fd 13 c3 cc e1 0c 5c ee b1 87 82 |.a..v......\....|
|
|
00000260 f1 6c 04 ed 73 bb b3 43 77 8d 0c 1c f1 0f a1 d8 |.l..s..Cw.......|
|
|
00000270 40 83 61 c9 4c 72 2b 9d ae db 46 06 06 4d f4 c1 |@.a.Lr+...F..M..|
|
|
00000280 b3 3e c0 d1 bd 42 d4 db fe 3d 13 60 84 5c 21 d3 |.>...B...=.`.\!.|
|
|
00000290 3b e9 fa e7 16 03 03 00 23 0d 00 00 1f 02 01 40 |;.......#......@|
|
|
000002a0 00 18 08 04 04 03 08 07 08 05 08 06 04 01 05 01 |................|
|
|
000002b0 06 01 05 03 06 03 02 01 02 03 00 00 16 03 03 00 |................|
|
|
000002c0 04 0e 00 00 00 |.....|
|
|
>>> Flow 3 (client to server)
|
|
00000000 16 03 03 00 07 0b 00 00 03 00 00 00 16 03 03 00 |................|
|
|
00000010 86 10 00 00 82 00 80 5b 78 d7 5b 4f e3 55 1f 34 |.......[x.[O.U.4|
|
|
00000020 60 be e9 68 07 28 c0 42 b1 ff 31 2f ac 41 19 1e |`..h.(.B..1/.A..|
|
|
00000030 5b c3 7a d4 e4 59 49 4a ed be b9 95 6c d5 58 4a |[.z..YIJ....l.XJ|
|
|
00000040 4a f5 ea f7 00 39 8b f0 6a c6 5a 5f 4e 53 40 20 |J....9..j.Z_NS@ |
|
|
00000050 70 88 5a d4 e0 9e 25 a2 d5 50 1e 22 ed 02 14 f9 |p.Z...%..P."....|
|
|
00000060 eb 32 dd d2 9c 66 20 4c 4d a1 97 91 48 6f 39 cf |.2...f LM...Ho9.|
|
|
00000070 ae e4 33 4e d9 4d 96 fa 13 39 1d b4 16 85 08 4a |..3N.M...9.....J|
|
|
00000080 8f dc b6 f3 19 05 de 16 aa 3d 5e 71 e7 38 ff 3d |.........=^q.8.=|
|
|
00000090 77 5b 63 df d2 32 3d 14 03 03 00 01 01 16 03 03 |w[c..2=.........|
|
|
000000a0 00 40 d7 df c5 1f ec 3c 10 77 53 78 8f c7 8a 79 |.@.....<.wSx...y|
|
|
000000b0 17 3a 31 57 6f e3 e8 85 3f 33 75 0a f8 a8 4d cc |.:1Wo...?3u...M.|
|
|
000000c0 70 0a d9 d0 8b 87 b5 d4 74 c8 8d 30 3b 80 bd 8c |p.......t..0;...|
|
|
000000d0 cb 42 6f e9 e5 c9 a6 28 16 6d 7a d8 13 cb 57 30 |.Bo....(.mz...W0|
|
|
000000e0 3d 77 |=w|
|
|
>>> Flow 4 (server to client)
|
|
00000000 14 03 03 00 01 01 16 03 03 00 40 00 00 00 00 00 |..........@.....|
|
|
00000010 00 00 00 00 00 00 00 00 00 00 00 93 43 99 29 17 |............C.).|
|
|
00000020 5b 96 2e 5b 22 fc 53 47 b2 85 76 46 d9 1a f2 12 |[..[".SG..vF....|
|
|
00000030 58 e0 0e 0d 0f dc 88 a2 0f b1 00 39 ed d7 99 58 |X..........9...X|
|
|
00000040 99 7b c5 ba 91 a3 72 05 1e 9e c2 17 03 03 00 40 |.{....r........@|
|
|
00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................|
|
|
00000060 f3 ff e7 4d b6 ca 7c 95 ed 96 13 88 70 b3 2c 8b |...M..|.....p.,.|
|
|
00000070 9b 0c 51 77 75 16 b4 c0 df 9f 1a c4 86 68 82 10 |..Qwu........h..|
|
|
00000080 41 c7 1e e5 92 49 ce a3 6f c3 bc 0a 91 04 b6 fa |A....I..o.......|
|
|
00000090 15 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........|
|
|
000000a0 00 00 00 00 00 2c e7 ff bb 3a f5 00 08 d3 8c 3f |.....,...:.....?|
|
|
000000b0 89 bf 97 de fc c4 91 59 2f 7b b3 b8 ea d0 b1 05 |.......Y/{......|
|
|
000000c0 ca ff d0 78 9f |...x.|
|