From 376ff45dc175e9fef6b76eb12cef1c5f7d935a20 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Fri, 2 Nov 2018 00:57:30 -0400 Subject: [PATCH 1/8] crypto/tls: implement TLS 1.3 server handshake (base) Implement a basic TLS 1.3 server handshake, only enabled if explicitly requested with MaxVersion. This CL intentionally leaves for future CLs: - PSK modes and resumption - client authentication - compatibility mode ChangeCipherSpecs - early data skipping - post-handshake messages - downgrade protection - KeyLogWriter support - TLS_FALLBACK_SCSV processing It also leaves a few areas up for a wider refactor (maybe in Go 1.13): - the certificate selection logic can be significantly improved, including supporting and surfacing signature_algorithms_cert, but this isn't new in TLS 1.3 (see comment in processClientHello) - handshake_server_tls13.go can be dried up and broken into more meaningful, smaller functions, but it felt premature to do before PSK and client auth support - the monstrous ClientHello equality check in doHelloRetryRequest can get both cleaner and more complete with collaboration from the parsing layer, which can come at the same time as extension duplicates detection Updates #9671 Change-Id: Id9db2b6ecc2eea21bf9b59b6d1d9c84a7435151c Reviewed-on: https://go-review.googlesource.com/c/147017 Run-TryBot: Filippo Valsorda TryBot-Result: Gobot Gobot Reviewed-by: Adam Langley --- auth.go | 33 ++ common.go | 2 +- handshake_messages.go | 4 +- handshake_server.go | 154 +++--- handshake_server_test.go | 95 +++- handshake_server_tls13.go | 461 ++++++++++++++++++ testdata/Server-TLSv12-P256 | 85 ++++ ...ECDHE-RSA-AES-GCM => Server-TLSv12-X25519} | 0 testdata/Server-TLSv13-AES128-SHA256 | 90 ++++ testdata/Server-TLSv13-AES256-SHA384 | 92 ++++ testdata/Server-TLSv13-ALPN | 94 ++++ testdata/Server-TLSv13-ALPN-NoMatch | 93 ++++ testdata/Server-TLSv13-CHACHA20-SHA256 | 90 ++++ testdata/Server-TLSv13-ECDHE-ECDSA-AES | 86 ++++ testdata/Server-TLSv13-ExportKeyingMaterial | 92 ++++ testdata/Server-TLSv13-HelloRetryRequest | 118 +++++ testdata/Server-TLSv13-P256 | 95 ++++ testdata/Server-TLSv13-RSA-RSAPSS | 90 ++++ testdata/Server-TLSv13-X25519 | 91 ++++ 19 files changed, 1788 insertions(+), 77 deletions(-) create mode 100644 handshake_server_tls13.go create mode 100644 testdata/Server-TLSv12-P256 rename testdata/{Server-TLSv12-X25519-ECDHE-RSA-AES-GCM => Server-TLSv12-X25519} (100%) create mode 100644 testdata/Server-TLSv13-AES128-SHA256 create mode 100644 testdata/Server-TLSv13-AES256-SHA384 create mode 100644 testdata/Server-TLSv13-ALPN create mode 100644 testdata/Server-TLSv13-ALPN-NoMatch create mode 100644 testdata/Server-TLSv13-CHACHA20-SHA256 create mode 100644 testdata/Server-TLSv13-ECDHE-ECDSA-AES create mode 100644 testdata/Server-TLSv13-ExportKeyingMaterial create mode 100644 testdata/Server-TLSv13-HelloRetryRequest create mode 100644 testdata/Server-TLSv13-P256 create mode 100644 testdata/Server-TLSv13-RSA-RSAPSS create mode 100644 testdata/Server-TLSv13-X25519 diff --git a/auth.go b/auth.go index 3e12d97..859387e 100644 --- a/auth.go +++ b/auth.go @@ -7,6 +7,7 @@ package tls import ( "crypto" "crypto/ecdsa" + "crypto/elliptic" "crypto/rsa" "encoding/asn1" "errors" @@ -131,3 +132,35 @@ func writeSignedMessage(sigHash io.Writer, context string, transcript hash.Hash) io.WriteString(sigHash, context) sigHash.Write(transcript.Sum(nil)) } + +// signatureSchemesForCertificate returns the list of supported SignatureSchemes +// for a given certificate, based on the public key. +func signatureSchemesForCertificate(cert *Certificate) []SignatureScheme { + priv, ok := cert.PrivateKey.(crypto.Signer) + if !ok { + return nil + } + + switch priv := priv.Public().(type) { + case *ecdsa.PublicKey: + switch priv.Curve { + case elliptic.P256(): + return []SignatureScheme{ECDSAWithP256AndSHA256} + case elliptic.P384(): + return []SignatureScheme{ECDSAWithP384AndSHA384} + case elliptic.P521(): + return []SignatureScheme{ECDSAWithP521AndSHA512} + default: + return nil + } + case *rsa.PublicKey: + // RSA keys with RSA-PSS OID are not supported by crypto/x509. + return []SignatureScheme{ + PSSWithSHA256, + PSSWithSHA384, + PSSWithSHA512, + } + default: + return nil + } +} diff --git a/common.go b/common.go index 7e5976a..ddd3da5 100644 --- a/common.go +++ b/common.go @@ -740,7 +740,7 @@ func (c *Config) supportedVersions(isClient bool) []uint16 { continue } // TLS 1.3 is only supported if explicitly requested while in development. - if v == VersionTLS13 && (!isClient || c == nil || c.MaxVersion != VersionTLS13) { + if v == VersionTLS13 && (c == nil || c.MaxVersion != VersionTLS13) { continue } versions = append(versions, v) diff --git a/handshake_messages.go b/handshake_messages.go index c622e08..98b7bd5 100644 --- a/handshake_messages.go +++ b/handshake_messages.go @@ -131,7 +131,7 @@ func (m *clientHelloMsg) marshal() []byte { }) } if len(m.supportedCurves) > 0 { - // RFC 4492, Section 5.1.1 and RFC 8446, Section 4.2.7 + // RFC 4492, sections 5.1.1 and RFC 8446, Section 4.2.7 b.AddUint16(extensionSupportedCurves) b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { @@ -379,7 +379,7 @@ func (m *clientHelloMsg) unmarshal(data []byte) bool { } m.ocspStapling = statusType == statusTypeOCSP case extensionSupportedCurves: - // RFC 4492, Section 5.1.1 and RFC 8446, Section 4.2.7 + // RFC 4492, sections 5.1.1 and RFC 8446, Section 4.2.7 var curves cryptobyte.String if !extData.ReadUint16LengthPrefixed(&curves) || curves.Empty() { return false diff --git a/handshake_server.go b/handshake_server.go index ae793e2..d1f123c 100644 --- a/handshake_server.go +++ b/handshake_server.go @@ -19,20 +19,19 @@ import ( // serverHandshakeState contains details of a server handshake in progress. // It's discarded once the handshake has completed. type serverHandshakeState struct { - c *Conn - clientHello *clientHelloMsg - hello *serverHelloMsg - suite *cipherSuite - ellipticOk bool - ecdsaOk bool - rsaDecryptOk bool - rsaSignOk bool - sessionState *sessionState - finishedHash finishedHash - masterSecret []byte - certsFromClient [][]byte - cert *Certificate - cachedClientHelloInfo *ClientHelloInfo + c *Conn + clientHello *clientHelloMsg + hello *serverHelloMsg + suite *cipherSuite + ellipticOk bool + ecdsaOk bool + rsaDecryptOk bool + rsaSignOk bool + sessionState *sessionState + finishedHash finishedHash + masterSecret []byte + certsFromClient [][]byte + cert *Certificate } // serverHandshake performs a TLS handshake as a server. @@ -41,17 +40,36 @@ func (c *Conn) serverHandshake() error { // encrypt the tickets with. c.config.serverInitOnce.Do(func() { c.config.serverInit(nil) }) - hs := serverHandshakeState{ - c: c, - } - isResume, err := hs.readClientHello() + clientHello, err := c.readClientHello() if err != nil { return err } + if c.vers == VersionTLS13 { + hs := serverHandshakeStateTLS13{ + c: c, + clientHello: clientHello, + } + return hs.handshake() + } + + hs := serverHandshakeState{ + c: c, + clientHello: clientHello, + } + return hs.handshake() +} + +func (hs *serverHandshakeState) handshake() error { + c := hs.c + + if err := hs.processClientHello(); err != nil { + return err + } + // For an overview of TLS handshaking, see RFC 5246, Section 7.3. c.buffering = true - if isResume { + if hs.checkForResumption() { // The client has included a session ticket and so we do an abbreviated handshake. if err := hs.doResumeHandshake(); err != nil { return err @@ -81,6 +99,9 @@ func (c *Conn) serverHandshake() error { } else { // The client didn't include a session ticket, or it wasn't // valid so we do a full handshake. + if err := hs.pickCipherSuite(); err != nil { + return err + } if err := hs.doFullHandshake(); err != nil { return err } @@ -109,42 +130,47 @@ func (c *Conn) serverHandshake() error { return nil } -// readClientHello reads a ClientHello message from the client and decides -// whether we will perform session resumption. -func (hs *serverHandshakeState) readClientHello() (isResume bool, err error) { - c := hs.c - +// readClientHello reads a ClientHello message and selects the protocol version. +func (c *Conn) readClientHello() (*clientHelloMsg, error) { msg, err := c.readHandshake() if err != nil { - return false, err + return nil, err } - var ok bool - hs.clientHello, ok = msg.(*clientHelloMsg) + clientHello, ok := msg.(*clientHelloMsg) if !ok { c.sendAlert(alertUnexpectedMessage) - return false, unexpectedMessageError(hs.clientHello, msg) + return nil, unexpectedMessageError(clientHello, msg) } if c.config.GetConfigForClient != nil { - if newConfig, err := c.config.GetConfigForClient(hs.clientHelloInfo()); err != nil { + chi := clientHelloInfo(c, clientHello) + if newConfig, err := c.config.GetConfigForClient(chi); err != nil { c.sendAlert(alertInternalError) - return false, err + return nil, err } else if newConfig != nil { newConfig.serverInitOnce.Do(func() { newConfig.serverInit(c.config) }) c.config = newConfig } } - clientVersions := hs.clientHello.supportedVersions - if len(hs.clientHello.supportedVersions) == 0 { - clientVersions = supportedVersionsFromMax(hs.clientHello.vers) + clientVersions := clientHello.supportedVersions + if len(clientHello.supportedVersions) == 0 { + clientVersions = supportedVersionsFromMax(clientHello.vers) } c.vers, ok = c.config.mutualVersion(false, clientVersions) if !ok { c.sendAlert(alertProtocolVersion) - return false, fmt.Errorf("tls: client offered only unsupported versions: %x", clientVersions) + return nil, fmt.Errorf("tls: client offered only unsupported versions: %x", clientVersions) } c.haveVers = true + c.in.version = c.vers + c.out.version = c.vers + + return clientHello, nil +} + +func (hs *serverHandshakeState) processClientHello() error { + c := hs.c hs.hello = new(serverHelloMsg) hs.hello.vers = c.vers @@ -181,19 +207,19 @@ Curves: if !foundCompression { c.sendAlert(alertHandshakeFailure) - return false, errors.New("tls: client does not support uncompressed connections") + return errors.New("tls: client does not support uncompressed connections") } hs.hello.random = make([]byte, 32) - _, err = io.ReadFull(c.config.rand(), hs.hello.random) + _, err := io.ReadFull(c.config.rand(), hs.hello.random) if err != nil { c.sendAlert(alertInternalError) - return false, err + return err } if len(hs.clientHello.secureRenegotiation) != 0 { c.sendAlert(alertHandshakeFailure) - return false, errors.New("tls: initial handshake had non-empty renegotiation extension") + return errors.New("tls: initial handshake had non-empty renegotiation extension") } hs.hello.secureRenegotiationSupported = hs.clientHello.secureRenegotiationSupported @@ -218,10 +244,10 @@ Curves: } } - hs.cert, err = c.config.getCertificate(hs.clientHelloInfo()) + hs.cert, err = c.config.getCertificate(clientHelloInfo(c, hs.clientHello)) if err != nil { c.sendAlert(alertInternalError) - return false, err + return err } if hs.clientHello.scts { hs.hello.scts = hs.cert.SignedCertificateTimestamps @@ -235,7 +261,7 @@ Curves: hs.rsaSignOk = true default: c.sendAlert(alertInternalError) - return false, fmt.Errorf("tls: unsupported signing key type (%T)", priv.Public()) + return fmt.Errorf("tls: unsupported signing key type (%T)", priv.Public()) } } if priv, ok := hs.cert.PrivateKey.(crypto.Decrypter); ok { @@ -244,13 +270,15 @@ Curves: hs.rsaDecryptOk = true default: c.sendAlert(alertInternalError) - return false, fmt.Errorf("tls: unsupported decryption key type (%T)", priv.Public()) + return fmt.Errorf("tls: unsupported decryption key type (%T)", priv.Public()) } } - if hs.checkForResumption() { - return true, nil - } + return nil +} + +func (hs *serverHandshakeState) pickCipherSuite() error { + c := hs.c var preferenceList, supportedList []uint16 if c.config.PreferServerCipherSuites { @@ -269,7 +297,7 @@ Curves: if hs.suite == nil { c.sendAlert(alertHandshakeFailure) - return false, errors.New("tls: no cipher suite supported by both client and server") + return errors.New("tls: no cipher suite supported by both client and server") } // See RFC 7507. @@ -278,13 +306,13 @@ Curves: // The client is doing a fallback connection. if hs.clientHello.vers < c.config.supportedVersions(false)[0] { c.sendAlert(alertInappropriateFallback) - return false, errors.New("tls: client using inappropriate protocol fallback") + return errors.New("tls: client using inappropriate protocol fallback") } break } } - return false, nil + return nil } // checkForResumption reports whether we should perform resumption on this connection. @@ -766,26 +794,20 @@ func (hs *serverHandshakeState) setCipherSuite(id uint16, supportedCipherSuites return false } -func (hs *serverHandshakeState) clientHelloInfo() *ClientHelloInfo { - if hs.cachedClientHelloInfo != nil { - return hs.cachedClientHelloInfo +func clientHelloInfo(c *Conn, clientHello *clientHelloMsg) *ClientHelloInfo { + supportedVersions := clientHello.supportedVersions + if len(clientHello.supportedVersions) == 0 { + supportedVersions = supportedVersionsFromMax(clientHello.vers) } - supportedVersions := hs.clientHello.supportedVersions - if len(hs.clientHello.supportedVersions) == 0 { - supportedVersions = supportedVersionsFromMax(hs.clientHello.vers) - } - - hs.cachedClientHelloInfo = &ClientHelloInfo{ - CipherSuites: hs.clientHello.cipherSuites, - ServerName: hs.clientHello.serverName, - SupportedCurves: hs.clientHello.supportedCurves, - SupportedPoints: hs.clientHello.supportedPoints, - SignatureSchemes: hs.clientHello.supportedSignatureAlgorithms, - SupportedProtos: hs.clientHello.alpnProtocols, + return &ClientHelloInfo{ + CipherSuites: clientHello.cipherSuites, + ServerName: clientHello.serverName, + SupportedCurves: clientHello.supportedCurves, + SupportedPoints: clientHello.supportedPoints, + SignatureSchemes: clientHello.supportedSignatureAlgorithms, + SupportedProtos: clientHello.alpnProtocols, SupportedVersions: supportedVersions, - Conn: hs.c.conn, + Conn: c.conn, } - - return hs.cachedClientHelloInfo } diff --git a/handshake_server_test.go b/handshake_server_test.go index f7785ec..a02eae2 100644 --- a/handshake_server_test.go +++ b/handshake_server_test.go @@ -79,17 +79,25 @@ func testClientHelloFailure(t *testing.T, serverConfig *Config, m handshakeMessa cli.writeRecord(recordTypeHandshake, m.marshal()) c.Close() }() + conn := Server(s, serverConfig) + ch, err := conn.readClientHello() hs := serverHandshakeState{ - c: Server(s, serverConfig), + c: conn, + clientHello: ch, + } + if err == nil { + err = hs.processClientHello() + } + if err == nil { + err = hs.pickCipherSuite() } - _, err := hs.readClientHello() s.Close() if len(expectedSubStr) == 0 { if err != nil && err != io.EOF { t.Errorf("Got error: %s; expected to succeed", err) } } else if err == nil || !strings.Contains(err.Error(), expectedSubStr) { - t.Errorf("Got error: %s; expected to match substring '%s'", err, expectedSubStr) + t.Errorf("Got error: %v; expected to match substring '%s'", err, expectedSubStr) } } @@ -727,6 +735,16 @@ func runServerTestTLS12(t *testing.T, template *serverTest) { runServerTestForVersion(t, template, "TLSv12", "-tls1_2") } +func runServerTestTLS13(t *testing.T, template *serverTest) { + // TODO(filippo): set MaxVersion to VersionTLS13 instead in testConfig + // while regenerating server tests. + if template.config == nil { + template.config = testConfig.Clone() + } + template.config.MaxVersion = VersionTLS13 + runServerTestForVersion(t, template, "TLSv13", "-tls1_3") +} + func TestHandshakeServerRSARC4(t *testing.T) { test := &serverTest{ name: "RSA-RC4", @@ -774,6 +792,28 @@ func TestHandshakeServerAES256GCMSHA384(t *testing.T) { runServerTestTLS12(t, test) } +func TestHandshakeServerAES128SHA256(t *testing.T) { + test := &serverTest{ + name: "AES128-SHA256", + command: []string{"openssl", "s_client", "-no_ticket", "-ciphersuites", "TLS_AES_128_GCM_SHA256"}, + } + runServerTestTLS13(t, test) +} +func TestHandshakeServerAES256SHA384(t *testing.T) { + test := &serverTest{ + name: "AES256-SHA384", + command: []string{"openssl", "s_client", "-no_ticket", "-ciphersuites", "TLS_AES_256_GCM_SHA384"}, + } + runServerTestTLS13(t, test) +} +func TestHandshakeServerCHACHA20SHA256(t *testing.T) { + test := &serverTest{ + name: "CHACHA20-SHA256", + command: []string{"openssl", "s_client", "-no_ticket", "-ciphersuites", "TLS_CHACHA20_POLY1305_SHA256"}, + } + runServerTestTLS13(t, test) +} + func TestHandshakeServerECDHEECDSAAES(t *testing.T) { config := testConfig.Clone() config.Certificates = make([]Certificate, 1) @@ -783,11 +823,12 @@ func TestHandshakeServerECDHEECDSAAES(t *testing.T) { test := &serverTest{ name: "ECDHE-ECDSA-AES", - command: []string{"openssl", "s_client", "-no_ticket", "-cipher", "ECDHE-ECDSA-AES256-SHA"}, + command: []string{"openssl", "s_client", "-no_ticket", "-cipher", "ECDHE-ECDSA-AES256-SHA", "-ciphersuites", "TLS_AES_128_GCM_SHA256"}, config: config, } runServerTestTLS10(t, test) runServerTestTLS12(t, test) + runServerTestTLS13(t, test) } func TestHandshakeServerX25519(t *testing.T) { @@ -795,11 +836,37 @@ func TestHandshakeServerX25519(t *testing.T) { config.CurvePreferences = []CurveID{X25519} test := &serverTest{ - name: "X25519-ECDHE-RSA-AES-GCM", - command: []string{"openssl", "s_client", "-no_ticket", "-cipher", "ECDHE-RSA-AES128-GCM-SHA256"}, + name: "X25519", + command: []string{"openssl", "s_client", "-no_ticket", "-cipher", "ECDHE-RSA-AES128-GCM-SHA256", "-curves", "X25519"}, config: config, } runServerTestTLS12(t, test) + runServerTestTLS13(t, test) +} + +func TestHandshakeServerP256(t *testing.T) { + config := testConfig.Clone() + config.CurvePreferences = []CurveID{CurveP256} + + test := &serverTest{ + name: "P256", + command: []string{"openssl", "s_client", "-no_ticket", "-cipher", "ECDHE-RSA-AES128-GCM-SHA256", "-curves", "P-256"}, + config: config, + } + runServerTestTLS12(t, test) + runServerTestTLS13(t, test) +} + +func TestHandshakeServerHelloRetryRequest(t *testing.T) { + config := testConfig.Clone() + config.CurvePreferences = []CurveID{CurveP256} + + test := &serverTest{ + name: "HelloRetryRequest", + command: []string{"openssl", "s_client", "-no_ticket", "-curves", "X25519:P-256"}, + config: config, + } + runServerTestTLS13(t, test) } func TestHandshakeServerALPN(t *testing.T) { @@ -821,6 +888,7 @@ func TestHandshakeServerALPN(t *testing.T) { }, } runServerTestTLS12(t, test) + runServerTestTLS13(t, test) } func TestHandshakeServerALPNNoMatch(t *testing.T) { @@ -843,6 +911,7 @@ func TestHandshakeServerALPNNoMatch(t *testing.T) { }, } runServerTestTLS12(t, test) + runServerTestTLS13(t, test) } // TestHandshakeServerSNI involves a client sending an SNI extension of @@ -1052,6 +1121,7 @@ func TestHandshakeServerExportKeyingMaterial(t *testing.T) { } runServerTestTLS10(t, test) runServerTestTLS12(t, test) + runServerTestTLS13(t, test) } func TestHandshakeServerRSAPKCS1v15(t *testing.T) { @@ -1068,6 +1138,7 @@ func TestHandshakeServerRSAPSS(t *testing.T) { command: []string{"openssl", "s_client", "-no_ticket", "-sigalgs", "rsa_pss_rsae_sha256"}, } runServerTestTLS12(t, test) + runServerTestTLS13(t, test) } func benchmarkHandshakeServer(b *testing.B, cipherSuite uint16, curve CurveID, cert []byte, key crypto.PrivateKey) { @@ -1286,10 +1357,18 @@ func TestSNIGivenOnFailure(t *testing.T) { cli.writeRecord(recordTypeHandshake, clientHello.marshal()) c.Close() }() + conn := Server(s, serverConfig) + ch, err := conn.readClientHello() hs := serverHandshakeState{ - c: Server(s, serverConfig), + c: conn, + clientHello: ch, + } + if err == nil { + err = hs.processClientHello() + } + if err == nil { + err = hs.pickCipherSuite() } - _, err := hs.readClientHello() defer s.Close() if err == nil { diff --git a/handshake_server_tls13.go b/handshake_server_tls13.go new file mode 100644 index 0000000..0ba74d5 --- /dev/null +++ b/handshake_server_tls13.go @@ -0,0 +1,461 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package tls + +import ( + "bytes" + "crypto" + "crypto/hmac" + "crypto/rsa" + "errors" + "fmt" + "hash" + "io" + "sync/atomic" +) + +type serverHandshakeStateTLS13 struct { + c *Conn + clientHello *clientHelloMsg + hello *serverHelloMsg + suite *cipherSuiteTLS13 + cert *Certificate + sigAlg SignatureScheme + handshakeSecret []byte + trafficSecret []byte // client_application_traffic_secret_0 + transcript hash.Hash +} + +func (hs *serverHandshakeStateTLS13) handshake() error { + c := hs.c + + // For an overview of the TLS 1.3 handshake, see RFC 8446, Section 2. + if err := hs.processClientHello(); err != nil { + return err + } + c.buffering = true + if err := hs.sendServerParameters(); err != nil { + return err + } + if err := hs.sendServerCertificate(); err != nil { + return err + } + if err := hs.sendServerFinished(); err != nil { + return err + } + if _, err := c.flush(); err != nil { + return err + } + if err := hs.readClientFinished(); err != nil { + return err + } + + atomic.StoreUint32(&c.handshakeStatus, 1) + + return nil +} + +func (hs *serverHandshakeStateTLS13) processClientHello() error { + c := hs.c + + hs.hello = new(serverHelloMsg) + + // TLS 1.3 froze the ServerHello.legacy_version field, and uses + // supported_versions instead. See RFC 8446, sections 4.1.3 and 4.2.1. + hs.hello.vers = VersionTLS12 + hs.hello.supportedVersion = c.vers + + if len(hs.clientHello.supportedVersions) == 0 { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: client used the legacy version field to negotiate TLS 1.3") + } + + if len(hs.clientHello.compressionMethods) != 1 || + hs.clientHello.compressionMethods[0] != compressionNone { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: TLS 1.3 client supports illegal compression methods") + } + + hs.hello.random = make([]byte, 32) + if _, err := io.ReadFull(c.config.rand(), hs.hello.random); err != nil { + c.sendAlert(alertInternalError) + return err + } + + if len(hs.clientHello.secureRenegotiation) != 0 { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: initial handshake had non-empty renegotiation extension") + } + + if hs.clientHello.earlyData { + return errors.New("tls: early data skipping not implemented") // TODO(filippo) + } + + hs.hello.sessionId = hs.clientHello.sessionId + hs.hello.compressionMethod = compressionNone + + var preferenceList, supportedList []uint16 + if c.config.PreferServerCipherSuites { + preferenceList = defaultCipherSuitesTLS13() + supportedList = hs.clientHello.cipherSuites + } else { + preferenceList = hs.clientHello.cipherSuites + supportedList = defaultCipherSuitesTLS13() + } + for _, suiteID := range preferenceList { + hs.suite = mutualCipherSuiteTLS13(supportedList, suiteID) + if hs.suite != nil { + break + } + } + if hs.suite == nil { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: no cipher suite supported by both client and server") + } + c.cipherSuite = hs.suite.id + hs.hello.cipherSuite = hs.suite.id + hs.transcript = hs.suite.hash.New() + + // Pick the ECDHE group in server preference order, but give priority to + // groups with a key share, to avoid a HelloRetryRequest round-trip. + var selectedGroup CurveID + var clientKeyShare *keyShare +GroupSelection: + for _, preferredGroup := range c.config.curvePreferences() { + for _, ks := range hs.clientHello.keyShares { + if ks.group == preferredGroup { + selectedGroup = ks.group + clientKeyShare = &ks + break GroupSelection + } + } + if selectedGroup != 0 { + continue + } + for _, group := range hs.clientHello.supportedCurves { + if group == preferredGroup { + selectedGroup = group + break + } + } + } + if selectedGroup == 0 { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: no ECDHE curve supported by both client and server") + } + if clientKeyShare == nil { + if err := hs.doHelloRetryRequest(selectedGroup); err != nil { + return err + } + clientKeyShare = &hs.clientHello.keyShares[0] + } + + if _, ok := curveForCurveID(selectedGroup); selectedGroup != X25519 && !ok { + c.sendAlert(alertInternalError) + return errors.New("tls: CurvePreferences includes unsupported curve") + } + params, err := generateECDHEParameters(c.config.rand(), selectedGroup) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + hs.hello.serverShare = keyShare{group: selectedGroup, data: params.PublicKey()} + sharedKey := params.SharedKey(clientKeyShare.data) + if sharedKey == nil { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: invalid client key share") + } + earlySecret := hs.suite.extract(nil, nil) + hs.handshakeSecret = hs.suite.extract(sharedKey, + hs.suite.deriveSecret(earlySecret, "derived", nil)) + + // This implements a very simplistic certificate selection strategy for now: + // getCertificate delegates to the application Config.GetCertificate, or + // selects based on the server_name only. If the selected certificate's + // public key does not match the client signature_algorithms, the handshake + // is aborted. No attention is given to signature_algorithms_cert, and it is + // not passed to the application Config.GetCertificate. This will need to + // improve according to RFC 8446, sections 4.4.2.2 and 4.2.3. + certificate, err := c.config.getCertificate(clientHelloInfo(c, hs.clientHello)) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + supportedAlgs := signatureSchemesForCertificate(certificate) + if supportedAlgs == nil { + c.sendAlert(alertInternalError) + return fmt.Errorf("tls: unsupported certificate key (%T)", certificate.PrivateKey) + } + // Pick signature scheme in client preference order, as the server + // preference order is not configurable. + for _, preferredAlg := range hs.clientHello.supportedSignatureAlgorithms { + if isSupportedSignatureAlgorithm(preferredAlg, supportedAlgs) { + hs.sigAlg = preferredAlg + break + } + } + if hs.sigAlg == 0 { + c.sendAlert(alertHandshakeFailure) + return errors.New("tls: client doesn't support selected certificate") + } + hs.cert = certificate + + return nil +} + +func (hs *serverHandshakeStateTLS13) doHelloRetryRequest(selectedGroup CurveID) error { + c := hs.c + + // The first ClientHello gets double-hashed into the transcript upon a + // HelloRetryRequest. See RFC 8446, Section 4.4.1. + hs.transcript.Write(hs.clientHello.marshal()) + chHash := hs.transcript.Sum(nil) + hs.transcript.Reset() + hs.transcript.Write([]byte{typeMessageHash, 0, 0, uint8(len(chHash))}) + hs.transcript.Write(chHash) + + helloRetryRequest := &serverHelloMsg{ + vers: hs.hello.vers, + random: helloRetryRequestRandom, + sessionId: hs.hello.sessionId, + cipherSuite: hs.hello.cipherSuite, + compressionMethod: hs.hello.compressionMethod, + supportedVersion: hs.hello.supportedVersion, + selectedGroup: selectedGroup, + } + + hs.transcript.Write(helloRetryRequest.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, helloRetryRequest.marshal()); err != nil { + return err + } + + msg, err := c.readHandshake() + if err != nil { + return err + } + + clientHello, ok := msg.(*clientHelloMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(clientHello, msg) + } + + if len(clientHello.keyShares) != 1 || clientHello.keyShares[0].group != selectedGroup { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: client sent invalid key share in second ClientHello") + } + + if clientHello.earlyData { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: client indicated early data in second ClientHello") + } + + if illegalClientHelloChange(clientHello, hs.clientHello) { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: client illegally modified second ClientHello") + } + + hs.clientHello = clientHello + return nil +} + +// illegalClientHelloChange returns whether the two ClientHello messages are +// different, with the exception of the changes allowed before and after a +// HelloRetryRequest. See RFC 8446, Section 4.1.2. +func illegalClientHelloChange(ch, ch1 *clientHelloMsg) bool { + if len(ch.supportedVersions) != len(ch1.supportedVersions) || + len(ch.cipherSuites) != len(ch1.cipherSuites) || + len(ch.supportedCurves) != len(ch1.supportedCurves) || + len(ch.supportedSignatureAlgorithms) != len(ch1.supportedSignatureAlgorithms) || + len(ch.supportedSignatureAlgorithmsCert) != len(ch1.supportedSignatureAlgorithmsCert) || + len(ch.alpnProtocols) != len(ch1.alpnProtocols) { + return true + } + for i := range ch.supportedVersions { + if ch.supportedVersions[i] != ch1.supportedVersions[i] { + return true + } + } + for i := range ch.cipherSuites { + if ch.cipherSuites[i] != ch1.cipherSuites[i] { + return true + } + } + for i := range ch.supportedCurves { + if ch.supportedCurves[i] != ch1.supportedCurves[i] { + return true + } + } + for i := range ch.supportedSignatureAlgorithms { + if ch.supportedSignatureAlgorithms[i] != ch1.supportedSignatureAlgorithms[i] { + return true + } + } + for i := range ch.supportedSignatureAlgorithmsCert { + if ch.supportedSignatureAlgorithmsCert[i] != ch1.supportedSignatureAlgorithmsCert[i] { + return true + } + } + for i := range ch.alpnProtocols { + if ch.alpnProtocols[i] != ch1.alpnProtocols[i] { + return true + } + } + return ch.vers != ch1.vers || + !bytes.Equal(ch.random, ch1.random) || + !bytes.Equal(ch.sessionId, ch1.sessionId) || + !bytes.Equal(ch.compressionMethods, ch1.compressionMethods) || + ch.nextProtoNeg != ch1.nextProtoNeg || + ch.serverName != ch1.serverName || + ch.ocspStapling != ch1.ocspStapling || + !bytes.Equal(ch.supportedPoints, ch1.supportedPoints) || + ch.ticketSupported != ch1.ticketSupported || + !bytes.Equal(ch.sessionTicket, ch1.sessionTicket) || + ch.secureRenegotiationSupported != ch1.secureRenegotiationSupported || + !bytes.Equal(ch.secureRenegotiation, ch1.secureRenegotiation) || + ch.scts != ch1.scts || + !bytes.Equal(ch.cookie, ch1.cookie) || + !bytes.Equal(ch.pskModes, ch1.pskModes) +} + +func (hs *serverHandshakeStateTLS13) sendServerParameters() error { + c := hs.c + + hs.transcript.Write(hs.clientHello.marshal()) + hs.transcript.Write(hs.hello.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, hs.hello.marshal()); err != nil { + return err + } + + clientSecret := hs.suite.deriveSecret(hs.handshakeSecret, + clientHandshakeTrafficLabel, hs.transcript) + c.in.setTrafficSecret(hs.suite, clientSecret) + serverSecret := hs.suite.deriveSecret(hs.handshakeSecret, + serverHandshakeTrafficLabel, hs.transcript) + c.out.setTrafficSecret(hs.suite, serverSecret) + + encryptedExtensions := new(encryptedExtensionsMsg) + + if len(hs.clientHello.alpnProtocols) > 0 { + if selectedProto, fallback := mutualProtocol(hs.clientHello.alpnProtocols, c.config.NextProtos); !fallback { + encryptedExtensions.alpnProtocol = selectedProto + c.clientProtocol = selectedProto + } + } + + hs.transcript.Write(encryptedExtensions.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, encryptedExtensions.marshal()); err != nil { + return err + } + + return nil +} + +func (hs *serverHandshakeStateTLS13) sendServerCertificate() error { + c := hs.c + + certMsg := new(certificateMsgTLS13) + + certMsg.certificate = *hs.cert + certMsg.scts = hs.clientHello.scts && len(hs.cert.SignedCertificateTimestamps) > 0 + certMsg.ocspStapling = hs.clientHello.ocspStapling && len(hs.cert.OCSPStaple) > 0 + + hs.transcript.Write(certMsg.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certMsg.marshal()); err != nil { + return err + } + + certVerifyMsg := new(certificateVerifyMsg) + certVerifyMsg.hasSignatureAlgorithm = true + certVerifyMsg.signatureAlgorithm = hs.sigAlg + + sigType := signatureFromSignatureScheme(hs.sigAlg) + sigHash, err := hashFromSignatureScheme(hs.sigAlg) + if sigType == 0 || err != nil { + c.sendAlert(alertInternalError) + return err + } + h := sigHash.New() + writeSignedMessage(h, serverSignatureContext, hs.transcript) + + signOpts := crypto.SignerOpts(sigHash) + if sigType == signatureRSAPSS { + signOpts = &rsa.PSSOptions{SaltLength: rsa.PSSSaltLengthEqualsHash, Hash: sigHash} + } + sig, err := hs.cert.PrivateKey.(crypto.Signer).Sign(c.config.rand(), h.Sum(nil), signOpts) + if err != nil { + c.sendAlert(alertInternalError) + return errors.New("tls: failed to sign handshake: " + err.Error()) + } + certVerifyMsg.signature = sig + + hs.transcript.Write(certVerifyMsg.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certVerifyMsg.marshal()); err != nil { + return err + } + + return nil +} + +func (hs *serverHandshakeStateTLS13) sendServerFinished() error { + c := hs.c + + // See RFC 8446, sections 4.4.4 and 4.4. + finishedKey := hs.suite.expandLabel(c.out.trafficSecret, "finished", nil, hs.suite.hash.Size()) + verifyData := hmac.New(hs.suite.hash.New, finishedKey) + verifyData.Write(hs.transcript.Sum(nil)) + finished := &finishedMsg{ + verifyData: verifyData.Sum(nil), + } + + hs.transcript.Write(finished.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, finished.marshal()); err != nil { + return err + } + + // Derive secrets that take context through the server Finished. + + masterSecret := hs.suite.extract(nil, + hs.suite.deriveSecret(hs.handshakeSecret, "derived", nil)) + + hs.trafficSecret = hs.suite.deriveSecret(masterSecret, + clientApplicationTrafficLabel, hs.transcript) + serverSecret := hs.suite.deriveSecret(masterSecret, + serverApplicationTrafficLabel, hs.transcript) + c.out.setTrafficSecret(hs.suite, serverSecret) + + c.ekm = hs.suite.exportKeyingMaterial(masterSecret, hs.transcript) + + return nil +} + +func (hs *serverHandshakeStateTLS13) readClientFinished() error { + c := hs.c + + msg, err := c.readHandshake() + if err != nil { + return err + } + + finished, ok := msg.(*finishedMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(finished, msg) + } + + finishedKey := hs.suite.expandLabel(c.in.trafficSecret, "finished", nil, hs.suite.hash.Size()) + expectedMAC := hmac.New(hs.suite.hash.New, finishedKey) + expectedMAC.Write(hs.transcript.Sum(nil)) + if !hmac.Equal(expectedMAC.Sum(nil), finished.verifyData) { + c.sendAlert(alertDecryptError) + return errors.New("tls: invalid client finished hash") + } + + hs.transcript.Write(finished.marshal()) + + c.in.setTrafficSecret(hs.suite, hs.trafficSecret) + + return nil +} diff --git a/testdata/Server-TLSv12-P256 b/testdata/Server-TLSv12-P256 new file mode 100644 index 0000000..c97bae4 --- /dev/null +++ b/testdata/Server-TLSv12-P256 @@ -0,0 +1,85 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 8f 01 00 00 8b 03 03 74 08 f5 ee 24 |...........t...$| +00000010 cb c0 26 fc f1 11 c6 9d fb ac f5 ed d1 05 78 e6 |..&...........x.| +00000020 cf a6 cb f2 ed 1a 46 3a cf 25 8b 00 00 04 c0 2f |......F:.%...../| +00000030 00 ff 01 00 00 5e 00 00 00 0e 00 0c 00 00 09 31 |.....^.........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 04 00 02 00 17 00 16 00 00 00 17 00 00 |................| +00000060 00 0d 00 30 00 2e 04 03 05 03 06 03 08 07 08 08 |...0............| +00000070 08 09 08 0a 08 0b 08 04 08 05 08 06 04 01 05 01 |................| +00000080 06 01 03 03 02 03 03 01 02 01 03 02 02 02 04 02 |................| +00000090 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 00 00 00 00 00 00 00 00 00 c0 2f 00 00 |............./..| +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 cd 0c 00 00 c9 03 00 17 |;...............| +000002a0 41 04 1e 18 37 ef 0d 19 51 88 35 75 71 b5 e5 54 |A...7...Q.5uq..T| +000002b0 5b 12 2e 8f 09 67 fd a7 24 20 3e b2 56 1c ce 97 |[....g..$ >.V...| +000002c0 28 5e f8 2b 2d 4f 9e f1 07 9f 6c 4b 5b 83 56 e2 |(^.+-O....lK[.V.| +000002d0 32 42 e9 58 b6 d7 49 a6 b5 68 1a 41 03 56 6b dc |2B.X..I..h.A.Vk.| +000002e0 5a 89 08 04 00 80 7b f8 9c bb af 20 2b b4 44 40 |Z.....{.... +.D@| +000002f0 0d bc 31 37 53 26 d4 74 b6 0b 5b 79 f5 a9 ea 2f |..17S&.t..[y.../| +00000300 e7 4f 58 42 a1 d1 43 96 bf 74 dd 2e 33 28 bd b1 |.OXB..C..t..3(..| +00000310 0b 8a eb d7 6c 1d 7a 71 3d 61 0b f1 8e 8c f8 32 |....l.zq=a.....2| +00000320 7a ec 60 ed 4a 84 67 ad 23 f0 c8 68 27 4d 82 d9 |z.`.J.g.#..h'M..| +00000330 15 58 38 cf 0a ec 5a 15 b8 14 e2 95 c6 6c b5 f3 |.X8...Z......l..| +00000340 5b ee 01 1c f7 00 83 ae e4 c8 89 77 8b 64 7b 9a |[..........w.d{.| +00000350 52 a3 c0 1c 6c 19 bc 3d 28 19 24 04 8d 2d 1c 7e |R...l..=(.$..-.~| +00000360 4d 56 01 64 f6 3c 16 03 03 00 04 0e 00 00 00 |MV.d.<.........| +>>> Flow 3 (client to server) +00000000 16 03 03 00 46 10 00 00 42 41 04 06 a5 96 8c 26 |....F...BA.....&| +00000010 fb 4e 33 6d 4f 28 6a 84 af 17 7e 6c 36 ca be 3b |.N3mO(j...~l6..;| +00000020 a2 0b b1 82 1d 35 37 02 09 f3 f0 c4 88 a9 82 1f |.....57.........| +00000030 df b5 c2 09 ed a9 7a e5 80 71 76 14 a8 98 03 08 |......z..qv.....| +00000040 25 04 94 03 4a c0 2a cb 77 bd e2 14 03 03 00 01 |%...J.*.w.......| +00000050 01 16 03 03 00 28 f4 25 33 55 25 c7 6d c9 e5 68 |.....(.%3U%.m..h| +00000060 09 5c 05 c5 49 78 82 08 20 7b 96 1b f8 5c 1a 41 |.\..Ix.. {...\.A| +00000070 be a3 4d 4c 01 3d 16 fa 3a f6 dc 37 5e 3b |..ML.=..:..7^;| +>>> Flow 4 (server to client) +00000000 14 03 03 00 01 01 16 03 03 00 28 00 00 00 00 00 |..........(.....| +00000010 00 00 00 24 72 76 66 ac a0 75 a4 5b 80 c8 f8 52 |...$rvf..u.[...R| +00000020 4b e3 8f 5a 02 f1 44 16 18 e6 ef b8 d3 51 50 f0 |K..Z..D......QP.| +00000030 06 b7 22 17 03 03 00 25 00 00 00 00 00 00 00 01 |.."....%........| +00000040 a0 f8 ed 7c ec 72 b8 fb 2a 6f 8b 61 83 ce 10 a0 |...|.r..*o.a....| +00000050 0e 45 39 ce 20 c1 b4 6e e1 a9 a6 e9 13 15 03 03 |.E9. ..n........| +00000060 00 1a 00 00 00 00 00 00 00 02 ca ce 38 1c fe db |............8...| +00000070 f3 53 18 ff fd b2 31 17 07 4d 99 10 |.S....1..M..| diff --git a/testdata/Server-TLSv12-X25519-ECDHE-RSA-AES-GCM b/testdata/Server-TLSv12-X25519 similarity index 100% rename from testdata/Server-TLSv12-X25519-ECDHE-RSA-AES-GCM rename to testdata/Server-TLSv12-X25519 diff --git a/testdata/Server-TLSv13-AES128-SHA256 b/testdata/Server-TLSv13-AES128-SHA256 new file mode 100644 index 0000000..049d2ff --- /dev/null +++ b/testdata/Server-TLSv13-AES128-SHA256 @@ -0,0 +1,90 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 dc 01 00 00 d8 03 03 f8 75 ee c1 65 |............u..e| +00000010 31 d9 dd 36 00 f6 b0 f0 a8 d6 a0 42 da d1 8a a3 |1..6.......B....| +00000020 17 82 1a 44 14 6e bc 43 e0 4b 89 20 88 b8 53 ac |...D.n.C.K. ..S.| +00000030 16 d5 64 58 23 21 20 c4 0b 8d 96 d7 db 59 44 3d |..dX#! ......YD=| +00000040 9e 67 9b f8 a8 21 6c 6d 02 54 a9 b6 00 04 13 01 |.g...!lm.T......| +00000050 00 ff 01 00 00 8b 00 00 00 0e 00 0c 00 00 09 31 |...............1| +00000060 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........| +00000070 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................| +00000080 00 16 00 00 00 17 00 00 00 0d 00 1e 00 1c 04 03 |................| +00000090 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................| +000000a0 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 |...........+....| +000000b0 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 |..-.....3.&.$...| +000000c0 20 be 01 5d e4 e9 b4 66 52 bf 5f 5f ab 82 80 be | ..]...fR.__....| +000000d0 25 13 b3 e7 28 5e 00 a6 b0 a6 d5 f1 f0 20 42 e5 |%...(^....... B.| +000000e0 2e |.| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 88 b8 53 ac |........... ..S.| +00000030 16 d5 64 58 23 21 20 c4 0b 8d 96 d7 db 59 44 3d |..dX#! ......YD=| +00000040 9e 67 9b f8 a8 21 6c 6d 02 54 a9 b6 13 01 00 00 |.g...!lm.T......| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| +00000080 03 03 00 17 ff de 7b 26 44 70 00 05 64 fc 65 e3 |......{&Dp..d.e.| +00000090 23 fd ea 4b b3 d0 e6 80 db 2b 4c 17 03 03 02 6d |#..K.....+L....m| +000000a0 8f 7b 9c 1f b5 a8 26 b3 89 76 13 7f a2 9a 9b e3 |.{....&..v......| +000000b0 b8 06 c3 ff 02 c2 41 8e 29 fd f4 45 43 d3 57 23 |......A.)..EC.W#| +000000c0 71 32 03 31 24 2b 73 ca 7a df e9 79 4e 96 7c d5 |q2.1$+s.z..yN.|.| +000000d0 f1 19 05 11 1c cf 5f 85 30 e5 32 2c 61 2c d2 40 |......_.0.2,a,.@| +000000e0 25 c0 72 2c f8 ef d2 8d d9 4f 81 88 cc 9f c0 71 |%.r,.....O.....q| +000000f0 97 9e 79 f4 33 e8 75 47 1e 5a c1 02 20 48 6f a4 |..y.3.uG.Z.. Ho.| +00000100 41 d6 37 73 07 ad 90 37 80 d7 f9 c1 59 96 9f a8 |A.7s...7....Y...| +00000110 e4 f5 e4 65 99 02 a3 69 95 e1 39 07 fb a8 ac 6d |...e...i..9....m| +00000120 40 fb de 64 05 5b b4 32 ba 09 da 92 0a ba 1e 11 |@..d.[.2........| +00000130 3f d3 bd 6d 68 f7 15 d3 74 60 18 cd 96 04 2f db |?..mh...t`..../.| +00000140 c5 09 f2 05 5f 82 8b 23 65 00 7c b7 d5 ef 1d 0e |...._..#e.|.....| +00000150 3a 08 2b c9 6d 99 9b 9a a6 55 2c df 08 c0 4a b1 |:.+.m....U,...J.| +00000160 b3 69 9c d9 68 49 43 28 8e 00 c5 e1 60 07 25 4d |.i..hIC(....`.%M| +00000170 aa 61 2e 74 82 49 62 e0 a8 f0 53 6c 64 ea fc cc |.a.t.Ib...Sld...| +00000180 84 ab 26 b6 b8 ef 55 cd 3d 34 1a 65 25 8f 76 f4 |..&...U.=4.e%.v.| +00000190 dc 06 9b 67 98 59 c1 37 86 0f 24 34 86 b5 a3 dd |...g.Y.7..$4....| +000001a0 5b d4 c8 04 cb 73 e1 67 bb 66 d7 94 16 eb 3b 73 |[....s.g.f....;s| +000001b0 7e 67 8d 7f bf e9 f9 89 6d d8 6a a9 3c 97 eb 67 |~g......m.j.<..g| +000001c0 f0 6f fa 9b 4d f0 25 25 a2 30 1d 3c 93 14 6e 33 |.o..M.%%.0.<..n3| +000001d0 fa bf 5b 3c c3 cc f4 0e fa 55 e2 20 46 3f 1c b7 |..[<.....U. F?..| +000001e0 9d d3 ec d8 54 18 0b 4a be 45 bd 5e a1 3a f2 e9 |....T..J.E.^.:..| +000001f0 15 b0 15 a4 b4 a6 f5 52 36 9b 6b 18 ce ac 37 ae |.......R6.k...7.| +00000200 76 e6 2c d1 6b 3f 95 eb 37 79 fe ec cc a6 34 4a |v.,.k?..7y....4J| +00000210 27 68 0e d0 80 d8 5c 1c 9c ac aa 02 18 e7 c1 72 |'h....\........r| +00000220 08 52 07 63 04 65 13 53 23 51 ce 0e f4 1d 4f ca |.R.c.e.S#Q....O.| +00000230 51 13 ad 10 1b f3 a4 c3 69 ce c0 ed d1 25 6c 60 |Q.......i....%l`| +00000240 e7 21 9e d7 9f 8b a1 20 61 75 f6 e0 06 c4 dd bb |.!..... au......| +00000250 8e e2 05 86 ef fe 75 0e 47 ae 54 82 e9 32 9b 87 |......u.G.T..2..| +00000260 fb eb e4 14 e3 f0 90 1d 48 72 00 02 53 52 24 47 |........Hr..SR$G| +00000270 98 a1 cc b9 b3 8d ab a7 db b0 f5 83 db 56 a1 ad |.............V..| +00000280 7d 45 e7 5f 6a bd a9 65 87 8c 48 1f de dc b4 ce |}E._j..e..H.....| +00000290 47 7c ec 63 fb 77 f3 5a a0 3b 84 53 cf 8b 73 30 |G|.c.w.Z.;.S..s0| +000002a0 bd 0f ac 5a 9b e8 a1 88 f6 45 96 ca b9 48 c3 be |...Z.....E...H..| +000002b0 8b 7e f1 1a fd 8a 54 9e 5a 76 e7 9a bc 06 7e 04 |.~....T.Zv....~.| +000002c0 bd e1 a1 a3 4d 52 56 3b 64 29 70 87 89 c5 f5 ce |....MRV;d)p.....| +000002d0 1f 65 7d 55 9f 28 32 3e 6b c7 b6 17 0b dd 7e ea |.e}U.(2>k.....~.| +000002e0 ef 7b a0 f0 6f 84 2a 11 93 d5 d8 99 dc ee 17 57 |.{..o.*........W| +000002f0 3f d7 7f a7 da c0 30 77 13 31 60 9c ca 32 67 09 |?.....0w.1`..2g.| +00000300 70 ce 05 0d c8 b6 e1 a2 df e4 f1 3c 67 17 03 03 |p............d...B| +00000370 39 15 00 13 c3 c8 35 66 21 d0 1f 94 0b 21 79 22 |9.....5f!....!y"| +00000380 5b 32 89 d4 81 28 6c c7 55 74 a7 a4 22 62 a9 cb |[2...(l.Ut.."b..| +00000390 76 9f e9 af 55 d5 1f b5 51 f7 40 2c fb 3b 03 30 |v...U...Q.@,.;.0| +000003a0 13 ca a0 79 ba 80 1b 0e 57 3d 84 17 03 03 00 35 |...y....W=.....5| +000003b0 fb 34 92 6a 46 f2 59 1a 94 39 63 d1 9d 58 40 e8 |.4.jF.Y..9c..X@.| +000003c0 f0 bb e7 fe 4d 1c 42 a2 38 9e cd a2 01 1c b6 a7 |....M.B.8.......| +000003d0 e3 9a cb 28 73 5f 8a 1e b3 40 41 80 85 2c 49 54 |...(s_...@A..,IT| +000003e0 3d 13 dc cc 6c |=...l| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 35 c5 aa 6e cd 44 |..........5..n.D| +00000010 2f f6 09 74 33 13 e1 c1 32 6f 94 cd 55 2c 45 88 |/..t3...2o..U,E.| +00000020 f1 f8 51 c7 3e 64 62 e1 8a 48 cc bd c8 ac 91 a3 |..Q.>db..H......| +00000030 90 ea 45 1b 21 52 d4 81 84 88 0d ed a2 86 d4 64 |..E.!R.........d| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e 4c e5 b2 aa 21 9e 56 24 62 da a7 |.....L...!.V$b..| +00000010 af ef 76 b5 8a 9a a1 3b 2e cd e8 68 27 ac 08 e1 |..v....;...h'...| +00000020 c1 37 52 17 03 03 00 13 8e 91 11 5b cf c4 28 e3 |.7R........[..(.| +00000030 a5 ea bb 89 93 fc 94 bc e6 28 32 |.........(2| diff --git a/testdata/Server-TLSv13-AES256-SHA384 b/testdata/Server-TLSv13-AES256-SHA384 new file mode 100644 index 0000000..ab98f48 --- /dev/null +++ b/testdata/Server-TLSv13-AES256-SHA384 @@ -0,0 +1,92 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 dc 01 00 00 d8 03 03 35 42 f3 56 6d |...........5B.Vm| +00000010 cd 58 c6 08 54 f1 6c 64 c5 16 eb 39 b0 d9 1b 22 |.X..T.ld...9..."| +00000020 88 d6 36 a7 70 a8 27 c8 e8 1a 20 20 cc c6 13 bc |..6.p.'... ....| +00000030 f4 3a ed 6a d2 59 ac 02 18 68 e9 80 50 4a a3 df |.:.j.Y...h..PJ..| +00000040 1e 6b 54 0c 85 3a 17 5c 23 7f e0 fc 00 04 13 02 |.kT..:.\#.......| +00000050 00 ff 01 00 00 8b 00 00 00 0e 00 0c 00 00 09 31 |...............1| +00000060 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........| +00000070 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................| +00000080 00 16 00 00 00 17 00 00 00 0d 00 1e 00 1c 04 03 |................| +00000090 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................| +000000a0 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 |...........+....| +000000b0 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 |..-.....3.&.$...| +000000c0 20 de c8 19 7a 66 cb db c3 04 b9 96 f4 5c 2e 52 | ...zf.......\.R| +000000d0 1b 63 0b 11 87 a2 a9 14 f8 54 10 a4 de 5f 9f 13 |.c.......T..._..| +000000e0 09 |.| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 cc c6 13 bc |........... ....| +00000030 f4 3a ed 6a d2 59 ac 02 18 68 e9 80 50 4a a3 df |.:.j.Y...h..PJ..| +00000040 1e 6b 54 0c 85 3a 17 5c 23 7f e0 fc 13 02 00 00 |.kT..:.\#.......| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| +00000080 03 03 00 17 de 82 46 36 68 05 6c 4d 4c 79 da 2a |......F6h.lMLy.*| +00000090 a2 de 70 e3 64 66 79 ba 1d 4f d3 17 03 03 02 6d |..p.dfy..O.....m| +000000a0 66 1a 81 1c 38 21 0d 17 ef 4c 0f ad 52 c1 f3 d5 |f...8!...L..R...| +000000b0 d6 3f ee 05 dd bb ec e3 cd 00 a3 e5 42 90 f6 b8 |.?..........B...| +000000c0 2f d3 95 b8 27 3d 70 63 55 ef 32 e8 55 1a 20 0e |/...'=pcU.2.U. .| +000000d0 c8 47 7b 0c 15 30 86 37 72 25 d7 3b 97 a3 d1 90 |.G{..0.7r%.;....| +000000e0 5c a4 07 e4 b8 3c 3b bc 74 ea 93 d5 a8 30 dc bc |\....<;.t....0..| +000000f0 f9 2b 62 4e 15 84 c6 1c 67 a3 85 e2 8e 71 1d 6a |.+bN....g....q.j| +00000100 8d 26 97 96 ba 08 9d 09 e5 21 fa 4c 72 d9 7a df |.&.......!.Lr.z.| +00000110 39 69 02 82 58 0c ba 79 2a c1 73 d7 97 44 62 56 |9i..X..y*.s..DbV| +00000120 b6 7f 08 91 a3 ed 95 18 84 99 31 f6 64 54 59 bc |..........1.dTY.| +00000130 e0 c6 a2 e1 5f 51 5d 03 fd 5b cf 8f 97 1b 41 4b |...._Q]..[....AK| +00000140 c6 fa 78 06 c4 4d 3c e0 ba d9 3c 5f 5f f8 72 79 |..x..M<...<__.ry| +00000150 53 a0 cc bc aa 92 be 78 15 08 35 36 1f 53 91 89 |S......x..56.S..| +00000160 ec 74 0b b4 9e 97 85 86 d0 15 ff b6 62 9c 89 07 |.t..........b...| +00000170 9f 5d e8 9f 9d 7e b9 17 0e 33 78 06 ea 84 db 9e |.]...~...3x.....| +00000180 90 37 8a db c1 66 e2 a1 72 40 91 c5 49 e6 04 d9 |.7...f..r@..I...| +00000190 35 7c 50 1b 2e d6 63 44 c8 44 f9 e3 72 9c 1c 29 |5|P...cD.D..r..)| +000001a0 63 0f 5e fd a8 ab 09 c8 b8 02 7b 6f 40 35 85 3e |c.^.......{o@5.>| +000001b0 bb ae c9 b2 06 6d 0d 70 7e 65 b9 30 20 8f 54 da |.....m.p~e.0 .T.| +000001c0 9d 55 6e 70 7a a3 b0 15 5a 29 72 51 61 84 57 5c |.Unpz...Z)rQa.W\| +000001d0 f0 65 0a 9b 6e fb a4 d9 22 70 45 de c1 a6 5f 95 |.e..n..."pE..._.| +000001e0 3e 95 c8 3f 6b fa 69 01 ab e8 e0 61 6d 76 7b 5b |>..?k.i....amv{[| +000001f0 b2 33 e9 c1 67 99 33 99 03 75 e3 2c 29 b8 0f 75 |.3..g.3..u.,)..u| +00000200 b8 00 c5 dd cf f3 2e 24 fc 55 cc d5 d4 2d cc f4 |.......$.U...-..| +00000210 f1 59 20 d5 7a c1 ef f5 3b 8b b0 2a 0d c0 2a ad |.Y .z...;..*..*.| +00000220 2c ce c6 91 4d 17 1e 5c e8 d1 98 1e 58 cc d9 42 |,...M..\....X..B| +00000230 42 e9 ff b8 f7 33 f0 af df 8f 1e 7f 52 79 7e 4f |B....3......Ry~O| +00000240 48 e1 21 10 8c aa 7c 84 5d 42 f0 01 73 ff bb e1 |H.!...|.]B..s...| +00000250 de cb 61 a9 d0 9a be 2a cd 18 60 91 0c 20 86 db |..a....*..`.. ..| +00000260 4a e7 08 eb ab af 1b 7a bb 04 f6 49 29 b9 20 65 |J......z...I). e| +00000270 da a6 09 f3 8e 57 b4 5f b0 53 07 86 06 cf 44 de |.....W._.S....D.| +00000280 ba bd 16 ca 88 df 65 50 1a 0d 4b 30 41 ee 04 6a |......eP..K0A..j| +00000290 90 71 27 1b 05 b2 5e 0b 9c 77 ec fb 8a 02 82 18 |.q'...^..w......| +000002a0 34 3e af ea 43 71 4b 9c 12 75 f2 59 32 04 76 87 |4>..CqK..u.Y2.v.| +000002b0 2a ea 31 f6 c8 29 30 41 3f cf 4e c5 2b 38 d0 15 |*.1..)0A?.N.+8..| +000002c0 e6 fa 8d de 2a ec 3e 49 b9 bb 2e 46 ef 8b 8f a4 |....*.>I...F....| +000002d0 e0 96 39 67 d6 2f 56 fb 8b 9c 7c 49 65 3d b3 8e |..9g./V...|Ie=..| +000002e0 1f 48 02 24 53 10 43 49 6d 31 fc d6 99 f6 50 73 |.H.$S.CIm1....Ps| +000002f0 b3 fd b7 57 72 c6 81 a2 df 16 13 0a da 67 8f 3c |...Wr........g.<| +00000300 ff 94 b7 8a 26 0c f2 fe c9 f6 67 a2 f2 17 03 03 |....&.....g.....| +00000310 00 99 1d 59 bb 70 37 f6 a7 72 d1 27 3b 5a d5 1d |...Y.p7..r.';Z..| +00000320 f6 e6 02 84 3c 8b 24 0e 78 ed 88 73 e8 e4 d2 8d |....<.$.x..s....| +00000330 97 c4 cc a3 22 b7 c1 ba 2d df ef d4 84 0d 78 ce |...."...-.....x.| +00000340 70 c9 4f 60 dc fb 13 50 2d d1 52 ba e9 d4 5a 5e |p.O`...P-.R...Z^| +00000350 ed eb 93 ae 99 b8 08 91 61 ee a5 9c 3e 63 07 ed |........a...>c..| +00000360 17 b1 29 5f 03 ae 5b 0d a7 0a 4a 3a f5 6b 9c 6f |..)_..[...J:.k.o| +00000370 28 ad 16 6d f5 31 17 87 f5 10 b5 53 13 c8 a2 a1 |(..m.1.....S....| +00000380 7a 9a 12 10 04 0b e7 b6 c7 3b 55 25 05 d3 0c 5e |z........;U%...^| +00000390 32 60 bf 43 e6 62 d0 cc cd a6 61 9b 19 dc 83 34 |2`.C.b....a....4| +000003a0 9f f2 2d 8f ca 9e 96 73 4d e9 52 17 03 03 00 45 |..-....sM.R....E| +000003b0 28 21 db ab 2f da c8 33 af a5 44 5b f4 2f 18 bd |(!../..3..D[./..| +000003c0 72 74 6d a7 c0 16 fb 13 de 8b d4 f8 03 8f ba 28 |rtm............(| +000003d0 06 89 08 0f 82 14 9b 6d 9b 61 7c 6c c3 de 76 2e |.......m.a|l..v.| +000003e0 f3 2b ff db 2d bc 6f 84 75 19 b3 df eb a1 a7 69 |.+..-.o.u......i| +000003f0 a7 a7 70 27 48 |..p'H| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 45 5b 1d b7 49 6d |..........E[..Im| +00000010 d0 f1 9a 16 cc e8 08 84 c0 80 23 1f 4f fc 15 b1 |..........#.O...| +00000020 20 28 d0 65 1b 58 8b 67 fa 30 c2 37 86 ac b2 47 | (.e.X.g.0.7...G| +00000030 d6 b8 ac 8a 69 bc a3 09 10 c8 47 15 54 b3 a4 79 |....i.....G.T..y| +00000040 1f 12 2d c1 ca e1 ce 54 c0 ce e5 fc 61 f2 7c 07 |..-....T....a.|.| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e ba d7 68 39 2c 76 30 fb 0e 36 47 |.......h9,v0..6G| +00000010 d9 b8 7c 2d e2 1c fd 13 86 9b 2c 07 ab 66 03 2d |..|-......,..f.-| +00000020 1e 7d 69 17 03 03 00 13 eb 7b d8 47 8a 5e 53 83 |.}i......{.G.^S.| +00000030 17 87 b3 aa c5 80 71 ba df 1b 60 |......q...`| diff --git a/testdata/Server-TLSv13-ALPN b/testdata/Server-TLSv13-ALPN new file mode 100644 index 0000000..c78bf3e --- /dev/null +++ b/testdata/Server-TLSv13-ALPN @@ -0,0 +1,94 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 f8 01 00 00 f4 03 03 c6 52 45 ca ae |............RE..| +00000010 9b 43 49 d4 01 e2 af b0 e8 9b f4 9b f6 ef 38 c6 |.CI...........8.| +00000020 71 9f ed 84 a6 2c 01 92 1f 3f 1b 20 5b cb 8a 16 |q....,...?. [...| +00000030 b3 d2 a8 19 41 d5 0c 6a fa 39 0a b2 6d 65 18 d1 |....A..j.9..me..| +00000040 67 88 16 6b e0 9b e4 7a d2 95 f9 93 00 08 13 02 |g..k...z........| +00000050 13 03 13 01 00 ff 01 00 00 a3 00 00 00 0e 00 0c |................| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| +00000080 00 19 00 18 00 23 00 00 00 10 00 10 00 0e 06 70 |.....#.........p| +00000090 72 6f 74 6f 32 06 70 72 6f 74 6f 31 00 16 00 00 |roto2.proto1....| +000000a0 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| +000000b0 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| +000000c0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| +000000d0 02 01 01 00 33 00 26 00 24 00 1d 00 20 d8 72 8f |....3.&.$... .r.| +000000e0 a6 3b a1 1c f7 73 ea b0 d5 85 03 31 46 d6 6b 8b |.;...s.....1F.k.| +000000f0 e0 e6 e0 e6 20 09 a7 f8 a2 fd d1 a7 6b |.... .......k| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 5b cb 8a 16 |........... [...| +00000030 b3 d2 a8 19 41 d5 0c 6a fa 39 0a b2 6d 65 18 d1 |....A..j.9..me..| +00000040 67 88 16 6b e0 9b e4 7a d2 95 f9 93 13 02 00 00 |g..k...z........| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| +00000080 03 03 00 24 9b af d8 42 6e 75 12 c4 10 c3 42 72 |...$...Bnu....Br| +00000090 de e6 50 f9 2b 15 68 6d b1 32 2f fb 63 b1 80 1a |..P.+.hm.2/.c...| +000000a0 f0 b3 3e 22 c9 d4 ed ba 17 03 03 02 6d c9 fc b7 |..>"........m...| +000000b0 3c 02 17 dc 26 56 b6 1f 3d 2c 07 0e 96 52 a8 9f |<...&V..=,...R..| +000000c0 a2 2a 6e e9 c7 93 2e c7 98 af 9b 63 99 25 14 f1 |.*n........c.%..| +000000d0 45 29 63 26 35 62 af d7 37 f3 33 03 2e a8 02 f2 |E)c&5b..7.3.....| +000000e0 a4 a5 9e 85 19 ad a8 20 81 85 6a 19 c5 bb 8f d7 |....... ..j.....| +000000f0 ea 4d af ee 9d 95 78 26 5a 24 da ee 5b 96 97 34 |.M....x&Z$..[..4| +00000100 7c e6 2c c1 b0 e8 d3 3a 7f 4c b5 c9 44 ad d5 35 ||.,....:.L..D..5| +00000110 99 b2 99 d9 c3 10 97 03 ac fe c9 6d cf 1a c0 6a |...........m...j| +00000120 ec d0 b7 ed b8 79 d6 48 8b eb df 0b 42 87 8e 50 |.....y.H....B..P| +00000130 9a c9 47 e7 e3 6a c6 03 85 8e b4 57 58 b2 aa 5f |..G..j.....WX.._| +00000140 53 8d 00 43 7e 36 4a 9b 2a 0a b7 45 e5 8b 4c 71 |S..C~6J.*..E..Lq| +00000150 62 b3 07 e1 1d 07 16 7b 4b c7 4b ac b3 e0 8b 4b |b......{K.K....K| +00000160 ec 3c 48 2f be eb 32 f6 f5 fa 24 86 76 e6 df ec |.r{.....S...|5| +000001f0 54 38 8a 0b 11 35 90 02 3c 2b ef 3c 9c 81 80 0b |T8...5..<+.<....| +00000200 9e a5 5a d0 07 37 ec b2 4b c9 2d 8a 22 45 20 60 |..Z..7..K.-."E `| +00000210 71 58 e0 a0 99 40 06 62 d4 19 cb 9d 62 65 a8 d6 |qX...@.b....be..| +00000220 dd bd 82 c9 01 ba ce 17 04 d2 09 3a 6b f6 12 9c |...........:k...| +00000230 41 1d 1f f9 f5 42 93 36 70 0b 3a ba 49 f9 54 dc |A....B.6p.:.I.T.| +00000240 d2 30 02 7d 04 0b 4a 3b 12 37 4e a7 96 8c 8b 8c |.0.}..J;.7N.....| +00000250 2e a7 84 78 22 18 d4 2d 93 0a da e1 97 bc ad b5 |...x"..-........| +00000260 2b 81 39 8e d3 5e 81 a1 51 c7 3e 40 3a fb ce 89 |+.9..^..Q.>@:...| +00000270 cf f3 dc 3e 18 0f f1 80 19 00 25 ca 5d e5 0e 0d |...>......%.]...| +00000280 76 4f de 4c eb 92 fa bf 4c 72 01 1d 26 38 88 f1 |vO.L....Lr..&8..| +00000290 9f d1 5f e4 ca e8 19 db dc f3 ba 0a 14 d4 63 b3 |.._...........c.| +000002a0 04 f4 4f ea 1c 0e 93 89 ad 6a 00 e0 64 fd 22 ae |..O......j..d.".| +000002b0 a7 58 dd e8 73 1e 89 b5 ed de ae b3 1e fb 54 1e |.X..s.........T.| +000002c0 70 ab 1e 38 2f bc 1d 16 3b e0 51 9f d9 dd 28 f2 |p..8/...;.Q...(.| +000002d0 2c 24 80 e7 76 b9 d2 25 53 5e c0 df 07 19 0a 8c |,$..v..%S^......| +000002e0 13 ed cd d7 0f dc 4d 92 66 49 41 b1 1f a8 92 c3 |......M.fIA.....| +000002f0 80 26 44 4f f8 49 86 b5 28 1e 3c 0c 1f 42 b9 ae |.&DO.I..(.<..B..| +00000300 27 57 f1 46 d3 61 23 8e 39 cf 50 ad fb 10 ba 7d |'W.F.a#.9.P....}| +00000310 a0 94 c5 b3 6e ad a1 15 71 00 17 03 03 00 99 87 |....n...q.......| +00000320 b6 bb fc 79 5f 53 43 73 bc 7f 0a 49 78 70 48 61 |...y_SCs...IxpHa| +00000330 22 e8 a5 f2 64 55 67 8b 68 de f4 12 64 52 2b 22 |"...dUg.h...dR+"| +00000340 e4 55 53 94 30 a4 7e 10 36 fc 98 9f 0a 32 df 02 |.US.0.~.6....2..| +00000350 b5 bf 58 34 cc 30 31 7b b8 79 54 56 38 48 94 1f |..X4.01{.yTV8H..| +00000360 df 98 b9 c6 dc 29 3c 94 12 ef 47 98 91 0a 81 44 |.....)<...G....D| +00000370 93 f4 96 a2 b2 05 09 d9 6e 25 9f 59 17 0f 41 8b |........n%.Y..A.| +00000380 f7 5c 81 e0 71 25 eb 24 eb bd cf 9a d9 24 8d c6 |.\..q%.$.....$..| +00000390 04 4e 10 0f 92 41 59 df 5c 77 c4 4d c8 30 e0 70 |.N...AY.\w.M.0.p| +000003a0 0c 5d 1b 49 b4 ea 06 bd c5 de 1d b5 19 63 46 72 |.].I.........cFr| +000003b0 98 72 48 e0 aa 76 6c d8 17 03 03 00 45 72 a8 f6 |.rH..vl.....Er..| +000003c0 c0 00 8a 52 91 57 bf 8d 63 87 31 df 97 17 af 41 |...R.W..c.1....A| +000003d0 88 44 19 1e 32 b9 32 d5 16 92 1b c7 6b 6e 29 8c |.D..2.2.....kn).| +000003e0 cc 42 59 05 8d 76 e4 4c 7e 46 5f 42 84 0d 28 37 |.BY..v.L~F_B..(7| +000003f0 15 53 d9 fc de 4b 04 d4 9a 14 6e 9f e8 c9 20 13 |.S...K....n... .| +00000400 00 c4 |..| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 45 ac 55 3c 0a 23 |..........E.U<.#| +00000010 d7 29 fa 16 c2 df a7 42 9e 15 7e 93 a7 0a 31 79 |.).....B..~...1y| +00000020 38 96 95 4a 0b 61 d8 f5 bb e5 51 a8 c3 ea 2b 92 |8..J.a....Q...+.| +00000030 a2 b0 9c 59 e1 52 b9 80 26 1b 84 c3 1a 68 f4 40 |...Y.R..&....h.@| +00000040 82 45 42 47 2f c7 3d ba 77 88 8b 5c 3b 03 a8 a7 |.EBG/.=.w..\;...| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e 86 2e cf 5b 32 e1 e0 db 51 51 55 |........[2...QQU| +00000010 ef c3 05 87 ea 90 a8 37 8c 28 5d da 9f 64 70 33 |.......7.(]..dp3| +00000020 8f 94 f0 17 03 03 00 13 ba 81 00 ec 23 57 05 42 |............#W.B| +00000030 aa f4 ca b2 4e 98 d0 22 3b fc 38 |....N..";.8| diff --git a/testdata/Server-TLSv13-ALPN-NoMatch b/testdata/Server-TLSv13-ALPN-NoMatch new file mode 100644 index 0000000..8d524a9 --- /dev/null +++ b/testdata/Server-TLSv13-ALPN-NoMatch @@ -0,0 +1,93 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 f8 01 00 00 f4 03 03 7d 4e fc 70 f4 |...........}N.p.| +00000010 ca f8 bc d4 12 5d 8f 66 37 a0 c8 30 1a 4d 1b 4f |.....].f7..0.M.O| +00000020 0e 0b 86 1a 16 6d 77 2f ff eb a8 20 09 1f f5 06 |.....mw/... ....| +00000030 2c 4d 55 28 be dd 24 02 70 4c 0d 73 c4 c0 a1 d8 |,MU(..$.pL.s....| +00000040 b3 f0 13 26 76 df 47 bd 2e 27 1d 81 00 08 13 02 |...&v.G..'......| +00000050 13 03 13 01 00 ff 01 00 00 a3 00 00 00 0e 00 0c |................| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| +00000080 00 19 00 18 00 23 00 00 00 10 00 10 00 0e 06 70 |.....#.........p| +00000090 72 6f 74 6f 32 06 70 72 6f 74 6f 31 00 16 00 00 |roto2.proto1....| +000000a0 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| +000000b0 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| +000000c0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| +000000d0 02 01 01 00 33 00 26 00 24 00 1d 00 20 a9 8a 27 |....3.&.$... ..'| +000000e0 a2 7c b7 26 1d c6 ad f7 3a d0 97 81 ac 05 6c 10 |.|.&....:.....l.| +000000f0 a0 0d 3c 96 24 ce 55 ef 43 76 87 d4 31 |..<.$.U.Cv..1| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 09 1f f5 06 |........... ....| +00000030 2c 4d 55 28 be dd 24 02 70 4c 0d 73 c4 c0 a1 d8 |,MU(..$.pL.s....| +00000040 b3 f0 13 26 76 df 47 bd 2e 27 1d 81 13 02 00 00 |...&v.G..'......| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| +00000080 03 03 00 17 74 38 f2 8b ac 52 87 0d e3 a9 77 eb |....t8...R....w.| +00000090 af 7f 53 3e 5c 3c cf 49 0a f3 c1 17 03 03 02 6d |..S>\<.I.......m| +000000a0 1f aa 15 fd 9d 05 77 15 12 24 2d ca 2f 93 18 44 |......w..$-./..D| +000000b0 7a 7c e3 c2 57 33 62 fe dc 95 f7 67 c8 08 95 77 |z|..W3b....g...w| +000000c0 1d f3 17 51 80 bc d9 3a 5d f0 a1 f9 fb 4b 21 00 |...Q...:]....K!.| +000000d0 7a 11 2a 51 3d 83 45 ef 62 ce 31 c2 98 9e 20 95 |z.*Q=.E.b.1... .| +000000e0 66 31 a6 3c 37 3b 91 16 d9 3e 37 0e e4 99 a6 a5 |f1.<7;...>7.....| +000000f0 5c 71 42 79 7d de 3c 9c 51 66 ce 2d 6e 1b e4 1d |\qBy}.<.Qf.-n...| +00000100 d5 ee cd 2c ed f9 94 f9 46 9d d1 91 4d 1c 7f dc |...,....F...M...| +00000110 17 a6 5a 42 87 ee 7a bd f3 6a d4 aa 44 b8 97 6d |..ZB..z..j..D..m| +00000120 a7 a3 9f 2d 14 d1 6d 64 e5 8a ed cf c9 a2 da a9 |...-..md........| +00000130 1b f5 83 d4 c8 aa 53 6c e9 5a ee e3 c6 c3 41 df |......Sl.Z....A.| +00000140 a1 17 44 17 7f ca f0 a8 ac 87 fc 2e 6d ba 0f 85 |..D.........m...| +00000150 d4 6d 58 99 8c 19 c1 0a b1 d8 9f 2c 93 36 e3 d3 |.mX........,.6..| +00000160 b6 0e 16 f1 8f a5 04 ee 3a 4f c5 fb 4c 7d d9 1c |........:O..L}..| +00000170 d4 d0 dd b5 59 9e 11 df 46 6c 6c cb f6 76 7a 03 |....Y...Fll..vz.| +00000180 b3 3e a2 45 38 03 56 e6 5a 23 ff 83 ee 0e d1 51 |.>.E8.V.Z#.....Q| +00000190 cc 94 51 82 6c 1a 8b 15 7e bd cd 09 44 72 42 65 |..Q.l...~...DrBe| +000001a0 45 0c 6c ff d7 4d 32 8a b1 9c 3f fa c0 8e 9e 86 |E.l..M2...?.....| +000001b0 5c d7 23 29 bf dd 40 fa d6 db 25 cb 63 74 33 15 |\.#)..@...%.ct3.| +000001c0 23 79 ab 22 39 e2 9e 41 89 01 9f 2e 58 8c 4b fe |#y."9..A....X.K.| +000001d0 b9 a5 cd 5e df be b2 d1 36 9e 8a c5 3f c4 53 db |...^....6...?.S.| +000001e0 29 95 33 6f 24 dd 84 5d da c2 5c 2c 1d cc de 40 |).3o$..]..\,...@| +000001f0 6c e7 07 a5 e3 95 f9 08 62 75 db dd ca e1 4c ab |l.......bu....L.| +00000200 12 3a 16 14 4a b6 78 58 42 81 91 8e b9 48 e0 a3 |.:..J.xXB....H..| +00000210 e4 1e 5f 18 e1 cf 3b 2f b3 2d 81 4c 4c b5 e4 24 |.._...;/.-.LL..$| +00000220 2c f0 e6 b7 43 9c e2 e4 25 88 5d 07 be e3 7b e5 |,...C...%.]...{.| +00000230 d5 7f 2a ad 28 72 54 92 73 19 39 6e f4 d9 3e 13 |..*.(rT.s.9n..>.| +00000240 f3 ed 37 66 22 8a 89 df 7b 99 b3 34 18 0f 7a 76 |..7f"...{..4..zv| +00000250 86 d4 da bd fd b5 f9 75 70 51 de e9 28 75 72 00 |.......upQ..(ur.| +00000260 f5 3f 11 f7 15 01 7e b3 bd b5 a2 05 33 dc 9d 69 |.?....~.....3..i| +00000270 26 f3 cb 45 a8 68 37 0b c6 6f b1 ca 3c 52 01 3c |&..E.h7..o..*h...| +000002a0 c8 83 75 75 d1 95 84 83 c9 e1 2d 0e 1c 37 9f 14 |..uu......-..7..| +000002b0 3a 78 86 01 c6 bb 04 eb 68 c3 26 ed 96 b7 49 43 |:x......h.&...IC| +000002c0 a5 ae 54 c0 d3 23 40 08 26 2f 3a 7e 63 04 2f 62 |..T..#@.&/:~c./b| +000002d0 3e ce 3d b6 70 bb 79 c6 c9 dc 14 24 de 02 96 08 |>.=.p.y....$....| +000002e0 d9 64 a2 c6 26 29 9d 58 a1 85 63 16 db a6 8d 3b |.d..&).X..c....;| +000002f0 0b 1a 15 9c 13 cb 8c cb ff 22 aa 59 da bd 81 78 |.........".Y...x| +00000300 90 f4 86 52 ad ae fc e4 1c ec ff 08 47 17 03 03 |...R........G...| +00000310 00 99 e6 54 8e c8 05 45 8c cb d1 44 df 88 d8 7d |...T...E...D...}| +00000320 1b 07 e1 06 d1 2b c4 fb 75 dd 63 4c b0 14 ee a4 |.....+..u.cL....| +00000330 7f 05 f3 e6 76 04 04 0b 0a 31 23 27 b1 ee 65 36 |....v....1#'..e6| +00000340 50 d9 cb 12 90 a8 6c 73 37 91 3a 57 fa fd 80 79 |P.....ls7.:W...y| +00000350 17 42 f9 27 36 e3 8a 75 3d 95 d6 17 a3 4e 73 5c |.B.'6..u=....Ns\| +00000360 4b e8 fc 58 d3 56 a2 e2 32 26 a0 2d 69 24 31 1e |K..X.V..2&.-i$1.| +00000370 6a 83 8e 5f 3f c4 9f d9 8b f8 59 3e ec 27 d0 96 |j.._?.....Y>.'..| +00000380 6f d6 28 d1 54 e6 f5 14 b4 55 67 de 90 ee f7 ef |o.(.T....Ug.....| +00000390 69 03 b7 d7 80 bd a9 ee a5 30 89 d6 5b ce 07 9e |i........0..[...| +000003a0 0a 09 03 90 4e 5d 75 8c 02 f2 7d 17 03 03 00 45 |....N]u...}....E| +000003b0 43 81 6f 9c bf c2 3c 14 23 f4 4b 9e 1e 17 0e d4 |C.o...<.#.K.....| +000003c0 bd 3a eb 33 34 e3 59 ea 5c ec 9a 5d 86 27 d8 51 |.:.34.Y.\..].'.Q| +000003d0 1f 0c bb d1 80 e0 2e 41 e5 7d 0a 50 df 26 68 cb |.......A.}.P.&h.| +000003e0 d5 83 aa 94 e9 1a c3 0b ab 0d bd 13 b3 55 d8 89 |.............U..| +000003f0 e1 e2 3b fe 01 |..;..| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 45 ac 36 2d 53 3e |..........E.6-S>| +00000010 08 c7 41 f3 da 40 ad d6 03 05 c1 b5 71 86 82 df |..A..@......q...| +00000020 6a 84 9e df f4 c5 7f 52 29 b0 a5 97 45 69 6e 6a |j......R)...Einj| +00000030 69 1c 91 32 bc 5b e9 62 b1 b8 af 9b 48 06 bb 37 |i..2.[.b....H..7| +00000040 99 45 f5 a9 cd 25 5a 41 c3 49 10 36 af 4a 56 90 |.E...%ZA.I.6.JV.| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e b4 23 d9 cd 9b 2a a8 76 07 c0 1e |......#...*.v...| +00000010 54 bb 7f 63 d9 31 2f e8 7b 91 dc b6 c9 3c a1 48 |T..c.1/.{....<.H| +00000020 2b 82 11 17 03 03 00 13 ae 1b 32 f4 2f 9c 1d 8c |+.........2./...| +00000030 98 4e 1d 80 68 f0 e2 a9 25 db f7 |.N..h...%..| diff --git a/testdata/Server-TLSv13-CHACHA20-SHA256 b/testdata/Server-TLSv13-CHACHA20-SHA256 new file mode 100644 index 0000000..4aa6d6b --- /dev/null +++ b/testdata/Server-TLSv13-CHACHA20-SHA256 @@ -0,0 +1,90 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 dc 01 00 00 d8 03 03 1d 2a 53 ec f5 |............*S..| +00000010 20 a6 22 2e 35 9d c4 a8 9b f0 0f 89 70 ef af 2b | .".5.......p..+| +00000020 3c 8c 6b 8a 44 74 71 8f e2 b6 f5 20 34 ab 1d 74 |<.k.Dtq.... 4..t| +00000030 cc cf 78 1f 9a 92 0b 7b 77 6a 67 16 fa 45 d2 d8 |..x....{wjg..E..| +00000040 1f c2 15 c3 91 f7 b6 1f 01 62 3e d1 00 04 13 03 |.........b>.....| +00000050 00 ff 01 00 00 8b 00 00 00 0e 00 0c 00 00 09 31 |...............1| +00000060 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........| +00000070 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................| +00000080 00 16 00 00 00 17 00 00 00 0d 00 1e 00 1c 04 03 |................| +00000090 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................| +000000a0 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 |...........+....| +000000b0 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 |..-.....3.&.$...| +000000c0 20 71 d3 74 f3 4c 75 f7 29 4d 65 5b 13 b4 ea 4a | q.t.Lu.)Me[...J| +000000d0 ad 25 d2 5c 36 e8 42 f5 1d 4e b3 3e 7c a0 87 48 |.%.\6.B..N.>|..H| +000000e0 29 |)| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 34 ab 1d 74 |........... 4..t| +00000030 cc cf 78 1f 9a 92 0b 7b 77 6a 67 16 fa 45 d2 d8 |..x....{wjg..E..| +00000040 1f c2 15 c3 91 f7 b6 1f 01 62 3e d1 13 03 00 00 |.........b>.....| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| +00000080 03 03 00 17 ed 03 2b 35 ba 39 86 ae ee 50 9e 71 |......+5.9...P.q| +00000090 f6 0a 49 2d 6e cc f5 0a 25 00 fc 17 03 03 02 6d |..I-n...%......m| +000000a0 dd 4a 14 ec 14 0e 41 8c 98 3b 02 df cb 33 f1 33 |.J....A..;...3.3| +000000b0 49 04 d2 bb 10 a1 b6 bb 92 17 09 19 4d 1e 18 03 |I...........M...| +000000c0 0c 97 c3 f9 e1 35 fd 5e 09 58 07 e3 15 8c ca 6b |.....5.^.X.....k| +000000d0 19 7a e1 ac 17 84 f8 f3 1d f4 1c f7 53 d6 fc 54 |.z..........S..T| +000000e0 5a c5 a7 4b 67 58 b9 63 85 a8 12 e4 3e 7a 87 7e |Z..KgX.c....>z.~| +000000f0 d6 b0 7f b9 70 b8 6f 57 23 7c 03 69 61 0a 3e bb |....p.oW#|.ia.>.| +00000100 65 b7 e5 48 4c c5 a3 ae 34 46 cf a4 b1 5b a5 26 |e..HL...4F...[.&| +00000110 5b 50 01 0b b7 36 30 06 46 b1 3e ae f7 72 2b 44 |[P...60.F.>..r+D| +00000120 7b e7 4d d0 18 c0 07 53 d4 73 80 02 cf 10 1b c9 |{.M....S.s......| +00000130 10 a8 29 81 c4 89 78 cf ad 3a 90 92 e3 f2 ac 9c |..)...x..:......| +00000140 88 64 f6 1f 96 bf f7 a8 f4 a1 ec 26 52 a7 ab 3b |.d.........&R..;| +00000150 0c 33 0f 46 6b cf c0 07 80 ca 46 61 28 46 9e 5a |.3.Fk.....Fa(F.Z| +00000160 22 98 d7 cf 1f b8 c5 b4 d1 14 3f 71 0b e8 a3 3f |".........?q...?| +00000170 8a 69 a4 1c a7 5a e4 e0 a0 d8 ee e4 5c ef 6b 55 |.i...Z......\.kU| +00000180 55 e5 4e 6f 75 79 d0 53 b8 21 22 1d bf 86 65 15 |U.Nouy.S.!"...e.| +00000190 7a 24 7f 7c 4b 82 84 6d aa 08 9e 45 1a 5f 2b 34 |z$.|K..m...E._+4| +000001a0 66 f2 92 cc f0 7a 7a e5 d1 2a c2 2e cb 78 c5 aa |f....zz..*...x..| +000001b0 18 87 d3 45 6d 39 39 25 3c f3 aa db 6c 10 8c b4 |...Em99%<...l...| +000001c0 f7 f8 ea 49 5f 8a 5b 20 4d f2 e6 53 11 0f a5 3e |...I_.[ M..S...>| +000001d0 ab 0e 0f 6b fb 5f 43 cb 9f ed 0a f1 5e 21 0f 7c |...k._C.....^!.|| +000001e0 86 4f e0 62 cb 2e be 49 2a c0 3b 53 92 8c 58 c2 |.O.b...I*.;S..X.| +000001f0 53 82 bc 1b 84 e1 5f 85 2d 9e 5f 85 9f 4c 31 7d |S....._.-._..L1}| +00000200 20 ad a4 07 4f 08 06 7b e8 47 52 cf a0 4e e5 0f | ...O..{.GR..N..| +00000210 ff d2 5b f6 f2 a0 5d 08 92 98 f0 d9 a0 e9 4f cd |..[...].......O.| +00000220 c9 bb de d9 a0 b5 e1 ec a9 60 7b a9 37 2f 5c 77 |.........`{.7/\w| +00000230 60 62 de dd f8 e1 63 4e 0b 7f 92 ff 81 96 02 ab |`b....cN........| +00000240 86 e4 f8 4e 52 60 91 cf 75 fc 1d c5 b0 74 c2 06 |...NR`..u....t..| +00000250 15 4e be 1b f8 1c 14 ba 8c 2f 0b ab a2 cc 0e 9a |.N......./......| +00000260 ce fc 05 e9 21 e8 08 55 61 61 8e 98 c8 73 63 2c |....!..Uaa...sc,| +00000270 97 71 2e 74 a1 b1 42 dc fe 6e 26 0f 5b 9d 13 96 |.q.t..B..n&.[...| +00000280 47 03 5f 46 4b ae 81 d0 a0 d1 a7 a3 10 de e6 c6 |G._FK...........| +00000290 6c bc 01 65 04 6f e5 6c 35 72 4c 65 74 a9 2c b0 |l..e.o.l5rLet.,.| +000002a0 10 75 7b d5 c1 1a f0 f8 19 f5 7a 7e 28 f2 53 9d |.u{.......z~(.S.| +000002b0 a0 c4 c9 e3 e4 80 71 bc 5d cc 5f 3d 7b 2d 5f f0 |......q.]._={-_.| +000002c0 51 94 8c d8 8e 0f f6 b8 29 44 90 c3 99 9a dc de |Q.......)D......| +000002d0 b6 81 ac 65 70 2b ad 1d df 47 43 a5 a0 b6 51 6f |...ep+...GC...Qo| +000002e0 0e 29 de 9c cf b0 89 93 94 08 d8 f3 a5 05 b9 d3 |.)..............| +000002f0 a0 bd 92 81 82 91 89 2d 4e df 13 98 09 67 31 c1 |.......-N....g1.| +00000300 4d 28 d0 60 28 dc ae 40 c8 0f 33 d8 ac 17 03 03 |M(.`(..@..3.....| +00000310 00 99 22 21 e8 35 f9 9c 29 9d 3a aa 00 ca 0c a7 |.."!.5..).:.....| +00000320 d1 62 94 94 44 81 8f e0 56 13 29 5f c4 a9 2b ac |.b..D...V.)_..+.| +00000330 8a 67 fe 5f 32 4c 40 00 36 db ff 03 41 67 55 9f |.g._2L@.6...AgU.| +00000340 b5 a8 cc 52 89 0d 08 23 af c5 0f 02 70 3a 62 9f |...R...#....p:b.| +00000350 91 82 cc 1d 6f 57 d3 2b f6 3f 75 f3 65 6b c2 ca |....oW.+.?u.ek..| +00000360 e9 5f 0d 1c 5a 31 8f 8f f8 09 8f a8 4a 27 64 f7 |._..Z1......J'd.| +00000370 18 2d fb 29 09 cd 07 fb 7c 32 47 4e 8d e2 e0 47 |.-.)....|2GN...G| +00000380 60 76 f8 9e 2c 81 71 09 ac 7d 3a 10 30 27 07 06 |`v..,.q..}:.0'..| +00000390 c9 7c 9d 57 5c c2 83 be bf 67 28 70 15 4a fa b6 |.|.W\....g(p.J..| +000003a0 56 8b 15 a8 a6 c8 65 ab 8c a4 03 17 03 03 00 35 |V.....e........5| +000003b0 c6 0c 8f e5 57 46 d9 de 3a 13 7e 80 a9 06 76 e7 |....WF..:.~...v.| +000003c0 a7 6d 5d 0e d1 21 dc 20 8f 2c df 86 cf cd e6 6e |.m]..!. .,.....n| +000003d0 71 14 69 a5 63 a1 38 80 d4 28 20 76 31 37 c6 be |q.i.c.8..( v17..| +000003e0 d9 65 b9 0b 74 |.e..t| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 35 65 9c 9f 5e ef |..........5e..^.| +00000010 8f 90 79 3f a5 ff cb 00 55 e9 2d 94 62 d4 04 72 |..y?....U.-.b..r| +00000020 0e 93 d1 5b cf 53 80 0b 72 d1 b4 e9 09 0b 9a 0f |...[.S..r.......| +00000030 10 81 27 bf c5 d2 6c 5a 99 f5 04 b5 3e a7 ab 77 |..'...lZ....>..w| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e 24 3a 1a 51 aa f2 9e 47 34 90 c7 |.....$:.Q...G4..| +00000010 d9 cc 02 40 89 15 7b 47 b6 45 4a 8b fb 8b b5 1a |...@..{G.EJ.....| +00000020 43 4c 1e 17 03 03 00 13 01 41 14 2e 85 26 f4 d0 |CL.......A...&..| +00000030 da a5 91 14 52 66 0c 7d 26 82 d0 |....Rf.}&..| diff --git a/testdata/Server-TLSv13-ECDHE-ECDSA-AES b/testdata/Server-TLSv13-ECDHE-ECDSA-AES new file mode 100644 index 0000000..152eb24 --- /dev/null +++ b/testdata/Server-TLSv13-ECDHE-ECDSA-AES @@ -0,0 +1,86 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 dc 01 00 00 d8 03 03 34 c0 8c 76 f5 |...........4..v.| +00000010 c3 94 de 34 58 f6 fe 27 51 28 2d cf be 74 61 8e |...4X..'Q(-..ta.| +00000020 5c 25 14 22 1b b2 70 4b c6 a5 e7 20 f5 d9 d5 d1 |\%."..pK... ....| +00000030 5c 24 ab df 36 f1 c8 b9 4a 66 aa 52 d3 6c 3b 07 |\$..6...Jf.R.l;.| +00000040 53 e2 e3 a5 6a bf ad 25 1e 93 06 40 00 04 13 01 |S...j..%...@....| +00000050 00 ff 01 00 00 8b 00 00 00 0e 00 0c 00 00 09 31 |...............1| +00000060 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........| +00000070 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................| +00000080 00 16 00 00 00 17 00 00 00 0d 00 1e 00 1c 04 03 |................| +00000090 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................| +000000a0 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 |...........+....| +000000b0 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 |..-.....3.&.$...| +000000c0 20 09 5c dd 14 86 ba fa c5 6f ab b8 50 d5 1b 6f | .\......o..P..o| +000000d0 1b 49 12 c2 d6 e7 a0 8c ca 95 7e 5d 62 ab 5a c8 |.I........~]b.Z.| +000000e0 73 |s| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 f5 d9 d5 d1 |........... ....| +00000030 5c 24 ab df 36 f1 c8 b9 4a 66 aa 52 d3 6c 3b 07 |\$..6...Jf.R.l;.| +00000040 53 e2 e3 a5 6a bf ad 25 1e 93 06 40 13 01 00 00 |S...j..%...@....| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| +00000080 03 03 00 17 57 c3 ea 50 c5 f5 d6 1f 4f e9 7e 30 |....W..P....O.~0| +00000090 79 5b 6e 09 78 a7 f8 0d a4 20 3d 17 03 03 02 22 |y[n.x.... =...."| +000000a0 78 32 99 7b 8b 67 07 bc bf 86 bc 4e 6d ba 2b 2e |x2.{.g.....Nm.+.| +000000b0 ba c8 bb d4 c5 10 dc 5a 9a 38 13 38 92 6f 8b 8c |.......Z.8.8.o..| +000000c0 73 8e 97 5e 39 3e 4e 93 b7 76 c4 c7 75 67 43 c9 |s..^9>N..v..ugC.| +000000d0 80 a3 bb 88 71 e4 46 e2 dd 17 df a1 ba b8 af 2f |....q.F......../| +000000e0 47 e8 16 a5 04 08 69 66 34 f2 22 c9 28 06 70 b5 |G.....if4.".(.p.| +000000f0 f7 c8 90 61 f4 77 32 7a f7 e5 41 d2 dc e7 13 9b |...a.w2z..A.....| +00000100 41 09 df 97 e2 9a 31 33 ef 48 48 2c 64 d9 9c 11 |A.....13.HH,d...| +00000110 e7 13 2b 1e 6d 3f 73 20 c7 5a 2f 2b aa bd f6 29 |..+.m?s .Z/+...)| +00000120 49 c1 de 95 65 dc 7c a4 de d8 9b 80 1c 38 3b a4 |I...e.|......8;.| +00000130 0c 7b 31 9a 27 b4 6f 38 2a 58 15 82 97 f0 99 bd |.{1.'.o8*X......| +00000140 d0 61 ca c9 2f 3f 71 8f 29 a6 ed 74 32 73 10 38 |.a../?q.)..t2s.8| +00000150 c8 33 ba a0 9b c3 27 59 20 24 15 e5 02 27 b4 1c |.3....'Y $...'..| +00000160 62 72 9c 83 da 93 9e 03 a1 4a d3 50 df d0 5c 78 |br.......J.P..\x| +00000170 74 58 63 c7 f6 3b 6e ba da 13 5c 66 6e 3e cb d5 |tXc..;n...\fn>..| +00000180 7f b1 ed 62 11 60 a1 ed 20 d8 3b 07 d6 36 f0 f2 |...b.`.. .;..6..| +00000190 75 9a a4 3a 11 ac fa 6e a1 2e 06 fe 44 90 06 2e |u..:...n....D...| +000001a0 78 8e 93 97 7f 7a 5c e2 ac be 29 cd 0f ea d2 5c |x....z\...)....\| +000001b0 ca 96 a1 7e 6e b2 3e b3 80 79 fb 25 a4 ee 99 29 |...~n.>..y.%...)| +000001c0 85 f7 b7 1f dd 35 d4 3b fb d2 a9 a1 e9 67 0f 7a |.....5.;.....g.z| +000001d0 ee fd 61 65 79 fc b3 8a c2 32 1c b6 54 b9 c3 ab |..aey....2..T...| +000001e0 2b 32 32 2d 88 16 9e 10 60 ee ef 58 85 1a 65 eb |+22-....`..X..e.| +000001f0 5b 9f ae e3 fb da 37 7e ec 73 69 57 29 e1 ab 76 |[.....7~.siW)..v| +00000200 a3 bd fa 02 91 3d f8 6d 95 49 81 4a 44 2e d9 8c |.....=.m.I.JD...| +00000210 c7 00 0d ef 0c 84 a9 b2 16 ff 6a 52 79 99 37 6d |..........jRy.7m| +00000220 dc 5f c6 32 76 ac 3b 92 cc 21 6a 2b 26 03 43 66 |._.2v.;..!j+&.Cf| +00000230 b2 64 79 51 11 08 7f 3f 63 ec 22 79 d7 90 4f 84 |.dyQ...?c."y..O.| +00000240 ed 58 1f c3 fe e9 87 bf d1 80 66 25 5a 95 53 1f |.X........f%Z.S.| +00000250 08 88 0c b8 7e 3b 07 c3 c7 4b 13 80 23 b1 15 3e |....~;...K..#..>| +00000260 e7 94 9b 91 8e 56 37 47 99 5f 5f 45 2d 11 f7 fc |.....V7G.__E-...| +00000270 33 b6 1f 6a 05 d8 8c 9f 1a 5f 38 d7 e8 1a d0 83 |3..j....._8.....| +00000280 11 b6 bc 09 7b a9 31 19 b2 f1 a7 ea 8b a3 be a7 |....{.1.........| +00000290 72 97 fb 09 19 5a d0 87 9c 01 bb e6 6e 50 91 87 |r....Z......nP..| +000002a0 b1 e6 0c e0 83 af b2 e8 b9 fa 71 3e 3c 6e 59 91 |..........q>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 35 c1 5b 7a 5c 1b |..........5.[z\.| +00000010 3c 04 8b 1d 88 fb 64 28 08 47 4b 5e 18 f9 b9 25 |<.....d(.GK^...%| +00000020 39 61 50 21 9b 0a 7a af 2a 26 6e 46 30 66 50 db |9aP!..z.*&nF0fP.| +00000030 8e 3f de c3 9e 65 e3 00 51 cd cc 38 44 92 13 5c |.?...e..Q..8D..\| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e 1c 4f 11 b2 e9 66 a3 ed 64 2d 23 |......O...f..d-#| +00000010 b6 11 b0 fa 27 55 53 93 3a 70 01 c8 33 58 f8 48 |....'US.:p..3X.H| +00000020 68 81 50 17 03 03 00 13 9c a6 6d 62 80 e3 55 f6 |h.P.......mb..U.| +00000030 22 d5 84 59 35 8f 79 6f 1f 5e 79 |"..Y5.yo.^y| diff --git a/testdata/Server-TLSv13-ExportKeyingMaterial b/testdata/Server-TLSv13-ExportKeyingMaterial new file mode 100644 index 0000000..b1a9405 --- /dev/null +++ b/testdata/Server-TLSv13-ExportKeyingMaterial @@ -0,0 +1,92 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 e4 01 00 00 e0 03 03 40 35 14 01 11 |...........@5...| +00000010 ea 27 ee ac 2d 8b d9 de 62 2d 94 4e 4f c6 97 09 |.'..-...b-.NO...| +00000020 8a 84 1d 96 ca 1e 1c a2 a5 9f 82 20 cf 5d fb ec |........... .]..| +00000030 d8 3d 23 2d 89 77 a9 7b 1a 9a 72 e6 bd 17 50 53 |.=#-.w.{..r...PS| +00000040 56 32 17 d3 50 38 0c 9d 0b e4 8d 9a 00 08 13 02 |V2..P8..........| +00000050 13 03 13 01 00 ff 01 00 00 8f 00 00 00 0e 00 0c |................| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| +00000080 00 19 00 18 00 23 00 00 00 16 00 00 00 17 00 00 |.....#..........| +00000090 00 0d 00 1e 00 1c 04 03 05 03 06 03 08 07 08 08 |................| +000000a0 08 09 08 0a 08 0b 08 04 08 05 08 06 04 01 05 01 |................| +000000b0 06 01 00 2b 00 03 02 03 04 00 2d 00 02 01 01 00 |...+......-.....| +000000c0 33 00 26 00 24 00 1d 00 20 99 33 07 c3 2f 4d 4d |3.&.$... .3../MM| +000000d0 f1 3b 8a 93 f4 58 77 2b 69 e6 6e ae e8 1b 0a 30 |.;...Xw+i.n....0| +000000e0 a2 35 f5 1f 9e ed 34 ed 0c |.5....4..| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 cf 5d fb ec |........... .]..| +00000030 d8 3d 23 2d 89 77 a9 7b 1a 9a 72 e6 bd 17 50 53 |.=#-.w.{..r...PS| +00000040 56 32 17 d3 50 38 0c 9d 0b e4 8d 9a 13 02 00 00 |V2..P8..........| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| +00000080 03 03 00 17 57 f0 44 ca 0f b9 92 0d 8f 6f 1f 11 |....W.D......o..| +00000090 a1 03 28 76 f0 0c 46 87 5a c7 b5 17 03 03 02 6d |..(v..F.Z......m| +000000a0 78 f0 92 2b 56 5d b9 62 95 1b 04 8b d0 49 63 31 |x..+V].b.....Ic1| +000000b0 1f 1d 9a 37 b3 64 e5 11 21 58 4c e2 d2 da a4 e1 |...7.d..!XL.....| +000000c0 1b 26 e7 11 3f b5 46 18 62 46 35 8a ae b1 88 93 |.&..?.F.bF5.....| +000000d0 5c 97 6c 66 6e a7 5d 63 fb e2 07 07 f5 59 02 38 |\.lfn.]c.....Y.8| +000000e0 78 d5 52 97 9b 2f 06 d3 91 c0 a3 62 9b 74 7e f8 |x.R../.....b.t~.| +000000f0 41 0b 71 df f9 ed 42 1b 51 ec db 66 86 d7 db c0 |A.q...B.Q..f....| +00000100 a1 27 9e 51 95 fe 54 66 4a f2 72 7b d7 91 cd 00 |.'.Q..TfJ.r{....| +00000110 b1 fd 36 a1 6f c5 c4 31 3e b8 d8 ab 0b f5 57 bf |..6.o..1>.....W.| +00000120 63 91 99 5e 04 63 c7 fa c9 73 b5 23 0e e9 45 3a |c..^.c...s.#..E:| +00000130 15 2b a7 d3 f5 04 50 ab 17 65 40 d3 63 da 6e 2a |.+....P..e@.c.n*| +00000140 66 45 2d 41 1f 09 fa 62 67 86 8f e6 c5 7e 02 d0 |fE-A...bg....~..| +00000150 27 bf 43 e8 15 8e 4f 71 67 2e 9b 13 61 44 23 0b |'.C...Oqg...aD#.| +00000160 29 06 81 0c 9c 28 c5 a9 f1 6e 49 84 b3 75 90 93 |)....(...nI..u..| +00000170 0a f7 db 01 29 9f 73 5d 00 f5 41 a7 cb 0b b0 97 |....).s]..A.....| +00000180 d7 b6 d0 71 31 56 88 88 7b 16 3b 54 5e 82 2b 87 |...q1V..{.;T^.+.| +00000190 2c 74 2c 8f 0a ec 5f 2b ef a6 86 55 49 d9 a2 af |,t,..._+...UI...| +000001a0 4a 34 48 a4 65 b6 4f f3 7f b6 30 e8 c2 f1 03 f4 |J4H.e.O...0.....| +000001b0 89 90 02 b6 f2 6e 27 e8 33 5f c7 34 91 a7 fd 96 |.....n'.3_.4....| +000001c0 58 a1 4b 3a e5 73 92 1c ed 01 dd 15 a2 b5 61 01 |X.K:.s........a.| +000001d0 1b 1d 52 0d 10 1f 1e a8 3b a4 b8 cf 50 0b ff e6 |..R.....;...P...| +000001e0 cf b7 59 cf 60 55 f7 2d ad 1d 7a 76 dc c0 4d d3 |..Y.`U.-..zv..M.| +000001f0 5f 06 d2 1e 02 a8 23 12 6c ae 3a 90 d4 1a ef b1 |_.....#.l.:.....| +00000200 31 c8 82 5c ca 92 1d db c3 0c 5e 9e 80 1c 1d b2 |1..\......^.....| +00000210 f5 55 b5 55 92 94 9a 43 ef 60 86 ee f0 65 68 bd |.U.U...C.`...eh.| +00000220 ad f8 5d f2 06 3f 2d b5 52 26 71 33 bb 0a f2 31 |..]..?-.R&q3...1| +00000230 8a 98 41 8d 8d 59 d1 b7 c9 b1 3c e1 37 9e 70 0b |..A..Y....<.7.p.| +00000240 da ae 25 34 49 93 ce f3 a0 c9 b6 7e 06 34 53 07 |..%4I......~.4S.| +00000250 ef 61 43 9d 79 2c d0 02 5a 64 bd 4a 46 98 3c 42 |.aC.y,..Zd.JF.g.........x| +000003a0 3f eb 55 57 d9 7b 3a 31 c8 b9 d2 17 03 03 00 45 |?.UW.{:1.......E| +000003b0 ec 76 02 21 7b 96 9c ff a5 ea e9 2e 92 a7 d6 f4 |.v.!{...........| +000003c0 8e c0 a0 bc 21 11 44 df 84 dd 3c 21 5d cc 1b 2c |....!.D....| +000003f0 f0 29 1b 4b 6e |.).Kn| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 45 4a 89 ee af 15 |..........EJ....| +00000010 db cf 58 6f f9 5a cd 28 a7 57 08 38 7a a4 1a a6 |..Xo.Z.(.W.8z...| +00000020 d9 ed 5f f8 b1 f8 a9 aa 19 70 5f 8d 87 b9 d8 5c |.._......p_....\| +00000030 b6 4d d6 04 4b 66 1b 6a 57 25 58 bf a1 b6 72 81 |.M..Kf.jW%X...r.| +00000040 74 b9 c9 6f 02 c9 0b f6 b2 7f 70 72 78 a6 06 bd |t..o......prx...| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e ee 68 ad 7a 47 ba 93 80 26 01 37 |......h.zG...&.7| +00000010 1b 3b b8 61 aa 60 a1 0f 21 a4 81 51 16 a5 b1 36 |.;.a.`..!..Q...6| +00000020 b2 39 ca 17 03 03 00 13 5e 1c 9b a5 d1 02 68 96 |.9......^.....h.| +00000030 99 41 8c a1 9e 49 38 1d 97 b6 c8 |.A...I8....| diff --git a/testdata/Server-TLSv13-HelloRetryRequest b/testdata/Server-TLSv13-HelloRetryRequest new file mode 100644 index 0000000..b63a5f8 --- /dev/null +++ b/testdata/Server-TLSv13-HelloRetryRequest @@ -0,0 +1,118 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 da 01 00 00 d6 03 03 29 a2 7e 24 c3 |...........).~$.| +00000010 02 bf 2c 29 7b 47 08 06 bf 75 ef c5 59 2d a4 f0 |..,){G...u..Y-..| +00000020 2f fc 53 62 5d b8 4d 3c f1 31 2d 20 96 7c 00 da |/.Sb].M<.1- .|..| +00000030 35 8c 39 0a f8 1c 61 b8 4a a8 28 b4 a2 de 56 7b |5.9...a.J.(...V{| +00000040 a9 f3 ab 5d db 30 ca 2c d1 82 9e e2 00 08 13 02 |...].0.,........| +00000050 13 03 13 01 00 ff 01 00 00 85 00 00 00 0e 00 0c |................| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 06 00 04 00 1d 00 17 00 16 |................| +00000080 00 00 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 |................| +00000090 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 |................| +000000a0 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 |.........+......| +000000b0 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 20 dd |-.....3.&.$... .| +000000c0 c7 c6 35 0b c9 5f f0 7e 40 e8 f1 f7 6f e7 84 8f |..5.._.~@...o...| +000000d0 7f 32 2f 8c a3 22 c6 c1 b9 34 1c ef 17 e7 25 |.2/.."...4....%| +>>> Flow 2 (server to client) +00000000 16 03 03 00 58 02 00 00 54 03 03 cf 21 ad 74 e5 |....X...T...!.t.| +00000010 9a 61 11 be 1d 8c 02 1e 65 b8 91 c2 a2 11 16 7a |.a......e......z| +00000020 bb 8c 5e 07 9e 09 e2 c8 a8 33 9c 20 96 7c 00 da |..^......3. .|..| +00000030 35 8c 39 0a f8 1c 61 b8 4a a8 28 b4 a2 de 56 7b |5.9...a.J.(...V{| +00000040 a9 f3 ab 5d db 30 ca 2c d1 82 9e e2 13 02 00 00 |...].0.,........| +00000050 0c 00 2b 00 02 03 04 00 33 00 02 00 17 |..+.....3....| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 16 03 03 00 fb 01 00 00 f7 03 |................| +00000010 03 29 a2 7e 24 c3 02 bf 2c 29 7b 47 08 06 bf 75 |.).~$...,){G...u| +00000020 ef c5 59 2d a4 f0 2f fc 53 62 5d b8 4d 3c f1 31 |..Y-../.Sb].M<.1| +00000030 2d 20 96 7c 00 da 35 8c 39 0a f8 1c 61 b8 4a a8 |- .|..5.9...a.J.| +00000040 28 b4 a2 de 56 7b a9 f3 ab 5d db 30 ca 2c d1 82 |(...V{...].0.,..| +00000050 9e e2 00 08 13 02 13 03 13 01 00 ff 01 00 00 a6 |................| +00000060 00 00 00 0e 00 0c 00 00 09 31 32 37 2e 30 2e 30 |.........127.0.0| +00000070 2e 31 00 0b 00 04 03 00 01 02 00 0a 00 06 00 04 |.1..............| +00000080 00 1d 00 17 00 16 00 00 00 17 00 00 00 0d 00 1e |................| +00000090 00 1c 04 03 05 03 06 03 08 07 08 08 08 09 08 0a |................| +000000a0 08 0b 08 04 08 05 08 06 04 01 05 01 06 01 00 2b |...............+| +000000b0 00 03 02 03 04 00 2d 00 02 01 01 00 33 00 47 00 |......-.....3.G.| +000000c0 45 00 17 00 41 04 30 30 c4 62 c9 14 6b f7 28 88 |E...A.00.b..k.(.| +000000d0 ff c8 3f 87 2b 9f 24 a3 46 9b 2f 86 c7 df 3f 05 |..?.+.$.F./...?.| +000000e0 6b 8e a7 80 64 ff 66 b7 4d 80 62 fd b4 ba de 27 |k...d.f.M.b....'| +000000f0 44 7f 7a a4 c7 4a f0 81 25 52 3f 8a 8a 48 1e ff |D.z..J..%R?..H..| +00000100 6f 11 ad a9 fe bd |o.....| +>>> Flow 4 (server to client) +00000000 16 03 03 00 9b 02 00 00 97 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 20 96 7c 00 da |........... .|..| +00000030 35 8c 39 0a f8 1c 61 b8 4a a8 28 b4 a2 de 56 7b |5.9...a.J.(...V{| +00000040 a9 f3 ab 5d db 30 ca 2c d1 82 9e e2 13 02 00 00 |...].0.,........| +00000050 4f 00 2b 00 02 03 04 00 33 00 45 00 17 00 41 04 |O.+.....3.E...A.| +00000060 1e 18 37 ef 0d 19 51 88 35 75 71 b5 e5 54 5b 12 |..7...Q.5uq..T[.| +00000070 2e 8f 09 67 fd a7 24 20 3e b2 56 1c ce 97 28 5e |...g..$ >.V...(^| +00000080 f8 2b 2d 4f 9e f1 07 9f 6c 4b 5b 83 56 e2 32 42 |.+-O....lK[.V.2B| +00000090 e9 58 b6 d7 49 a6 b5 68 1a 41 03 56 6b dc 5a 89 |.X..I..h.A.Vk.Z.| +000000a0 17 03 03 00 17 74 86 c5 4d 7f f0 06 2b fa a3 03 |.....t..M...+...| +000000b0 4d 27 46 e7 33 ce 70 32 ba 61 55 61 17 03 03 02 |M'F.3.p2.aUa....| +000000c0 6d c5 ac cc 02 19 b0 92 c1 bc 6a fe 1d 94 a6 75 |m.........j....u| +000000d0 66 6a 88 b0 87 76 da 3f f9 07 40 67 c7 e5 b8 b7 |fj...v.?..@g....| +000000e0 70 38 41 0e 11 3b cf db 0b 76 73 58 10 93 0e 06 |p8A..;...vsX....| +000000f0 cb 31 75 d0 a8 2f 20 35 b4 c2 87 5f 42 94 e1 18 |.1u../ 5..._B...| +00000100 d5 f8 bc 11 d7 7c 9b ff 0b fe 59 8b 78 1e ef 52 |.....|....Y.x..R| +00000110 6f ea 39 e5 f5 55 93 8b 0b 65 87 05 d3 0d a3 6d |o.9..U...e.....m| +00000120 2e 10 79 1d 60 61 ba 43 13 cd 5a 58 28 cb 32 df |..y.`a.C..ZX(.2.| +00000130 74 3a 58 4e e0 21 d4 d0 2f 6f 63 72 1c 82 18 16 |t:XN.!../ocr....| +00000140 12 4c e7 0b 5e 21 ce e4 de 26 6c d2 91 c1 fd 85 |.L..^!...&l.....| +00000150 5a f4 b7 5d 5a c6 fe 8c 05 fe f7 2a ae a1 67 73 |Z..]Z......*..gs| +00000160 8a 66 60 07 57 35 46 ed cf e1 58 f3 22 94 57 26 |.f`.W5F...X.".W&| +00000170 ae 81 3c ea 42 1c ef 56 ca 0e 35 5a 4c 97 49 36 |..<.B..V..5ZL.I6| +00000180 73 e2 be 8b ad 55 42 a3 8f 50 65 8a 7a 9d cf 7c |s....UB..Pe.z..|| +00000190 4f d9 4b db 0d a4 0e 57 99 08 72 0a 1f cf 9d 19 |O.K....W..r.....| +000001a0 ad 24 7b 64 9b ef d2 9f 8f 42 d4 ca a8 84 2f 15 |.${d.....B..../.| +000001b0 3a 10 8e 1e 22 b8 fc 9f 77 0b 8e 82 22 bd 08 f2 |:..."...w..."...| +000001c0 3e 4c a7 f1 d0 46 a8 fb fb 5e f6 0d 32 8e 2d e4 |>L...F...^..2.-.| +000001d0 3b 17 b8 da 71 03 cb d9 b8 12 9b 70 a0 3a 07 19 |;...q......p.:..| +000001e0 f6 c1 66 1e b8 e2 b2 5a 50 50 c5 51 8f f3 91 e7 |..f....ZPP.Q....| +000001f0 bc ba a2 ee ca a8 71 24 5f f2 25 79 c3 a2 23 70 |......q$_.%y..#p| +00000200 03 0b 8b 99 4d 33 92 f1 ff 64 cd cc 31 b2 13 a9 |....M3...d..1...| +00000210 d3 c2 37 b7 11 17 7f d7 64 ba da 6d 46 b1 a2 03 |..7.....d..mF...| +00000220 fe 8d 4d e3 cd eb a3 2f af 89 f4 a4 af 82 0e e3 |..M..../........| +00000230 65 c3 64 38 33 6a bd c9 13 77 9d 37 c7 c8 1d 55 |e.d83j...w.7...U| +00000240 f9 a6 b8 fc 57 0f f7 94 76 1f bd 4f 4a 74 fe 0a |....W...v..OJt..| +00000250 98 be e9 d9 2e d2 c0 c9 fb d2 3b 27 fb 37 14 f5 |..........;'.7..| +00000260 29 d5 f4 88 a5 b0 98 1d 0c 85 9e 1f ad 29 cf 36 |)............).6| +00000270 3d 2f c0 54 93 1f 14 8b 1e a3 93 aa 53 af da d1 |=/.T........S...| +00000280 da 0b 2b e4 01 fe 8e 48 df 8b 97 fe 92 ab 32 80 |..+....H......2.| +00000290 c3 d2 84 1a 45 a7 0d f3 f8 07 e3 7d a3 27 62 67 |....E......}.'bg| +000002a0 10 4b 3e 09 ee 22 77 0d 54 71 8b 6f 68 6a a9 cc |.K>.."w.Tq.ohj..| +000002b0 80 34 5e 35 36 b0 cb d5 8b 04 6f 0f 28 82 5f 69 |.4^56.....o.(._i| +000002c0 d3 66 cd 19 db 39 1d 73 c2 28 36 94 5f 1b 24 c6 |.f...9.s.(6._.$.| +000002d0 9a 62 34 0f ec 9a f9 c5 8c 72 5c c3 a0 c7 d6 5b |.b4......r\....[| +000002e0 1d 2e 4b 31 cd 2e 8b 37 cc 9a b2 ca e9 5d b0 f9 |..K1...7.....]..| +000002f0 b4 2c ba 27 08 c3 d6 90 1b 51 0c 83 72 0b 8a 72 |.,.'.....Q..r..r| +00000300 a1 12 ab 5c 91 a8 b2 76 f1 c1 09 d3 74 fb bc e5 |...\...v....t...| +00000310 33 96 59 91 3e e0 89 cf 99 7c 40 c4 af 0e 8d 58 |3.Y.>....|@....X| +00000320 20 ea d9 0d 0e 64 10 2c c8 ad ed 38 b0 fa 17 03 | ....d.,...8....| +00000330 03 00 99 f0 80 72 33 a3 53 2f c6 7f 68 e5 42 ee |.....r3.S/..h.B.| +00000340 d0 81 00 07 8b b7 69 ec 0d 9e 5a dc f5 0b 40 82 |......i...Z...@.| +00000350 0e a5 bc ce dd 13 1e 15 4c 10 d8 62 00 42 45 eb |........L..b.BE.| +00000360 2b f1 aa d4 43 4e 29 02 a8 0e b8 3d 17 88 84 0c |+...CN)....=....| +00000370 2d d0 49 48 ff f5 83 8f 0d da 7f 81 d6 e7 93 d5 |-.IH............| +00000380 12 c0 59 1c ed b7 35 7f 9e 1f 9c 39 e6 56 ce a2 |..Y...5....9.V..| +00000390 98 ca 74 72 49 65 7f 69 16 a7 13 67 b3 11 fe 32 |..trIe.i...g...2| +000003a0 99 23 c6 8f 37 e5 18 e8 5e 3b e3 25 84 cd f5 9f |.#..7...^;.%....| +000003b0 de 4c f0 b1 cb 25 31 86 73 07 48 f8 30 7e 7c 7b |.L...%1.s.H.0~|{| +000003c0 04 0f a5 5c 15 c2 25 00 43 18 6e 35 17 03 03 00 |...\..%.C.n5....| +000003d0 45 e0 8a a3 17 a4 5d 29 0d da b8 c1 e8 b9 19 cf |E.....])........| +000003e0 4b 08 e6 d8 5c 0e 9e ed b4 ea cc 95 68 54 6b 4b |K...\.......hTkK| +000003f0 0f 1f 32 3e f0 68 10 a1 9f aa 4b 44 86 3f 3b 66 |..2>.h....KD.?;f| +00000400 08 cd cb d0 92 a2 07 df 64 f9 f2 88 f9 c2 63 9f |........d.....c.| +00000410 01 98 a7 58 41 e6 |...XA.| +>>> Flow 5 (client to server) +00000000 17 03 03 00 45 64 f9 84 9e cc d0 58 bd 27 48 4f |....Ed.....X.'HO| +00000010 5c fb 26 21 50 37 f7 eb 80 fc 86 a9 a7 00 d7 0f |\.&!P7..........| +00000020 c4 4e e8 2d 4a cf 0b 57 34 10 f4 ea df a0 91 31 |.N.-J..W4......1| +00000030 80 45 78 20 38 1c cd dd 16 5d f5 6c 83 a6 ee f4 |.Ex 8....].l....| +00000040 24 c7 3f f1 0a f8 2d 78 7e b4 |$.?...-x~.| +>>> Flow 6 (server to client) +00000000 17 03 03 00 1e fe 3e da ac 07 b3 a8 37 ca 6d 3a |......>.....7.m:| +00000010 21 3a 2e 52 e4 1c ee 1c 49 e8 c5 a4 ef 10 bb 92 |!:.R....I.......| +00000020 7b 45 ba 17 03 03 00 13 4d f6 22 39 83 19 74 a8 |{E......M."9..t.| +00000030 86 55 bb 07 4d db 37 a6 f1 9f 13 |.U..M.7....| diff --git a/testdata/Server-TLSv13-P256 b/testdata/Server-TLSv13-P256 new file mode 100644 index 0000000..433327b --- /dev/null +++ b/testdata/Server-TLSv13-P256 @@ -0,0 +1,95 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 f9 01 00 00 f5 03 03 9b 17 e9 d1 ef |................| +00000010 4d bc 9c 08 44 87 d5 43 09 b5 bd f3 7c a6 52 59 |M...D..C....|.RY| +00000020 ae d3 af 09 c4 24 18 12 7f 4a 03 20 af 3e 04 1d |.....$...J. .>..| +00000030 3a 26 d4 bb 9c 02 71 32 c4 19 a6 ef 46 26 0f d6 |:&....q2....F&..| +00000040 ab 9e 49 4f b5 06 37 92 7a 0a 37 5e 00 08 13 02 |..IO..7.z.7^....| +00000050 13 03 13 01 00 ff 01 00 00 a4 00 00 00 0e 00 0c |................| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 04 00 02 00 17 00 16 00 00 |................| +00000080 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| +00000090 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| +000000a0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| +000000b0 02 01 01 00 33 00 47 00 45 00 17 00 41 04 ec c3 |....3.G.E...A...| +000000c0 f4 ab c7 58 b2 1c b4 8d d9 62 5f eb b9 b8 8f 33 |...X.....b_....3| +000000d0 e3 77 4a e5 57 1d 03 ce 2b bb 9d e6 b3 e4 b6 b6 |.wJ.W...+.......| +000000e0 10 01 03 df c6 b4 ac 26 c8 58 9a a8 97 1d e7 92 |.......&.X......| +000000f0 15 d3 78 a4 40 12 8f e1 c0 0a 80 2b 06 c5 |..x.@......+..| +>>> Flow 2 (server to client) +00000000 16 03 03 00 9b 02 00 00 97 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 20 af 3e 04 1d |........... .>..| +00000030 3a 26 d4 bb 9c 02 71 32 c4 19 a6 ef 46 26 0f d6 |:&....q2....F&..| +00000040 ab 9e 49 4f b5 06 37 92 7a 0a 37 5e 13 02 00 00 |..IO..7.z.7^....| +00000050 4f 00 2b 00 02 03 04 00 33 00 45 00 17 00 41 04 |O.+.....3.E...A.| +00000060 1e 18 37 ef 0d 19 51 88 35 75 71 b5 e5 54 5b 12 |..7...Q.5uq..T[.| +00000070 2e 8f 09 67 fd a7 24 20 3e b2 56 1c ce 97 28 5e |...g..$ >.V...(^| +00000080 f8 2b 2d 4f 9e f1 07 9f 6c 4b 5b 83 56 e2 32 42 |.+-O....lK[.V.2B| +00000090 e9 58 b6 d7 49 a6 b5 68 1a 41 03 56 6b dc 5a 89 |.X..I..h.A.Vk.Z.| +000000a0 17 03 03 00 17 42 79 da 18 8e 38 c1 2c a4 2a 9c |.....By...8.,.*.| +000000b0 fd 94 6a a6 b3 08 51 aa 7b 2d 19 a7 17 03 03 02 |..j...Q.{-......| +000000c0 6d 57 f7 92 34 01 09 13 e8 f8 ef 75 ad ba e8 a5 |mW..4......u....| +000000d0 9b cd e9 6c ab 48 b5 4d 33 1e 0b 95 47 74 78 9d |...l.H.M3...Gtx.| +000000e0 3c bb 27 a8 87 1c fb 11 80 91 93 ad 0f 0d 1c 98 |<.'.............| +000000f0 44 cc 36 bc 00 0d eb c0 8b 73 40 11 dd c5 9a a9 |D.6......s@.....| +00000100 90 55 81 e8 55 69 e0 73 97 49 c3 2b ee 56 3c c0 |.U..Ui.s.I.+.V<.| +00000110 c3 b7 4a 18 a3 e4 45 c9 7f 0c 7d ba b4 52 9a a8 |..J...E...}..R..| +00000120 b1 26 4e 57 3b fb 5b 30 28 b0 95 c9 72 35 2d 10 |.&NW;.[0(...r5-.| +00000130 24 8e 70 bb c6 2a 33 83 1c 78 c1 91 c4 6b 06 c0 |$.p..*3..x...k..| +00000140 d0 65 b5 d5 21 21 02 21 86 df 24 d0 99 90 24 12 |.e..!!.!..$...$.| +00000150 9f c8 a4 8d e9 29 5c 84 52 82 4b 11 a6 de 7f 88 |.....)\.R.K.....| +00000160 d9 35 b3 1b d5 c9 0a 54 f2 64 a7 43 13 19 61 0f |.5.....T.d.C..a.| +00000170 28 11 39 3f b1 2a 49 f7 0f de cb f8 ff ad b6 90 |(.9?.*I.........| +00000180 5a af 2a 17 9a 40 c7 c8 32 88 5d e1 af 54 92 3a |Z.*..@..2.]..T.:| +00000190 8b b9 8a 50 93 dd 73 89 cf 0f bf ae 7e ad ba bf |...P..s.....~...| +000001a0 ed 2a f1 47 e0 e5 77 92 27 e5 5b bd 7f 7e a5 47 |.*.G..w.'.[..~.G| +000001b0 af dd d7 ab 72 db 1a bb 83 f8 18 ba 46 92 74 a2 |....r.......F.t.| +000001c0 9e 7a 5c 4d e8 b9 c0 6e ed 20 6d ec 8f 3d 65 d6 |.z\M...n. m..=e.| +000001d0 d5 48 4b 24 14 00 10 2c f2 31 c1 94 ce b6 f8 e2 |.HK$...,.1......| +000001e0 e1 d3 8c e7 38 3c 4b 34 1f 78 8d e0 9b d3 9d 21 |....8>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 45 b1 15 d9 f0 b0 |..........E.....| +00000010 cf 81 8f de 00 84 97 be 1b 6f af 52 3b d2 34 1b |.........o.R;.4.| +00000020 4d bb d3 b8 c2 09 60 21 e1 61 d3 d9 a1 80 68 77 |M.....`!.a....hw| +00000030 6c 37 6a 87 0e e7 b7 de fe b6 70 eb d3 36 92 c3 |l7j.......p..6..| +00000040 e9 e9 02 e9 cf d0 d4 be 75 9b f3 84 51 fe da 78 |........u...Q..x| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e 7f 61 7b 92 ca 8f 9e c7 96 b0 a5 |......a{........| +00000010 9b 3f cf c3 0e 7a 8d 2c 9f 5c 40 8a 99 6d 71 45 |.?...z.,.\@..mqE| +00000020 9a 9c 96 17 03 03 00 13 01 42 62 3a 49 1a b5 5b |.........Bb:I..[| +00000030 43 0f ec 5b 46 0a e9 1c 6f a6 e2 |C..[F...o..| diff --git a/testdata/Server-TLSv13-RSA-RSAPSS b/testdata/Server-TLSv13-RSA-RSAPSS new file mode 100644 index 0000000..01cc230 --- /dev/null +++ b/testdata/Server-TLSv13-RSA-RSAPSS @@ -0,0 +1,90 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 c6 01 00 00 c2 03 03 f0 a4 89 8f b9 |................| +00000010 fd ba d7 9f 2d ca bf f0 7a 6e 04 6a b4 54 9d f4 |....-...zn.j.T..| +00000020 dd b5 e5 c9 f7 4f e1 a4 0c a9 72 20 57 d4 f7 3a |.....O....r W..:| +00000030 88 0a d3 95 c7 3a 4c 7c e3 0c ac 99 bc 24 d7 ad |.....:L|.....$..| +00000040 3f 53 07 08 00 aa c3 e5 2c 2b d3 2f 00 08 13 02 |?S......,+./....| +00000050 13 03 13 01 00 ff 01 00 00 71 00 00 00 0e 00 0c |.........q......| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| +00000080 00 19 00 18 00 16 00 00 00 17 00 00 00 0d 00 04 |................| +00000090 00 02 08 04 00 2b 00 03 02 03 04 00 2d 00 02 01 |.....+......-...| +000000a0 01 00 33 00 26 00 24 00 1d 00 20 ef 5d 96 0f 42 |..3.&.$... .]..B| +000000b0 9a fe c1 40 ee 31 cd 34 6d 11 d2 ad e9 99 9b b6 |...@.1.4m.......| +000000c0 70 27 8f dc 81 c2 a6 ac 90 3f 4b |p'.......?K| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 57 d4 f7 3a |........... W..:| +00000030 88 0a d3 95 c7 3a 4c 7c e3 0c ac 99 bc 24 d7 ad |.....:L|.....$..| +00000040 3f 53 07 08 00 aa c3 e5 2c 2b d3 2f 13 02 00 00 |?S......,+./....| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| +00000080 03 03 00 17 e9 da 29 cf f2 21 32 b3 92 c0 18 5b |......)..!2....[| +00000090 26 f6 c8 ed eb 67 5c 9c df 5c f2 17 03 03 02 6d |&....g\..\.....m| +000000a0 c8 d6 15 36 38 ef 64 62 1b 49 c8 c9 bc ce f7 99 |...68.db.I......| +000000b0 da da 8e d0 2f 98 b1 cf 9a fa 53 cf 8a 20 11 6c |..../.....S.. .l| +000000c0 25 10 fc fd b2 f1 22 ea 42 64 21 b5 2f 94 9a 0a |%.....".Bd!./...| +000000d0 d3 3e 3b 14 4e b1 d1 3e fb 40 03 54 af d3 9e ea |.>;.N..>.@.T....| +000000e0 c8 fb b2 ed ff fa c1 1d 7e 72 fb bd dd 04 b2 0c |........~r......| +000000f0 ac 33 4c 1b e4 65 2f 91 c1 3e f1 1a 8f e0 92 23 |.3L..e/..>.....#| +00000100 3a 4d 04 f2 4f 14 d4 bb fe f7 fe 6a 69 8b aa 15 |:M..O......ji...| +00000110 c4 97 dd 06 3c 79 1c c9 aa 77 51 ac 95 8e 50 f8 |....| +00000150 2a be aa 06 e7 22 cd 8c f1 46 2a 54 6e 54 bf 90 |*...."...F*TnT..| +00000160 89 01 5e e4 e2 aa 7b d7 bc e9 37 d4 ee 75 18 57 |..^...{...7..u.W| +00000170 0c f7 8b fb 70 b2 cc 1c e2 ed 64 20 22 56 7a d3 |....p.....d "Vz.| +00000180 24 eb 25 0d 29 6f 8b be 5a 99 89 eb aa 04 18 8c |$.%.)o..Z.......| +00000190 bd c8 b3 95 57 5d 5b 00 55 d8 ef a0 22 f8 cb 26 |....W][.U..."..&| +000001a0 8d e0 9a 25 a7 77 6d 25 27 c3 aa 75 f7 51 15 c5 |...%.wm%'..u.Q..| +000001b0 30 72 57 ef d4 41 3e cf dd fc 77 d9 d8 08 41 87 |0rW..A>...w...A.| +000001c0 b6 9a 06 c6 f2 00 c5 a2 14 e9 f3 52 91 65 db 69 |...........R.e.i| +000001d0 a7 2e fb 32 5c 3f 13 c8 ea 65 3a 3a 4d 65 a9 69 |...2\?...e::Me.i| +000001e0 3f 7b f8 7c ee 1e a2 87 81 10 5c 7f 8d 37 1a 75 |?{.|......\..7.u| +000001f0 29 8a 78 58 8a d7 f7 af 75 ee 3d f2 58 c2 de a5 |).xX....u.=.X...| +00000200 60 e7 f9 a3 a1 66 cf df 76 2f 2a cf 5e 6e 80 a3 |`....f..v/*.^n..| +00000210 47 16 c9 c9 d1 b5 02 38 63 0a 86 fc f2 e8 0b 16 |G......8c.......| +00000220 d6 43 8e d1 68 b8 01 a0 63 69 01 c8 d3 1e eb 48 |.C..h...ci.....H| +00000230 28 5e 82 24 3a 19 62 f2 48 65 13 82 77 8c 9a ca |(^.$:.b.He..w...| +00000240 69 84 27 4d fd 88 81 79 74 8a a7 ef 2e be 6c c7 |i.'M...yt.....l.| +00000250 89 9d 19 ab 44 fa 35 99 cc 8e af c3 c0 98 85 85 |....D.5.........| +00000260 e7 92 45 84 39 c3 2d 27 a1 55 98 81 3a 09 1f f3 |..E.9.-'.U..:...| +00000270 9a 86 e5 53 f4 7d 35 8d 1f 2e 06 ef ed bf eb cb |...S.}5.........| +00000280 54 41 b7 9c d9 df 1b 75 00 f3 81 29 27 e4 ed 90 |TA.....u...)'...| +00000290 bd 16 39 96 15 22 c3 19 35 5c 88 db 00 05 38 77 |..9.."..5\....8w| +000002a0 8e ef 42 f5 b2 8c 0a 6c 7f 38 7a f7 c1 13 a6 3d |..B....l.8z....=| +000002b0 80 3c 62 aa 26 d0 80 08 31 b0 f4 84 36 c1 8d 51 |.>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 45 93 78 a6 3d 50 |..........E.x.=P| +00000010 bd bf cb d5 f5 2d af d7 1a 04 5a 7c 18 57 5f ce |.....-....Z|.W_.| +00000020 bf aa f3 25 1d 19 29 3a 90 06 9b 9a ad bb 03 92 |...%..):........| +00000030 58 62 1f db 30 3b db 83 bf 21 dc 32 50 7a cc c1 |Xb..0;...!.2Pz..| +00000040 51 2d 46 a4 41 eb 07 b3 91 54 55 23 bd 1b c9 82 |Q-F.A....TU#....| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e 94 17 fa b4 46 cf 05 18 36 1e 2c |.........F...6.,| +00000010 fa b8 76 fd 66 4f d0 6c df 7d 35 ea cc 5f 8c fb |..v.fO.l.}5.._..| +00000020 6f 31 cc 17 03 03 00 13 7e 91 d1 39 ce 2c 4d e4 |o1......~..9.,M.| +00000030 49 90 a1 a6 c1 12 bf 0b 12 80 40 |I.........@| diff --git a/testdata/Server-TLSv13-X25519 b/testdata/Server-TLSv13-X25519 new file mode 100644 index 0000000..e2ede18 --- /dev/null +++ b/testdata/Server-TLSv13-X25519 @@ -0,0 +1,91 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 d8 01 00 00 d4 03 03 7b 32 49 3a 30 |...........{2I:0| +00000010 09 44 1d e3 d6 4e c0 2e ec e1 ce fc d9 70 6d 47 |.D...N.......pmG| +00000020 32 61 92 e3 4b 0e 02 96 0a b4 b6 20 18 b5 42 4e |2a..K...... ..BN| +00000030 a4 06 40 82 76 bc 30 6b 5c ef 16 94 e4 bb fa 0b |..@.v.0k\.......| +00000040 49 d4 b1 c5 df 0d 01 92 be 99 6f f2 00 08 13 02 |I.........o.....| +00000050 13 03 13 01 00 ff 01 00 00 83 00 00 00 0e 00 0c |................| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 04 00 02 00 1d 00 16 00 00 |................| +00000080 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| +00000090 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| +000000a0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| +000000b0 02 01 01 00 33 00 26 00 24 00 1d 00 20 32 8d 5d |....3.&.$... 2.]| +000000c0 3b f5 8f b3 7b 41 92 90 e9 3f 4f aa 61 a8 91 f6 |;...{A...?O.a...| +000000d0 85 c1 70 d6 1a 94 8d 16 1d 4e c8 ea 54 |..p......N..T| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 18 b5 42 4e |........... ..BN| +00000030 a4 06 40 82 76 bc 30 6b 5c ef 16 94 e4 bb fa 0b |..@.v.0k\.......| +00000040 49 d4 b1 c5 df 0d 01 92 be 99 6f f2 13 02 00 00 |I.........o.....| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| +00000080 03 03 00 17 7c ee 15 67 75 36 92 d7 4a d6 56 f5 |....|..gu6..J.V.| +00000090 6d ef 3d e1 2e 94 de 7d 72 dc 2f 17 03 03 02 6d |m.=....}r./....m| +000000a0 a4 38 eb 50 27 ef fa 47 59 74 d0 ad 55 e2 19 15 |.8.P'..GYt..U...| +000000b0 a8 9e 12 dc c5 70 7c fd b7 1c cd 56 b7 44 cc 9c |.....p|....V.D..| +000000c0 4c b7 6c 99 0a 20 8d db fc 5b 4d 97 27 b3 64 61 |L.l.. ...[M.'.da| +000000d0 fd e6 99 9b d7 1f 2c 86 a3 b7 23 16 8c f0 f0 a4 |......,...#.....| +000000e0 70 e1 0e 70 61 db 2d c2 60 10 30 21 eb 3c f4 d4 |p..pa.-.`.0!.<..| +000000f0 07 27 f2 54 bd e7 b8 7a 13 10 47 10 41 46 3d 6f |.'.T...z..G.AF=o| +00000100 20 3b 16 07 d6 0d 16 d0 06 34 a4 b9 eb 6a 3d 1b | ;.......4...j=.| +00000110 69 fd 7b f2 2d a8 8d 56 51 cf 0e 58 c3 19 ce 88 |i.{.-..VQ..X....| +00000120 9f 6c c6 38 11 24 81 2f da c1 f2 57 32 2f 5c 1e |.l.8.$./...W2/\.| +00000130 e1 04 56 58 fd 5c ca b8 c6 f1 bd 66 84 a9 2d 48 |..VX.\.....f..-H| +00000140 4f 4c 08 b3 92 ba 5d 89 95 ce 3d b2 de 76 00 01 |OL....]...=..v..| +00000150 95 56 56 2c 39 1a 65 68 f5 28 4e d2 e9 cc 85 2e |.VV,9.eh.(N.....| +00000160 f0 d9 e6 40 f3 f2 88 10 24 5b 92 5e 18 2d 4c e5 |...@....$[.^.-L.| +00000170 36 dd c6 09 d1 ca ae 44 84 7a 9b dd f3 c9 ac 44 |6......D.z.....D| +00000180 7d 77 e9 41 8b b2 26 93 16 e9 d4 06 8b f5 ab c5 |}w.A..&.........| +00000190 8d ad f4 61 5f 1c ab f0 ff 86 20 f0 4d 90 f5 cb |...a_..... .M...| +000001a0 0f d8 fe 3f 2e 78 5e 11 bf 82 0d 55 a2 9a 7b 4b |...?.x^....U..{K| +000001b0 5d a0 b7 6c b1 d3 98 67 81 c2 ef fa 22 2f a4 68 |]..l...g...."/.h| +000001c0 b4 bd 38 08 68 b8 08 2e 95 70 64 e1 c0 4a 29 2b |..8.h....pd..J)+| +000001d0 d0 5d 0c 2a f0 df 87 e9 7c bd f5 bc a5 e2 56 56 |.].*....|.....VV| +000001e0 e6 79 0e f9 ce 42 9a 7c d9 e4 3a b2 c9 c7 54 f7 |.y...B.|..:...T.| +000001f0 a2 f8 af b0 8d 56 2b 9d 3a de da 22 7a f6 56 b9 |.....V+.:.."z.V.| +00000200 6f cf 61 b1 9f 49 91 1e aa da 27 cb bd 81 f9 a0 |o.a..I....'.....| +00000210 01 8c e0 ad d6 3f ef 8a 2e 8c 4b da 77 83 b7 7a |.....?....K.w..z| +00000220 69 83 62 2e 48 00 d2 dc 96 46 ef e1 c5 1a 49 eb |i.b.H....F....I.| +00000230 3c 6d b9 a6 c1 45 21 a6 7a cb 46 23 57 b1 21 d9 || +00000340 e7 dd b0 e3 9f ee 2d e7 f4 fa 11 56 01 27 86 04 |......-....V.'..| +00000350 4d 76 58 61 e5 1e b3 61 07 1e 50 2f 38 2e 2e 86 |MvXa...a..P/8...| +00000360 b9 c5 77 c5 c5 bf 54 4d b8 50 9f 03 fb 5f 8d 60 |..w...TM.P..._.`| +00000370 49 ed 98 90 34 d5 66 e1 0a 17 9c 55 3f 7a 7e 31 |I...4.f....U?z~1| +00000380 dd b5 d9 12 9d 8c 00 6e 37 d4 3e 45 ad da 6d 30 |.......n7.>E..m0| +00000390 47 2c 70 95 10 a4 d2 1e 20 37 04 6a 58 96 34 0d |G,p..... 7.jX.4.| +000003a0 2c 93 09 de 7b 1b a0 5c 25 19 c5 17 03 03 00 45 |,...{..\%......E| +000003b0 ba 0f cd 55 4f 62 24 0a f9 7d 58 93 69 4f 5f c4 |...UOb$..}X.iO_.| +000003c0 d2 bd 95 3e 10 15 57 1d c1 16 e3 4d 46 8b fd d1 |...>..W....MF...| +000003d0 16 d1 4a 83 4b d5 ed d2 00 90 90 c3 8f 91 43 81 |..J.K.........C.| +000003e0 a1 90 16 3b c9 54 6c 3c 0f 71 c7 5f 2c b0 3f c3 |...;.Tl<.q._,.?.| +000003f0 9b 69 ce 6c 60 |.i.l`| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 45 bf 5b 81 15 24 |..........E.[..$| +00000010 3b be 70 41 4d ea 7c 04 a7 31 84 d3 38 b0 e4 cb |;.pAM.|..1..8...| +00000020 42 05 b7 a8 07 1a d5 4f f3 e7 50 56 e8 73 63 1a |B......O..PV.sc.| +00000030 d8 a0 76 5e 10 c8 73 07 fa 88 86 65 69 40 81 37 |..v^..s....ei@.7| +00000040 a2 00 89 b6 ff f1 49 1d 69 e5 63 2e bc 5a eb e6 |......I.i.c..Z..| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e ca eb a0 6a b4 a5 eb ca 28 14 25 |........j....(.%| +00000010 07 18 47 3d f0 f6 22 2e 7f 9c 09 73 8c a7 f8 63 |..G=.."....s...c| +00000020 e7 41 fd 17 03 03 00 13 ba f6 ed 7e 36 b5 f2 c6 |.A.........~6...| +00000030 15 27 34 2d 8d bd ea 99 29 81 ee |.'4-....)..| From b85722092bedbadbba2b3cc301f24da7e52d90ee Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Mon, 5 Nov 2018 21:00:52 -0500 Subject: [PATCH 2/8] crypto/tls: remove a forgotten note to future self Now, this is embarrassing. While preparing CL 142818, I noticed a possible vulnerability in the existing code which I was rewriting. I took a note to go back and assess if it was indeed an issue, and in case start the security release process. The note unintentionally slipped into the commit. Fortunately, there was no vulnerability. What caught my eye was that I had fixed the calculation of the minimum encrypted payload length from roundUp(explicitIVLen+macSize+1, blockSize) to (using the same variable names) explicitIVLen + roundUp(macSize+1, blockSize) The explicit nonce sits outside of the encrypted payload, so it should not be part of the value rounded up to the CBC block size. You can see that for some values of the above, the old result could be lower than the correct value. An unexpectedly short payload might cause a panic during decryption (a DoS vulnerability) or even more serious issues due to the constant time code that follows it (see for example Yet Another Padding Oracle in OpenSSL CBC Ciphersuites [1]). In practice, explicitIVLen is either zero or equal to blockSize, so it does not change the amount of rounding up necessary and the two formulations happen to be identical. Nothing to see here. It looked more suspicious than it is in part due to the fact that the explicitIVLen definition moved farther into hc.explicitNonceLen() and changed name from IV (which suggests a block length) to nonce (which doesn't necessarily). But anyway it was never meant to surface or be noted, except it slipped, so here we are for a boring explanation. [1] https://blog.cloudflare.com/yet-another-padding-oracle-in-openssl-cbc-ciphersuites/ Change-Id: I365560dfe006513200fa877551ce7afec9115fdf Reviewed-on: https://go-review.googlesource.com/c/147637 Reviewed-by: Brad Fitzpatrick --- conn.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conn.go b/conn.go index 853e86e..95ca603 100644 --- a/conn.go +++ b/conn.go @@ -350,7 +350,7 @@ func (hc *halfConn) decrypt(record []byte) ([]byte, recordType, error) { } case cbcMode: blockSize := c.BlockSize() - minPayload := explicitNonceLen + roundUp(hc.mac.Size()+1, blockSize) // TODO: vuln? + minPayload := explicitNonceLen + roundUp(hc.mac.Size()+1, blockSize) if len(payload)%blockSize != 0 || len(payload) < minPayload { return nil, 0, alertBadRecordMAC } From f513a10f597b25388b418c04b151f77f3e22ba6f Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Sat, 3 Nov 2018 18:13:05 -0400 Subject: [PATCH 3/8] crypto/tls: implement TLS 1.3 KeyLogWriter support Also, add support for the SSLKEYLOGFILE environment variable to the tests, to simplify debugging of unexpected failures. Updates #9671 Change-Id: I20a34a5824f083da93097b793d51e796d6eb302b Reviewed-on: https://go-review.googlesource.com/c/147417 Run-TryBot: Filippo Valsorda TryBot-Result: Gobot Gobot Reviewed-by: Adam Langley --- common.go | 14 +++++++++---- handshake_client.go | 2 +- handshake_client_test.go | 43 +++++++++++++++++++++++++++++++++++++++ handshake_client_tls13.go | 22 ++++++++++++++++++++ handshake_server.go | 2 +- handshake_server_test.go | 7 +++++++ handshake_server_tls13.go | 22 ++++++++++++++++++++ 7 files changed, 106 insertions(+), 6 deletions(-) diff --git a/common.go b/common.go index ddd3da5..6c86a71 100644 --- a/common.go +++ b/common.go @@ -853,14 +853,20 @@ func (c *Config) BuildNameToCertificate() { } } -// writeKeyLog logs client random and master secret if logging was enabled by -// setting c.KeyLogWriter. -func (c *Config) writeKeyLog(clientRandom, masterSecret []byte) error { +const ( + keyLogLabelTLS12 = "CLIENT_RANDOM" + keyLogLabelClientHandshake = "CLIENT_HANDSHAKE_TRAFFIC_SECRET" + keyLogLabelServerHandshake = "SERVER_HANDSHAKE_TRAFFIC_SECRET" + keyLogLabelClientTraffic = "CLIENT_TRAFFIC_SECRET_0" + keyLogLabelServerTraffic = "SERVER_TRAFFIC_SECRET_0" +) + +func (c *Config) writeKeyLog(label string, clientRandom, secret []byte) error { if c.KeyLogWriter == nil { return nil } - logLine := []byte(fmt.Sprintf("CLIENT_RANDOM %x %x\n", clientRandom, masterSecret)) + logLine := []byte(fmt.Sprintf("%s %x %x\n", label, clientRandom, secret)) writerMutex.Lock() _, err := c.KeyLogWriter.Write(logLine) diff --git a/handshake_client.go b/handshake_client.go index 076a525..3092b1d 100644 --- a/handshake_client.go +++ b/handshake_client.go @@ -524,7 +524,7 @@ func (hs *clientHandshakeState) doFullHandshake() error { } hs.masterSecret = masterFromPreMasterSecret(c.vers, hs.suite, preMasterSecret, hs.hello.random, hs.serverHello.random) - if err := c.config.writeKeyLog(hs.hello.random, hs.masterSecret); err != nil { + if err := c.config.writeKeyLog(keyLogLabelTLS12, hs.hello.random, hs.masterSecret); err != nil { c.sendAlert(alertInternalError) return errors.New("tls: failed to write to key log: " + err.Error()) } diff --git a/handshake_client_test.go b/handshake_client_test.go index dac7a23..745a12e 100644 --- a/handshake_client_test.go +++ b/handshake_client_test.go @@ -968,6 +968,49 @@ func TestKeyLog(t *testing.T) { checkKeylogLine("server", serverBuf.String()) } +func TestKeyLogTLS13(t *testing.T) { + var serverBuf, clientBuf bytes.Buffer + + clientConfig := testConfig.Clone() + clientConfig.KeyLogWriter = &clientBuf + clientConfig.MaxVersion = VersionTLS13 + + serverConfig := testConfig.Clone() + serverConfig.KeyLogWriter = &serverBuf + serverConfig.MaxVersion = VersionTLS13 + + c, s := localPipe(t) + done := make(chan bool) + + go func() { + defer close(done) + + if err := Server(s, serverConfig).Handshake(); err != nil { + t.Errorf("server: %s", err) + return + } + s.Close() + }() + + if err := Client(c, clientConfig).Handshake(); err != nil { + t.Fatalf("client: %s", err) + } + + c.Close() + <-done + + checkKeylogLines := func(side, loggedLines string) { + loggedLines = strings.TrimSpace(loggedLines) + lines := strings.Split(loggedLines, "\n") + if len(lines) != 4 { + t.Errorf("Expected the %s to log 4 lines, got %d", side, len(lines)) + } + } + + checkKeylogLines("client", clientBuf.String()) + checkKeylogLines("server", serverBuf.String()) +} + func TestHandshakeClientALPNMatch(t *testing.T) { config := testConfig.Clone() config.NextProtos = []string{"proto2", "proto1"} diff --git a/handshake_client_tls13.go b/handshake_client_tls13.go index 5f0cb6d..624ca4d 100644 --- a/handshake_client_tls13.go +++ b/handshake_client_tls13.go @@ -269,6 +269,17 @@ func (hs *clientHandshakeStateTLS13) establishHandshakeKeys() error { serverHandshakeTrafficLabel, hs.transcript) c.in.setTrafficSecret(hs.suite, serverSecret) + err := c.config.writeKeyLog(keyLogLabelClientHandshake, hs.hello.random, clientSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + err = c.config.writeKeyLog(keyLogLabelServerHandshake, hs.hello.random, serverSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + hs.masterSecret = hs.suite.extract(nil, hs.suite.deriveSecret(handshakeSecret, "derived", nil)) @@ -409,6 +420,17 @@ func (hs *clientHandshakeStateTLS13) readServerFinished() error { serverApplicationTrafficLabel, hs.transcript) c.in.setTrafficSecret(hs.suite, serverSecret) + err = c.config.writeKeyLog(keyLogLabelClientTraffic, hs.hello.random, hs.trafficSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + err = c.config.writeKeyLog(keyLogLabelServerTraffic, hs.hello.random, serverSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + c.ekm = hs.suite.exportKeyingMaterial(hs.masterSecret, hs.transcript) return nil diff --git a/handshake_server.go b/handshake_server.go index d1f123c..61903bb 100644 --- a/handshake_server.go +++ b/handshake_server.go @@ -528,7 +528,7 @@ func (hs *serverHandshakeState) doFullHandshake() error { return err } hs.masterSecret = masterFromPreMasterSecret(c.vers, hs.suite, preMasterSecret, hs.clientHello.random, hs.hello.random) - if err := c.config.writeKeyLog(hs.clientHello.random, hs.masterSecret); err != nil { + if err := c.config.writeKeyLog(keyLogLabelTLS12, hs.clientHello.random, hs.masterSecret); err != nil { c.sendAlert(alertInternalError) return err } diff --git a/handshake_server_test.go b/handshake_server_test.go index a02eae2..eb6bd2f 100644 --- a/handshake_server_test.go +++ b/handshake_server_test.go @@ -63,6 +63,13 @@ func init() { testConfig.Certificates[1].Certificate = [][]byte{testSNICertificate} testConfig.Certificates[1].PrivateKey = testRSAPrivateKey testConfig.BuildNameToCertificate() + if keyFile := os.Getenv("SSLKEYLOGFILE"); keyFile != "" { + f, err := os.OpenFile(keyFile, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + panic("failed to open SSLKEYLOGFILE: " + err.Error()) + } + testConfig.KeyLogWriter = f + } } func testClientHello(t *testing.T, serverConfig *Config, m handshakeMessage) { diff --git a/handshake_server_tls13.go b/handshake_server_tls13.go index 0ba74d5..9208cf9 100644 --- a/handshake_server_tls13.go +++ b/handshake_server_tls13.go @@ -336,6 +336,17 @@ func (hs *serverHandshakeStateTLS13) sendServerParameters() error { serverHandshakeTrafficLabel, hs.transcript) c.out.setTrafficSecret(hs.suite, serverSecret) + err := c.config.writeKeyLog(keyLogLabelClientHandshake, hs.clientHello.random, clientSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + err = c.config.writeKeyLog(keyLogLabelServerHandshake, hs.clientHello.random, serverSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + encryptedExtensions := new(encryptedExtensionsMsg) if len(hs.clientHello.alpnProtocols) > 0 { @@ -426,6 +437,17 @@ func (hs *serverHandshakeStateTLS13) sendServerFinished() error { serverApplicationTrafficLabel, hs.transcript) c.out.setTrafficSecret(hs.suite, serverSecret) + err := c.config.writeKeyLog(keyLogLabelClientTraffic, hs.clientHello.random, hs.trafficSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + err = c.config.writeKeyLog(keyLogLabelServerTraffic, hs.clientHello.random, serverSecret) + if err != nil { + c.sendAlert(alertInternalError) + return err + } + c.ekm = hs.suite.exportKeyingMaterial(masterSecret, hs.transcript) return nil From e04a8ac694f44ea8b9906363f76416b78e4995b8 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Sat, 3 Nov 2018 18:29:09 -0400 Subject: [PATCH 4/8] crypto/tls: implement TLS 1.3 KeyUpdate messages Since TLS 1.3 delivers handshake messages (including KeyUpdate) after the handshake, the want argument to readRecord had became almost pointless: it only meant something when set to recordTypeChangeCipherSpec. Replaced it with a bool to reflect that, and added two shorthands to avoid anonymous bools in calls. Took the occasion to simplify and formalize the invariants of readRecord. The maxConsecutiveEmptyRecords loop became useless when readRecord started retrying on any non-advancing record in CL 145297. Replaced panics with errors, because failure is better than undefined behavior, but contained failure is better than a DoS vulnerability. For example, I suspect the panic at the top of readRecord was reachable from handleRenegotiation, which calls readHandshake with handshakeComplete false. Thankfully it was not a panic in 1.11, and it's allowed now. Removed Client-TLSv13-RenegotiationRejected because OpenSSL isn't actually willing to ask for renegotiation over TLS 1.3, the expected error was due to NewSessionTicket messages, which didn't break the rest of the tests because they stop too soon. Updates #9671 Change-Id: I297a81bde5c8020a962a92891b70d6d70b90f5e3 Reviewed-on: https://go-review.googlesource.com/c/147418 Run-TryBot: Filippo Valsorda TryBot-Result: Gobot Gobot Reviewed-by: Adam Langley --- common.go | 2 +- conn.go | 249 +++++++++++-------- handshake_client.go | 5 +- handshake_client_test.go | 94 ++++++- handshake_server.go | 5 +- testdata/Client-TLSv13-KeyUpdate | 130 ++++++++++ testdata/Client-TLSv13-RenegotiationRejected | 107 -------- 7 files changed, 364 insertions(+), 228 deletions(-) create mode 100644 testdata/Client-TLSv13-KeyUpdate delete mode 100644 testdata/Client-TLSv13-RenegotiationRejected diff --git a/common.go b/common.go index 6c86a71..1d9e0bd 100644 --- a/common.go +++ b/common.go @@ -38,7 +38,7 @@ const ( maxCiphertextTLS13 = 16384 + 256 // maximum ciphertext length in TLS 1.3 recordHeaderLen = 5 // record header length maxHandshake = 65536 // maximum handshake we support (protocol max is 16 MB) - maxUselessRecords = 5 // maximum number of consecutive non-advancing records + maxUselessRecords = 16 // maximum number of consecutive non-advancing records ) // TLS record types. diff --git a/conn.go b/conn.go index 95ca603..451773e 100644 --- a/conn.go +++ b/conn.go @@ -94,8 +94,9 @@ type Conn struct { bytesSent int64 packetsSent int64 - // retryCount counts the number of consecutive warning alerts received - // by Conn.readRecord. Protected by in.Mutex. + // retryCount counts the number of consecutive non-advancing records + // received by Conn.readRecord. That is, records that neither advance the + // handshake, nor deliver application data. Protected by in.Mutex. retryCount int // activeCall is an atomic int32; the low bit is whether Close has @@ -550,28 +551,35 @@ func (c *Conn) newRecordHeaderError(conn net.Conn, msg string) (err RecordHeader return err } -// readRecord reads the next TLS record from the connection -// and updates the record layer state. -func (c *Conn) readRecord(want recordType) error { - // Caller must be in sync with connection: - // handshake data if handshake not yet completed, - // else application data. - switch want { - default: - panic("tls: unknown record type requested") - case recordTypeHandshake, recordTypeChangeCipherSpec: - if c.handshakeComplete() { - panic("tls: handshake or ChangeCipherSpec requested while not in handshake") - } - case recordTypeApplicationData: - if !c.handshakeComplete() { - panic("tls: application data record requested while in handshake") - } +func (c *Conn) readRecord() error { + return c.readRecordOrCCS(false) +} + +func (c *Conn) readChangeCipherSpec() error { + return c.readRecordOrCCS(true) +} + +// readRecordOrCCS reads one or more TLS records from the connection and +// updates the record layer state. Some invariants: +// * c.in must be locked +// * c.input must be empty +// During the handshake one and only one of the following will happen: +// - c.hand grows +// - c.in.changeCipherSpec is called +// - an error is returned +// After the handshake one and only one of the following will happen: +// - c.hand grows +// - c.input is set +// - an error is returned +func (c *Conn) readRecordOrCCS(expectChangeCipherSpec bool) error { + if c.in.err != nil { + return c.in.err } + handshakeComplete := c.handshakeComplete() // This function modifies c.rawInput, which owns the c.input memory. if c.input.Len() != 0 { - panic("tls: attempted to read record with pending application data") + return c.in.setErrorLocked(errors.New("tls: internal error: attempted to read record with pending application data")) } c.input.Reset(nil) @@ -595,7 +603,7 @@ func (c *Conn) readRecord(want recordType) error { // start with a uint16 length where the MSB is set and the first record // is always < 256 bytes long. Therefore typ == 0x80 strongly suggests // an SSLv2 client. - if want == recordTypeHandshake && typ == 0x80 { + if !handshakeComplete && typ == 0x80 { c.sendAlert(alertProtocolVersion) return c.in.setErrorLocked(c.newRecordHeaderError(nil, "unsupported SSLv2 handshake received")) } @@ -612,7 +620,7 @@ func (c *Conn) readRecord(want recordType) error { // client. Bail out before reading a full 'body', if possible. // The current max version is 3.3 so if the version is >= 16.0, // it's probably not real. - if (typ != recordTypeAlert && typ != want) || vers >= 0x1000 { + if (typ != recordTypeAlert && typ != recordTypeHandshake) || vers >= 0x1000 { return c.in.setErrorLocked(c.newRecordHeaderError(c.conn, "first record does not look like a TLS handshake")) } } @@ -653,18 +661,6 @@ func (c *Conn) readRecord(want recordType) error { return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) } - // In TLS 1.3, change_cipher_spec records are ignored until the Finished. - // See RFC 8446, Appendix D.4. Note that according to Section 5, a server - // can send a ChangeCipherSpec before its ServerHello, when c.vers is still - // unset. That's not useful though and suspicious if the server then selects - // a lower protocol version, so don't allow that. - if c.vers == VersionTLS13 && typ == recordTypeChangeCipherSpec { - if len(data) != 1 || data[0] != 1 || c.handshakeComplete() { - return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) - } - return c.retryReadRecord(want) - } - switch typ { default: return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) @@ -681,7 +677,8 @@ func (c *Conn) readRecord(want recordType) error { } switch data[0] { case alertLevelWarning: - return c.retryReadRecord(want) // Drop the record on the floor and retry. + // Drop the record on the floor and retry. + return c.retryReadRecord(expectChangeCipherSpec) case alertLevelError: return c.in.setErrorLocked(&net.OpError{Op: "remote error", Err: alert(data[1])}) default: @@ -689,59 +686,61 @@ func (c *Conn) readRecord(want recordType) error { } case recordTypeChangeCipherSpec: - if typ != want || len(data) != 1 || data[0] != 1 { - return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + if len(data) != 1 || data[0] != 1 { + return c.in.setErrorLocked(c.sendAlert(alertDecodeError)) } // Handshake messages are not allowed to fragment across the CCS. if c.hand.Len() > 0 { return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) } + // In TLS 1.3, change_cipher_spec records are ignored until the + // Finished. See RFC 8446, Appendix D.4. Note that according to Section + // 5, a server can send a ChangeCipherSpec before its ServerHello, when + // c.vers is still unset. That's not useful though and suspicious if the + // server then selects a lower protocol version, so don't allow that. + if c.vers == VersionTLS13 { + return c.retryReadRecord(expectChangeCipherSpec) + } + if !expectChangeCipherSpec { + return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) + } if err := c.in.changeCipherSpec(); err != nil { return c.in.setErrorLocked(c.sendAlert(err.(alert))) } - return nil case recordTypeApplicationData: - if typ != want { + if !handshakeComplete || expectChangeCipherSpec { return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) } + // Some OpenSSL servers send empty records in order to randomize the + // CBC IV. Ignore a limited number of empty records. if len(data) == 0 { - return c.retryReadRecord(want) + return c.retryReadRecord(expectChangeCipherSpec) } // Note that data is owned by c.rawInput, following the Next call above, // to avoid copying the plaintext. This is safe because c.rawInput is // not read from or written to until c.input is drained. c.input.Reset(data) - return nil case recordTypeHandshake: - if typ != want && !c.isRenegotiationAcceptable() { - return c.in.setErrorLocked(c.sendAlert(alertNoRenegotiation)) - } - if len(data) == 0 { + if len(data) == 0 || expectChangeCipherSpec { return c.in.setErrorLocked(c.sendAlert(alertUnexpectedMessage)) } c.hand.Write(data) - return nil } + + return nil } -// retryReadRecord recurses into readRecord to drop a non-advancing record, like +// retryReadRecord recurses into readRecordOrCCS to drop a non-advancing record, like // a warning alert, empty application_data, or a change_cipher_spec in TLS 1.3. -func (c *Conn) retryReadRecord(want recordType) error { +func (c *Conn) retryReadRecord(expectChangeCipherSpec bool) error { c.retryCount++ if c.retryCount > maxUselessRecords { c.sendAlert(alertUnexpectedMessage) return c.in.setErrorLocked(errors.New("tls: too many ignored records")) } - return c.readRecord(want) -} - -func (c *Conn) isRenegotiationAcceptable() bool { - return c.isClient && - c.vers != VersionTLS13 && - c.handshakeComplete() && - c.config.Renegotiation != RenegotiateNever + return c.readRecordOrCCS(expectChangeCipherSpec) } // atLeastReader reads from R, stopping with EOF once at least N bytes have been @@ -969,10 +968,7 @@ func (c *Conn) writeRecord(typ recordType, data []byte) (int, error) { // the record layer. func (c *Conn) readHandshake() (interface{}, error) { for c.hand.Len() < 4 { - if err := c.in.err; err != nil { - return nil, err - } - if err := c.readRecord(recordTypeHandshake); err != nil { + if err := c.readRecord(); err != nil { return nil, err } } @@ -984,10 +980,7 @@ func (c *Conn) readHandshake() (interface{}, error) { return nil, c.in.setErrorLocked(fmt.Errorf("tls: handshake message of length %d bytes exceeds maximum of %d bytes", n, maxHandshake)) } for c.hand.Len() < 4+n { - if err := c.in.err; err != nil { - return nil, err - } - if err := c.readRecord(recordTypeHandshake); err != nil { + if err := c.readRecord(); err != nil { return nil, err } } @@ -1130,10 +1123,10 @@ func (c *Conn) handleRenegotiation() error { return err } - _, ok := msg.(*helloRequestMsg) + helloReq, ok := msg.(*helloRequestMsg) if !ok { c.sendAlert(alertUnexpectedMessage) - return alertUnexpectedMessage + return unexpectedMessageError(helloReq, msg) } if !c.isClient { @@ -1164,6 +1157,70 @@ func (c *Conn) handleRenegotiation() error { return c.handshakeErr } +// handlePostHandshakeMessage processes a handshake message arrived after the +// handshake is complete. Up to TLS 1.2, it indicates the start of a renegotiation. +func (c *Conn) handlePostHandshakeMessage() error { + if c.vers != VersionTLS13 { + return c.handleRenegotiation() + } + + msg, err := c.readHandshake() + if err != nil { + return err + } + + switch msg := msg.(type) { + case *newSessionTicketMsgTLS13: + // TODO(filippo): TLS 1.3 session ticket not implemented. + return nil + case *keyUpdateMsg: + return c.handleKeyUpdate(msg) + default: + c.sendAlert(alertUnexpectedMessage) + return fmt.Errorf("tls: received unexpected handshake message of type %T", msg) + } +} + +func (c *Conn) handleKeyUpdate(keyUpdate *keyUpdateMsg) error { + c.retryCount++ + if c.retryCount > maxUselessRecords { + c.sendAlert(alertUnexpectedMessage) + return c.in.setErrorLocked(errors.New("tls: too many non-advancing records")) + } + + var cipherSuite *cipherSuiteTLS13 + for _, suite := range cipherSuitesTLS13 { + if suite.id == c.cipherSuite { + cipherSuite = suite + break + } + } + if cipherSuite == nil { + return c.in.setErrorLocked(c.sendAlert(alertInternalError)) + } + + newSecret := cipherSuite.nextTrafficSecret(c.in.trafficSecret) + c.in.setTrafficSecret(cipherSuite, newSecret) + + if keyUpdate.updateRequested { + c.out.Lock() + defer c.out.Unlock() + + msg := &keyUpdateMsg{} + _, err := c.writeRecordLocked(recordTypeHandshake, msg.marshal()) + if err != nil { + // Surface the error at the next write. + c.out.setErrorLocked(err) + return nil + } + + newSecret := cipherSuite.nextTrafficSecret(c.out.trafficSecret) + c.out.setTrafficSecret(cipherSuite, newSecret) + } + + return nil +} + // Read can be made to time out and return a net.Error with Timeout() == true // after a fixed time limit; see SetDeadline and SetReadDeadline. func (c *Conn) Read(b []byte) (int, error) { @@ -1179,48 +1236,34 @@ func (c *Conn) Read(b []byte) (int, error) { c.in.Lock() defer c.in.Unlock() - // Some OpenSSL servers send empty records in order to randomize the - // CBC IV. So this loop ignores a limited number of empty records. - const maxConsecutiveEmptyRecords = 100 - for emptyRecordCount := 0; emptyRecordCount <= maxConsecutiveEmptyRecords; emptyRecordCount++ { - for c.input.Len() == 0 && c.in.err == nil { - if err := c.readRecord(recordTypeApplicationData); err != nil { - return 0, err - } - if c.hand.Len() > 0 { - // We received handshake bytes, indicating the - // start of a renegotiation. - if err := c.handleRenegotiation(); err != nil { - return 0, err - } - } - } - if err := c.in.err; err != nil { + for c.input.Len() == 0 { + if err := c.readRecord(); err != nil { return 0, err } - - n, _ := c.input.Read(b) - - // If a close-notify alert is waiting, read it so that we can return (n, - // EOF) instead of (n, nil), to signal to the HTTP response reading - // goroutine that the connection is now closed. This eliminates a race - // where the HTTP response reading goroutine would otherwise not observe - // the EOF until its next read, by which time a client goroutine might - // have already tried to reuse the HTTP connection for a new request. - // See https://golang.org/cl/76400046 and https://golang.org/issue/3514 - if n != 0 && c.input.Len() == 0 && c.rawInput.Len() > 0 && - recordType(c.rawInput.Bytes()[0]) == recordTypeAlert { - if err := c.readRecord(recordTypeApplicationData); err != nil { - return n, err // will be io.EOF on closeNotify + for c.hand.Len() > 0 { + if err := c.handlePostHandshakeMessage(); err != nil { + return 0, err } } - - if n != 0 { - return n, nil - } } - return 0, io.ErrNoProgress + n, _ := c.input.Read(b) + + // If a close-notify alert is waiting, read it so that we can return (n, + // EOF) instead of (n, nil), to signal to the HTTP response reading + // goroutine that the connection is now closed. This eliminates a race + // where the HTTP response reading goroutine would otherwise not observe + // the EOF until its next read, by which time a client goroutine might + // have already tried to reuse the HTTP connection for a new request. + // See https://golang.org/cl/76400046 and https://golang.org/issue/3514 + if n != 0 && c.input.Len() == 0 && c.rawInput.Len() > 0 && + recordType(c.rawInput.Bytes()[0]) == recordTypeAlert { + if err := c.readRecord(); err != nil { + return n, err // will be io.EOF on closeNotify + } + } + + return n, nil } // Close closes the connection. @@ -1314,7 +1357,7 @@ func (c *Conn) Handshake() error { } if c.handshakeErr == nil && !c.handshakeComplete() { - panic("tls: internal error: handshake should have had a result") + c.handshakeErr = errors.New("tls: internal error: handshake should have had a result") } return c.handshakeErr diff --git a/handshake_client.go b/handshake_client.go index 3092b1d..1d2ba12 100644 --- a/handshake_client.go +++ b/handshake_client.go @@ -643,9 +643,8 @@ func (hs *clientHandshakeState) processServerHello() (bool, error) { func (hs *clientHandshakeState) readFinished(out []byte) error { c := hs.c - c.readRecord(recordTypeChangeCipherSpec) - if c.in.err != nil { - return c.in.err + if err := c.readChangeCipherSpec(); err != nil { + return err } msg, err := c.readHandshake() diff --git a/handshake_client_test.go b/handshake_client_test.go index 745a12e..d52c7cc 100644 --- a/handshake_client_test.go +++ b/handshake_client_test.go @@ -53,6 +53,10 @@ const ( // opensslSendBanner causes OpenSSL to send the contents of // opensslSentinel on the connection. opensslSendSentinel + + // opensslKeyUpdate causes OpenSSL to send send a key update message to the + // client and request one back. + opensslKeyUpdate ) const opensslSentinel = "SENTINEL\n" @@ -64,6 +68,8 @@ func (i opensslInput) Read(buf []byte) (n int, err error) { switch event { case opensslRenegotiate: return copy(buf, []byte("R\n")), nil + case opensslKeyUpdate: + return copy(buf, []byte("K\n")), nil case opensslSendSentinel: return copy(buf, []byte(opensslSentinel)), nil default: @@ -74,23 +80,28 @@ func (i opensslInput) Read(buf []byte) (n int, err error) { return 0, io.EOF } -// opensslOutputSink is an io.Writer that receives the stdout and stderr from -// an `openssl` process and sends a value to handshakeComplete when it sees a -// log message from a completed server handshake. +// opensslOutputSink is an io.Writer that receives the stdout and stderr from an +// `openssl` process and sends a value to handshakeComplete or readKeyUpdate +// when certain messages are seen. type opensslOutputSink struct { handshakeComplete chan struct{} + readKeyUpdate chan struct{} all []byte line []byte } func newOpensslOutputSink() *opensslOutputSink { - return &opensslOutputSink{make(chan struct{}), nil, nil} + return &opensslOutputSink{make(chan struct{}), make(chan struct{}), nil, nil} } // opensslEndOfHandshake is a message that the “openssl s_server” tool will // print when a handshake completes if run with “-state”. const opensslEndOfHandshake = "SSL_accept:SSLv3/TLS write finished" +// opensslReadKeyUpdate is a message that the “openssl s_server” tool will +// print when a KeyUpdate message is received if run with “-state”. +const opensslReadKeyUpdate = "SSL_accept:TLSv1.3 read client key update" + func (o *opensslOutputSink) Write(data []byte) (n int, err error) { o.line = append(o.line, data...) o.all = append(o.all, data...) @@ -104,6 +115,9 @@ func (o *opensslOutputSink) Write(data []byte) (n int, err error) { if bytes.Equal([]byte(opensslEndOfHandshake), o.line[:i]) { o.handshakeComplete <- struct{}{} } + if bytes.Equal([]byte(opensslReadKeyUpdate), o.line[:i]) { + o.readKeyUpdate <- struct{}{} + } o.line = o.line[i+1:] } @@ -150,6 +164,8 @@ type clientTest struct { // arising from renegotiation. It can map expected errors to nil to // ignore them. checkRenegotiationError func(renegotiationNum int, err error) error + // sendKeyUpdate will cause the server to send a KeyUpdate message. + sendKeyUpdate bool } var defaultServerCommand = []string{"openssl", "s_server"} @@ -221,7 +237,7 @@ func (test *clientTest) connFromCommand() (conn *recordingConn, child *exec.Cmd, command = append(command, "-serverinfo", serverInfoPath) } - if test.numRenegotiations > 0 { + if test.numRenegotiations > 0 || test.sendKeyUpdate { found := false for _, flag := range command[1:] { if flag == "-state" { @@ -231,7 +247,7 @@ func (test *clientTest) connFromCommand() (conn *recordingConn, child *exec.Cmd, } if !found { - panic("-state flag missing to OpenSSL. You need this if testing renegotiation") + panic("-state flag missing to OpenSSL, you need this if testing renegotiation or KeyUpdate") } } @@ -352,7 +368,7 @@ func (test *clientTest) run(t *testing.T, write bool) { signalChan := make(chan struct{}) go func() { - defer func() { signalChan <- struct{}{} }() + defer close(signalChan) buf := make([]byte, 256) n, err := client.Read(buf) @@ -387,11 +403,62 @@ func (test *clientTest) run(t *testing.T, write bool) { <-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 { + 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 { @@ -786,6 +853,15 @@ func TestHandshakeClientCertRSAPKCS1v15(t *testing.T) { runClientTestTLS12(t, test) } +func TestClientKeyUpdate(t *testing.T) { + test := &clientTest{ + name: "KeyUpdate", + command: []string{"openssl", "s_server", "-state"}, + sendKeyUpdate: true, + } + runClientTestTLS13(t, test) +} + func TestClientResumption(t *testing.T) { serverConfig := &Config{ CipherSuites: []uint16{TLS_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA}, @@ -1092,11 +1168,7 @@ func TestRenegotiationRejected(t *testing.T) { return nil }, } - runClientTestTLS12(t, test) - - config.Renegotiation = RenegotiateFreelyAsClient - runClientTestTLS13(t, test) } func TestRenegotiateOnce(t *testing.T) { diff --git a/handshake_server.go b/handshake_server.go index 61903bb..3b4f8b7 100644 --- a/handshake_server.go +++ b/handshake_server.go @@ -602,9 +602,8 @@ func (hs *serverHandshakeState) establishKeys() error { func (hs *serverHandshakeState) readFinished(out []byte) error { c := hs.c - c.readRecord(recordTypeChangeCipherSpec) - if c.in.err != nil { - return c.in.err + if err := c.readChangeCipherSpec(); err != nil { + return err } if hs.hello.nextProtoNeg { diff --git a/testdata/Client-TLSv13-KeyUpdate b/testdata/Client-TLSv13-KeyUpdate new file mode 100644 index 0000000..6ba717e --- /dev/null +++ b/testdata/Client-TLSv13-KeyUpdate @@ -0,0 +1,130 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 f8 01 00 00 f4 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 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 32 cc a8 |.............2..| +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 13 01 13 03 13 02 |................| +00000080 01 00 00 79 00 05 00 05 01 00 00 00 00 00 0a 00 |...y............| +00000090 0a 00 08 00 1d 00 17 00 18 00 19 00 0b 00 02 01 |................| +000000a0 00 00 0d 00 18 00 16 08 04 08 05 08 06 04 01 04 |................| +000000b0 03 05 01 05 03 06 01 06 03 02 01 02 03 ff 01 00 |................| +000000c0 01 00 00 12 00 00 00 2b 00 09 08 03 04 03 03 03 |.......+........| +000000d0 02 03 01 00 33 00 26 00 24 00 1d 00 20 2f e5 7d |....3.&.$... /.}| +000000e0 a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 ff f6 |.G.bC.(.._.).0..| +000000f0 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 |........_X.;t| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 91 02 b1 d0 21 |....z...v......!| +00000010 d1 5d ff 00 e2 ab f3 af 0d 22 45 1a a0 7d f1 c7 |.]......."E..}..| +00000020 73 fd 01 af f5 6e b4 d8 51 a7 26 20 00 00 00 00 |s....n..Q.& ....| +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 13 01 00 00 |................| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 d4 |..+.....3.$... .| +00000060 6c db da 9b 60 3b 55 58 d2 7b 00 7c 85 8f 97 92 |l...`;UX.{.|....| +00000070 b6 02 a7 9f c2 fc cd 7f e4 45 37 ff f0 85 51 14 |.........E7...Q.| +00000080 03 03 00 01 01 17 03 03 00 17 c0 42 45 55 77 7d |...........BEUw}| +00000090 3c 65 5a 6a 1f d2 57 ff 9b b6 fe bf 2f 50 04 c9 || +00000230 6c 69 fd b2 4a f8 85 54 99 25 35 f7 66 50 fe 3f |li..J..T.%5.fP.?| +00000240 3f a3 2e b6 a1 f3 df d0 0b 2c 81 04 37 83 bd fe |?........,..7...| +00000250 15 69 2a 28 93 25 7e be a7 a2 54 14 ce ad 8c 93 |.i*(.%~...T.....| +00000260 5d 4b e8 bf 07 27 c3 ec 91 2f 55 39 4f 70 1d 17 |]K...'.../U9Op..| +00000270 3a f9 a5 71 0f 41 a6 17 fc 71 b6 50 43 aa 14 b6 |:..q.A...q.PC...| +00000280 38 ab af 0b 30 92 77 4d 02 97 fc fb 0d a9 50 96 |8...0.wM......P.| +00000290 68 30 49 6f 80 0e d3 99 27 a9 50 37 42 51 04 e1 |h0Io....'.P7BQ..| +000002a0 e8 88 93 1b 0a bf 86 14 c3 d9 b3 49 1a ce 2d 65 |...........I..-e| +000002b0 72 47 2a 3c b1 fd a3 4a fb a1 e8 c1 69 24 3a 51 |rG*<...J....i$:Q| +000002c0 17 1d 7b e7 33 77 21 94 67 5e f0 e7 93 5c 84 97 |..{.3w!.g^...\..| +000002d0 25 00 cd b2 d9 a1 40 06 6b f8 df a3 4b 7e 48 4c |%.....@.k...K~HL| +000002e0 14 30 93 17 cd 6b 8e e7 56 a0 34 1f d9 ba 14 16 |.0...k..V.4.....| +000002f0 cf 2c 1e c5 35 84 31 6f e8 81 f5 7c b2 11 5c 9d |.,..5.1o...|..\.| +00000300 5d 05 1c 12 41 74 ad 20 74 0c 0c 72 5e f2 43 1c |]...At. t..r^.C.| +00000310 91 1a 4d 17 03 03 00 99 d6 a2 b9 7b 55 6b d2 13 |..M........{Uk..| +00000320 9d 89 e6 7b d4 b2 e9 1c f6 7d 91 0a 87 00 ba 03 |...{.....}......| +00000330 c3 ae 47 e9 79 1b 75 e8 8b fe a8 15 4d 33 93 a5 |..G.y.u.....M3..| +00000340 df e7 d0 40 de 7c f2 63 2d 46 7a 1d e8 2d c6 dd |...@.|.c-Fz..-..| +00000350 56 ec cc 49 87 05 ad 2a c3 e4 89 2c c6 7c 2a 6a |V..I...*...,.|*j| +00000360 60 68 40 49 73 2b 29 55 9a 7b c4 e4 c6 24 5e 41 |`h@Is+)U.{...$^A| +00000370 16 c7 c2 46 e1 cf 10 cc 1d 3d b4 96 b3 ba c4 17 |...F.....=......| +00000380 1e dd e2 71 fc 80 45 f9 43 a1 16 4d e7 b4 ac a6 |...q..E.C..M....| +00000390 d3 26 a6 c2 23 06 6e 1c 4f 7e 1e a3 f1 57 e1 0c |.&..#.n.O~...W..| +000003a0 50 a6 5f 23 f4 a9 f8 b4 56 e9 d0 8c f6 fb ac 33 |P._#....V......3| +000003b0 b8 17 03 03 00 35 55 f6 25 b8 52 df c4 e2 2f b0 |.....5U.%.R.../.| +000003c0 ac 41 c3 ed 49 8d 73 cf f4 48 c2 4f 33 8c 56 df |.A..I.s..H.O3.V.| +000003d0 11 03 9e 7f de 78 d7 03 c3 f4 de e5 69 8e e4 9a |.....x......i...| +000003e0 c0 47 3b c9 99 3e 35 c9 66 b9 5a |.G;..>5.f.Z| +>>> Flow 3 (client to server) +00000000 17 03 03 00 35 03 e0 6c 82 55 1c 8a cb 82 4e 3d |....5..l.U....N=| +00000010 4a 5c 4f 94 3b 9c 23 fe 9d 5f 66 22 6a 83 31 98 |J\O.;.#.._f"j.1.| +00000020 e9 5b 0c 17 54 86 11 5f 85 2c 8c a8 fa 80 a0 d5 |.[..T.._.,......| +00000030 5f c5 02 30 0a 93 1f 42 b1 a9 17 03 03 00 17 3f |_..0...B.......?| +00000040 82 d9 94 f8 84 d1 9f 87 67 c2 37 b5 17 09 0a 99 |........g.7.....| +00000050 81 6d 0b 70 0b 6e |.m.p.n| +>>> Flow 4 (server to client) +00000000 17 03 03 00 da 94 6d 10 ed 89 9a e2 a8 d4 87 52 |......m........R| +00000010 7e ff c2 55 79 a7 9d a6 41 6d 1c d0 b5 75 10 95 |~..Uy...Am...u..| +00000020 8f 02 f4 49 b8 ad e7 29 77 d3 ed ab ee 4d db 6c |...I...)w....M.l| +00000030 fa 1b 42 d2 fe f7 d3 a2 a5 ed d5 0a d9 33 13 00 |..B..........3..| +00000040 6b 7b a0 79 08 c6 80 8c 74 c4 15 18 50 a4 b3 93 |k{.y....t...P...| +00000050 73 89 85 eb e6 d2 3d 64 db aa ec 68 22 64 22 ae |s.....=d...h"d".| +00000060 35 a5 7f 01 5b de eb ba f9 0e 5b 89 30 a8 5e 47 |5...[.....[.0.^G| +00000070 39 06 cb 4a bb ce 2c e5 87 36 3f b7 4f 02 6d 32 |9..J..,..6?.O.m2| +00000080 38 86 15 b2 17 60 af 95 8a 6c f1 29 ac e6 da 05 |8....`...l.)....| +00000090 78 42 e0 5f 7c a7 1e 3b 1c 85 5f 2d 2f 8f de c2 |xB._|..;.._-/...| +000000a0 a4 fb 53 ed 74 06 76 08 ef af 8b 59 f2 5e d2 2f |..S.t.v....Y.^./| +000000b0 a0 09 81 cb 41 e4 7d 11 6e 64 49 ff dc bf ac f3 |....A.}.ndI.....| +000000c0 13 d8 d5 a2 69 60 ef cd 82 7a 72 78 c3 58 5b 73 |....i`...zrx.X[s| +000000d0 7b 77 7a 4d cd 66 a0 fb ab 46 37 6d 4f 4e 57 17 |{wzM.f...F7mONW.| +000000e0 03 03 00 da d8 64 ed 87 a6 ac ae d1 16 25 ee 7a |.....d.......%.z| +000000f0 e1 2d 0a 61 1b db 33 c9 72 92 75 04 1f af 6b fb |.-.a..3.r.u...k.| +00000100 73 e6 55 fe 3c cb c8 93 0b 15 ae d1 dc 39 f2 a9 |s.U.<........9..| +00000110 52 29 69 0f cd 3a 9d c6 8a c6 e0 57 c0 29 19 dc |R)i..:.....W.)..| +00000120 26 4d ec b8 49 d3 11 6f 83 c3 a3 71 bb 70 ca 07 |&M..I..o...q.p..| +00000130 bf 7a 94 15 58 6f a0 f8 b4 23 70 e7 c4 1a 3d 03 |.z..Xo...#p...=.| +00000140 c9 55 da 35 47 8c 08 79 09 f6 0e 67 b0 ea 35 ed |.U.5G..y...g..5.| +00000150 37 72 02 92 41 ef 6f 05 db 04 e2 17 35 22 2c c9 |7r..A.o.....5",.| +00000160 98 4b 86 a9 b3 bf 4a 21 9f 01 b1 9b b2 6e 08 d4 |.K....J!.....n..| +00000170 04 9d 60 1d af 79 b5 cd c1 5d c3 26 92 60 c7 7b |..`..y...].&.`.{| +00000180 b2 6f 11 21 58 7d 28 75 92 f3 7c 43 d2 60 0c 8b |.o.!X}(u..|C.`..| +00000190 51 a0 ec a7 b9 1e bb 31 52 ca 48 7e 77 fe 24 d7 |Q......1R.H~w.$.| +000001a0 a5 f6 51 ab 7a 1d ad dd e3 6e 9c 6a a3 46 f5 5d |..Q.z....n.j.F.]| +000001b0 22 33 c7 86 c9 08 d1 1c 07 b7 93 ac f3 93 17 03 |"3..............| +000001c0 03 00 16 51 14 60 dd e3 6f 3d ae 8e b0 da 29 b3 |...Q.`..o=....).| +000001d0 ef 24 61 5b 10 52 da ba b0 |.$a[.R...| +>>> Flow 5 (client to server) +00000000 17 03 03 00 16 28 82 46 cd 7d f4 b8 ad 95 3d 87 |.....(.F.}....=.| +00000010 6f 95 c2 b5 84 1e 5b fc f9 9b 15 |o.....[....| +>>> Flow 6 (server to client) +00000000 17 03 03 00 1a 3b 79 64 b2 54 a9 0f e7 76 a3 47 |.....;yd.T...v.G| +00000010 bc c1 e2 e0 0d 3d c3 60 43 d2 29 cb e4 89 de |.....=.`C.)....| +>>> Flow 7 (client to server) +00000000 17 03 03 00 1d fc 2f 64 89 dc 2d 83 18 7e 48 20 |....../d..-..~H | +00000010 33 32 5c bf 2c a6 c6 4d 26 f6 75 cd 9d ce 20 1e |32\.,..M&.u... .| +00000020 d9 b8 17 03 03 00 13 6b c6 68 a6 50 07 18 2b f3 |.......k.h.P..+.| +00000030 73 29 e5 f4 0d f1 ce c9 c0 39 |s).......9| diff --git a/testdata/Client-TLSv13-RenegotiationRejected b/testdata/Client-TLSv13-RenegotiationRejected deleted file mode 100644 index 69efb59..0000000 --- a/testdata/Client-TLSv13-RenegotiationRejected +++ /dev/null @@ -1,107 +0,0 @@ ->>> Flow 1 (client to server) -00000000 16 03 01 00 f8 01 00 00 f4 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 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 32 cc a8 |.............2..| -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 13 01 13 03 13 02 |................| -00000080 01 00 00 79 00 05 00 05 01 00 00 00 00 00 0a 00 |...y............| -00000090 0a 00 08 00 1d 00 17 00 18 00 19 00 0b 00 02 01 |................| -000000a0 00 00 0d 00 18 00 16 08 04 08 05 08 06 04 01 04 |................| -000000b0 03 05 01 05 03 06 01 06 03 02 01 02 03 ff 01 00 |................| -000000c0 01 00 00 12 00 00 00 2b 00 09 08 03 04 03 03 03 |.......+........| -000000d0 02 03 01 00 33 00 26 00 24 00 1d 00 20 2f e5 7d |....3.&.$... /.}| -000000e0 a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 ff f6 |.G.bC.(.._.).0..| -000000f0 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 |........_X.;t| ->>> Flow 2 (server to client) -00000000 16 03 03 00 7a 02 00 00 76 03 03 54 7e 6f 02 63 |....z...v..T~o.c| -00000010 1c ce 10 08 72 06 43 09 69 c1 bb d1 df 5d 05 1f |....r.C.i....]..| -00000020 67 44 47 37 10 75 37 ab 8b dd 58 20 00 00 00 00 |gDG7.u7...X ....| -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 13 01 00 00 |................| -00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 e0 |..+.....3.$... .| -00000060 69 f4 18 18 65 bd a3 f0 ec c5 29 6b 1d 97 53 4c |i...e.....)k..SL| -00000070 84 c0 e1 d7 81 21 66 9d bc 9a e1 b6 62 70 3e 14 |.....!f.....bp>.| -00000080 03 03 00 01 01 17 03 03 00 17 b8 7a b7 13 71 7b |...........z..q{| -00000090 d0 0f fa 58 ae bb b3 1f 2b c9 77 08 94 22 d9 69 |...X....+.w..".i| -000000a0 78 17 03 03 02 6d 80 bb df 32 4b 7f 94 3d f2 34 |x....m...2K..=.4| -000000b0 ea cd 2d fc f1 8f eb 33 39 73 f2 ad 17 20 fa be |..-....39s... ..| -000000c0 99 15 48 91 af fc 01 80 63 e2 05 64 ea 5f 72 9c |..H.....c..d._r.| -000000d0 2c 30 41 ad 62 d2 17 4e eb 10 bb 54 b6 63 08 cb |,0A.b..N...T.c..| -000000e0 3b 2c a7 30 44 ca 78 20 f3 0b 8f 41 cf 3f 32 e8 |;,.0D.x ...A.?2.| -000000f0 e5 b1 a7 2f 0d 04 59 3e 00 85 36 41 17 f8 13 b7 |.../..Y>..6A....| -00000100 92 24 2c 14 49 05 0c fa d7 73 95 10 e6 fb b4 7e |.$,.I....s.....~| -00000110 6e 24 b1 87 cb aa 5e 09 c8 c7 57 16 eb 6d d3 ec |n$....^...W..m..| -00000120 d6 39 c2 ab 3d b8 8e 0e 7e ec 58 3d 0e 9e 81 7f |.9..=...~.X=....| -00000130 2d ad 32 0d d7 18 5f e2 b8 0d d7 59 90 e6 40 49 |-.2..._....Y..@I| -00000140 4f 20 8b fb 9d 94 f9 15 50 0e bb d9 cd ed 9c 7f |O ......P.......| -00000150 88 ce cb b2 60 6a 9d f1 de fa df 43 df 24 c2 15 |....`j.....C.$..| -00000160 64 a0 72 f8 36 fe 38 2d a1 78 58 51 cd 9e df 59 |d.r.6.8-.xXQ...Y| -00000170 5b ea fb d8 e9 31 e2 33 b9 5f fb a6 a2 bb 5f c8 |[....1.3._...._.| -00000180 80 37 16 71 2c 9d d5 98 85 dd 79 ff 82 01 e4 80 |.7.q,.....y.....| -00000190 09 e1 02 22 b2 08 a6 ef bb 05 2b 52 6c 31 08 94 |..."......+Rl1..| -000001a0 f3 31 7a fd b6 f3 b9 8d 19 74 f9 fd 76 6e 4c 29 |.1z......t..vnL)| -000001b0 cf 06 48 e0 4e 85 5d 03 63 97 ef 59 fe 8e 51 2e |..H.N.].c..Y..Q.| -000001c0 2f 68 ad 55 14 b1 56 9b 00 eb 43 2a 03 7e 56 a8 |/h.U..V...C*.~V.| -000001d0 5f 83 6d 4f a2 43 1f 95 2d 8f 6d b3 e2 fb 63 ce |_.mO.C..-.m...c.| -000001e0 de ef e6 e2 0b 3d 7c dd 06 62 38 80 ce a6 88 03 |.....=|..b8.....| -000001f0 3b 39 67 3c 60 ea 4c a4 0b 2d 8a d3 b0 b9 2f 10 |;9g<`.L..-..../.| -00000200 85 5f 30 a5 37 e9 f1 0d 34 f7 a4 c7 15 7b c7 08 |._0.7...4....{..| -00000210 7a 32 8f 52 87 ac 67 c1 c3 f4 1a e0 f3 3a ff ae |z2.R..g......:..| -00000220 85 85 ca d9 4b 4f ad 5f b3 bd 65 98 b4 63 b1 68 |....KO._..e..c.h| -00000230 29 38 39 37 e0 46 01 2f 4d dd 11 94 b0 0e 15 d9 |)897.F./M.......| -00000240 1d c8 a8 ee 4f 72 2d 3c 7b 4a 9b 6a 82 bd f6 78 |....Or-<{J.j...x| -00000250 94 c2 43 e5 6c 14 3f 69 4c dc 6a 7b fa e4 a3 1c |..C.l.?iL.j{....| -00000260 cc 46 75 e3 b2 50 5b 29 50 67 91 ea 45 54 87 42 |.Fu..P[)Pg..ET.B| -00000270 38 99 12 e8 25 86 ab 2b a8 24 72 dc 75 ae d6 bd |8...%..+.$r.u...| -00000280 93 ab fb 75 07 8a 7a 2b 6c 1b 0f 06 6d 9e cd e2 |...u..z+l...m...| -00000290 d4 c6 f0 52 7e 52 59 dd 9b cd 5c d1 77 17 1b d7 |...R~RY...\.w...| -000002a0 1d 03 4f 4e d8 0f b7 7c c7 f8 10 6a 3c 97 4f e3 |..ON...|...j<.O.| -000002b0 e3 2d b3 2a b0 42 c0 ab 9c fd 33 88 b6 8b 60 95 |.-.*.B....3...`.| -000002c0 fb 14 35 28 66 b5 49 1b a3 45 a6 e3 d4 86 ff ec |..5(f.I..E......| -000002d0 6e ad 18 54 60 66 e0 28 89 e8 12 3a ba f6 ab b6 |n..T`f.(...:....| -000002e0 f6 e8 68 3e 2a 2b d7 e0 c8 ed dc 37 9b 1c 94 ef |..h>*+.....7....| -000002f0 c9 91 c7 c6 47 13 4a c7 bf fc 44 9a 41 94 73 61 |....G.J...D.A.sa| -00000300 b2 ca 6a a1 cf 0a 65 c9 79 be 2a 8f 00 b7 99 98 |..j...e.y.*.....| -00000310 03 03 20 17 03 03 00 99 50 46 40 7e 04 bd 9f ec |.. .....PF@~....| -00000320 82 d2 f7 72 a0 00 aa 7c 9b 59 b7 a1 14 81 98 8e |...r...|.Y......| -00000330 18 58 c5 7c e2 96 7d 79 24 41 ad f1 51 1f d9 8a |.X.|..}y$A..Q...| -00000340 25 3c d0 f0 c0 77 82 1c 76 0c f0 f0 f4 2e c7 1a |%<...w..v.......| -00000350 dd 81 84 77 b5 9a 5c 78 02 7f db bb 2c d4 8e 7f |...w..\x....,...| -00000360 63 c2 86 de 43 01 c1 3c 35 28 d0 91 f0 bc ec 83 |c...C..<5(......| -00000370 dd b7 a4 91 b2 c5 1e e4 b7 da fd 0a df f7 33 b0 |..............3.| -00000380 37 39 1b 0c 01 00 1f df 1d c5 44 fc 5b 84 53 22 |79........D.[.S"| -00000390 21 1d 02 49 97 c7 08 dc 4a 28 cc 6f fc 5e 9c d5 |!..I....J(.o.^..| -000003a0 cf ea 11 89 f5 5f 15 25 e6 f7 bf a9 b4 c1 bb 91 |....._.%........| -000003b0 5d 17 03 03 00 35 23 b8 53 0a 97 0f e7 6c 01 5c |]....5#.S....l.\| -000003c0 5e 22 2e 14 ab 33 6d 87 3f 99 41 35 50 c4 95 76 |^"...3m.?.A5P..v| -000003d0 ea ac 8d d4 01 10 55 0a 74 c3 8a 80 64 44 cc 7c |......U.t...dD.|| -000003e0 d0 59 a5 34 dd c7 b9 13 ff 54 55 |.Y.4.....TU| ->>> Flow 3 (client to server) -00000000 17 03 03 00 35 c9 d1 1c 82 c8 d6 03 be 95 47 78 |....5.........Gx| -00000010 4d 0e 3a 7c fb 60 55 5f 41 5c dd 63 47 41 ff 43 |M.:|.`U_A\.cGA.C| -00000020 c9 4b 1c 37 bc be ac 2a f6 2c d7 39 06 58 5d 71 |.K.7...*.,.9.X]q| -00000030 ab 71 6a 5d 3c 52 c6 f1 48 ee 17 03 03 00 17 d6 |.qj].E..~XIw.| -00000050 50 e4 a2 35 35 67 |P..55g| ->>> Flow 4 (server to client) -00000000 17 03 03 00 da 01 9d a9 a7 3b 74 8a d3 cb 20 49 |.........;t... I| -00000010 b1 73 82 ca 35 bb d7 6b 0d 0d 29 c2 6b 3c 63 75 |.s..5..k..).k.s. ..l.]m].0(.| -00000050 f1 37 92 e8 f7 f7 db 16 82 0e 01 60 9c 88 c4 18 |.7.........`....| -00000060 d5 e7 b2 7c 3e ba e5 df 40 12 77 83 2c c8 0a 59 |...|>...@.w.,..Y| -00000070 a1 cc 43 17 c5 3d 77 76 39 07 ea 4a 37 10 dd d2 |..C..=wv9..J7...| -00000080 cc a5 70 3b d6 d1 41 c6 67 1c 16 61 e3 32 f7 a0 |..p;..A.g..a.2..| -00000090 21 76 4d 3f c0 6a 9d 82 e8 0f b4 44 07 a4 c7 74 |!vM?.j.....D...t| -000000a0 e4 38 be d8 7d 61 f7 cc dc 61 0f 3b 81 f0 b7 4d |.8..}a...a.;...M| -000000b0 7c ac 85 0c 2b 93 6c 02 a4 76 c5 fe f2 c2 d6 81 ||...+.l..v......| -000000c0 18 9b f4 11 ae 8c e6 c4 7a 91 d2 f7 84 43 fc 22 |........z....C."| -000000d0 a1 85 90 cb 20 07 2e 91 87 e9 65 a1 2f 1f 5b |.... .....e./.[| ->>> Flow 5 (client to server) -00000000 17 03 03 00 13 6f bd 84 f6 9b 45 bc 84 ba 22 b0 |.....o....E...".| -00000010 ae 0f cf 02 fa f7 4e 15 17 03 03 00 13 c1 b9 70 |......N........p| -00000020 e4 13 f9 b1 dc 1c d6 6e 7f ca 2b 1e d5 ab 0f 9c |.......n..+.....| From 5b79a7c98201a6f8aaddbcea93bd32e7b21259d5 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Sat, 3 Nov 2018 20:04:44 -0400 Subject: [PATCH 5/8] crypto/tls: implement TLS 1.3 middlebox compatibility mode Looks like the introduction of CCS records in the client second flight gave time to s_server to send NewSessionTicket messages in between the client application data and close_notify. There seems to be no way of turning NewSessionTicket messages off, neither by not sending a psk_key_exchange_modes extension, nor by command line flag. Interleaving the client write like that tickled an issue akin to #18701: on Windows, the client reaches Close() before the last record is drained from the send buffer, the kernel notices and resets the connection, cutting short the last flow. There is no good way of synchronizing this, so we sleep for a RTT before calling close, like in CL 75210. Sigh. Updates #9671 Change-Id: I44dc1cca17b373695b5a18c2741f218af2990bd1 Reviewed-on: https://go-review.googlesource.com/c/147419 Run-TryBot: Filippo Valsorda TryBot-Result: Gobot Gobot Reviewed-by: Adam Langley --- conn.go | 2 +- handshake_client_test.go | 14 +- handshake_client_tls13.go | 22 +- handshake_server_tls13.go | 21 ++ testdata/Client-TLSv13-AES128-SHA256 | 169 +++++++++------- testdata/Client-TLSv13-AES256-SHA384 | 173 +++++++++------- testdata/Client-TLSv13-ALPN | 171 +++++++++------- testdata/Client-TLSv13-CHACHA20-SHA256 | 169 +++++++++------- testdata/Client-TLSv13-ECDSA | 159 +++++++++------ testdata/Client-TLSv13-ExportKeyingMaterial | 169 +++++++++------- testdata/Client-TLSv13-HelloRetryRequest | 205 +++++++++++-------- testdata/Client-TLSv13-KeyUpdate | 212 ++++++++++---------- testdata/Client-TLSv13-P256-ECDHE | 171 +++++++++------- testdata/Client-TLSv13-X25519-ECDHE | 167 ++++++++------- testdata/Server-TLSv13-AES128-SHA256 | 150 +++++++------- testdata/Server-TLSv13-AES256-SHA384 | 154 +++++++------- testdata/Server-TLSv13-ALPN | 156 +++++++------- testdata/Server-TLSv13-ALPN-NoMatch | 154 +++++++------- testdata/Server-TLSv13-CHACHA20-SHA256 | 150 +++++++------- testdata/Server-TLSv13-ECDHE-ECDSA-AES | 142 ++++++------- testdata/Server-TLSv13-ExportKeyingMaterial | 154 +++++++------- testdata/Server-TLSv13-HelloRetryRequest | 181 ++++++++--------- testdata/Server-TLSv13-P256 | 156 +++++++------- testdata/Server-TLSv13-RSA-RSAPSS | 154 +++++++------- testdata/Server-TLSv13-X25519 | 154 +++++++------- 25 files changed, 1935 insertions(+), 1594 deletions(-) diff --git a/conn.go b/conn.go index 451773e..5b0db53 100644 --- a/conn.go +++ b/conn.go @@ -946,7 +946,7 @@ func (c *Conn) writeRecordLocked(typ recordType, data []byte) (int, error) { data = data[m:] } - if typ == recordTypeChangeCipherSpec { + if typ == recordTypeChangeCipherSpec && c.vers != VersionTLS13 { if err := c.out.changeCipherSpec(); err != nil { return n, c.sendAlertLocked(err.(alert)) } diff --git a/handshake_client_test.go b/handshake_client_test.go index d52c7cc..c60fb62 100644 --- a/handshake_client_test.go +++ b/handshake_client_test.go @@ -337,9 +337,14 @@ func (test *clientTest) run(t *testing.T, write bool) { doneChan := make(chan bool) go func() { - defer func() { doneChan <- true }() - defer clientConn.Close() - defer client.Close() + 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 + }() if _, err := client.Write([]byte("hello\n")); err != nil { t.Errorf("Client.Write failed: %s", err) @@ -482,6 +487,9 @@ func (test *clientTest) run(t *testing.T, write bool) { 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() } diff --git a/handshake_client_tls13.go b/handshake_client_tls13.go index 624ca4d..83287dd 100644 --- a/handshake_client_tls13.go +++ b/handshake_client_tls13.go @@ -18,6 +18,7 @@ type clientHandshakeStateTLS13 struct { serverHello *serverHelloMsg hello *clientHelloMsg certReq *certificateRequestMsgTLS13 + sentDummyCCS bool ecdheParams ecdheParameters suite *cipherSuiteTLS13 transcript hash.Hash @@ -57,6 +58,9 @@ func (hs *clientHandshakeStateTLS13) handshake() error { hs.transcript.Write(chHash) hs.transcript.Write(hs.serverHello.marshal()) + if err := hs.sendDummyChangeCipherSpec(); err != nil { + return err + } if err := hs.processHelloRetryRequest(); err != nil { return err } @@ -66,9 +70,13 @@ func (hs *clientHandshakeStateTLS13) handshake() error { hs.transcript.Write(hs.serverHello.marshal()) + c.buffering = true if err := hs.processServerHello(); err != nil { return err } + if err := hs.sendDummyChangeCipherSpec(); err != nil { + return err + } if err := hs.establishHandshakeKeys(); err != nil { return err } @@ -81,8 +89,6 @@ func (hs *clientHandshakeStateTLS13) handshake() error { if err := hs.readServerFinished(); err != nil { return err } - - c.buffering = true if err := hs.sendClientCertificate(); err != nil { return err } @@ -155,6 +161,18 @@ func (hs *clientHandshakeStateTLS13) checkServerHelloOrHRR() error { return nil } +// sendDummyChangeCipherSpec sends a ChangeCipherSpec record for compatibility +// with middleboxes that didn't implement TLS correctly. See RFC 8446, Appendix D.4. +func (hs *clientHandshakeStateTLS13) sendDummyChangeCipherSpec() error { + if hs.sentDummyCCS { + return nil + } + hs.sentDummyCCS = true + + _, err := hs.c.writeRecord(recordTypeChangeCipherSpec, []byte{1}) + return err +} + // processHelloRetryRequest handles the HRR in hs.serverHello, modifies and // resends hs.hello, and reads the new ServerHello into hs.serverHello. func (hs *clientHandshakeStateTLS13) processHelloRetryRequest() error { diff --git a/handshake_server_tls13.go b/handshake_server_tls13.go index 9208cf9..2da0760 100644 --- a/handshake_server_tls13.go +++ b/handshake_server_tls13.go @@ -20,6 +20,7 @@ type serverHandshakeStateTLS13 struct { c *Conn clientHello *clientHelloMsg hello *serverHelloMsg + sentDummyCCS bool suite *cipherSuiteTLS13 cert *Certificate sigAlg SignatureScheme @@ -205,6 +206,18 @@ GroupSelection: return nil } +// sendDummyChangeCipherSpec sends a ChangeCipherSpec record for compatibility +// with middleboxes that didn't implement TLS correctly. See RFC 8446, Appendix D.4. +func (hs *serverHandshakeStateTLS13) sendDummyChangeCipherSpec() error { + if hs.sentDummyCCS { + return nil + } + hs.sentDummyCCS = true + + _, err := hs.c.writeRecord(recordTypeChangeCipherSpec, []byte{1}) + return err +} + func (hs *serverHandshakeStateTLS13) doHelloRetryRequest(selectedGroup CurveID) error { c := hs.c @@ -231,6 +244,10 @@ func (hs *serverHandshakeStateTLS13) doHelloRetryRequest(selectedGroup CurveID) return err } + if err := hs.sendDummyChangeCipherSpec(); err != nil { + return err + } + msg, err := c.readHandshake() if err != nil { return err @@ -329,6 +346,10 @@ func (hs *serverHandshakeStateTLS13) sendServerParameters() error { return err } + if err := hs.sendDummyChangeCipherSpec(); err != nil { + return err + } + clientSecret := hs.suite.deriveSecret(hs.handshakeSecret, clientHandshakeTrafficLabel, hs.transcript) c.in.setTrafficSecret(hs.suite, clientSecret) diff --git a/testdata/Client-TLSv13-AES128-SHA256 b/testdata/Client-TLSv13-AES128-SHA256 index c471e88..da51f26 100644 --- a/testdata/Client-TLSv13-AES128-SHA256 +++ b/testdata/Client-TLSv13-AES128-SHA256 @@ -16,74 +16,107 @@ 000000e0 a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 ff f6 |.G.bC.(.._.).0..| 000000f0 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 |........_X.;t| >>> Flow 2 (server to client) -00000000 16 03 03 00 7a 02 00 00 76 03 03 f0 8a 7b f4 40 |....z...v....{.@| -00000010 4d 58 1d e4 6a 58 d2 e9 dc 28 6b aa bc 2f 60 37 |MX..jX...(k../`7| -00000020 1c a3 3c ce 7d f2 97 8d ff 14 55 20 00 00 00 00 |..<.}.....U ....| +00000000 16 03 03 00 7a 02 00 00 76 03 03 cb 6b 3c f1 71 |....z...v...k<.q| +00000010 7d fb a1 03 ad d3 35 fb fa 9f f5 1b 58 62 c3 83 |}.....5.....Xb..| +00000020 18 d1 63 9f 14 57 e6 2d 82 f2 37 20 00 00 00 00 |..c..W.-..7 ....| 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 13 01 00 00 |................| -00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 a4 |..+.....3.$... .| -00000060 23 1b 72 8e 09 ba fa 75 6c f5 cc c2 2a aa 3d 0f |#.r....ul...*.=.| -00000070 2e c1 f4 70 40 28 9b df 1e 92 2e cb a2 d5 41 14 |...p@(........A.| -00000080 03 03 00 01 01 17 03 03 00 17 1f f5 f9 57 54 6a |.............WTj| -00000090 02 3f 12 97 48 cb e1 df 85 00 58 8d ab 1d 95 55 |.?..H.....X....U| -000000a0 3f 17 03 03 02 6d 22 f9 23 08 b9 f2 5d 4a f5 9b |?....m".#...]J..| -000000b0 41 b5 16 33 dc e9 45 34 a8 15 19 0b b0 1e a4 57 |A..3..E4.......W| -000000c0 46 52 d9 53 ec 3c 7c 5c 6c e0 f4 2e 90 55 cc 74 |FR.S.<|\l....U.t| -000000d0 65 92 a3 1e f0 75 f0 13 c5 65 42 fb 0a 9d f3 bb |e....u...eB.....| -000000e0 d5 61 b7 70 74 4d d1 e4 28 f3 8d 0b f5 de 04 fa |.a.ptM..(.......| -000000f0 46 28 11 b9 d3 50 82 00 97 32 ac ff 19 ce 27 6b |F(...P...2....'k| -00000100 e9 a9 ae ec c2 49 5a 61 bf a0 c0 57 71 c1 00 76 |.....IZa...Wq..v| -00000110 e4 81 40 c0 96 81 0a 38 d4 6c b7 7f e3 52 7c 3d |..@....8.l...R|=| -00000120 bb e1 c8 e0 ef c4 f5 85 8e bc fc d5 5a 00 50 ea |............Z.P.| -00000130 54 a1 1b da 8c 31 0f 9f bc 13 a2 d1 89 93 8a 08 |T....1..........| -00000140 47 c5 5e 78 be 09 b5 34 e3 33 d3 38 16 9e 71 ca |G.^x...4.3.8..q.| -00000150 25 5b 7c 35 08 e6 2c 07 c3 0b 37 60 4a 7b 32 49 |%[|5..,...7`J{2I| -00000160 9b c4 24 28 6d 76 3e 04 8e 14 22 e9 f9 0d 58 25 |..$(mv>..."...X%| -00000170 ad 0a 31 8b 1f 0c 2e 50 65 3f 77 fc f9 ab a7 60 |..1....Pe?w....`| -00000180 6a 52 b0 a9 e5 47 f6 91 b6 72 7a 52 b7 fb c5 93 |jR...G...rzR....| -00000190 0a 4f 3e 0c 0c 12 5e 30 94 10 5f ee af 4a 40 d0 |.O>...^0.._..J@.| -000001a0 ba 2c 5b 88 18 86 f1 96 8b cd 28 41 44 59 5e 69 |.,[.......(ADY^i| -000001b0 be 24 bb 97 99 7e 70 9f 9b d7 bb 54 0b 32 73 bf |.$...~p....T.2s.| -000001c0 af 71 82 6b b5 21 b6 a0 85 f2 73 56 98 83 60 c0 |.q.k.!....sV..`.| -000001d0 70 34 c6 1b 7b 40 ee 5d 8e 79 7d bc ac 6b 3c c9 |p4..{@.].y}..k<.| -000001e0 9c 47 13 d9 08 a9 05 d6 43 38 19 a0 d6 37 e0 48 |.G......C8...7.H| -000001f0 dd f5 b5 2b e2 d8 25 07 35 5b 20 2f 0e 01 4a 93 |...+..%.5[ /..J.| -00000200 63 5c 07 b6 3b 7f 62 9a 85 f8 57 0a 69 db 2c 9b |c\..;.b...W.i.,.| -00000210 11 60 6d f3 2b 31 cc 4e 7d 93 bb 13 39 fd 85 da |.`m.+1.N}...9...| -00000220 cb 52 84 7e 36 89 28 ef 8f b5 04 c2 37 c3 33 04 |.R.~6.(.....7.3.| -00000230 ba cb 1b 45 23 2f 2a 49 5d 95 6e 95 d4 32 07 ba |...E#/*I].n..2..| -00000240 0e 2f 57 0b b2 a5 d9 6b 3e a5 ab f2 97 89 b9 23 |./W....k>......#| -00000250 5a 3f 11 8d 45 68 3e bc 8a 59 14 36 bc cc 33 b3 |Z?..Eh>..Y.6..3.| -00000260 50 e3 15 b3 ec 03 ba 52 2f dc 70 5b c0 2a 45 28 |P......R/.p[.*E(| -00000270 49 2f d0 c7 a1 5c e4 24 35 b0 78 04 fe 87 54 69 |I/...\.$5.x...Ti| -00000280 c5 6e 56 a7 f5 7f d1 cb 23 af 4a 52 5f 7c 0e 1d |.nV.....#.JR_|..| -00000290 5a 83 6a 69 f5 bc 99 74 30 ee 3c 05 2b 12 52 09 |Z.ji...t0.<.+.R.| -000002a0 b0 a2 36 86 14 70 44 dd ec 37 44 4b 8f bf e0 76 |..6..pD..7DK...v| -000002b0 99 c5 84 90 37 59 a3 e3 f7 57 fa ac bb 6b 04 6a |....7Y...W...k.j| -000002c0 1e 0f 9f 1d 63 b7 3a 47 48 dc 3b bc ff 4d 47 94 |....c.:GH.;..MG.| -000002d0 43 38 cb d5 c5 74 bc 6d 0a f3 ea fa 23 ac e5 0b |C8...t.m....#...| -000002e0 fa b9 61 b1 d9 20 5c c6 c8 32 2e fa 11 f0 99 90 |..a.. \..2......| -000002f0 d4 96 42 3a b6 09 f3 11 c9 e1 d8 2d ae 80 6a b0 |..B:.......-..j.| -00000300 21 7a b6 2d d7 37 93 bf 53 ad 82 eb fc f1 8f 21 |!z.-.7..S......!| -00000310 f0 bc fd 17 03 03 00 99 47 59 11 95 5b 84 48 92 |........GY..[.H.| -00000320 22 b1 4b b0 70 57 5c b4 67 41 53 ed a7 5b 38 eb |".K.pW\.gAS..[8.| -00000330 bf 10 65 4a f9 21 c4 63 72 a1 d9 06 f2 21 55 df |..eJ.!.cr....!U.| -00000340 ff 7e ee ea a3 37 00 f1 14 41 2f 71 b1 8e f1 c0 |.~...7...A/q....| -00000350 5d 5b 72 4b a5 99 1d 80 c1 e6 94 5d 78 17 46 81 |][rK.......]x.F.| -00000360 50 1c 6d dc a7 79 60 67 60 ae af fe 6f 84 67 81 |P.m..y`g`...o.g.| -00000370 bd b5 20 8e 3f 33 28 e4 6a 94 82 37 9d ea 26 71 |.. .?3(.j..7..&q| -00000380 65 9d 7d a3 c7 32 be ec 3c d0 c6 b5 a6 55 e6 d7 |e.}..2..<....U..| -00000390 72 49 14 3b 08 41 cb d8 cc d4 52 b5 c8 35 71 79 |rI.;.A....R..5qy| -000003a0 7d 90 d2 21 0c 61 cb f6 1c 73 0a b0 7d ff 7b 3e |}..!.a...s..}.{>| -000003b0 44 17 03 03 00 35 c1 39 ac b9 1b 43 33 1e 43 35 |D....5.9...C3.C5| -000003c0 50 d0 2f b9 f9 cf f9 c3 dd 1c 4c 1e 52 46 bd dc |P./.......L.RF..| -000003d0 48 93 4f e3 f3 46 27 81 0b 80 34 b4 5b a5 06 c9 |H.O..F'...4.[...| -000003e0 3c 3a 12 e3 33 45 9d d5 0c 1e 98 |<:..3E.....| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 50 |..+.....3.$... P| +00000060 5a 0c d6 69 92 a1 c7 2f 57 41 f3 29 b4 d3 a3 d3 |Z..i.../WA.)....| +00000070 b5 62 85 2a 1d 12 dc 46 d1 ac 96 b6 16 a5 39 14 |.b.*...F......9.| +00000080 03 03 00 01 01 17 03 03 00 17 1d a4 67 9f ac 28 |............g..(| +00000090 dc fe 5c 58 be c0 d0 72 9d 77 05 96 1a 9c ac 54 |..\X...r.w.....T| +000000a0 a2 17 03 03 02 6d 99 b0 fc 88 2d c2 fe 5b 84 1d |.....m....-..[..| +000000b0 38 f4 b9 70 87 b7 45 94 a5 09 e4 a3 2f 93 9a 9b |8..p..E...../...| +000000c0 ef 1f 80 a5 69 1d 81 47 d5 3e e0 f3 8e cd 1e 11 |....i..G.>......| +000000d0 ab 2d a1 1d a7 06 9c fd b4 dd aa 66 3e 8c e0 2f |.-.........f>../| +000000e0 cd e3 9a df 30 b4 c1 70 b0 be 2a 62 ba 3f f6 79 |....0..p..*b.?.y| +000000f0 aa 74 8b f4 4f 3e bc 5c 32 25 29 69 32 d4 90 6a |.t..O>.\2%)i2..j| +00000100 45 45 c5 93 94 4f 90 02 9c 23 45 e0 88 14 ae 6c |EE...O...#E....l| +00000110 e7 be 20 4e 47 ea 50 8e a0 c9 74 67 d2 97 d7 31 |.. NG.P...tg...1| +00000120 52 7e f7 5a a0 55 51 c8 8f 91 12 12 d7 0e 2b a5 |R~.Z.UQ.......+.| +00000130 ff 6c 5e 46 0d 2f d7 55 b6 c0 24 e1 5f e2 66 a0 |.l^F./.U..$._.f.| +00000140 32 c6 cf 88 d2 35 ec fd 17 1a ec 06 19 21 5b 6c |2....5.......![l| +00000150 eb ac 71 0a e6 3b d3 ea 51 05 33 45 28 ef 0b 25 |..q..;..Q.3E(..%| +00000160 7d 77 f1 76 6e fe f8 ef 74 21 ff 3b 7d 69 20 f2 |}w.vn...t!.;}i .| +00000170 7f 99 58 cd 8a 1a ab 87 c7 b0 9c a5 77 d7 b6 54 |..X.........w..T| +00000180 27 e5 5d ac 25 b7 7a 4a 4e 8a 74 cd 17 bf 86 4b |'.].%.zJN.t....K| +00000190 d4 fd a7 74 3f 03 68 d6 67 cf 05 3d 13 95 81 62 |...t?.h.g..=...b| +000001a0 80 1a f7 d3 3c 39 3d 8b 8c 68 20 4a c4 ee 16 06 |....<9=..h J....| +000001b0 5d 2f 3c cf 0d 26 0b 14 1a 4f 64 e4 25 c3 b5 63 |]/<..&...Od.%..c| +000001c0 86 32 82 78 ad 3e 79 c8 c8 e5 29 78 4a a5 98 81 |.2.x.>y...)xJ...| +000001d0 57 61 e9 3c dc f1 88 ba a9 5b 8d e1 c1 08 a8 ed |Wa.<.....[......| +000001e0 c8 06 3b f7 7a 60 c7 f2 cd ea 2f 7e 0c 30 1d 2b |..;.z`..../~.0.+| +000001f0 e4 d6 e3 46 2d 2f d5 26 4f 63 a4 b7 7a ff 8b 29 |...F-/.&Oc..z..)| +00000200 21 06 53 8d 99 57 f7 63 c6 72 96 cc 47 9a 80 cc |!.S..W.c.r..G...| +00000210 03 d5 96 3b bc ad 05 7e 49 f5 6f e6 f7 8c ae 55 |...;...~I.o....U| +00000220 b9 59 98 a6 93 22 43 9d 62 d9 ae ba 80 c6 82 e4 |.Y..."C.b.......| +00000230 d9 44 36 de ec dc 89 f3 45 ee bd 58 ff f5 fa de |.D6.....E..X....| +00000240 85 9b 0f fe 48 a1 0f 36 a4 ff f8 43 7b 18 74 49 |....H..6...C{.tI| +00000250 87 d6 bd f0 2b b3 fd 00 8a 86 8c d1 c1 7d 66 38 |....+........}f8| +00000260 f7 f9 72 36 77 17 7d 18 1c e6 4b 23 30 0c a4 e7 |..r6w.}...K#0...| +00000270 34 a9 39 83 3c 25 d1 de 0d f4 61 85 7b 01 92 9f |4.9.<%....a.{...| +00000280 e7 47 08 e2 fa 84 59 97 8c c5 55 47 27 4f 00 da |.G....Y...UG'O..| +00000290 ab 88 bf b8 fe 84 36 5f b4 f1 f1 28 75 55 29 af |......6_...(uU).| +000002a0 b8 a9 1b 46 dc 65 c7 97 27 4c 9a dc 00 59 3a 02 |...F.e..'L...Y:.| +000002b0 05 2e ed b0 f1 30 74 14 dd 51 08 44 b2 9f 38 1c |.....0t..Q.D..8.| +000002c0 03 3c 8f 00 ad 28 e9 27 bd 75 c3 4a f6 70 5e 79 |.<...(.'.u.J.p^y| +000002d0 7e 38 b3 df 5a 4f 69 11 f2 37 2f 52 cd cc f9 35 |~8..ZOi..7/R...5| +000002e0 16 49 01 24 32 8a e6 da 6b 4e a8 92 a0 d7 73 7b |.I.$2...kN....s{| +000002f0 fb 4c 0f 00 0e 82 d7 27 d3 22 f9 82 de 41 0b 1a |.L.....'."...A..| +00000300 2e d3 6c 97 cb 53 b0 6c 25 b5 65 86 8e 50 87 e0 |..l..S.l%.e..P..| +00000310 4b e6 6d 17 03 03 00 99 e1 28 35 0e 69 35 4a 55 |K.m......(5.i5JU| +00000320 12 ab 1c 8d 43 b4 a4 44 2b 56 3c 5d c6 1b 3a a8 |....C..D+V<]..:.| +00000330 df 0a e8 5d c2 a6 4f 83 c0 dc 07 87 53 0c 1f 63 |...]..O.....S..c| +00000340 e2 db f0 f7 16 e9 e8 f5 5f 5a f9 b1 f1 8d 36 1d |........_Z....6.| +00000350 53 47 60 3f ea 22 f7 6c 7c e7 e6 79 b1 85 f2 27 |SG`?.".l|..y...'| +00000360 5c ef 1e 99 52 5f 06 67 b3 8b 6d 13 83 06 c0 06 |\...R_.g..m.....| +00000370 ef fa 1b 9f 92 ec 5b e5 b3 25 64 79 6c 90 11 e1 |......[..%dyl...| +00000380 13 61 5b bf e9 4f 08 35 81 80 86 b7 77 ae 52 29 |.a[..O.5....w.R)| +00000390 9b 24 1e b0 55 23 ca 69 2f be d1 01 38 e8 79 a8 |.$..U#.i/...8.y.| +000003a0 e2 f7 61 0f 32 ca ff 09 44 84 84 79 19 22 54 1e |..a.2...D..y."T.| +000003b0 22 17 03 03 00 35 00 a1 ea bc bd 87 41 67 cc 5e |"....5......Ag.^| +000003c0 2f 4b 1c 52 c2 56 2c 69 7e 69 9b a3 06 69 b5 0b |/K.R.V,i~i...i..| +000003d0 6c 2e 1f de 53 9d 82 22 b7 36 9f ac 0e 7a 83 e5 |l...S..".6...z..| +000003e0 18 30 5b a9 b7 15 5a 16 87 97 1b |.0[...Z....| >>> Flow 3 (client to server) -00000000 17 03 03 00 35 da 94 f3 ee 16 d5 21 2c be 50 e4 |....5......!,.P.| -00000010 08 a2 44 90 27 9a 22 44 9f 04 c8 1f 6c 97 57 54 |..D.'."D....l.WT| -00000020 da 4b 84 f2 f5 7e be 86 2a 19 f3 ed b6 05 e8 30 |.K...~..*......0| -00000030 a2 ca ee a0 71 bb 75 8d ed fe 17 03 03 00 17 db |....q.u.........| -00000040 f3 61 60 d9 d2 80 c8 87 17 66 37 b6 e3 a3 27 37 |.a`......f7...'7| -00000050 c1 91 69 35 60 f6 17 03 03 00 13 e9 c3 a2 1e a4 |..i5`...........| -00000060 84 65 d3 bb 97 7a 14 1d 4e ae 8b 3f 42 ac |.e...z..N..?B.| +00000000 14 03 03 00 01 01 17 03 03 00 35 23 b7 8d d5 9b |..........5#....| +00000010 e4 f6 21 27 94 5b 11 76 5c 1f ff f3 19 f8 43 a2 |..!'.[.v\.....C.| +00000020 4d 07 68 00 a1 de 53 c9 80 f9 e7 fa 56 2c 6b b8 |M.h...S.....V,k.| +00000030 bc 09 5e 61 ea 0c da c8 89 1c 41 95 55 0d ef 94 |..^a......A.U...| +00000040 17 03 03 00 17 9a 18 9a 29 27 19 1b 06 da 82 78 |........)'.....x| +00000050 da 9a 91 77 36 47 ce 25 72 dc b9 26 |...w6G.%r..&| +>>> Flow 4 (server to client) +00000000 17 03 03 00 ea d6 5f a3 a5 14 87 cc 16 54 4c a0 |......_......TL.| +00000010 57 34 92 34 4d 37 fb 27 2b 71 f7 cf ac 93 96 87 |W4.4M7.'+q......| +00000020 9a 1f 8d 58 cf 3a 0d 8c 00 e2 03 b1 6e e1 9f d3 |...X.:......n...| +00000030 f4 dc 17 73 70 59 52 03 a7 fc 99 cb d2 2d 0e c8 |...spYR......-..| +00000040 91 5c 18 42 a3 20 9b 1c 20 86 bc 15 71 5b b4 7d |.\.B. .. ...q[.}| +00000050 80 8d cf 1d 15 33 b8 aa 66 9d f0 f9 08 dc 7c 78 |.....3..f.....|x| +00000060 b7 12 48 11 e1 00 1c e7 3e b3 8b fe bf 07 6d 6d |..H.....>.....mm| +00000070 4c 7b 16 90 cb 8c da 03 a8 81 94 5c 76 09 c4 bf |L{.........\v...| +00000080 26 b4 2b fd 9c 44 b5 c0 49 4b 83 58 70 80 8f 7f |&.+..D..IK.Xp...| +00000090 1e f8 d0 b4 5d 6e a2 78 f0 8c 9d 0b e8 1a 0b b4 |....]n.x........| +000000a0 66 7e 74 88 35 a4 d0 a3 ab 6c b5 2a 90 3c ba 09 |f~t.5....l.*.<..| +000000b0 9c 4e 72 b7 9a ba f9 1f bb a9 bf 03 94 43 7a d2 |.Nr..........Cz.| +000000c0 25 2f c5 e8 83 89 37 1f ac 7b 22 7c 01 7e dc 97 |%/....7..{"|.~..| +000000d0 b3 05 5c 60 5b 22 2f be 8c 05 e8 1a a6 51 45 13 |..\`["/......QE.| +000000e0 7f 20 b9 24 f0 a6 7c 1d 21 37 b8 6c 47 9e e8 17 |. .$..|.!7.lG...| +000000f0 03 03 00 ea c1 05 ef 9c bf 4c 1a d9 36 0d d4 d0 |.........L..6...| +00000100 68 47 ac 8b c6 13 71 17 94 e7 74 8e 21 78 91 79 |hG....q...t.!x.y| +00000110 50 19 4e 43 0d f7 e9 a9 62 e5 25 17 67 3e 38 27 |P.NC....b.%.g>8'| +00000120 dd 3b 5d e9 ec cb 0f b7 1f aa bd 75 76 f7 88 b8 |.;]........uv...| +00000130 c6 60 2f b7 ad 89 17 bb bd d2 86 55 72 bd 52 10 |.`/........Ur.R.| +00000140 21 4d 92 2d c1 a8 24 18 63 ca 0a 38 90 6b 39 5c |!M.-..$.c..8.k9\| +00000150 76 58 ad 62 e5 57 e0 b5 d5 af c9 9b 64 84 76 48 |vX.b.W......d.vH| +00000160 4d 7f a7 32 09 50 f7 9e 92 ad ed 8e b5 0f 10 27 |M..2.P.........'| +00000170 45 bc 58 fd be 91 35 97 ec 71 af d5 6a e1 04 26 |E.X...5..q..j..&| +00000180 00 b3 91 4f a2 be ba b8 06 f1 2f 43 21 a6 0b ba |...O....../C!...| +00000190 43 b5 dd a6 cd a6 b1 1c 37 28 90 26 c4 af 71 56 |C.......7(.&..qV| +000001a0 26 4d 39 39 60 88 8d ae d1 3e 6e 7e 15 cb 60 1c |&M99`....>n~..`.| +000001b0 d2 00 c3 02 b6 2b 81 ea 60 1b 3a a8 a4 dc 29 c0 |.....+..`.:...).| +000001c0 df 86 41 b8 27 89 3a ca bc 31 19 ca 18 08 9e 96 |..A.'.:..1......| +000001d0 e7 b4 6b 78 8d d4 9a 75 1a 48 fb 49 6a 29 |..kx...u.H.Ij)| +>>> Flow 5 (client to server) +00000000 17 03 03 00 13 d5 5b 3c bb 8b 4d f2 c2 d8 dc 0b |......[<..M.....| +00000010 5a 94 49 38 ed 11 91 8a |Z.I8....| diff --git a/testdata/Client-TLSv13-AES256-SHA384 b/testdata/Client-TLSv13-AES256-SHA384 index be6eea0..306d6c8 100644 --- a/testdata/Client-TLSv13-AES256-SHA384 +++ b/testdata/Client-TLSv13-AES256-SHA384 @@ -16,76 +16,109 @@ 000000e0 a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 ff f6 |.G.bC.(.._.).0..| 000000f0 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 |........_X.;t| >>> Flow 2 (server to client) -00000000 16 03 03 00 7a 02 00 00 76 03 03 14 19 73 05 2c |....z...v....s.,| -00000010 b8 2b 70 cd 16 84 60 f5 61 03 95 f1 ac 51 2b eb |.+p...`.a....Q+.| -00000020 d5 6a e9 65 c9 35 ed 88 c2 aa bd 20 00 00 00 00 |.j.e.5..... ....| +00000000 16 03 03 00 7a 02 00 00 76 03 03 d0 99 92 ec 66 |....z...v......f| +00000010 25 e2 c4 9f 90 fa 7c 03 49 b9 19 3e 75 1b 37 42 |%.....|.I..>u.7B| +00000020 2b cf b4 b7 93 81 29 ef 5a e7 c2 20 00 00 00 00 |+.....).Z.. ....| 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 13 02 00 00 |................| -00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 0a |..+.....3.$... .| -00000060 ab 07 ce b5 0b 2d 94 fa 8b 55 ff 09 7a 69 35 a5 |.....-...U..zi5.| -00000070 01 d8 5c c5 84 92 ef e5 f5 45 09 48 78 48 28 14 |..\......E.HxH(.| -00000080 03 03 00 01 01 17 03 03 00 17 77 e1 72 79 f2 fc |..........w.ry..| -00000090 a1 c2 e5 04 92 0a 63 0b d3 a3 b8 15 6c e7 2a c2 |......c.....l.*.| -000000a0 3d 17 03 03 02 6d 6d a1 64 08 b2 95 9f 65 d8 bc |=....mm.d....e..| -000000b0 fc 1c 6e 4d 75 20 e6 08 ea 58 cc db b2 6f d5 58 |..nMu ...X...o.X| -000000c0 97 e8 8f 62 b0 a2 c0 84 20 4b 2d 43 a2 eb a1 98 |...b.... K-C....| -000000d0 93 c0 04 12 b4 9e 17 9b 45 f2 59 f0 9d ed 27 53 |........E.Y...'S| -000000e0 14 a5 c3 e0 46 5b 22 e4 76 b6 71 7e f6 cb 35 6a |....F[".v.q~..5j| -000000f0 ab 34 f9 da 93 b2 21 41 6b 72 73 5e 0c 5f 4e 70 |.4....!Akrs^._Np| -00000100 ff fe d3 50 48 de c8 e1 16 f7 c4 f3 24 ef 7f 0a |...PH.......$...| -00000110 0d bc 24 86 13 93 6e e3 8c d5 a2 a9 97 ee cd 40 |..$...n........@| -00000120 d6 6b 5a ef 88 62 b0 a0 f3 aa ac f1 7f 7c 0a ad |.kZ..b.......|..| -00000130 b7 98 57 aa 7d 89 bb 1e 88 3b 66 9c 34 98 1a 8e |..W.}....;f.4...| -00000140 5a a1 2a 3e 10 be 1b bd 86 43 b4 3f cc a4 0b d1 |Z.*>.....C.?....| -00000150 0c 36 a3 a5 f2 e3 40 a6 c3 5c ed aa 43 57 3e 22 |.6....@..\..CW>"| -00000160 4f eb 5c d6 e4 4e 8e 83 2a f8 25 db 63 49 d0 cc |O.\..N..*.%.cI..| -00000170 b2 6b 29 3a bc b4 f0 04 58 60 be 9d ab 8c 9e 06 |.k):....X`......| -00000180 df 1c 9b cf 49 a9 d2 cd 42 d3 5c 5a d6 2f b8 91 |....I...B.\Z./..| -00000190 76 a6 df 3a a2 6e 24 1c de 1f 63 7e c1 bc 1f 2a |v..:.n$...c~...*| -000001a0 20 4c af 9e 47 02 6f fd 8b ed 66 69 d6 76 cc d8 | L..G.o...fi.v..| -000001b0 f2 b4 ec 71 79 2d 1f 46 22 cb 28 6b be 8e 77 d8 |...qy-.F".(k..w.| -000001c0 24 34 9b 00 c8 e3 8d d6 5d 2a 58 a9 dc ae 21 0f |$4......]*X...!.| -000001d0 92 94 33 b9 cb 1a 89 79 2a eb e8 11 c9 d3 5a af |..3....y*.....Z.| -000001e0 f8 f4 1b ce 34 c8 79 24 ed 08 bd 80 a5 4a cc cd |....4.y$.....J..| -000001f0 21 b0 8b 89 b5 ff f4 03 ee cc 88 16 d9 cf 5f 38 |!............._8| -00000200 8b 67 ac c4 51 b9 f4 44 0c e4 47 83 ba 24 60 8a |.g..Q..D..G..$`.| -00000210 75 0d c2 3d 77 38 46 b1 db 37 57 af 78 aa 06 97 |u..=w8F..7W.x...| -00000220 ab 83 42 f1 96 8c 00 3f 6c 7f b8 ae 1d fb e1 10 |..B....?l.......| -00000230 4d fd 73 bb 37 a6 7d 5a 26 79 5d 7b e4 98 84 9c |M.s.7.}Z&y]{....| -00000240 a2 c4 12 5a b3 a4 bc 6e 35 bd a1 2d 58 e8 27 77 |...Z...n5..-X.'w| -00000250 e1 d6 c4 d5 fb 5a cb 64 6f 6e 4e e0 77 11 ca ba |.....Z.donN.w...| -00000260 30 f4 96 dd fd 95 36 d7 23 4d 87 17 b9 66 9e 23 |0.....6.#M...f.#| -00000270 54 d7 b2 0a 18 f3 11 6e 61 d1 b6 86 94 fb 5c 63 |T......na.....\c| -00000280 ed 6e 5b 60 80 01 51 47 7a d9 2e c1 8f ff 23 ba |.n[`..QGz.....#.| -00000290 75 8d 59 a6 5e 93 c5 10 44 6e 8f a5 59 ab 06 5b |u.Y.^...Dn..Y..[| -000002a0 e9 b6 85 8d 11 6c f8 9a 45 ac 57 b4 04 52 cd fd |.....l..E.W..R..| -000002b0 29 dc 50 ba 9f ec 5a 67 33 35 6b a8 88 2f 86 1b |).P...Zg35k../..| -000002c0 eb 44 54 5b 1d 7e 8a 3b 01 b6 9f d1 99 58 6a bb |.DT[.~.;.....Xj.| -000002d0 9e ab 03 ff 18 00 16 7c 3b 16 a4 d7 4e 1a 63 4f |.......|;...N.cO| -000002e0 69 2b ea 88 54 ed fe 21 45 7a 6e 3a ef aa 89 e7 |i+..T..!Ezn:....| -000002f0 b0 87 93 d8 99 12 6e 1c fd 81 f4 92 4f a3 17 c2 |......n.....O...| -00000300 78 e2 ef a6 eb be 01 6a 1b 4d 49 f7 1a 8f 0f 01 |x......j.MI.....| -00000310 72 bd 9e 17 03 03 00 99 01 71 8b a7 7e 19 d2 27 |r........q..~..'| -00000320 e5 dc 92 fd 6f 90 69 5a b7 7e 64 bd 82 5d 92 06 |....o.iZ.~d..]..| -00000330 6d 0c 65 67 a0 af 23 06 68 15 49 3e 02 65 45 dd |m.eg..#.h.I>.eE.| -00000340 6d 21 04 3e b8 26 de 4b b4 d0 14 77 26 43 79 16 |m!.>.&.K...w&Cy.| -00000350 70 7d f7 97 38 52 5c fd 6f f0 89 df 4e d7 56 4b |p}..8R\.o...N.VK| -00000360 03 10 b3 75 e8 55 8e bb b3 8d 7b 4e 8e a3 81 20 |...u.U....{N... | -00000370 08 1e ce db ee 31 9b 50 49 00 75 0f 96 97 63 98 |.....1.PI.u...c.| -00000380 6e 5e ae fe 8b 33 c5 6e ad 0c 7c 33 e6 ad e9 ba |n^...3.n..|3....| -00000390 74 ef b3 29 8c cc 7e 92 9c 36 4a ad 7e bf c8 09 |t..)..~..6J.~...| -000003a0 e7 1d 70 9a db 8c e6 78 56 70 31 41 2c f1 b1 54 |..p....xVp1A,..T| -000003b0 0b 17 03 03 00 45 0c b9 ad a0 58 fe 16 91 07 e5 |.....E....X.....| -000003c0 c3 e1 76 ee 5e 8a 42 02 80 fc e2 89 cd 6c 2d 7f |..v.^.B......l-.| -000003d0 f1 dc 41 44 e5 d2 d2 86 8b 51 f3 d4 cc 3b 8d 11 |..AD.....Q...;..| -000003e0 3e a9 ae 34 38 8b 5f 15 c5 fd 34 55 e8 47 58 9e |>..48._...4U.GX.| -000003f0 80 02 de 43 b8 42 e3 63 6b 3f c1 |...C.B.ck?.| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 7a |..+.....3.$... z| +00000060 cc 5a 50 25 51 9c 6f 4d 5a d4 dc a0 fa 55 00 33 |.ZP%Q.oMZ....U.3| +00000070 26 0e f7 12 14 9b c2 e0 77 8e ff d3 95 3f 0c 14 |&.......w....?..| +00000080 03 03 00 01 01 17 03 03 00 17 b1 10 59 e2 0b 67 |............Y..g| +00000090 69 df ef 28 e4 f3 9c fc df 48 25 d2 b6 86 68 48 |i..(.....H%...hH| +000000a0 a2 17 03 03 02 6d 91 c1 dd 49 92 5c 77 c1 3f 38 |.....m...I.\w.?8| +000000b0 7d 78 80 21 d1 cc 15 d4 30 ba 77 fb 64 2c ca 05 |}x.!....0.w.d,..| +000000c0 ea bc 88 46 51 47 fd bb 39 08 a8 a8 db 3d 22 86 |...FQG..9....=".| +000000d0 fd b0 78 17 ac 19 18 b4 bb 00 df bf 02 47 75 fb |..x..........Gu.| +000000e0 34 06 ea 66 1b ae 06 5c 03 2d 5a 8e a5 55 20 3a |4..f...\.-Z..U :| +000000f0 ca 1f e9 53 58 6f 7b e7 c4 fa fd 22 7a 7a 45 df |...SXo{...."zzE.| +00000100 7c a7 53 58 92 a4 f9 75 c6 17 b1 bb 68 7b 4e 59 ||.SX...u....h{NY| +00000110 26 af 4d 1d 18 6c 6a f9 9d 14 52 89 7a 1a dd 97 |&.M..lj...R.z...| +00000120 67 4c 4d cd 1c 3f 66 95 d0 9b 4f 77 cf 22 bf 80 |gLM..?f...Ow."..| +00000130 49 17 45 a9 8e 8c 88 3b 21 ce d7 b9 43 e4 ff ac |I.E....;!...C...| +00000140 44 c2 6a 48 60 77 a1 39 8a 92 0c 9b ca f7 da 66 |D.jH`w.9.......f| +00000150 36 9a 86 9f 6e 2d 9b 49 2a 25 30 72 4f 09 41 e5 |6...n-.I*%0rO.A.| +00000160 37 34 30 a4 f9 f9 59 14 22 89 e7 10 2e 71 ee ac |740...Y."....q..| +00000170 82 e9 30 f0 1a 09 2d b5 51 26 ba 71 6b 06 dd fb |..0...-.Q&.qk...| +00000180 e4 e3 be 96 60 04 1c c9 45 7c 1c 58 9f b1 ae d7 |....`...E|.X....| +00000190 6a b2 41 ce 2c b8 fb 07 0a 2d 47 92 53 95 c2 65 |j.A.,....-G.S..e| +000001a0 3c a2 b5 84 58 c2 ae 67 46 9d 79 1e f6 52 59 36 |<...X..gF.y..RY6| +000001b0 1b 72 fb 2a b7 6f 74 38 d7 c6 35 9d f5 ce 12 89 |.r.*.ot8..5.....| +000001c0 25 c5 3e 0e 40 f2 75 30 2b ee 02 61 54 c6 d5 8a |%.>.@.u0+..aT...| +000001d0 19 b0 be 03 83 cf c7 0b bc 56 88 62 3b 7f 80 4e |.........V.b;..N| +000001e0 e7 8b bd 7f 99 c4 63 76 3e da d7 51 96 c4 52 2d |......cv>..Q..R-| +000001f0 49 7a 8d 8e fe d0 01 bb 29 84 2e 55 70 69 fb ba |Iz......)..Upi..| +00000200 f8 6a 8e f4 7d e3 98 46 1b 52 f5 0f 9c 9d 73 29 |.j..}..F.R....s)| +00000210 4d a6 f4 32 ee 2e 67 5c f2 03 a4 12 5e 16 2b 1b |M..2..g\....^.+.| +00000220 98 b2 d3 6c ee f4 10 db 3d b1 7d 75 6e c0 6a bd |...l....=.}un.j.| +00000230 56 56 c1 7f ef f5 c5 fe f9 48 6e 8f 93 1f 5d c2 |VV.......Hn...].| +00000240 35 ee 2f 15 f5 bf d1 10 14 dd c8 69 08 f0 be a2 |5./........i....| +00000250 45 4b 96 9e 12 0a 7f fa 4b 41 78 9c 54 9f 10 97 |EK......KAx.T...| +00000260 4f a7 4b 06 af b3 ab 1a b9 b0 b3 02 11 08 c4 f4 |O.K.............| +00000270 21 fb 86 c5 e9 d9 87 37 d3 79 14 0a 09 c2 4f 7a |!......7.y....Oz| +00000280 1c c2 8e ee 00 b1 0a 78 4f ac f1 78 95 5e 93 95 |.......xO..x.^..| +00000290 a7 ad 44 87 a1 30 d9 5b 1b 13 c5 d8 93 77 2d 2c |..D..0.[.....w-,| +000002a0 68 02 ff c5 91 78 8b 1f 19 eb 53 ae 5c b7 8a e9 |h....x....S.\...| +000002b0 76 ad 62 6a 03 1f f1 ad 01 32 3f 9a 07 36 6b 0a |v.bj.....2?..6k.| +000002c0 80 df 8a 87 f3 76 60 53 1f a7 a9 87 92 87 0a 3f |.....v`S.......?| +000002d0 7d 6e f3 94 23 b6 6e ae cd 32 4f 1c e4 06 42 cc |}n..#.n..2O...B.| +000002e0 33 50 81 dc e3 7b 2b 7a e4 b9 40 63 b7 13 a9 1c |3P...{+z..@c....| +000002f0 6f 30 53 17 4a 6f 18 d7 98 e5 bd 2d ef c3 90 04 |o0S.Jo.....-....| +00000300 da 3b eb 3d 79 4f 34 fb af b1 1b b0 99 6a 7b 11 |.;.=yO4......j{.| +00000310 e0 34 b9 17 03 03 00 99 43 66 96 ed b4 0d 38 fa |.4......Cf....8.| +00000320 e5 41 89 50 30 42 59 f2 35 1e 55 7f ba 7e c8 d2 |.A.P0BY.5.U..~..| +00000330 c8 34 d1 68 56 22 99 09 76 44 51 e2 5d ba 54 d1 |.4.hV"..vDQ.].T.| +00000340 7d ea a7 15 37 0a c9 b0 3b b5 42 97 34 4e 47 21 |}...7...;.B.4NG!| +00000350 f8 4e 94 38 3a 29 c6 6a e6 c7 f8 fe ef 9a 7f 42 |.N.8:).j.......B| +00000360 d3 08 33 b2 c4 fb 63 a0 76 2d ff e9 e2 83 66 35 |..3...c.v-....f5| +00000370 b4 1c 7e 10 4a 1d 02 ea b3 ab 77 b2 05 08 ae d3 |..~.J.....w.....| +00000380 33 5b f0 68 dd 4f 7e 05 99 82 b2 86 a3 49 55 b2 |3[.h.O~......IU.| +00000390 71 52 8b d5 fe a7 ee 75 8c b9 6d 3b 24 eb 1b 0a |qR.....u..m;$...| +000003a0 70 f2 89 19 2e ed ff 66 06 bd 28 ee df 4f 53 60 |p......f..(..OS`| +000003b0 66 17 03 03 00 45 6a 8f 40 5a f8 80 ff a6 e4 aa |f....Ej.@Z......| +000003c0 bc 7f 25 8d 99 4c 4a 87 31 39 1a 11 88 ca f5 c6 |..%..LJ.19......| +000003d0 55 fb 6c 53 27 f8 c9 83 cd fc 91 dc cd ce 5d 9b |U.lS'.........].| +000003e0 70 9f 8d ca 17 82 7c d4 3a 57 87 22 4c 50 f6 ce |p.....|.:W."LP..| +000003f0 73 74 64 2d 83 3b 78 d2 29 d6 a3 |std-.;x.)..| >>> Flow 3 (client to server) -00000000 17 03 03 00 45 3b b4 6d 08 6d 86 92 01 79 ac 23 |....E;.m.m...y.#| -00000010 49 ba 86 5a cc 31 5b 50 6c f2 49 51 17 9a 63 ad |I..Z.1[Pl.IQ..c.| -00000020 11 ba a2 84 8c d4 25 c1 02 63 f8 23 9f a8 8e 6e |......%..c.#...n| -00000030 5e 6f ba 97 10 16 84 cf 3f 97 0f cc 5a 11 6c 79 |^o......?...Z.ly| -00000040 54 eb 2c 81 6c da 61 60 6a ed 17 03 03 00 17 66 |T.,.l.a`j......f| -00000050 41 78 50 23 cc b7 43 2b b9 6e 4c 8c 8c 68 3a 1a |AxP#..C+.nL..h:.| -00000060 ca 35 c8 79 62 dc 17 03 03 00 13 96 1f 8f 80 2c |.5.yb..........,| -00000070 4c a8 fa 30 1b 19 e7 34 a9 55 56 06 00 5a |L..0...4.UV..Z| +00000000 14 03 03 00 01 01 17 03 03 00 45 8b d1 99 f6 dd |..........E.....| +00000010 80 21 59 2a 8a 12 a2 e3 1b 57 50 bd 49 90 95 c0 |.!Y*.....WP.I...| +00000020 17 59 0a c1 55 ff 14 f1 3d 95 e6 c9 ce 60 c7 94 |.Y..U...=....`..| +00000030 24 a3 a2 45 69 7a b0 0d 9f 1e f4 79 2c a7 73 f3 |$..Eiz.....y,.s.| +00000040 d1 2a f5 cb f6 86 79 3f 84 77 58 66 6d 96 0e eb |.*....y?.wXfm...| +00000050 17 03 03 00 17 26 45 2f 9c 9d 50 44 2d e4 a0 ce |.....&E/..PD-...| +00000060 fa b5 0b 37 a4 52 bb f6 ec 86 80 64 |...7.R.....d| +>>> Flow 4 (server to client) +00000000 17 03 03 00 ea 66 4c 54 52 a3 b4 4a 24 0b 2f 8b |.....fLTR..J$./.| +00000010 03 f7 61 70 3b 2a 69 cf 93 95 57 88 b6 1b 6d 2f |..ap;*i...W...m/| +00000020 81 88 7f a9 fd 47 ee 88 00 1d 94 96 1e 37 09 d4 |.....G.......7..| +00000030 e0 fe 47 fe 7f 33 5a 5a 74 b8 ae 63 b8 12 b2 07 |..G..3ZZt..c....| +00000040 a6 7c 8c cd 15 6e 88 c1 41 f9 c5 c6 b6 62 08 9a |.|...n..A....b..| +00000050 f2 30 e5 cd 2b a8 be f1 b6 73 2d 97 21 b3 ac 42 |.0..+....s-.!..B| +00000060 2c 35 cb 3b 9f 4a f6 3d 82 b1 91 a5 15 0a 43 e5 |,5.;.J.=......C.| +00000070 3d 0b 86 db bf bb cf 5a ab 67 0a 32 4b e1 ec 7b |=......Z.g.2K..{| +00000080 9a ea ee 8f 82 f2 0d 27 58 3d d5 85 ea 13 2c ed |.......'X=....,.| +00000090 87 77 95 65 55 1f ca 55 83 01 6f ee 56 74 1f 97 |.w.eU..U..o.Vt..| +000000a0 f7 e5 aa b8 7a 76 24 51 fd 14 71 0f 34 58 99 0b |....zv$Q..q.4X..| +000000b0 da cf 99 38 a5 27 83 37 a8 73 6f 84 11 9c 67 d5 |...8.'.7.so...g.| +000000c0 bc ce aa 07 73 30 2d 13 d0 6a f4 d0 51 92 89 b4 |....s0-..j..Q...| +000000d0 d1 86 ed 50 a4 bf 95 63 77 d6 dc bc 40 75 f8 00 |...P...cw...@u..| +000000e0 f6 b2 16 30 65 1b 46 25 8e 2d c6 f7 f4 5b 70 17 |...0e.F%.-...[p.| +000000f0 03 03 00 ea 8e 55 c9 38 ba 01 57 ff 88 1b c0 b0 |.....U.8..W.....| +00000100 d5 de 46 e9 17 43 2d 38 e3 c9 c2 ea 07 67 d7 8d |..F..C-8.....g..| +00000110 ab 36 e0 86 06 b4 ba d7 0d 93 9c da 10 fe b9 8c |.6..............| +00000120 7f 2e aa 8f a8 67 fd 72 fa 7e 8c 17 79 69 b7 3e |.....g.r.~..yi.>| +00000130 02 15 4d 72 02 80 1f f1 c6 d2 55 a8 67 07 63 db |..Mr......U.g.c.| +00000140 c8 92 1e fb e4 73 cd f9 48 5e aa 9b 76 c4 3e 85 |.....s..H^..v.>.| +00000150 b7 2a 68 52 4d d9 4d be ba 74 f5 e0 5e 4b 3d d3 |.*hRM.M..t..^K=.| +00000160 78 24 bc ba 89 c4 6e ac 54 04 7d fd 6b ee 71 f9 |x$....n.T.}.k.q.| +00000170 19 02 77 3a a3 d4 27 ab c4 95 38 f4 16 b6 18 77 |..w:..'...8....w| +00000180 8d 2a 7e d7 45 64 64 39 6f 4d 87 be 99 53 a8 ac |.*~.Edd9oM...S..| +00000190 f9 5e a6 e0 3d 1f 64 26 c6 f5 27 34 c8 8d 2b 1b |.^..=.d&..'4..+.| +000001a0 ad 12 0c 95 59 5c 07 5e 44 bf aa b0 0f b3 8c 13 |....Y\.^D.......| +000001b0 a4 6f ed 6a af 58 dc 87 32 70 e4 6b 64 f8 44 37 |.o.j.X..2p.kd.D7| +000001c0 cf 4a b0 3f 57 34 05 1c b8 47 5e ba f2 93 cc b2 |.J.?W4...G^.....| +000001d0 8e 86 ef b0 3c ea 4f 75 cf 85 ba 6e 9d 22 |....<.Ou...n."| +>>> Flow 5 (client to server) +00000000 17 03 03 00 13 9b cd 58 dd 0c e0 fa bd 3b 5e 25 |.......X.....;^%| +00000010 e4 9a 24 33 39 f0 b7 bf |..$39...| diff --git a/testdata/Client-TLSv13-ALPN b/testdata/Client-TLSv13-ALPN index 291f49a..f46efbf 100644 --- a/testdata/Client-TLSv13-ALPN +++ b/testdata/Client-TLSv13-ALPN @@ -18,75 +18,108 @@ 00000100 ac 5f bb 29 07 30 ff f6 84 af c4 cf c2 ed 90 99 |._.).0..........| 00000110 5f 58 cb 3b 74 |_X.;t| >>> Flow 2 (server to client) -00000000 16 03 03 00 7a 02 00 00 76 03 03 0a 4d aa 31 08 |....z...v...M.1.| -00000010 a9 02 77 7b 6e 39 6d cd dc 26 a1 21 15 64 b4 a8 |..w{n9m..&.!.d..| -00000020 c5 61 98 3c 41 c0 20 1a 58 0e 15 20 00 00 00 00 |.a..Q.(.| -000001c0 62 81 2d 8e 4c 86 2f e2 8a 87 79 bc 43 89 ce af |b.-.L./...y.C...| -000001d0 f5 08 4e 36 4f 0b 17 cf a3 05 a7 27 7c 21 2c 18 |..N6O......'|!,.| -000001e0 a0 51 f8 ef 38 de 80 99 54 bb 16 2d d2 65 76 95 |.Q..8...T..-.ev.| -000001f0 91 7b 81 36 ed 43 5e 44 f5 d5 6d 74 37 37 56 cb |.{.6.C^D..mt77V.| -00000200 7d 79 7b 7c 96 42 ba 74 8f 5c 6c aa 3d e4 57 90 |}y{|.B.t.\l.=.W.| -00000210 07 a7 d1 50 7e 16 54 ec 92 a6 e4 e2 6f cf 10 c7 |...P~.T.....o...| -00000220 1e 6f 24 4c 1a 5d 44 72 0f 10 22 2f 04 aa ca 55 |.o$L.]Dr.."/...U| -00000230 c6 d0 54 45 80 6d 87 ed 85 44 64 07 c5 71 ff 68 |..TE.m...Dd..q.h| -00000240 ae c5 f1 5c 8d 8a 4d 85 3b 68 65 b2 97 c7 2b bf |...\..M.;he...+.| -00000250 49 d8 76 ac 58 de ba 31 7f 10 92 85 4c cd f5 d7 |I.v.X..1....L...| -00000260 bc db aa f4 c8 81 95 fd 77 e8 9f 03 74 0e 15 a7 |........w...t...| -00000270 73 0c 6d 07 27 ce c3 23 cc 68 f0 82 ce 2b 8d 25 |s.m.'..#.h...+.%| -00000280 4e b3 e8 31 b6 e4 2b 4e bf b8 09 f7 ef 6e 64 89 |N..1..+N.....nd.| -00000290 23 03 03 bf 93 dd 3a 89 e1 cf d1 7b b8 72 8d 40 |#.....:....{.r.@| -000002a0 30 d4 06 be c4 78 a7 70 66 a5 90 36 86 e4 a1 53 |0....x.pf..6...S| -000002b0 59 81 68 04 bc 1b 5b b8 28 ff d0 78 75 2a 46 a7 |Y.h...[.(..xu*F.| -000002c0 3b 11 08 e3 cc fd 39 a4 d0 fa d0 ed cf 34 ce 6e |;.....9......4.n| -000002d0 02 a6 6c 1c 04 c3 a7 53 08 6c dc 8c 71 51 7c 9c |..l....S.l..qQ|.| -000002e0 f0 da 86 91 a0 f1 0d 04 fb 18 c3 89 1a b8 58 f7 |..............X.| -000002f0 50 9c cb 62 a6 d4 64 6b cd 7b 5c 33 1e d8 45 43 |P..b..dk.{\3..EC| -00000300 f6 72 cd 04 1a 7f e4 48 b2 16 17 9d 79 97 5c bc |.r.....H....y.\.| -00000310 fa 0a 06 b1 92 f1 b3 db 98 83 04 01 6a 2b 51 38 |............j+Q8| -00000320 17 03 03 00 99 82 ea 5b 85 f2 b1 05 63 fa 98 d3 |.......[....c...| -00000330 ad 0d ac ab 0a a2 95 81 1a 04 52 c0 9e 18 da 3d |..........R....=| -00000340 b6 36 a6 6f 35 1d c2 e0 e6 82 d6 0d ec b4 e1 02 |.6.o5...........| -00000350 95 43 e0 1e 3c 2b 96 8f 39 d0 49 33 ef 30 4f 05 |.C..<+..9.I3.0O.| -00000360 7a 2e 1b 04 39 d7 b3 4a 1a 24 20 11 1e d7 fb ea |z...9..J.$ .....| -00000370 28 57 68 79 53 7d f8 08 35 c4 c2 7a f5 73 19 76 |(WhyS}..5..z.s.v| -00000380 dc 56 fb 35 aa 6a b7 73 7b da 41 f3 9f 71 14 14 |.V.5.j.s{.A..q..| -00000390 b8 61 8e ab 82 5e 57 e8 af d2 31 95 ec 4f a7 01 |.a...^W...1..O..| -000003a0 f2 2b cc 75 1b b1 cd c6 25 c0 69 32 4d 02 53 73 |.+.u....%.i2M.Ss| -000003b0 80 ef c3 af 62 68 a7 82 15 dc e5 f2 8e 0f 17 03 |....bh..........| -000003c0 03 00 35 ca d4 d7 83 55 19 de 32 ec b2 9c 79 13 |..5....U..2...y.| -000003d0 e2 99 3b ae 9d 90 d1 ec 76 e9 89 be b0 59 9b e1 |..;.....v....Y..| -000003e0 fc 37 a7 84 5c 3c 03 e2 92 72 f9 ee d6 85 fc 42 |.7..\<...r.....B| -000003f0 f2 2f f6 ac bb 2b 25 a0 |./...+%.| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 fe |..+.....3.$... .| +00000060 4b d7 8f 01 60 9e 75 40 11 72 06 64 f7 66 62 a7 |K...`.u@.r.d.fb.| +00000070 49 81 d2 f6 65 59 10 4f 2c 68 d8 4c f0 f0 60 14 |I...eY.O,h.L..`.| +00000080 03 03 00 01 01 17 03 03 00 24 e3 64 26 bd f9 1c |.........$.d&...| +00000090 ce 83 56 88 a0 a5 eb e7 a5 c5 13 53 2d 61 69 8a |..V........S-ai.| +000000a0 74 32 46 dc fa b2 63 58 f2 31 6a 21 8f 18 17 03 |t2F...cX.1j!....| +000000b0 03 02 6d 5f 4f bf d0 9d 00 9d 2e c6 86 0b d5 37 |..m_O..........7| +000000c0 01 0b a5 ac d5 ee 9c 91 87 98 89 c9 bd 2f b3 b4 |............./..| +000000d0 10 7e 40 eb bb 6b 9e d6 cc 0b 1d 3a 18 06 a2 a5 |.~@..k.....:....| +000000e0 1d d4 53 82 a7 3b 28 3f 3f d5 0e 23 5a f7 ff e4 |..S..;(??..#Z...| +000000f0 3d a4 66 95 a8 d0 18 52 2c 94 c4 84 89 0f d1 05 |=.f....R,.......| +00000100 a2 34 95 da 7b 65 e2 9c 62 b1 11 cc 15 78 58 8f |.4..{e..b....xX.| +00000110 43 d8 d0 04 9b db bf 06 34 d6 33 3d 55 0b 53 39 |C.......4.3=U.S9| +00000120 9f 96 8f 67 34 6a f6 13 09 9b ae 61 b8 c5 cf 65 |...g4j.....a...e| +00000130 f1 b5 43 bb ee fb 9c d4 2d b1 7e 3a 59 4b 56 45 |..C.....-.~:YKVE| +00000140 d4 1f 75 b7 07 35 18 e7 bd ad b7 36 2f 63 0f 67 |..u..5.....6/c.g| +00000150 68 3f 42 4c 53 22 bc b9 41 2c e0 a3 95 54 6b 4d |h?BLS"..A,...TkM| +00000160 b9 e4 00 3f 89 11 53 7e cc 4d 8c 72 d7 d0 fe bf |...?..S~.M.r....| +00000170 20 81 20 d3 d3 a1 e6 c8 ba 5b 49 d7 96 9e 8f fb | . ......[I.....| +00000180 f8 30 d6 7e e5 4a 3b e6 a6 0d 0a 42 80 68 cf 06 |.0.~.J;....B.h..| +00000190 19 d7 86 63 8e 23 c0 37 71 f6 bc 8b bd ab 62 a5 |...c.#.7q.....b.| +000001a0 45 f4 37 ea 50 cc 82 c9 f4 28 11 1c 1b 90 9d f7 |E.7.P....(......| +000001b0 67 dc 58 d2 10 59 49 26 17 68 50 a9 6c d9 e6 46 |g.X..YI&.hP.l..F| +000001c0 c5 e8 b3 ba 01 a9 ff 33 5e 2c 7c d3 eb d2 35 56 |.......3^,|...5V| +000001d0 b2 21 37 94 40 c7 15 d6 6f 29 ee 02 c9 98 e7 04 |.!7.@...o)......| +000001e0 0c 56 e9 f9 21 91 e7 75 7c 8d a1 50 28 b3 da 76 |.V..!..u|..P(..v| +000001f0 45 af 22 80 77 17 2e 96 d8 5e 05 0f 63 21 c9 32 |E.".w....^..c!.2| +00000200 2b c0 69 e9 8a 07 40 0c 21 73 1f 7d e8 b1 11 45 |+.i...@.!s.}...E| +00000210 37 40 c8 26 66 98 e9 0a 95 ed 08 26 12 f3 79 17 |7@.&f......&..y.| +00000220 6d d8 92 11 4f c7 ee db 5d 77 98 1a 31 cd cc db |m...O...]w..1...| +00000230 1d 96 e8 b5 a1 ba be 0f b1 84 4a a0 55 c5 41 78 |..........J.U.Ax| +00000240 8d 96 ca a0 4e 4d 1e ed 34 54 2b 95 08 1f 00 a6 |....NM..4T+.....| +00000250 a8 d7 35 66 0a ad 2a ac c4 4b 5d 60 b8 89 1f af |..5f..*..K]`....| +00000260 65 c3 a6 10 4b 4c c1 d6 07 1b 3a dc 7c 00 3e a1 |e...KL....:.|.>.| +00000270 06 8e ac f6 4c 4f d4 88 31 3e df 5b 6b 95 19 ed |....LO..1>.[k...| +00000280 6e b5 d1 0a 5e bc 5e 69 3f 5a fc ed 71 14 66 c4 |n...^.^i?Z..q.f.| +00000290 a3 ef 82 d4 2b bc 7c 5a 34 20 33 77 e4 48 4b 82 |....+.|Z4 3w.HK.| +000002a0 66 51 12 ac cf 9b e5 5f 17 34 2f a5 47 fd ab 53 |fQ....._.4/.G..S| +000002b0 85 8e d2 d5 c7 b2 58 a5 d2 fa eb d8 59 f6 2a bd |......X.....Y.*.| +000002c0 37 fc 68 65 75 e4 5f be a7 d8 6a da 41 36 6a 33 |7.heu._...j.A6j3| +000002d0 f1 8d 6a 9d f0 23 73 6a 33 42 52 6f 41 80 a3 40 |..j..#sj3BRoA..@| +000002e0 48 65 16 d9 23 dd 66 93 eb c5 d3 84 10 8b 0b ec |He..#.f.........| +000002f0 d8 c1 c3 3f 08 07 18 ed d9 8e 1d a3 85 d1 70 ef |...?..........p.| +00000300 cd c1 90 e1 80 70 94 9d 05 41 3d 4e 8f 6b 91 d7 |.....p...A=N.k..| +00000310 5d b4 9c 72 c0 de 2d bb f0 d7 dd 29 c4 4e 82 56 |]..r..-....).N.V| +00000320 17 03 03 00 99 ed 9c 42 76 9b 6c 6d 4f db 8d ca |.......Bv.lmO...| +00000330 4f a9 6b de 10 6e 5e 9a 1b b8 5a bd 35 0f a6 0a |O.k..n^...Z.5...| +00000340 cd bd 9d 60 ac 4b c9 35 4e 2a 70 5f 13 07 3f 4a |...`.K.5N*p_..?J| +00000350 bd 3c 9e 85 ef 6d cd 4e 91 c0 83 3e bc ac c7 03 |.<...m.N...>....| +00000360 fa 9d 3b 11 28 de d1 8e de c5 d3 3f cf cc ff 7b |..;.(......?...{| +00000370 63 27 51 4c ea 11 24 43 c5 24 20 69 f3 71 9f 1c |c'QL..$C.$ i.q..| +00000380 c5 a8 6f 4a 10 1b 4f 20 6c fa bc ab 79 b3 c7 15 |..oJ..O l...y...| +00000390 de 47 4d 74 19 65 49 38 31 15 cd c8 51 68 fa 74 |.GMt.eI81...Qh.t| +000003a0 c8 2f cf 34 17 35 0a 29 0c 45 c7 8a 99 1e 3e 18 |./.4.5.).E....>.| +000003b0 29 74 b6 be 9d ea b1 ab f4 0c d7 7f f3 16 17 03 |)t..............| +000003c0 03 00 35 e6 eb 90 3b 27 87 1b d4 7b a6 77 95 4a |..5...;'...{.w.J| +000003d0 2f b7 52 59 c7 4c 44 75 80 ca a3 04 ea 1a ba df |/.RY.LDu........| +000003e0 69 4c 42 97 a5 ad a8 67 4d c3 7d a7 83 33 8a c5 |iLB....gM.}..3..| +000003f0 ec af 2b c9 bc 32 91 8b |..+..2..| >>> Flow 3 (client to server) -00000000 17 03 03 00 35 cc 3b 0d 48 9a 16 49 7c 30 93 a1 |....5.;.H..I|0..| -00000010 ad ad f3 1d 8c ba 5b 16 af bd 40 36 31 0c aa 64 |......[...@61..d| -00000020 0c b0 2b bd d2 24 6e e8 07 30 94 e2 22 c8 c4 b8 |..+..$n..0.."...| -00000030 3c 7a 36 f6 dd 4c be 4c ef 68 17 03 03 00 17 f6 |4B,.3......| -00000050 b5 32 fd a4 5c f1 17 03 03 00 13 d6 00 df 9b 19 |.2..\...........| -00000060 38 a4 5e 5a 95 53 b6 10 80 79 1a 31 6b 4d |8.^Z.S...y.1kM| +00000000 14 03 03 00 01 01 17 03 03 00 35 0c 04 d4 20 a9 |..........5... .| +00000010 67 8e 45 d1 59 75 b8 1d 89 da a3 97 ae 3f f7 a4 |g.E.Yu.......?..| +00000020 64 3f d4 e2 05 45 da 2e e7 a0 c3 32 a4 19 40 b6 |d?...E.....2..@.| +00000030 af 8f cf 2c fe d2 14 88 18 cf 65 06 e3 91 a5 de |...,......e.....| +00000040 17 03 03 00 17 f9 61 2b d5 c3 68 88 6f d8 86 23 |......a+..h.o..#| +00000050 f1 7d 58 5c 75 8c 70 24 5b 4f de 74 |.}X\u.p$[O.t| +>>> Flow 4 (server to client) +00000000 17 03 03 00 ea 33 85 9d 72 d6 99 11 8b 5d b1 a2 |.....3..r....]..| +00000010 e8 b6 7c 00 b6 0b 4f cd 08 89 51 a5 86 4e db 28 |..|...O...Q..N.(| +00000020 67 50 03 f7 a6 6e 02 0a 3a 3b 7c 35 74 cc 87 d8 |gP...n..:;|5t...| +00000030 eb da 9a 07 9a 66 ce 1d 4d eb 62 51 fb 59 6f 45 |.....f..M.bQ.YoE| +00000040 14 18 40 5b 8d e6 35 17 fe dd 8d d3 56 3d 81 18 |..@[..5.....V=..| +00000050 83 a8 af 95 90 0a cf 6a 76 d0 a6 07 7e 1c 71 1c |.......jv...~.q.| +00000060 e6 c5 2f ce 47 b7 73 6d 8b 06 3a fd e8 ce 7e 34 |../.G.sm..:...~4| +00000070 7e 6c 5c ae d3 8d 3a c0 61 b6 f9 73 07 7b 4a 3f |~l\...:.a..s.{J?| +00000080 0d b9 fc f2 5e 70 13 09 c1 a6 16 04 2e 13 db 12 |....^p..........| +00000090 ab 1a 10 df c5 53 00 f8 58 46 63 86 e1 47 8a 25 |.....S..XFc..G.%| +000000a0 88 95 d4 53 dd 8c df ae 38 15 86 70 ad 8f c0 c7 |...S....8..p....| +000000b0 a6 ba 2a ac 4b c3 54 aa 00 41 43 1c 2e 30 47 a5 |..*.K.T..AC..0G.| +000000c0 bf 6c e5 c2 78 67 b4 07 3e fb 11 b5 87 8d 51 92 |.l..xg..>.....Q.| +000000d0 47 81 6b 8e 2f f9 5d 4e 66 25 5a b5 3b 92 9a d0 |G.k./.]Nf%Z.;...| +000000e0 e0 b6 63 28 d2 80 ba c7 97 95 1a ef d9 1c c8 17 |..c(............| +000000f0 03 03 00 ea 6a 98 5d 82 1c f0 42 0a 87 39 0c 0c |....j.]...B..9..| +00000100 cd e7 0b 16 1b 93 0f 1f ce 03 1a 1c c1 64 89 a2 |.............d..| +00000110 bb b3 73 33 0e 1b b5 7f 6f 53 73 86 cb 37 57 1a |..s3....oSs..7W.| +00000120 8e 1d 59 c8 5c 81 29 19 1b ca 8e 42 31 34 06 e7 |..Y.\.)....B14..| +00000130 43 a9 4c cd 91 45 4d 1e 48 31 57 50 10 fd 9e aa |C.L..EM.H1WP....| +00000140 b6 f4 14 a3 ff b2 c3 47 3e f2 3e 5a b9 5c 7a c6 |.......G>.>Z.\z.| +00000150 26 1a 91 7e c3 3a e3 7e a4 38 cd 83 89 85 8f f2 |&..~.:.~.8......| +00000160 fa c1 e3 1e 53 3d bd 54 ed 21 74 fb ff f0 d9 e9 |....S=.T.!t.....| +00000170 d5 b7 46 1c 6e 1d 9c 79 5e a7 32 97 79 8f 69 70 |..F.n..y^.2.y.ip| +00000180 e7 5c ad 7f 58 1a 0b af 16 dc fe 35 01 e3 bf 42 |.\..X......5...B| +00000190 be 78 6f 39 d0 a9 c8 6c 48 bd b0 c8 fb 5c f7 1d |.xo9...lH....\..| +000001a0 1a 3f 79 7a d9 7c 07 ab 11 1b 0b bb 30 88 bf 59 |.?yz.|......0..Y| +000001b0 36 79 5e 0b 23 2e 70 4e 84 f5 ab 6d b3 5d f6 ff |6y^.#.pN...m.]..| +000001c0 40 09 66 f2 89 af 58 fb 0c 29 fb 7d f6 be 97 b6 |@.f...X..).}....| +000001d0 1b 84 53 b5 a2 f2 2b a6 d5 f4 c9 16 70 b8 |..S...+.....p.| +>>> Flow 5 (client to server) +00000000 17 03 03 00 13 3c 30 88 da 6f 10 92 66 99 de 69 |.....<0..o..f..i| +00000010 ea 74 e4 a2 7a d3 b8 d4 |.t..z...| diff --git a/testdata/Client-TLSv13-CHACHA20-SHA256 b/testdata/Client-TLSv13-CHACHA20-SHA256 index 1cc7a4f..8f606cd 100644 --- a/testdata/Client-TLSv13-CHACHA20-SHA256 +++ b/testdata/Client-TLSv13-CHACHA20-SHA256 @@ -16,74 +16,107 @@ 000000e0 a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 ff f6 |.G.bC.(.._.).0..| 000000f0 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 |........_X.;t| >>> Flow 2 (server to client) -00000000 16 03 03 00 7a 02 00 00 76 03 03 7b 81 36 84 98 |....z...v..{.6..| -00000010 a3 9c d6 2d a5 38 91 94 a3 df 3a d2 ad 4b b6 60 |...-.8....:..K.`| -00000020 12 f2 fa 04 f4 1c a1 e4 55 43 f3 20 00 00 00 00 |........UC. ....| +00000000 16 03 03 00 7a 02 00 00 76 03 03 8d 7b 1d 2a 66 |....z...v...{.*f| +00000010 8f 54 f0 d0 59 a6 ef ba aa 1a ba 98 bf 02 45 f5 |.T..Y.........E.| +00000020 56 69 80 67 e4 72 f4 d7 56 a1 ec 20 00 00 00 00 |Vi.g.r..V.. ....| 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 13 03 00 00 |................| -00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 eb |..+.....3.$... .| -00000060 45 9d e3 42 6c 04 45 5c 46 28 7d 88 60 44 32 74 |E..Bl.E\F(}.`D2t| -00000070 e8 8c ca 9d f6 71 ec c4 11 d5 11 1d 04 aa 47 14 |.....q........G.| -00000080 03 03 00 01 01 17 03 03 00 17 db ed 81 c0 66 7b |..............f{| -00000090 80 d4 91 4c 78 75 7f af d2 60 c8 bd 35 45 7e 36 |...Lxu...`..5E~6| -000000a0 5a 17 03 03 02 6d a5 9c 0f 75 69 8d 43 05 50 35 |Z....m...ui.C.P5| -000000b0 39 ec 82 e2 ba 01 09 c7 f0 47 1f ab 50 f3 6b aa |9........G..P.k.| -000000c0 83 8c eb db 0d 5c 86 ba fd 8f 63 30 1a 48 3e 62 |.....\....c0.H>b| -000000d0 ed 6a bc 9c 71 2c 33 e4 55 43 bb 67 86 c2 45 06 |.j..q,3.UC.g..E.| -000000e0 fd 9c 50 3e a8 5e 94 14 58 65 27 cc 12 0d 98 c3 |..P>.^..Xe'.....| -000000f0 68 79 8a 20 b5 a5 0d 0a d6 93 d8 a2 ee 79 64 2e |hy. .........yd.| -00000100 be f3 20 ff d4 2e 6b b0 4e 76 3c 0f 28 85 bc e6 |.. ...k.Nv<.(...| -00000110 91 bd f3 cb 60 75 41 4c d0 23 b4 df c2 c9 4b 8b |....`uAL.#....K.| -00000120 6d 3b fd 7c 93 90 a5 f8 5f d0 70 42 aa a6 c1 02 |m;.|...._.pB....| -00000130 10 ae 24 71 33 43 98 4a 96 d1 de de 6c 8e a1 98 |..$q3C.J....l...| -00000140 bf 08 bb 0c 08 ad 31 bf 25 19 cd c2 54 93 15 e6 |......1.%...T...| -00000150 e4 da c3 da 98 67 fc 1f 7a ce 57 d6 6a 53 82 67 |.....g..z.W.jS.g| -00000160 50 f5 c8 9d b5 92 46 4f 84 a4 e7 14 e0 03 4f 40 |P.....FO......O@| -00000170 a9 df 76 c3 14 06 36 4f be 03 8f e9 cd a6 57 9c |..v...6O......W.| -00000180 da 98 61 a0 2e ba 74 fc 9f f2 c8 87 9d ed fb 87 |..a...t.........| -00000190 de db 9c 15 a0 5c 7b 5a ab af c7 fa 5a ab d1 c0 |.....\{Z....Z...| -000001a0 13 64 12 c0 5d 36 b5 fd 4d 80 df 26 cd ef c0 ca |.d..]6..M..&....| -000001b0 83 e5 3a 55 58 2a 63 5c 38 e7 e0 9c 15 cb 76 14 |..:UX*c\8.....v.| -000001c0 5f 7a 9a 8f 9f 03 83 3e 7d 9e 61 17 2a 6b c8 ff |_z.....>}.a.*k..| -000001d0 dc f9 01 aa 5f e1 44 ea 2c 09 60 ac 0b 25 e4 52 |...._.D.,.`..%.R| -000001e0 0e 21 86 6f d4 92 2d eb 95 0a 87 6d 91 ee 27 05 |.!.o..-....m..'.| -000001f0 e2 e2 88 13 eb ac 8b f8 45 c4 88 eb 76 43 10 d8 |........E...vC..| -00000200 26 de de b0 9b 4c 14 1b 2c db 93 8e de 46 a9 9e |&....L..,....F..| -00000210 df 87 df 88 69 a8 15 ae cf 3c a7 3d ae 70 3d 2a |....i....<.=.p=*| -00000220 22 eb 01 2e e1 29 23 2f 8a ad cf 54 25 fb 8b 0a |"....)#/...T%...| -00000230 1c 70 b8 0c 34 e5 49 9e c1 cd 98 02 85 42 22 56 |.p..4.I......B"V| -00000240 b8 da 9b 48 cc 87 84 f9 f1 94 e1 bc 5a 01 a1 3f |...H........Z..?| -00000250 de 7c ac 03 d3 75 88 8d 22 6e f8 6e e1 f8 4b 9c |.|...u.."n.n..K.| -00000260 0b 13 7e f6 1b 0e 22 ce 62 69 3d 66 55 87 a2 a1 |..~...".bi=fU...| -00000270 01 9e 2b 3c 60 80 b3 c6 d9 fc 9a 4c 0e 89 83 44 |..+<`......L...D| -00000280 8c 02 64 70 e7 71 b5 e0 6c f1 44 cc bf 3e 03 95 |..dp.q..l.D..>..| -00000290 a9 46 6a f3 f6 1e ea 19 bb 8c 62 92 17 bc cf 2d |.Fj.......b....-| -000002a0 e5 af ca 2d 66 6d ed c1 13 f6 89 55 fc 5c 51 12 |...-fm.....U.\Q.| -000002b0 30 02 78 58 96 7c 8b 28 68 56 7b f7 c4 48 03 5b |0.xX.|.(hV{..H.[| -000002c0 5f 46 ef 9c 1d 7e 4c 0a b9 de 37 df 90 86 7c 1d |_F...~L...7...|.| -000002d0 e6 af dc 85 c5 03 6f a2 38 d2 2a f3 33 5c 27 06 |......o.8.*.3\'.| -000002e0 c4 1e 44 61 1b 7b 28 3c 3d ca 32 d2 9b 8b 59 9a |..Da.{(<=.2...Y.| -000002f0 42 7c b8 23 4d 81 ca ce 02 f1 bc 87 f2 dd 42 2f |B|.#M.........B/| -00000300 f0 c4 97 32 b9 a5 44 c2 12 96 ca cf fd 95 14 c8 |...2..D.........| -00000310 12 47 0a 17 03 03 00 99 ff 36 e6 aa 19 66 0f 3d |.G.......6...f.=| -00000320 c1 cd b3 8b b3 51 78 a1 bb d6 c7 dc 1a ee ae 82 |.....Qx.........| -00000330 35 b5 b9 71 a9 0e a2 d0 d2 0f d7 cf c9 29 a3 2e |5..q.........)..| -00000340 57 21 ac 8e 37 01 47 1c 26 83 f7 15 69 44 c6 27 |W!..7.G.&...iD.'| -00000350 f9 4c e3 b2 5e 2f 7a 57 55 05 ef c6 89 1c f0 23 |.L..^/zWU......#| -00000360 ce 46 44 26 5b d8 2b ff 8a 8b 8b dc 94 73 1a a3 |.FD&[.+......s..| -00000370 46 15 57 d3 8b 03 2b d3 83 7b 45 d9 28 b0 2b 96 |F.W...+..{E.(.+.| -00000380 6a de 74 2a dd ca 12 ab 55 1e 8a b7 a2 6a b6 8e |j.t*....U....j..| -00000390 42 fe c0 35 16 d8 3f f7 f5 58 5d 7a 6c 3c 8d 71 |B..5..?..X]zl<.q| -000003a0 a3 8e 88 91 97 69 1d 35 e0 47 5d 3d 99 48 96 29 |.....i.5.G]=.H.)| -000003b0 1b 17 03 03 00 35 da 2c 98 c0 1b 27 40 d0 89 d0 |.....5.,...'@...| -000003c0 90 76 97 c1 0a 76 33 17 0e a0 cb 15 5a eb ce 78 |.v...v3.....Z..x| -000003d0 6f ba db da 20 38 94 75 dc 1a 42 c6 2e ef f4 46 |o... 8.u..B....F| -000003e0 12 ac 0e 56 56 32 e6 1c 2e 29 31 |...VV2...)1| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 c8 |..+.....3.$... .| +00000060 b8 1d 9b 00 85 3c 1c 1d 1f 5e 88 e8 ea 38 1d 63 |.....<...^...8.c| +00000070 f4 99 b0 89 a5 c4 4e 7d 15 49 ca 27 05 26 10 14 |......N}.I.'.&..| +00000080 03 03 00 01 01 17 03 03 00 17 07 34 7c 5e 3f 52 |...........4|^?R| +00000090 c4 42 ed d9 50 e2 a6 cc 6e 0e 93 27 bf c1 97 d6 |.B..P...n..'....| +000000a0 78 17 03 03 02 6d 1c 60 91 f4 1b fd 8f 9b 89 8b |x....m.`........| +000000b0 65 50 19 c9 41 25 9e 35 8d 75 aa ec 5f 88 bf 6c |eP..A%.5.u.._..l| +000000c0 85 33 02 c3 01 6d 3c 5c 86 aa 12 22 35 49 e0 81 |.3...m<\..."5I..| +000000d0 4b e3 f2 ec 75 12 95 ed b4 aa f3 0e 7d bf e6 a8 |K...u.......}...| +000000e0 5d a3 6c 82 f7 f0 1e f7 e7 e8 73 af 14 77 24 ea |].l.......s..w$.| +000000f0 5f bc 25 88 95 93 bb 61 84 f9 36 95 b9 12 31 ff |_.%....a..6...1.| +00000100 f8 19 f0 76 d7 4a 1f a6 77 33 75 82 70 a7 98 71 |...v.J..w3u.p..q| +00000110 5b dc c0 d6 9c 85 c2 41 e3 d0 32 b1 e5 c0 42 8c |[......A..2...B.| +00000120 e8 32 38 ad 03 3a db 46 66 0c 63 0f 65 f6 ed 66 |.28..:.Ff.c.e..f| +00000130 34 ec c6 23 db e3 25 3e ec eb 44 21 76 7c 35 0f |4..#..%>..D!v|5.| +00000140 f2 2c 0f 92 9c db 8f 3e de 46 e8 af f8 6e c4 82 |.,.....>.F...n..| +00000150 91 5e a3 c2 de f7 73 3c 1c e2 84 42 02 a8 bf fb |.^....s<...B....| +00000160 04 96 a4 a7 f4 4c c2 d7 1e 1e 6a e2 82 68 58 07 |.....L....j..hX.| +00000170 a0 f4 e9 91 c1 bc f7 d6 d7 d7 63 6a e7 a3 9c fa |..........cj....| +00000180 69 57 28 e9 db 4e d1 4d 65 9a 05 41 a9 71 47 97 |iW(..N.Me..A.qG.| +00000190 17 0b 95 79 8e 60 90 ee 4c 75 e0 c4 10 c8 21 e7 |...y.`..Lu....!.| +000001a0 ab 62 ab a9 e7 25 86 80 93 76 f7 a2 2a c4 d2 9f |.b...%...v..*...| +000001b0 59 2a 15 7a 88 c0 8d 57 01 ab f2 8e 40 5d b5 49 |Y*.z...W....@].I| +000001c0 7f d4 1e 7f 4e ae ad bd 8c bc 2d 5f 91 3f a7 6c |....N.....-_.?.l| +000001d0 ce 0a 8c c7 53 66 4e 28 31 16 ab 05 dc 78 f6 f4 |....SfN(1....x..| +000001e0 5d b3 eb 38 e1 c1 53 11 11 97 69 4a 86 14 fa 34 |]..8..S...iJ...4| +000001f0 c7 ab 6d 2d 31 17 bf a7 d8 1a 9f bf 2f 4c c9 50 |..m-1......./L.P| +00000200 5e 21 30 b1 98 ac f3 46 a2 d9 4b 67 e7 44 cd 0c |^!0....F..Kg.D..| +00000210 77 2b 72 1c 6d e6 65 1b 28 6d d1 05 bb a6 15 54 |w+r.m.e.(m.....T| +00000220 5d 93 22 e0 e4 e8 3e 99 8c 18 18 27 a7 18 c2 0c |]."...>....'....| +00000230 6c fb 16 b6 ab f1 91 f1 ad 84 b3 53 30 27 b8 29 |l..........S0'.)| +00000240 82 c8 28 06 19 c8 44 3f 45 10 67 92 6a ff 94 47 |..(...D?E.g.j..G| +00000250 49 b2 fd 08 03 15 bd f7 c9 34 cc ad 84 9c 6d 08 |I........4....m.| +00000260 15 e8 df 10 3c 7d 28 5f 9d 77 07 49 47 2f ae 61 |....<}(_.w.IG/.a| +00000270 af 3b 8f 19 63 f7 b3 29 3c 45 4e 0d 9d 03 97 74 |.;..c..).7...E).V..._VG| +00000300 c2 4f cb ca 7c 86 8e ed 72 3d 3f e9 bc 38 a7 c1 |.O..|...r=?..8..| +00000310 59 8b a2 17 03 03 00 99 dc 71 24 a3 c4 ab 62 4c |Y........q$...bL| +00000320 26 c3 7c 73 d3 e9 fd 4b 82 95 30 b8 3f 87 7e bf |&.|s...K..0.?.~.| +00000330 c1 60 40 5f 6c 7f 8d db 0e 4e 91 d4 b4 02 66 ef |.`@_l....N....f.| +00000340 b8 b1 a8 af 42 a3 7d 5c 6a 97 81 f6 cb c8 d2 8b |....B.}\j.......| +00000350 7e 1d 09 e5 f1 a4 aa 5e c9 b6 f4 b7 43 2f 21 ba |~......^....C/!.| +00000360 90 d6 74 ab 8e 03 8b 54 79 57 b6 ae 77 a0 87 96 |..t....TyW..w...| +00000370 42 0f 95 66 74 6c 1b 0d ea 66 5c 62 57 32 b7 dd |B..ftl...f\bW2..| +00000380 03 65 b6 ad af 15 20 52 39 af 33 e6 08 5c 38 dd |.e.... R9.3..\8.| +00000390 40 42 c1 4c f6 48 0b 59 96 a0 04 c3 09 b6 bf ac |@B.L.H.Y........| +000003a0 7a 9d 96 8a ce 3f 7f 68 00 9e 1c 9a db e3 25 56 |z....?.h......%V| +000003b0 54 17 03 03 00 35 55 48 0b d0 5c c0 8c a4 5e 1e |T....5UH..\...^.| +000003c0 30 64 b7 b5 f7 d0 0d 50 64 a8 f1 79 36 9a 0f 00 |0d.....Pd..y6...| +000003d0 ac cb 25 c7 62 5f c1 05 e9 c2 ee 7a 87 00 19 fc |..%.b_.....z....| +000003e0 5b fd 4c 0a 73 ec dc f4 51 66 bd |[.L.s...Qf.| >>> Flow 3 (client to server) -00000000 17 03 03 00 35 23 ee 53 57 90 ba 6c b8 81 73 49 |....5#.SW..l..sI| -00000010 50 0b a2 6f 9c bc b4 84 c5 31 e7 1d 57 ef fe c2 |P..o.....1..W...| -00000020 00 0b 1b 67 f7 2c 7d d3 e1 24 fa 4c 7a 90 5a 52 |...g.,}..$.Lz.ZR| -00000030 c4 78 2c 4a a4 81 3a ca 70 3e 17 03 03 00 17 d1 |.x,J..:.p>......| -00000040 04 00 5a 55 c2 9d ed 7d 32 a0 94 80 f7 2a f1 ee |..ZU...}2....*..| -00000050 e7 28 20 f8 27 3b 17 03 03 00 13 99 71 80 30 28 |.( .';......q.0(| -00000060 79 f2 88 36 2d a4 b5 b8 f0 1a e8 4e 26 ec |y..6-......N&.| +00000000 14 03 03 00 01 01 17 03 03 00 35 36 71 be 3a 8d |..........56q.:.| +00000010 ee 01 10 3e 7b a9 7a 5a 81 2f 2a 65 bd 56 8f b9 |...>{.zZ./*e.V..| +00000020 0f a2 e9 80 eb ae 63 b0 60 69 ea f3 f7 66 d4 2c |......c.`i...f.,| +00000030 fd 13 2c 00 22 55 85 58 4e cf 4f 45 45 a1 ba 89 |..,."U.XN.OEE...| +00000040 17 03 03 00 17 bc cf b6 f9 13 87 04 83 9e 1d dd |................| +00000050 ff 33 77 cb a1 71 bb df 23 97 2c b6 |.3w..q..#.,.| +>>> Flow 4 (server to client) +00000000 17 03 03 00 ea 6c b0 c3 6b ed 51 ec 1e 57 a4 3e |.....l..k.Q..W.>| +00000010 f6 d0 e8 10 b6 b4 cd e6 0b 12 50 8f a2 26 b9 87 |..........P..&..| +00000020 19 ad a5 25 33 ab 5e 2e 58 d4 68 c5 85 42 6c 1d |...%3.^.X.h..Bl.| +00000030 34 02 b0 47 59 f0 cd c2 d5 a5 bb 27 3f 60 9d 07 |4..GY......'?`..| +00000040 22 3c 9a 25 d0 a6 2a b4 e4 52 20 18 07 f3 f8 b4 |"<.%..*..R .....| +00000050 ad 4f 2c ec 8d 41 5f dd b9 e1 bb 90 88 94 5e 73 |.O,..A_.......^s| +00000060 75 a1 ed 88 cf 97 a6 67 02 02 78 be a4 20 29 ad |u......g..x.. ).| +00000070 91 63 a6 39 e8 42 1a 65 76 c7 17 f0 39 7a c4 62 |.c.9.B.ev...9z.b| +00000080 d2 3e f4 12 eb ab da 7b 1f e6 94 b5 a1 b0 40 5c |.>.....{......@\| +00000090 e3 66 a3 7b 40 53 ce 74 10 77 d7 17 9f d0 b3 b2 |.f.{@S.t.w......| +000000a0 a2 97 fd 42 08 5f af 79 a3 c0 c0 98 fa 71 58 8b |...B._.y.....qX.| +000000b0 a5 81 50 8a fc 51 d5 82 19 fb a7 6f 9f b3 6a 96 |..P..Q.....o..j.| +000000c0 c3 d4 90 88 88 c2 96 df 70 ec 60 ca 71 9c 53 ef |........p.`.q.S.| +000000d0 fc a1 92 11 c9 a3 f8 b7 bc a2 6b f5 c5 dc dd b8 |..........k.....| +000000e0 cb 7b 1b af 60 0f 16 8f a8 d4 85 34 76 3c 35 17 |.{..`......4v<5.| +000000f0 03 03 00 ea 7a 0f ef f0 87 83 1d 23 30 ed 14 d4 |....z......#0...| +00000100 dc 97 19 38 71 e2 94 b1 54 e5 86 61 20 21 cd 57 |...8q...T..a !.W| +00000110 29 e6 b3 01 8a 69 7f 06 f2 a0 3e 87 38 3c 7c 9d |)....i....>.8<|.| +00000120 d5 83 e3 58 26 0d 16 13 b8 af 13 a9 c3 21 27 ae |...X&........!'.| +00000130 32 df fb 3d fa 2c cd 7c 4e af d3 e0 32 29 7e f3 |2..=.,.|N...2)~.| +00000140 b5 d2 56 58 bc 83 e2 c7 cd cc e7 e7 8d ff b1 70 |..VX...........p| +00000150 c6 c6 51 ac 6a 12 de 28 4c 99 73 6d 38 4f 74 76 |..Q.j..(L.sm8Otv| +00000160 ae 48 c8 ec a3 65 9c 3a c3 b5 6d 47 1c 0f 5d 63 |.H...e.:..mG..]c| +00000170 8c bb 85 61 51 89 f3 3c 9d 65 03 58 06 13 b2 d7 |...aQ..<.e.X....| +00000180 d8 13 53 d1 11 7a cf 10 c9 8d b1 70 ac 20 7e af |..S..z.....p. ~.| +00000190 f5 fc cc a4 ab 91 a8 dd 2a db d6 e2 44 73 c5 57 |........*...Ds.W| +000001a0 b8 ad 32 d4 98 ee 65 90 ee b7 c6 bf 78 b1 06 59 |..2...e.....x..Y| +000001b0 b8 74 c9 54 e0 fc 79 92 bd ff 6f 42 c5 39 13 b3 |.t.T..y...oB.9..| +000001c0 20 f7 e5 28 27 0e 22 4e b5 38 81 46 14 f6 d3 a8 | ..('."N.8.F....| +000001d0 f8 32 ca 3f da 1c d3 44 8f 21 da 5c f4 ad |.2.?...D.!.\..| +>>> Flow 5 (client to server) +00000000 17 03 03 00 13 6b f9 43 f6 f1 44 ba cc 47 cf 09 |.....k.C..D..G..| +00000010 4d 94 dd 31 1e 65 ce 32 |M..1.e.2| diff --git a/testdata/Client-TLSv13-ECDSA b/testdata/Client-TLSv13-ECDSA index 2d37066..55b8cc5 100644 --- a/testdata/Client-TLSv13-ECDSA +++ b/testdata/Client-TLSv13-ECDSA @@ -16,70 +16,101 @@ 000000e0 a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 ff f6 |.G.bC.(.._.).0..| 000000f0 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 |........_X.;t| >>> Flow 2 (server to client) -00000000 16 03 03 00 7a 02 00 00 76 03 03 ea 51 d2 17 98 |....z...v...Q...| -00000010 38 87 56 24 96 d8 d2 5b 19 30 72 26 67 8b 3c 00 |8.V$...[.0r&g.<.| -00000020 88 61 ca f2 2f 46 d2 06 72 75 58 20 00 00 00 00 |.a../F..ruX ....| +00000000 16 03 03 00 7a 02 00 00 76 03 03 48 a3 75 25 ac |....z...v..H.u%.| +00000010 19 49 b6 e7 5a 9a c2 15 3e e3 a6 21 c0 f5 09 40 |.I..Z...>..!...@| +00000020 b7 ad fc 0c 39 1b 3c 44 36 13 9e 20 00 00 00 00 |....9.W. .J{J..G.2ci| -000000a0 2f 17 03 03 02 22 3d 8b c2 4f 07 ac cc e2 64 53 |/...."=..O....dS| -000000b0 8c 1f 79 c7 f0 00 6e 99 27 e4 1b a1 9b df b4 89 |..y...n.'.......| -000000c0 e5 31 a0 b9 5f 86 4a 87 2c d1 41 96 d6 e1 9d 7f |.1.._.J.,.A.....| -000000d0 07 50 84 86 ae dd f7 46 53 4e 60 2d 6a 7b 99 3a |.P.....FSN`-j{.:| -000000e0 af 8c 8c fb ee 66 f6 3d f2 87 56 ed cb 8f 99 3f |.....f.=..V....?| -000000f0 a0 1c bf c4 60 09 b3 01 4c 04 3f 10 c6 3e 36 9b |....`...L.?..>6.| -00000100 be e3 ee aa df df 58 78 c5 21 e4 98 0d 98 de 71 |......Xx.!.....q| -00000110 45 63 c3 b2 39 9e d2 c0 83 e6 b7 e0 6f b0 b0 04 |Ec..9.......o...| -00000120 fe c0 2f c4 32 98 82 6c ee f5 68 1c 21 e7 f2 2e |../.2..l..h.!...| -00000130 2f bf d1 17 21 ac da 03 d1 42 c3 85 78 c7 4f d8 |/...!....B..x.O.| -00000140 cf ca 1e 3f e1 ac a3 06 de 29 21 86 ee bb cc b0 |...?.....)!.....| -00000150 68 4a c5 65 a8 7f 90 8f 48 a1 df 24 57 36 6b da |hJ.e....H..$W6k.| -00000160 64 cb 52 56 76 9a 47 86 d1 8e ed d7 c0 85 9c 74 |d.RVv.G........t| -00000170 89 05 01 43 0b 69 dc 4a ed 61 eb 55 bf e5 3a a4 |...C.i.J.a.U..:.| -00000180 b9 39 6b 3b 71 cf 33 83 b1 54 59 71 b2 24 a0 1f |.9k;q.3..TYq.$..| -00000190 70 fe 58 ff 90 88 d9 91 55 d6 a5 ef 3d c9 0d 3b |p.X.....U...=..;| -000001a0 a0 57 de d4 c4 82 50 bd ff 9d 85 b9 90 10 df 92 |.W....P.........| -000001b0 5b 41 ec c2 41 2a 1d b6 d7 e1 51 08 92 a3 ef 98 |[A..A*....Q.....| -000001c0 4d 79 d8 37 11 df a1 3f 43 ed 0d 20 44 ca f2 94 |My.7...?C.. D...| -000001d0 ff e2 5e 05 b7 9c 4d b7 70 83 73 b1 d9 5a ed 7e |..^...M.p.s..Z.~| -000001e0 3a c6 08 3a 49 1d 4f 08 30 02 8f d8 3f cb 14 a3 |:..:I.O.0...?...| -000001f0 d5 74 7e 85 e8 f6 ab 6a 61 54 84 79 21 2a aa f4 |.t~....jaT.y!*..| -00000200 3d b3 42 df b7 d6 6f e8 29 50 cc f8 18 a9 f0 99 |=.B...o.)P......| -00000210 6b 44 c3 37 ef 3d 20 0b 28 10 b3 f9 ea f2 65 df |kD.7.= .(.....e.| -00000220 ae c6 28 24 c5 ea e1 bc ba 79 ad 02 c3 fc b2 cb |..($.....y......| -00000230 8a f3 70 80 5a d0 4b 2c 78 43 2a 18 71 2c 0c c0 |..p.Z.K,xC*.q,..| -00000240 45 f5 1b 47 1d f6 fb 75 53 ed d7 a0 e4 c4 2a 48 |E..G...uS.....*H| -00000250 e4 e8 37 33 fe d1 f0 96 dc 27 bb 40 41 b6 e6 9e |..73.....'.@A...| -00000260 18 bb 2d 5b b1 05 7c 5b 94 ef f6 af f4 64 b2 e8 |..-[..|[.....d..| -00000270 08 4c 1b 01 11 de 53 b5 f1 15 ff 6f 8a 08 ef cb |.L....S....o....| -00000280 74 d1 81 a6 c0 b5 ac 41 ec 30 5e f0 dc ec b1 70 |t......A.0^....p| -00000290 5f 53 e9 56 dd 48 05 4f 0c f0 7d a7 13 2a 33 d6 |_S.V.H.O..}..*3.| -000002a0 2b 4b 22 7f a9 b5 cf 1f 63 f4 c2 6c ee 0c 10 d0 |+K".....c..l....| -000002b0 96 06 2f aa 2b df 69 01 ee 3c b4 e9 f3 9d 7b 8b |../.+.i..<....{.| -000002c0 5f ff b3 a1 3a 03 df c6 17 03 03 00 a4 da 63 32 |_...:.........c2| -000002d0 c2 d8 9b 78 bc fa 59 d8 5a 4c 8c f1 f6 e0 26 39 |...x..Y.ZL....&9| -000002e0 fd 27 c7 0c 11 ad 3e 34 2e 0c 3c aa 83 a8 96 d9 |.'....>4..<.....| -000002f0 0c be 5d a7 8a 79 f9 08 67 8f 74 82 88 a1 0f f0 |..]..y..g.t.....| -00000300 1b 52 c3 7a 89 25 14 72 3b 0b 4c 82 e5 9c df ac |.R.z.%.r;.L.....| -00000310 e3 49 b1 ef 35 c0 df 6c 0e 5e b4 48 38 d1 d7 73 |.I..5..l.^.H8..s| -00000320 01 30 04 b4 67 37 32 92 79 9c 45 52 06 bd 25 af |.0..g72.y.ER..%.| -00000330 5a 0f 8d 98 4f c6 12 31 78 90 32 78 8c a4 49 a0 |Z...O..1x.2x..I.| -00000340 6e fb 2b 94 31 0d 05 a8 96 05 04 3b f5 80 a7 3c |n.+.1......;...<| -00000350 92 c9 ee ea c6 cb 24 a2 e2 c9 88 3e 09 50 8c 75 |......$....>.P.u| -00000360 d5 95 10 8f b0 f9 5b ec b5 d7 be aa 3c b0 e9 d0 |......[.....<...| -00000370 67 17 03 03 00 35 da 1d 4c 65 79 5b 84 e9 60 3e |g....5..Ley[..`>| -00000380 ac de 29 ad 8d 7e a1 9b ad 25 35 08 39 f1 75 6f |..)..~...%5.9.uo| -00000390 6b 11 66 fc 66 ff c7 88 7a fc d5 a6 24 c3 fc 7f |k.f.f...z...$...| -000003a0 6a aa 94 36 56 cd 75 66 1f 0b 7c |j..6V.uf..|| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 20 |..+.....3.$... | +00000060 db 3f 51 79 d2 24 e1 e1 a4 b6 f8 84 2d 25 27 ca |.?Qy.$......-%'.| +00000070 9a d2 5e cc 28 ac 5e 74 2a ea 1b 56 28 24 76 14 |..^.(.^t*..V($v.| +00000080 03 03 00 01 01 17 03 03 00 17 bc dd d4 00 24 28 |..............$(| +00000090 82 e2 0a 74 8f a6 06 9b 14 2d ca c1 90 6c 1c 8f |...t.....-...l..| +000000a0 7f 17 03 03 02 22 f9 8f 72 d6 f1 34 fa 90 0e 42 |....."..r..4...B| +000000b0 2d 2e a0 1d 9e 1f ce ee 79 af b6 b3 bd c2 6b 8f |-.......y.....k.| +000000c0 62 4c 5d 1c 1e 47 a7 77 97 ca 04 c5 16 f8 58 3a |bL]..G.w......X:| +000000d0 b7 33 15 bc 5f f0 13 7f 02 4d f2 80 95 84 6f 41 |.3.._....M....oA| +000000e0 df 03 c8 64 23 91 e5 8c e9 01 45 fe 8e 37 27 e0 |...d#.....E..7'.| +000000f0 47 83 43 a2 0f ef 3d eb 11 fb ba 52 2f 8e 43 97 |G.C...=....R/.C.| +00000100 1b fe 49 28 e7 ce 73 c4 3e 9d 18 9d 34 a4 b4 5e |..I(..s.>...4..^| +00000110 ee ec bf e3 75 fc 00 be b7 0e 80 f8 a2 db 90 a9 |....u...........| +00000120 62 74 35 c6 8e 36 55 68 4e 6c 94 b6 61 d7 d0 34 |bt5..6UhNl..a..4| +00000130 e8 83 ae c3 75 2d eb 35 95 d3 5f 28 3e 05 f3 ea |....u-.5.._(>...| +00000140 18 76 6b 6d b9 98 c0 d5 ea 6d 62 9b 15 d8 be 55 |.vkm.....mb....U| +00000150 8c f5 5a 3d 14 81 82 cc 8c 6c 34 2f e8 50 87 ef |..Z=.....l4/.P..| +00000160 c6 fe 92 39 e0 f4 6d ca d1 97 c9 df 81 6d dc 3f |...9..m......m.?| +00000170 6f 60 58 30 e1 c7 87 d0 fb 40 f6 ce 44 96 e9 19 |o`X0.....@..D...| +00000180 21 d3 3a 56 fd c1 60 22 96 f7 d9 07 30 15 40 f9 |!.:V..`"....0.@.| +00000190 b3 0c 9c cf f7 38 94 43 41 8a 76 92 4a 71 55 22 |.....8.CA.v.JqU"| +000001a0 8d ce 03 ed 97 98 54 0e 94 8c b7 a4 ee ce d6 60 |......T........`| +000001b0 5d a2 4e 9f ff e6 90 23 69 b1 a2 0e c5 e7 5b 58 |].N....#i.....[X| +000001c0 7b d1 13 ba f2 d3 ff 6a 48 ff 77 2d 61 05 4b 15 |{......jH.w-a.K.| +000001d0 cc 6f 52 4a 69 1c e2 38 b3 2a 96 ff 10 bb 55 02 |.oRJi..8.*....U.| +000001e0 50 e9 f2 09 92 66 cc 43 ea f4 4e ad aa 18 fc 9b |P....f.C..N.....| +000001f0 05 52 3b f1 44 3b 6e 25 47 cd 20 4d 69 86 8b 64 |.R;.D;n%G. Mi..d| +00000200 61 31 0a 03 92 0e 21 9d 67 d5 af 00 de 88 a4 f5 |a1....!.g.......| +00000210 3d 3e 45 0f f4 02 15 ae bf 45 76 80 0d 8d 7a 04 |=>E......Ev...z.| +00000220 58 d7 e5 5a 81 41 a9 04 7e aa 67 af 27 92 cf 51 |X..Z.A..~.g.'..Q| +00000230 13 c4 e6 84 2e 28 dc 53 c8 73 11 f9 f7 d9 28 ac |.....(.S.s....(.| +00000240 a6 00 af cb 38 bc f2 b7 1c 6d e8 21 f0 6e e5 35 |....8....m.!.n.5| +00000250 12 c0 a9 57 2f 87 39 bc a6 7a ab ab 04 02 48 e8 |...W/.9..z....H.| +00000260 13 a3 20 a4 c9 09 64 b2 2a 66 39 91 d7 3a 7a 41 |.. ...d.*f9..:zA| +00000270 1c a4 15 4e 84 d3 72 66 31 3a ba 7a b8 18 ee 0c |...N..rf1:.z....| +00000280 e2 17 1a 8f f7 af 38 49 e3 4d d7 ed be 7a 1e bd |......8I.M...z..| +00000290 ae 70 c1 fc 6a 09 05 29 bb fc 78 5b 8f a4 f7 81 |.p..j..)..x[....| +000002a0 34 fd ad 9b 22 87 67 15 0f ee d4 99 90 e7 af 4b |4...".g........K| +000002b0 14 bd af f3 ab 04 e0 d1 58 f5 34 b2 e1 ee 65 92 |........X.4...e.| +000002c0 80 05 68 c3 b2 6a bc 6d 17 03 03 00 a4 f4 d6 df |..h..j.m........| +000002d0 b6 61 6a c2 6c a6 25 f9 b2 95 8f 73 10 05 e2 63 |.aj.l.%....s...c| +000002e0 37 22 63 bd 50 af 18 0c 71 17 61 40 c9 a1 b1 6d |7"c.P...q.a@...m| +000002f0 d7 a6 2f c6 c2 46 9d 40 06 e3 30 04 e1 d9 97 c1 |../..F.@..0.....| +00000300 a8 6c ce 97 47 4e 9e 54 bc 8e 2c 77 e8 21 c3 0b |.l..GN.T..,w.!..| +00000310 8f 51 0c c2 8f 0d 64 b9 79 26 c0 33 07 e0 df 08 |.Q....d.y&.3....| +00000320 50 98 26 b1 2b 69 6a 5d b4 9c b7 4e 20 97 cc d9 |P.&.+ij]...N ...| +00000330 43 94 9f 4d 2b d1 72 24 a7 a8 3e 7d 9e 84 7a 98 |C..M+.r$..>}..z.| +00000340 23 64 7b b9 17 15 d6 27 80 6c 60 2d 38 c7 4d cd |#d{....'.l`-8.M.| +00000350 9a 87 d6 ab 31 8d 59 62 58 b4 11 f4 2e d5 81 10 |....1.YbX.......| +00000360 87 e5 58 3e 37 99 37 af 68 6f 11 cc 0b a2 f1 d1 |..X>7.7.ho......| +00000370 b0 17 03 03 00 35 be f6 19 d0 66 ec cd 14 d5 28 |.....5....f....(| +00000380 b8 bf 0d f4 37 5d 55 3d 2e 2c 1e 0c 62 0a 49 3e |....7]U=.,..b.I>| +00000390 df cf c2 dc 2c 27 df 54 64 67 8d 33 8b f0 b1 50 |....,'.Tdg.3...P| +000003a0 c5 dd fc 47 5c e7 58 5b 74 57 4b |...G\.X[tWK| >>> Flow 3 (client to server) -00000000 17 03 03 00 35 50 19 ff 67 64 b8 80 c8 ed 81 0c |....5P..gd......| -00000010 00 ab e0 d6 d4 3b 74 0f 89 a6 23 f3 0b 84 e3 a9 |.....;t...#.....| -00000020 73 67 14 03 ba b4 42 69 0a dc dc 99 d6 be 9b 61 |sg....Bi.......a| -00000030 96 21 57 1e 54 ca dc 1b df e7 17 03 03 00 17 ef |.!W.T...........| -00000040 42 23 91 2c b5 5d 1f 2c 1f db 5e d1 24 be 79 7a |B#.,.].,..^.$.yz| -00000050 9f 1a 2f 0c 71 4c 17 03 03 00 13 ad 90 35 ea 7f |../.qL.......5..| -00000060 3b 23 ca da 36 fd 02 97 d6 cd d2 84 c6 57 |;#..6........W| +00000000 14 03 03 00 01 01 17 03 03 00 35 2d 01 39 11 82 |..........5-.9..| +00000010 67 c7 e5 db 3f dd 18 c3 0b 0a 25 8a 24 2e e1 f4 |g...?.....%.$...| +00000020 5e a2 0f 8a 1c 70 83 26 d0 5d b1 8d cf c6 69 a9 |^....p.&.]....i.| +00000030 38 8c 14 22 74 4a 85 fe f5 86 e6 c2 07 44 bf 87 |8.."tJ.......D..| +00000040 17 03 03 00 17 a8 2f 45 46 d9 59 7e 5f 4c 9e 46 |....../EF.Y~_L.F| +00000050 09 e4 38 e1 e3 e3 5e ab 62 14 eb 2f |..8...^.b../| +>>> Flow 4 (server to client) +00000000 17 03 03 00 da 41 7f 38 18 5c d5 fc c7 ba 60 66 |.....A.8.\....`f| +00000010 d6 92 60 81 83 bc f3 35 ff 00 ef 4b 99 48 de 1c |..`....5...K.H..| +00000020 aa 1c f8 80 6d 59 48 30 83 03 ad fd e3 15 23 16 |....mYH0......#.| +00000030 aa c8 d7 71 58 df 65 fc 8c d3 77 56 f4 19 f2 5e |...qX.e...wV...^| +00000040 c2 d5 15 1b b7 9a 46 68 81 68 c6 2b be 81 f2 f5 |......Fh.h.+....| +00000050 5a 71 81 55 10 0f 09 9a 9a 9e c4 be 28 db fa 50 |Zq.U........(..P| +00000060 f6 fa 88 5b c6 63 35 77 8c d0 1b 4a 50 b8 42 6d |...[.c5w...JP.Bm| +00000070 5d f5 b7 5a 5e 73 0f 12 ba 86 92 44 23 bc 70 e1 |]..Z^s.....D#.p.| +00000080 3d f4 1b 20 87 e6 c2 89 43 2a 76 7f e3 8f 2c db |=.. ....C*v...,.| +00000090 86 31 4a 38 5b 5e 44 3e 6c 72 be 13 a5 77 d2 90 |.1J8[^D>lr...w..| +000000a0 95 80 35 c6 c9 1b 0e ea b8 0a 18 65 78 23 e4 0e |..5........ex#..| +000000b0 bc 67 86 5b 6a 77 32 66 f3 38 89 01 86 d3 c2 3e |.g.[jw2f.8.....>| +000000c0 93 70 57 11 07 1a be 26 3c 69 f8 8b 3b c3 4a 1c |.pW....&>> Flow 5 (client to server) +00000000 17 03 03 00 13 d2 5d 20 07 4c 51 50 40 86 e8 36 |......] .LQP@..6| +00000010 59 ba c4 f6 13 ab 29 1f |Y.....).| diff --git a/testdata/Client-TLSv13-ExportKeyingMaterial b/testdata/Client-TLSv13-ExportKeyingMaterial index 5778ef7..2045af7 100644 --- a/testdata/Client-TLSv13-ExportKeyingMaterial +++ b/testdata/Client-TLSv13-ExportKeyingMaterial @@ -16,74 +16,107 @@ 000000e0 a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 ff f6 |.G.bC.(.._.).0..| 000000f0 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 |........_X.;t| >>> Flow 2 (server to client) -00000000 16 03 03 00 7a 02 00 00 76 03 03 a6 29 2f 1c 88 |....z...v...)/..| -00000010 12 96 7a 88 1c dc f7 ca dc 1e 6e e2 a7 09 65 01 |..z.......n...e.| -00000020 28 3a c1 58 01 6a ed 8d 18 fe b7 20 00 00 00 00 |(:.X.j..... ....| +00000000 16 03 03 00 7a 02 00 00 76 03 03 da 33 a6 d1 76 |....z...v...3..v| +00000010 5f 72 df d4 59 9b 94 e8 e3 04 a6 c3 f0 58 4d 44 |_r..Y........XMD| +00000020 08 e8 1e 41 c0 25 4c 0c de c0 36 20 00 00 00 00 |...A.%L...6 ....| 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 13 01 00 00 |................| -00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 ab |..+.....3.$... .| -00000060 5a f1 b4 52 1d 1c 87 fb b3 9e f2 f9 ee d1 f1 ff |Z..R............| -00000070 66 3e 01 70 41 6f 01 45 4a d0 3a 98 d3 e4 50 14 |f>.pAo.EJ.:...P.| -00000080 03 03 00 01 01 17 03 03 00 17 38 75 a9 bf e3 61 |..........8u...a| -00000090 2f 8a 58 1d 28 6b b5 25 83 c9 d8 86 31 38 ee 6d |/.X.(k.%....18.m| -000000a0 c1 17 03 03 02 6d cb 78 87 73 70 3d c4 e4 de d9 |.....m.x.sp=....| -000000b0 2d 22 f0 cf 35 9e c1 0a ac 97 88 75 20 8f 63 b1 |-"..5......u .c.| -000000c0 2f c0 c9 4d 86 7f d6 6b 3a 2e b6 c1 e3 d4 73 f4 |/..M...k:.....s.| -000000d0 f7 2b 4f 86 6f f0 fd ed 2a dd 17 98 5e e6 32 e9 |.+O.o...*...^.2.| -000000e0 48 5e 48 36 e0 f8 d3 a4 93 54 7b 17 c5 46 ea d5 |H^H6.....T{..F..| -000000f0 6b 0f 5b bd 1d 3c 15 b1 c2 3f 2f 91 e5 d3 dd 75 |k.[..<...?/....u| -00000100 c5 c7 73 f7 ce a2 6e e1 bc 10 2a b7 0f 5e 7d cc |..s...n...*..^}.| -00000110 3e 22 3c 71 37 3f ba f0 44 3b 55 c8 5c a7 19 f2 |>"...| -00000160 28 a4 ac 75 1b 3b 7f 85 cb 2c 9c 64 09 38 75 59 |(..u.;...,.d.8uY| -00000170 33 0e 7f fe 93 0f 8a 67 5f 5e 86 c4 74 40 7f 0b |3......g_^..t@..| -00000180 f8 82 03 9c 8d 37 39 12 a9 20 cb 31 c5 40 f6 23 |.....79.. .1.@.#| -00000190 78 71 20 e3 8a a8 81 ab 6c 98 43 67 f8 2b a9 6f |xq .....l.Cg.+.o| -000001a0 41 2a 80 7f 1c 11 6d ae ea cf d9 6a 3c 11 74 72 |A*....m....j<.tr| -000001b0 86 e4 ab ee 1a f2 58 ce e2 8f d6 4e 06 57 e9 33 |......X....N.W.3| -000001c0 e9 ef 5a af 19 5c eb 9a a4 df ed 9f d3 55 00 d9 |..Z..\.......U..| -000001d0 2c 09 3f c5 58 4f 08 22 2e 9c 63 9b 53 92 07 83 |,.?.XO."..c.S...| -000001e0 b7 96 82 de 46 5b 35 b8 ff d2 52 96 66 2a ce ed |....F[5...R.f*..| -000001f0 93 b1 6a be ab 91 6b 1f b1 bc 35 1f 11 6a 48 a6 |..j...k...5..jH.| -00000200 20 63 62 8f e4 e4 07 4b be 79 37 d6 98 00 64 9e | cb....K.y7...d.| -00000210 17 f4 48 65 71 21 0c 79 30 32 a1 eb f5 9a be 5a |..Heq!.y02.....Z| -00000220 8d 7b 17 dd af c4 06 78 3b 0d a9 4a d8 f1 a8 6d |.{.....x;..J...m| -00000230 3d cf 52 a6 34 9d 3a 1c ee ff 83 7a d1 23 47 f1 |=.R.4.:....z.#G.| -00000240 65 9d 57 61 66 d9 66 bd e7 63 ca b9 22 07 36 0b |e.Waf.f..c..".6.| -00000250 5b 9a 20 59 19 25 49 54 a0 3b bf 28 24 5c 58 76 |[. Y.%IT.;.($\Xv| -00000260 1a a9 68 e9 90 dd 6a 66 d8 f3 d3 60 e4 3d af 3a |..h...jf...`.=.:| -00000270 49 d1 0e b8 39 a2 b6 e3 15 6e c0 ff 0d 57 48 05 |I...9....n...WH.| -00000280 c1 44 01 59 fa 9b f7 90 bc 7b 05 c4 f0 1f e8 9f |.D.Y.....{......| -00000290 02 c5 2a 89 7d 1e c4 75 bc b9 af d2 17 89 79 9d |..*.}..u......y.| -000002a0 3c aa 55 db 24 e7 35 08 a0 6d 88 79 61 af 01 82 |<.U.$.5..m.ya...| -000002b0 82 b7 4a f0 d4 89 38 6a fc 82 97 5e 77 09 87 45 |..J...8j...^w..E| -000002c0 5e 2f 21 8c 39 4e 98 76 76 ab 16 25 8e f0 d2 5c |^/!.9N.vv..%...\| -000002d0 a6 ad bd 18 f3 78 f4 2a b2 ac 36 67 2b 67 6a 43 |.....x.*..6g+gjC| -000002e0 95 d6 63 f8 b5 9f 7d 84 26 83 83 3c d3 7a 3b 52 |..c...}.&..<.z;R| -000002f0 68 de f0 d8 49 7f bc 56 b4 70 16 74 ee fa 5b 7b |h...I..V.p.t..[{| -00000300 36 50 6a 54 26 02 7a 3c ee 0b f9 2e a1 20 5c 44 |6PjT&.z<..... \D| -00000310 fd fe fc 17 03 03 00 99 69 60 73 ea a0 71 1a 5e |........i`s..q.^| -00000320 c4 ea 67 f7 b2 e0 34 7c cc 55 67 f3 87 43 c9 68 |..g...4|.Ug..C.h| -00000330 a6 02 84 1d 6c de 1d 90 4c 82 01 5c a5 16 39 97 |....l...L..\..9.| -00000340 67 45 7f fb 0e 43 24 4e ea c5 7b eb f5 bc 1f b6 |gE...C$N..{.....| -00000350 70 2e 95 e4 61 20 f0 8b 24 54 2e 43 9c f1 82 56 |p...a ..$T.C...V| -00000360 9c ca 28 96 64 57 85 a4 e1 d0 f4 be ea b4 7b a2 |..(.dW........{.| -00000370 23 aa 4f c6 06 9c e7 81 eb 4b 62 93 af 93 1c cf |#.O......Kb.....| -00000380 2b fd 5f bd a7 07 e9 c3 c8 97 c1 e4 df f4 74 06 |+._...........t.| -00000390 62 01 32 0c ec a2 40 86 c1 7e da e9 1e 7e 46 67 |b.2...@..~...~Fg| -000003a0 8a c6 ef b5 ce ac 3e 44 fa b0 ff b6 c4 20 aa 65 |......>D..... .e| -000003b0 fb 17 03 03 00 35 c1 a6 e0 e5 bf 91 7a ec 17 85 |.....5......z...| -000003c0 38 1e 32 1e 92 4e 9c 38 8c 02 1b 08 03 0e a3 a2 |8.2..N.8........| -000003d0 8f 2b 73 76 c1 99 48 de e7 39 cf a8 97 e4 30 e6 |.+sv..H..9....0.| -000003e0 75 52 3a f4 6f bf 67 bd 87 c5 30 |uR:.o.g...0| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 44 |..+.....3.$... D| +00000060 7f a7 d1 f1 38 fa c2 00 dd 48 44 20 b9 32 0b 16 |....8....HD .2..| +00000070 d4 a6 72 da cb c9 23 52 c9 fb b9 b5 2d a0 62 14 |..r...#R....-.b.| +00000080 03 03 00 01 01 17 03 03 00 17 d5 8b b4 47 9e 59 |.............G.Y| +00000090 ff 8b 7e bd 0b 61 97 62 14 78 56 85 a4 45 37 0a |..~..a.b.xV..E7.| +000000a0 fa 17 03 03 02 6d 2d e1 4d 15 4f 8b 0a 55 f4 ed |.....m-.M.O..U..| +000000b0 eb a8 ba e3 ba 65 b2 94 ed ca 94 18 cb e9 31 86 |.....e........1.| +000000c0 38 0a 61 78 e6 19 38 28 7c e6 8e a3 d2 01 4f 16 |8.ax..8(|.....O.| +000000d0 90 ce a9 db 64 e8 ec a1 97 01 04 4a ce dd f2 0f |....d......J....| +000000e0 f8 1c 25 4d 28 d5 07 33 f9 fd c4 f3 f9 26 15 2f |..%M(..3.....&./| +000000f0 66 ef f0 82 49 1b 3d a0 99 ee 27 61 d3 0f 9c d5 |f...I.=...'a....| +00000100 85 3b 49 54 5d 58 7b 0c e2 97 e5 ac b1 10 d5 73 |.;IT]X{........s| +00000110 f8 18 57 2d 7a e2 15 7f a0 e2 07 c1 7a 16 d0 05 |..W-z.......z...| +00000120 df 2e 29 fc c4 59 2a 7c 63 2e 7e e2 b8 75 92 35 |..)..Y*|c.~..u.5| +00000130 f6 92 e4 1e e4 43 dc 25 64 e0 32 9f fe 0a 76 d7 |.....C.%d.2...v.| +00000140 ee 08 f0 e3 e9 02 bc 93 d8 db d2 11 28 df b1 05 |............(...| +00000150 fa fe 70 ef 73 e7 ca f1 a1 e1 95 a1 c6 05 30 0c |..p.s.........0.| +00000160 23 5c 5f d0 77 f0 7e 85 cc 2d 0b 88 41 7a 95 11 |#\_.w.~..-..Az..| +00000170 6b 87 df 6e 5b 4a e4 7a 7a bf 42 f6 d1 fa 8e e5 |k..n[J.zz.B.....| +00000180 96 5f 3b 2e 02 ba c9 f8 40 77 9c ed 81 82 29 2b |._;.....@w....)+| +00000190 8f 97 5e 97 de ff 5f 30 c1 06 66 c7 b4 33 b9 eb |..^..._0..f..3..| +000001a0 ca ee ff 42 db 8e 9c 18 0c 19 0a a4 d0 b7 e2 74 |...B...........t| +000001b0 be d1 6f 79 ea a0 32 44 50 16 86 41 2d d8 4f 5c |..oy..2DP..A-.O\| +000001c0 c1 16 b2 6c a6 5a 49 e9 a1 ff 79 9c b1 23 41 eb |...l.ZI...y..#A.| +000001d0 35 1a a8 f2 21 ff f5 54 a2 92 26 61 f6 53 2c e8 |5...!..T..&a.S,.| +000001e0 c9 4d 1e 42 2b bd de c0 78 f5 9f d0 b4 1e 30 e9 |.M.B+...x.....0.| +000001f0 0a e0 71 50 f6 72 c2 15 1f 93 72 15 c9 3e bc ab |..qP.r....r..>..| +00000200 96 04 e3 5c 4a ee 6f 64 87 b1 ec d4 ca 76 ab 4e |...\J.od.....v.N| +00000210 cf 6e 32 7a 39 15 66 3e e0 67 10 9c 3c 59 d1 31 |.n2z9.f>.g..>> Flow 3 (client to server) -00000000 17 03 03 00 35 be 06 09 fb e0 58 83 8e 27 5a c0 |....5.....X..'Z.| -00000010 8a 4c 56 ad 79 29 90 99 47 21 2f d4 f4 98 81 a8 |.LV.y)..G!/.....| -00000020 e8 55 d6 bd 26 b1 a9 48 34 ff 40 66 7e 2e 83 ea |.U..&..H4.@f~...| -00000030 ed fe a0 01 73 0b 91 1f c0 1d 17 03 03 00 17 ee |....s...........| -00000040 58 ac 2a e7 26 72 e3 c7 81 2c 02 0f 57 39 56 4f |X.*.&r...,..W9VO| -00000050 43 7a 2d a7 f4 d8 17 03 03 00 13 94 2c 15 0b 04 |Cz-.........,...| -00000060 7a aa 78 3b a6 b8 23 f1 75 b4 b5 2e e7 94 |z.x;..#.u.....| +00000000 14 03 03 00 01 01 17 03 03 00 35 c3 68 6c 59 46 |..........5.hlYF| +00000010 70 ff b5 04 41 bd c5 66 a4 da cd df 04 f8 7e f9 |p...A..f......~.| +00000020 a2 7b 0d f2 e6 cc 0c 30 df a9 66 4d 09 09 dc bf |.{.....0..fM....| +00000030 f4 5c 5e 30 5a 6d 2f bc 48 33 21 2b cb 6a ce f7 |.\^0Zm/.H3!+.j..| +00000040 17 03 03 00 17 9a d0 31 9a c5 c4 4b 59 e3 a4 74 |.......1...KY..t| +00000050 c5 d1 c5 09 a0 5e 08 48 fd 49 df 61 |.....^.H.I.a| +>>> Flow 4 (server to client) +00000000 17 03 03 00 ea c7 4f b3 d0 32 fa 3d 4e e8 58 ea |......O..2.=N.X.| +00000010 d1 8c 9a ed 6d bc 41 ae 22 58 d2 cb 9b 16 4f 45 |....m.A."X....OE| +00000020 91 86 8d 9f 9f 50 be 4d f7 11 c9 ea 20 57 29 f8 |.....P.M.... W).| +00000030 f3 78 8e e3 99 a1 8d 53 52 f0 1d 0a ef 64 cf 19 |.x.....SR....d..| +00000040 9f 6f b7 c3 11 27 07 d6 1a 61 39 75 26 9b 41 a1 |.o...'...a9u&.A.| +00000050 4d a2 a2 cd 59 c5 35 f3 58 ff 52 60 ba 04 54 3c |M...Y.5.X.R`..T<| +00000060 1b 2d 55 81 76 c9 59 af b8 5e 46 4d 09 58 6c 55 |.-U.v.Y..^FM.XlU| +00000070 66 1e d2 f5 7c bb 5e b0 e5 91 19 b0 be 32 04 46 |f...|.^......2.F| +00000080 20 10 f2 75 55 5e 30 96 9d da 37 07 dc df 1d 6f | ..uU^0...7....o| +00000090 c3 f1 d5 b6 db 85 d9 04 d4 13 5b ba 83 20 17 ae |..........[.. ..| +000000a0 68 05 71 d5 72 46 ba 23 ad ab 76 60 68 6a d7 12 |h.q.rF.#..v`hj..| +000000b0 91 55 07 bb b4 2b 40 9f d1 75 6c 36 28 89 89 3d |.U...+@..ul6(..=| +000000c0 9a 73 25 7a 7e 49 56 4c 92 32 74 ad 49 52 a1 09 |.s%z~IVL.2t.IR..| +000000d0 3f 02 62 fe a5 de 80 8c 93 01 de bd 59 5b 95 01 |?.b.........Y[..| +000000e0 f1 62 5f 22 f6 e3 e6 27 ed b7 4b 81 7f 13 13 17 |.b_"...'..K.....| +000000f0 03 03 00 ea 24 b0 f9 84 63 59 2b 30 09 4d 6e 44 |....$...cY+0.MnD| +00000100 13 db 38 db 42 9f 20 7f df f0 73 12 76 0d a5 57 |..8.B. ...s.v..W| +00000110 0c 36 21 7d f6 26 98 66 67 4f 07 8d b0 25 6b 7b |.6!}.&.fgO...%k{| +00000120 7c d7 c0 3d b0 33 8b 87 15 e6 23 6f b5 5a 77 98 ||..=.3....#o.Zw.| +00000130 d8 a7 d2 94 84 2a 7e 05 b2 ba 95 87 1d f5 44 54 |.....*~.......DT| +00000140 33 32 9f 8e df ff 91 77 21 fe db 6e f6 bd 9f 2b |32.....w!..n...+| +00000150 63 43 a9 c4 94 e8 b7 22 ed 6f 03 42 12 95 17 fb |cC.....".o.B....| +00000160 7f 83 ca 8e dd 29 08 52 40 fe 2a aa f1 f2 29 b8 |.....).R@.*...).| +00000170 5e e4 8f b7 67 a5 71 4d 4b 79 cf 5d 5d f2 72 44 |^...g.qMKy.]].rD| +00000180 c2 3e a2 54 18 fc 58 33 d6 4c 2c bd d9 52 08 1f |.>.T..X3.L,..R..| +00000190 3e c3 58 bf 86 80 ad cc 8f 55 a1 b0 fb 96 e6 94 |>.X......U......| +000001a0 43 be a6 14 b0 10 d4 27 38 93 b6 de 1d e1 3e e8 |C......'8.....>.| +000001b0 8a 06 3c 65 49 5a fb 70 4b f7 01 eb 2a ff b0 e0 |..>> Flow 5 (client to server) +00000000 17 03 03 00 13 4b 79 39 94 f7 13 0c 77 5a 78 47 |.....Ky9....wZxG| +00000010 fe e6 e8 41 96 49 84 53 |...A.I.S| diff --git a/testdata/Client-TLSv13-HelloRetryRequest b/testdata/Client-TLSv13-HelloRetryRequest index 76961c6..8dac31a 100644 --- a/testdata/Client-TLSv13-HelloRetryRequest +++ b/testdata/Client-TLSv13-HelloRetryRequest @@ -24,95 +24,126 @@ 00000050 0c 00 2b 00 02 03 04 00 33 00 02 00 17 14 03 03 |..+.....3.......| 00000060 00 01 01 |...| >>> Flow 3 (client to server) -00000000 16 03 03 01 15 01 00 01 11 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 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 32 cc a8 |.............2..| -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 13 01 13 03 13 02 |................| -00000080 01 00 00 96 00 05 00 05 01 00 00 00 00 00 0a 00 |................| -00000090 06 00 04 00 1d 00 17 00 0b 00 02 01 00 00 0d 00 |................| -000000a0 18 00 16 08 04 08 05 08 06 04 01 04 03 05 01 05 |................| -000000b0 03 06 01 06 03 02 01 02 03 ff 01 00 01 00 00 12 |................| -000000c0 00 00 00 2b 00 09 08 03 04 03 03 03 02 03 01 00 |...+............| -000000d0 33 00 47 00 45 00 17 00 41 04 1e 18 37 ef 0d 19 |3.G.E...A...7...| -000000e0 51 88 35 75 71 b5 e5 54 5b 12 2e 8f 09 67 fd a7 |Q.5uq..T[....g..| -000000f0 24 20 3e b2 56 1c ce 97 28 5e f8 2b 2d 4f 9e f1 |$ >.V...(^.+-O..| -00000100 07 9f 6c 4b 5b 83 56 e2 32 42 e9 58 b6 d7 49 a6 |..lK[.V.2B.X..I.| -00000110 b5 68 1a 41 03 56 6b dc 5a 89 |.h.A.Vk.Z.| +00000000 14 03 03 00 01 01 16 03 03 01 15 01 00 01 11 03 |................| +00000010 03 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 00 00 00 |................| +00000030 00 20 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 00 00 00 |................| +00000050 00 00 00 32 cc a8 cc a9 c0 2f c0 2b c0 30 c0 2c |...2...../.+.0.,| +00000060 c0 27 c0 13 c0 23 c0 09 c0 14 c0 0a 00 9c 00 9d |.'...#..........| +00000070 00 3c 00 2f 00 35 c0 12 00 0a 00 05 c0 11 c0 07 |.<./.5..........| +00000080 13 01 13 03 13 02 01 00 00 96 00 05 00 05 01 00 |................| +00000090 00 00 00 00 0a 00 06 00 04 00 1d 00 17 00 0b 00 |................| +000000a0 02 01 00 00 0d 00 18 00 16 08 04 08 05 08 06 04 |................| +000000b0 01 04 03 05 01 05 03 06 01 06 03 02 01 02 03 ff |................| +000000c0 01 00 01 00 00 12 00 00 00 2b 00 09 08 03 04 03 |.........+......| +000000d0 03 03 02 03 01 00 33 00 47 00 45 00 17 00 41 04 |......3.G.E...A.| +000000e0 1e 18 37 ef 0d 19 51 88 35 75 71 b5 e5 54 5b 12 |..7...Q.5uq..T[.| +000000f0 2e 8f 09 67 fd a7 24 20 3e b2 56 1c ce 97 28 5e |...g..$ >.V...(^| +00000100 f8 2b 2d 4f 9e f1 07 9f 6c 4b 5b 83 56 e2 32 42 |.+-O....lK[.V.2B| +00000110 e9 58 b6 d7 49 a6 b5 68 1a 41 03 56 6b dc 5a 89 |.X..I..h.A.Vk.Z.| >>> Flow 4 (server to client) -00000000 16 03 03 00 9b 02 00 00 97 03 03 7b 87 0f 37 7b |...........{..7{| -00000010 8a c3 85 98 1c 19 61 a4 bd 12 06 b5 72 58 09 24 |......a.....rX.$| -00000020 c7 ab c0 12 f7 b7 b5 69 c2 05 46 20 00 00 00 00 |.......i..F ....| +00000000 16 03 03 00 9b 02 00 00 97 03 03 40 bb fc 8b c3 |...........@....| +00000010 21 f3 14 d1 8d 63 52 bd 36 eb 78 47 3c 6e 8e 11 |!....cR.6.xG.m...QAl......t| -00000160 ac 8c 12 df ba c6 bb e9 90 1c e9 ed e1 9c 28 d4 |..............(.| -00000170 50 89 88 09 06 61 2e 27 c6 60 26 86 91 f2 37 a2 |P....a.'.`&...7.| -00000180 83 67 ac c4 3f e7 6d 9c 30 de 74 a0 2e b9 0e 6b |.g..?.m.0.t....k| -00000190 de 4a 73 4d 67 9a ee 45 c7 5e bc d1 bb bb 01 67 |.JsMg..E.^.....g| -000001a0 cd b2 e6 c6 fa 3c e1 59 d9 e0 c9 85 5d 76 8d c8 |.....<.Y....]v..| -000001b0 ed 83 cd eb 88 51 d6 05 9f 0c 45 81 66 07 7c 2d |.....Q....E.f.|-| -000001c0 dd 6f 35 fd 76 d0 03 00 46 d9 f7 87 fe e4 8f bc |.o5.v...F.......| -000001d0 1b 69 6a 97 38 82 46 5e fe f6 a6 8a 0c 1a 6d 7f |.ij.8.F^......m.| -000001e0 4d b2 1b dd df 5c f3 43 21 cd 26 47 09 32 3a cc |M....\.C!.&G.2:.| -000001f0 b6 30 5a 1d 27 7a ad 6d da 2d 51 dc 67 84 09 8f |.0Z.'z.m.-Q.g...| -00000200 8f 86 2d 6f af 04 15 ce 90 53 4d 0d 32 a5 c4 c3 |..-o.....SM.2...| -00000210 41 94 0b 08 33 b9 2c 23 d3 d5 c2 42 f1 e4 d6 cf |A...3.,#...B....| -00000220 b2 cd 45 8e dd 9f 52 cb e5 dd ec aa 40 55 fd 94 |..E...R.....@U..| -00000230 99 cc 97 88 6d b0 71 80 4d 31 34 5e 92 a0 7d 1d |....m.q.M14^..}.| -00000240 1e fe 6e d6 47 81 f1 db a5 00 37 32 f2 98 87 f8 |..n.G.....72....| -00000250 83 48 31 c1 5f 28 7a 59 de fd 5a 56 b0 e4 39 78 |.H1._(zY..ZV..9x| -00000260 38 d4 68 b3 ef 16 a1 3e 41 ee 57 94 2e fb 16 4c |8.h....>A.W....L| -00000270 fd 02 3a c1 57 c6 4b 3b 2b 63 79 67 e1 cf 07 21 |..:.W.K;+cyg...!| -00000280 27 c7 9e 4a b0 bf e1 c2 4a 6e 9a 82 2a 8c 05 8d |'..J....Jn..*...| -00000290 93 48 0d 1c 15 60 66 d0 da b3 2f dc 90 fd 9e 6b |.H...`f.../....k| -000002a0 c2 62 ee a4 25 c5 52 e3 44 00 b8 6c 2d 6b 16 d7 |.b..%.R.D..l-k..| -000002b0 bc a4 2b b9 71 b7 b0 fc a4 e7 78 a3 39 1e 54 6f |..+.q.....x.9.To| -000002c0 7f c5 4c 20 4d b5 84 db 00 1d d0 ad 7a b8 13 e6 |..L M.......z...| -000002d0 06 f1 c2 f9 06 b5 c1 23 50 b1 0d f9 38 4d 80 65 |.......#P...8M.e| -000002e0 e1 56 7c 04 3f d8 07 b7 46 5a ff 29 f3 d4 43 fa |.V|.?...FZ.)..C.| -000002f0 be 32 47 76 58 7a c4 50 76 b7 65 5f 56 83 f9 06 |.2GvXz.Pv.e_V...| -00000300 44 30 65 0a 4b b1 e9 5c 80 4e 3c 1b 67 6f e1 53 |D0e.K..\.N<.go.S| -00000310 09 a8 3b 0f a6 85 f7 2f 51 08 48 94 9b 5a 0f b6 |..;..../Q.H..Z..| -00000320 b8 24 52 e0 c2 67 55 1d bc e1 e3 1b 15 8e 17 03 |.$R..gU.........| -00000330 03 00 99 58 f7 33 99 2c 8c 8c 18 78 60 49 6d 44 |...X.3.,...x`ImD| -00000340 f7 b4 25 5f 29 2b 37 7d ff 40 07 42 dd b3 9b a1 |..%_)+7}.@.B....| -00000350 10 a5 d6 d0 de 6d ca a0 df 41 82 0b e6 8a 35 8c |.....m...A....5.| -00000360 b7 52 aa 1c 8c f4 c2 31 2c 92 0b be 99 70 b0 84 |.R.....1,....p..| -00000370 c1 f4 9f d4 ff c7 ab e0 64 9e 17 34 aa 58 2d 32 |........d..4.X-2| -00000380 6d 74 90 ec f1 87 11 8f 9c 86 e2 26 2a 51 3e d4 |mt.........&*Q>.| -00000390 4b e4 01 13 13 6b cf 96 c6 ba 8e cf 8a 2b 5a 72 |K....k.......+Zr| -000003a0 df d7 43 47 ef 33 10 53 22 5c ab 8b b3 b4 6d 3c |..CG.3.S"\....m<| -000003b0 a6 31 58 f2 d7 bc 1c 46 48 4f 34 a1 62 5c ed 33 |.1X....FHO4.b\.3| -000003c0 01 3f ae 63 15 d5 94 96 b6 a1 d5 00 17 03 03 00 |.?.c............| -000003d0 35 34 66 3e 16 07 f3 ea c0 61 a6 30 c7 6f e9 1d |54f>.....a.0.o..| -000003e0 8b 6d 66 11 3c eb 27 88 9e 1a 94 86 85 0e da a0 |.mf.<.'.........| -000003f0 d7 1e 9e 2c d8 55 3e 53 b7 0f bc 96 be 82 00 34 |...,.U>S.......4| -00000400 a1 b3 3e c6 d3 bf |..>...| +00000060 68 4b 33 bf 83 bd ff 25 68 0f b8 79 da c5 68 5e |hK3....%h..y..h^| +00000070 c7 ca 00 07 f1 79 17 22 41 c6 e0 24 c2 97 f7 07 |.....y."A..$....| +00000080 b5 f1 04 20 26 17 90 6b 31 3f 25 15 bc 3b 4f 59 |... &..k1?%..;OY| +00000090 54 b3 4f 75 4e 7a c0 2c 17 0f ea 2a 7e 5f 54 7f |T.OuNz.,...*~_T.| +000000a0 17 03 03 00 17 c3 10 7e 45 b9 96 05 4f a7 f1 bd |.......~E...O...| +000000b0 9f 79 b1 b5 88 e7 90 b1 44 b0 7d f6 17 03 03 02 |.y......D.}.....| +000000c0 6d c3 e9 2e 7e 18 e5 0b 51 bb eb 55 62 44 6e bd |m...~...Q..UbDn.| +000000d0 03 6c 85 0d f5 39 52 58 b4 6b 44 cc f6 f6 0d 7c |.l...9RX.kD....|| +000000e0 71 f1 0a 24 a7 c9 19 2a 87 92 5c f7 b9 af 4e 84 |q..$...*..\...N.| +000000f0 94 69 df 28 a1 a0 18 2e 56 a1 15 3e 41 e2 f8 0c |.i.(....V..>A...| +00000100 73 98 d5 3c 04 93 d1 80 b3 21 11 a4 93 f9 2e 01 |s..<.....!......| +00000110 bd d1 63 4b ed aa 31 3d 5d 9a ec 39 03 97 78 3c |..cK..1=]..9..x<| +00000120 a4 1c ee cd 72 10 a6 05 44 ff 43 09 66 b5 c4 f4 |....r...D.C.f...| +00000130 9e fb 36 5b 73 6b 13 55 9e d5 ce 20 77 72 19 1b |..6[sk.U... wr..| +00000140 20 ea db d0 0f a7 ae 06 7d 95 4d d5 71 74 64 63 | .......}.M.qtdc| +00000150 4d 88 6b f3 f8 d6 7d 56 97 b5 c4 4d a6 b7 86 a8 |M.k...}V...M....| +00000160 9c 4d fb 53 65 7b 4b 2d d4 49 4d 97 64 ca 39 d5 |.M.Se{K-.IM.d.9.| +00000170 cb c7 38 a6 5b 0d 65 f6 12 d9 a4 26 a4 dd aa 2d |..8.[.e....&...-| +00000180 af f9 d4 2e a2 3f 28 51 87 c2 a5 b2 59 b4 23 e9 |.....?(Q....Y.#.| +00000190 e5 e5 21 5e 90 29 1b 7c 21 3c 17 b5 96 71 4a d3 |..!^.).|!<...qJ.| +000001a0 e4 60 58 ea 03 1c d4 b1 4a da 19 9e 75 83 1f 82 |.`X.....J...u...| +000001b0 38 ea fe f4 3a db 36 0e 11 1d d6 09 76 52 cb 72 |8...:.6.....vR.r| +000001c0 9f 67 44 83 c0 57 c3 1e 86 bd 73 c5 68 1c 0a ac |.gD..W....s.h...| +000001d0 f4 70 08 2d 9f 96 70 ca 08 c7 12 6d 58 12 6e 02 |.p.-..p....mX.n.| +000001e0 7b 4f 1c 30 73 66 8c ce 05 35 ed 0f 19 41 88 c8 |{O.0sf...5...A..| +000001f0 5a ed f0 c1 ff dd f9 c7 b0 0c 82 16 98 98 ec 0e |Z...............| +00000200 59 e5 9f e0 b2 a2 8a 62 46 21 d1 5d f3 3e e9 6d |Y......bF!.].>.m| +00000210 62 5f 66 0a 41 34 c7 75 05 62 ea 60 7a 9e 5e 56 |b_f.A4.u.b.`z.^V| +00000220 32 6d 94 0a 08 ff 73 55 04 98 50 c3 d8 d6 10 cd |2m....sU..P.....| +00000230 80 77 29 84 d3 24 d3 dd 0a 0a 50 95 5f 41 f9 95 |.w)..$....P._A..| +00000240 82 11 39 b3 c8 32 90 4f 6f 67 1f 14 c6 fb c5 0a |..9..2.Oog......| +00000250 a7 79 85 a2 0c 11 a2 d9 d1 07 66 5d 50 63 43 fb |.y........f]PcC.| +00000260 b5 e1 70 49 86 15 2d db 1c 8a 86 d3 97 9e 24 5c |..pI..-.......$\| +00000270 40 95 89 47 7a a5 0e dc ba bd eb 0a 77 b9 42 58 |@..Gz.......w.BX| +00000280 8b d1 18 ce 08 c5 3a eb da 89 57 15 f0 00 9d 6f |......:...W....o| +00000290 ee be dc 1f e3 54 a3 ba eb 39 61 0a f6 a6 21 26 |.....T...9a...!&| +000002a0 d0 8e 0a ff a5 c4 53 37 5d fd b7 47 90 0d 79 dd |......S7]..G..y.| +000002b0 23 c4 94 54 d0 bd 59 93 68 f9 94 f0 00 ea 5a b1 |#..T..Y.h.....Z.| +000002c0 88 79 bb e8 9b 5e 77 93 f0 36 fb 12 57 fc 3b c1 |.y...^w..6..W.;.| +000002d0 15 d5 45 77 b5 35 ee fb 60 7f a8 cc da 99 1b 1e |..Ew.5..`.......| +000002e0 5c 7f 61 c0 9c 41 54 02 bc db af 48 ef a7 a8 62 |\.a..AT....H...b| +000002f0 42 2d 1c b6 60 f8 1b ef 56 03 1d 79 68 79 a9 e9 |B-..`...V..yhy..| +00000300 e6 78 62 66 c6 2e b4 6a 3c db 7a ee 1b f9 fa f3 |.xbf...j<.z.....| +00000310 0a f1 10 55 18 da 2f 6d 35 67 9f c6 c6 d0 40 eb |...U../m5g....@.| +00000320 09 0b 6b a2 72 71 5c 77 b5 8e cf d5 ec 2b 17 03 |..k.rq\w.....+..| +00000330 03 00 99 e4 93 85 ef 4e a3 15 ca d2 76 f9 5a 20 |.......N....v.Z | +00000340 40 08 b9 ad 74 93 12 7f 37 37 ab 9f 17 05 9c 0d |@...t...77......| +00000350 6a 84 85 c9 3e d2 3e 50 0b 7c 4e 51 6b 88 0a 91 |j...>.>P.|NQk...| +00000360 82 67 90 99 f8 69 74 80 b8 75 4f c4 04 42 68 58 |.g...it..uO..BhX| +00000370 26 8b 70 66 e1 b2 60 ac 63 92 3c 35 79 90 53 a2 |&.pf..`.c.<5y.S.| +00000380 8b 37 8b c1 84 d9 ac 1f 36 83 95 25 75 89 d7 f0 |.7......6..%u...| +00000390 44 81 be 9a 52 e7 a3 51 6d 28 50 80 e4 ea b4 db |D...R..Qm(P.....| +000003a0 89 68 9b 61 6e 88 7f 10 1e d7 f9 ea 12 a7 16 3c |.h.an..........<| +000003b0 2b 73 62 9b af 98 eb d1 7a 67 b1 6e 38 29 9d c1 |+sb.....zg.n8)..| +000003c0 94 18 7e 2a 50 96 72 25 7a 23 21 13 17 03 03 00 |..~*P.r%z#!.....| +000003d0 35 1f f9 91 ac 1f 78 93 2b 39 35 7e 52 22 e8 79 |5.....x.+95~R".y| +000003e0 84 4a a6 de 74 21 c8 a5 c7 d1 35 0d 53 bd 85 7d |.J..t!....5.S..}| +000003f0 e0 2f 51 74 b9 69 f1 7b a9 b2 2c b1 89 99 06 48 |./Qt.i.{..,....H| +00000400 f8 b2 b4 c7 5d 06 |....].| >>> Flow 5 (client to server) -00000000 17 03 03 00 35 df 1b 3b a9 e7 cd 63 2c a6 09 65 |....5..;...c,..e| -00000010 66 df 94 09 d1 c4 ce 44 22 8b b5 48 2e 23 62 3a |f......D"..H.#b:| -00000020 9f e3 b2 58 a7 b2 e3 2a 27 a9 4d 34 41 0c 31 41 |...X...*'.M4A.1A| -00000030 92 b7 48 02 d2 51 d6 97 3e 70 17 03 03 00 17 f1 |..H..Q..>p......| -00000040 b7 28 75 42 2a 8b 20 2a 97 ed 47 ac a0 ee fd 38 |.(uB*. *..G....8| -00000050 cb 00 e3 b2 b1 87 17 03 03 00 13 bc 5a f3 ee 64 |............Z..d| -00000060 4d a5 1a 64 35 f2 f6 82 e3 e4 7d 82 08 c4 |M..d5.....}...| +00000000 17 03 03 00 35 fa 53 f3 c8 84 37 c3 c8 b9 b6 0a |....5.S...7.....| +00000010 41 bb 27 76 d5 7a 32 b6 3a fe 5b d5 28 d9 a6 81 |A.'v.z2.:.[.(...| +00000020 21 63 ee 43 03 3d b6 c0 0c 5f 3c cc 2a 2a 7f ee |!c.C.=..._<.**..| +00000030 f6 5e 02 f5 c9 06 c8 56 de b1 17 03 03 00 17 9a |.^.....V........| +00000040 8f 68 ac 18 fc f4 87 b4 fb 1e 33 b9 77 51 04 57 |.h........3.wQ.W| +00000050 f6 34 a4 f9 62 05 |.4..b.| +>>> Flow 6 (server to client) +00000000 17 03 03 00 da 4b cf 84 da 4f 53 58 d4 24 69 e4 |.....K...OSX.$i.| +00000010 4f e1 92 ae 27 23 7e ac 05 95 aa e3 c1 fb 41 7b |O...'#~.......A{| +00000020 5a 94 eb bc 0b 03 df 95 77 f7 9a 47 4a 88 52 83 |Z.......w..GJ.R.| +00000030 4d a4 c1 a6 e9 79 dd 77 76 a0 fc 9b 50 55 72 8e |M....y.wv...PUr.| +00000040 c8 0a d6 e4 d4 b8 18 b4 0e cc 06 05 2a 40 17 7d |............*@.}| +00000050 f6 ef b5 76 93 85 fc 0b e1 ca d7 e6 06 d0 e0 34 |...v...........4| +00000060 86 e2 62 a4 35 fe 5d 63 6c 4a 2e 0f 3d dd ea a1 |..b.5.]clJ..=...| +00000070 bf a8 86 56 e2 2e 21 79 47 c4 9a c4 6f 07 82 59 |...V..!yG...o..Y| +00000080 d7 55 a9 32 97 de 5a af 0c ab fa 46 d4 2e ab b0 |.U.2..Z....F....| +00000090 8d c8 36 0f d7 a5 cc 27 31 6e 42 a6 d0 61 72 45 |..6....'1nB..arE| +000000a0 d7 43 8d 74 51 da a8 bb 6b 7a 69 30 79 f3 ff 92 |.C.tQ...kzi0y...| +000000b0 dc 0a d7 52 b0 9a d8 c3 d6 c9 2b 3d 7e 60 63 5b |...R......+=~`c[| +000000c0 02 8c 5e 76 92 9d ad 4e 18 c3 67 a7 40 62 41 04 |..^v...N..g.@bA.| +000000d0 0b c9 29 26 d8 0c 51 51 d1 5b a4 bf 69 d5 31 17 |..)&..QQ.[..i.1.| +000000e0 03 03 00 da fa d6 36 16 4c 85 87 4f 4b 17 b8 65 |......6.L..OK..e| +000000f0 3f dc c3 5d 09 c5 ed 80 b1 d4 3d aa dc f8 78 1e |?..]......=...x.| +00000100 c0 d5 e3 87 74 57 f4 3c ec 7c d0 09 e6 88 fa 16 |....tW.<.|......| +00000110 30 de 10 7c 25 14 d2 23 71 63 e5 bb 97 bf 5c 9e |0..|%..#qc....\.| +00000120 e4 81 cc 5d 0e b0 e4 06 0e 6b 87 93 6c ce 7c fc |...].....k..l.|.| +00000130 2b 66 c2 48 53 65 31 40 b8 ce 7e a2 f2 69 a0 b8 |+f.HSe1@..~..i..| +00000140 41 ff 18 f1 1a db 96 7e b0 e5 9a 40 de 4e d0 4f |A......~...@.N.O| +00000150 95 37 81 15 e9 b2 a5 fa af 26 97 1b d7 e5 2b 17 |.7.......&....+.| +00000160 51 5c ee d6 cd 20 6a 19 5c 80 41 f5 ca 52 d5 c8 |Q\... j.\.A..R..| +00000170 70 e5 3a 0f 17 3e b4 b4 c5 bc f8 90 49 df ee 3b |p.:..>......I..;| +00000180 c5 33 43 14 16 d5 f7 f6 85 ef f2 ee cb 23 5a e8 |.3C..........#Z.| +00000190 09 5d 15 73 98 b9 d3 1e 74 27 3e ff 7b 9d 63 13 |.].s....t'>.{.c.| +000001a0 5c d4 b5 6a 34 b8 9e 1b 4b cf d8 5a da 4a 73 5e |\..j4...K..Z.Js^| +000001b0 5c ae 38 78 ba 12 00 bc 98 15 f3 c7 69 6b |\.8x........ik| +>>> Flow 7 (client to server) +00000000 17 03 03 00 13 d0 9e 34 0a 13 b3 c3 d9 22 79 a9 |.......4....."y.| +00000010 66 e6 3a 8b 3e bc cf de |f.:.>...| diff --git a/testdata/Client-TLSv13-KeyUpdate b/testdata/Client-TLSv13-KeyUpdate index 6ba717e..3d6c21b 100644 --- a/testdata/Client-TLSv13-KeyUpdate +++ b/testdata/Client-TLSv13-KeyUpdate @@ -16,115 +16,117 @@ 000000e0 a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 ff f6 |.G.bC.(.._.).0..| 000000f0 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 |........_X.;t| >>> Flow 2 (server to client) -00000000 16 03 03 00 7a 02 00 00 76 03 03 91 02 b1 d0 21 |....z...v......!| -00000010 d1 5d ff 00 e2 ab f3 af 0d 22 45 1a a0 7d f1 c7 |.]......."E..}..| -00000020 73 fd 01 af f5 6e b4 d8 51 a7 26 20 00 00 00 00 |s....n..Q.& ....| +00000000 16 03 03 00 7a 02 00 00 76 03 03 0f 9a 86 30 a4 |....z...v.....0.| +00000010 0a 88 2e ae a6 b9 ca ee 46 9c 87 f8 38 b3 5f d4 |........F...8._.| +00000020 2c 42 29 e3 e7 44 e4 d3 e2 00 53 20 00 00 00 00 |,B)..D....S ....| 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 13 01 00 00 |................| -00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 d4 |..+.....3.$... .| -00000060 6c db da 9b 60 3b 55 58 d2 7b 00 7c 85 8f 97 92 |l...`;UX.{.|....| -00000070 b6 02 a7 9f c2 fc cd 7f e4 45 37 ff f0 85 51 14 |.........E7...Q.| -00000080 03 03 00 01 01 17 03 03 00 17 c0 42 45 55 77 7d |...........BEUw}| -00000090 3c 65 5a 6a 1f d2 57 ff 9b b6 fe bf 2f 50 04 c9 || -00000230 6c 69 fd b2 4a f8 85 54 99 25 35 f7 66 50 fe 3f |li..J..T.%5.fP.?| -00000240 3f a3 2e b6 a1 f3 df d0 0b 2c 81 04 37 83 bd fe |?........,..7...| -00000250 15 69 2a 28 93 25 7e be a7 a2 54 14 ce ad 8c 93 |.i*(.%~...T.....| -00000260 5d 4b e8 bf 07 27 c3 ec 91 2f 55 39 4f 70 1d 17 |]K...'.../U9Op..| -00000270 3a f9 a5 71 0f 41 a6 17 fc 71 b6 50 43 aa 14 b6 |:..q.A...q.PC...| -00000280 38 ab af 0b 30 92 77 4d 02 97 fc fb 0d a9 50 96 |8...0.wM......P.| -00000290 68 30 49 6f 80 0e d3 99 27 a9 50 37 42 51 04 e1 |h0Io....'.P7BQ..| -000002a0 e8 88 93 1b 0a bf 86 14 c3 d9 b3 49 1a ce 2d 65 |...........I..-e| -000002b0 72 47 2a 3c b1 fd a3 4a fb a1 e8 c1 69 24 3a 51 |rG*<...J....i$:Q| -000002c0 17 1d 7b e7 33 77 21 94 67 5e f0 e7 93 5c 84 97 |..{.3w!.g^...\..| -000002d0 25 00 cd b2 d9 a1 40 06 6b f8 df a3 4b 7e 48 4c |%.....@.k...K~HL| -000002e0 14 30 93 17 cd 6b 8e e7 56 a0 34 1f d9 ba 14 16 |.0...k..V.4.....| -000002f0 cf 2c 1e c5 35 84 31 6f e8 81 f5 7c b2 11 5c 9d |.,..5.1o...|..\.| -00000300 5d 05 1c 12 41 74 ad 20 74 0c 0c 72 5e f2 43 1c |]...At. t..r^.C.| -00000310 91 1a 4d 17 03 03 00 99 d6 a2 b9 7b 55 6b d2 13 |..M........{Uk..| -00000320 9d 89 e6 7b d4 b2 e9 1c f6 7d 91 0a 87 00 ba 03 |...{.....}......| -00000330 c3 ae 47 e9 79 1b 75 e8 8b fe a8 15 4d 33 93 a5 |..G.y.u.....M3..| -00000340 df e7 d0 40 de 7c f2 63 2d 46 7a 1d e8 2d c6 dd |...@.|.c-Fz..-..| -00000350 56 ec cc 49 87 05 ad 2a c3 e4 89 2c c6 7c 2a 6a |V..I...*...,.|*j| -00000360 60 68 40 49 73 2b 29 55 9a 7b c4 e4 c6 24 5e 41 |`h@Is+)U.{...$^A| -00000370 16 c7 c2 46 e1 cf 10 cc 1d 3d b4 96 b3 ba c4 17 |...F.....=......| -00000380 1e dd e2 71 fc 80 45 f9 43 a1 16 4d e7 b4 ac a6 |...q..E.C..M....| -00000390 d3 26 a6 c2 23 06 6e 1c 4f 7e 1e a3 f1 57 e1 0c |.&..#.n.O~...W..| -000003a0 50 a6 5f 23 f4 a9 f8 b4 56 e9 d0 8c f6 fb ac 33 |P._#....V......3| -000003b0 b8 17 03 03 00 35 55 f6 25 b8 52 df c4 e2 2f b0 |.....5U.%.R.../.| -000003c0 ac 41 c3 ed 49 8d 73 cf f4 48 c2 4f 33 8c 56 df |.A..I.s..H.O3.V.| -000003d0 11 03 9e 7f de 78 d7 03 c3 f4 de e5 69 8e e4 9a |.....x......i...| -000003e0 c0 47 3b c9 99 3e 35 c9 66 b9 5a |.G;..>5.f.Z| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 1e |..+.....3.$... .| +00000060 0b 5c d8 c6 44 ba ac 71 70 3c a2 20 b0 05 d5 98 |.\..D..qp<. ....| +00000070 c4 12 e3 43 67 53 c4 2a 72 6e 59 50 03 81 0e 14 |...CgS.*rnYP....| +00000080 03 03 00 01 01 17 03 03 00 17 cc 54 e1 4a d7 5c |...........T.J.\| +00000090 1b 96 70 6e c0 ea 25 c6 0e 9d bd a6 c0 08 0a 45 |..pn..%........E| +000000a0 1b 17 03 03 02 6d 17 74 77 1a b1 00 47 8f e5 01 |.....m.tw...G...| +000000b0 3a 29 a3 e8 94 1b 3e ef 91 f7 05 8d 9a a4 2d 9a |:)....>.......-.| +000000c0 9b cf d2 83 e4 74 28 b9 d5 ae c8 79 b4 f4 6b eb |.....t(....y..k.| +000000d0 a0 db e7 db f3 ff 0b 2b be 0c e7 3b d3 c6 79 ea |.......+...;..y.| +000000e0 39 a6 66 19 88 39 04 01 f9 8d 82 04 6d e2 ce 73 |9.f..9......m..s| +000000f0 71 f9 bd 5b f6 66 a5 c7 f8 8b be db 1a b5 1b 38 |q..[.f.........8| +00000100 4b b4 3a 04 01 5e 68 13 e7 51 40 fe bd b8 a0 00 |K.:..^h..Q@.....| +00000110 7a 7d b7 60 0c 9d 23 7b 6e 77 fd 71 6f 45 30 41 |z}.`..#{nw.qoE0A| +00000120 bf 3f 5f 45 27 b1 bd 3e 39 d1 bf 80 be 74 e1 e3 |.?_E'..>9....t..| +00000130 ae 9c a7 68 40 ac 98 ef 3f 7f e6 41 a5 f5 c9 56 |...h@...?..A...V| +00000140 45 1c 4e ad 1f 62 58 fc 0b 1f 06 1a 12 c5 d1 c6 |E.N..bX.........| +00000150 0a 3d f9 f7 e9 a5 16 9b 69 bf f8 39 6f 38 8c cd |.=......i..9o8..| +00000160 da da 97 f7 40 9b a1 9f 3b c8 a5 5b 42 2f 44 29 |....@...;..[B/D)| +00000170 f0 d9 0b 0e 7a b8 ae 9f 7f de fd 4c 81 c4 a2 9d |....z......L....| +00000180 a1 40 b3 5e a5 22 1a 1a 7b f7 83 14 4d 53 c9 68 |.@.^."..{...MS.h| +00000190 4e e0 3f 8a 88 b0 74 51 eb 3a 85 ee 45 3b 5d d5 |N.?...tQ.:..E;].| +000001a0 8c cd ba 55 b9 89 32 4c 6e d9 81 c3 b0 68 4d 39 |...U..2Ln....hM9| +000001b0 0e 3b 70 31 a2 e2 6e f1 07 5a 0e 4f 6a 0c 58 f1 |.;p1..n..Z.Oj.X.| +000001c0 71 0d dc 35 a9 ea 15 50 1e fe f4 e5 c6 ff ef 6a |q..5...P.......j| +000001d0 46 8c 04 27 1b cc a6 0e 40 25 c5 5e 13 e0 26 e8 |F..'....@%.^..&.| +000001e0 5f 44 bb 05 f7 1c 6e 8c 1e 58 f3 5f af 92 98 79 |_D....n..X._...y| +000001f0 93 50 a2 22 8d 65 62 20 78 15 8e 02 16 77 53 45 |.P.".eb x....wSE| +00000200 fd 51 a6 db 80 26 7a 69 c1 55 69 76 96 2e 49 62 |.Q...&zi.Uiv..Ib| +00000210 0e b8 fe 58 36 0d ac 68 b7 f0 54 16 45 bc 6a a0 |...X6..h..T.E.j.| +00000220 8b fa 2e 00 de cf ad 73 31 ff c0 5f be ff 09 76 |.......s1.._...v| +00000230 07 b2 08 27 90 98 2f b6 08 9f 8b 31 77 0a d1 41 |...'../....1w..A| +00000240 ee ca 97 0d 46 03 91 d6 12 02 b3 7d 13 e8 ab 83 |....F......}....| +00000250 79 93 96 33 f0 fc 14 3a 90 06 df 0d 38 59 1e 34 |y..3...:....8Y.4| +00000260 a6 8a 5c 19 ae 8f ba b7 b8 6d cf 59 29 81 8c b7 |..\......m.Y)...| +00000270 86 44 e0 a5 ef c1 24 cd 21 05 2a da 4b 01 e9 2b |.D....$.!.*.K..+| +00000280 b6 c0 be 8e be f1 af 1c a4 be b1 26 4c a9 e5 e7 |...........&L...| +00000290 41 fa 74 73 03 77 9b 5b 56 69 ca bd a5 99 ff d6 |A.ts.w.[Vi......| +000002a0 eb 77 0c b0 3e 29 dc e7 54 7d 4e 03 5f 75 1e a5 |.w..>)..T}N._u..| +000002b0 93 73 9a bd 53 31 57 b9 63 9c 17 f2 ae 3b 21 81 |.s..S1W.c....;!.| +000002c0 38 55 1f 56 96 0f 02 de ad 2a a4 7e 71 52 79 21 |8U.V.....*.~qRy!| +000002d0 b0 76 e5 59 1c 74 10 0e e3 90 4b 69 53 4d dd 20 |.v.Y.t....KiSM. | +000002e0 52 25 14 d1 67 ed 72 26 6a 4e 1f 1b aa b9 03 6d |R%..g.r&jN.....m| +000002f0 81 67 1c c3 f2 f5 2e f0 01 b5 f5 8f d3 5e 08 2d |.g...........^.-| +00000300 fc f5 8a c0 3d af c1 3d 3f 14 c1 b3 18 55 6b 98 |....=..=?....Uk.| +00000310 f5 4b c0 17 03 03 00 99 44 a2 0f 9b 62 d7 b0 e0 |.K......D...b...| +00000320 68 2e f1 90 64 fc fe 4f e3 e0 9a 82 8d c3 14 6d |h...d..O.......m| +00000330 f4 22 00 d9 74 5d 98 82 9f e5 6e fd 7e e5 9e d2 |."..t]....n.~...| +00000340 5a 1b 11 fd 05 c0 d7 4e 48 6b 8b e1 33 8d f3 04 |Z......NHk..3...| +00000350 2c 20 00 53 86 b7 f8 34 20 2f 6a e0 f9 c3 3a 85 |, .S...4 /j...:.| +00000360 f2 32 4e a0 3e 3c 2d c6 91 86 d3 4b 09 ef d2 93 |.2N.><-....K....| +00000370 3f a3 9a ad 0f f6 a3 04 ba 88 fe 9a 80 12 c5 0d |?...............| +00000380 f9 86 2b b8 cb 7e 46 28 16 2d 58 bf 5a 0a 2e f8 |..+..~F(.-X.Z...| +00000390 cd c2 2e 01 c2 cf ca f7 5e b1 1d 8b 9d 1b 4b 8e |........^.....K.| +000003a0 62 a2 c2 17 14 e7 00 be 00 3a 0c 4c 84 d7 c1 47 |b........:.L...G| +000003b0 61 17 03 03 00 35 7d 84 99 5a 9f b5 26 b5 f6 ce |a....5}..Z..&...| +000003c0 56 ca a6 25 60 84 e3 5b c1 b8 7c ed ed 02 f1 13 |V..%`..[..|.....| +000003d0 50 2a e8 a2 65 65 f9 88 b1 a5 01 24 0f 52 4a da |P*..ee.....$.RJ.| +000003e0 5d ea 2b 88 b3 9c b7 ed d8 70 38 |].+......p8| >>> Flow 3 (client to server) -00000000 17 03 03 00 35 03 e0 6c 82 55 1c 8a cb 82 4e 3d |....5..l.U....N=| -00000010 4a 5c 4f 94 3b 9c 23 fe 9d 5f 66 22 6a 83 31 98 |J\O.;.#.._f"j.1.| -00000020 e9 5b 0c 17 54 86 11 5f 85 2c 8c a8 fa 80 a0 d5 |.[..T.._.,......| -00000030 5f c5 02 30 0a 93 1f 42 b1 a9 17 03 03 00 17 3f |_..0...B.......?| -00000040 82 d9 94 f8 84 d1 9f 87 67 c2 37 b5 17 09 0a 99 |........g.7.....| -00000050 81 6d 0b 70 0b 6e |.m.p.n| +00000000 14 03 03 00 01 01 17 03 03 00 35 e7 50 0e 48 d7 |..........5.P.H.| +00000010 8f 45 ff 48 48 1d 0c 94 b8 61 e2 ad 89 eb 4d 9b |.E.HH....a....M.| +00000020 20 f5 73 41 85 0c 7b c1 9b 1e d1 a1 27 b3 83 51 | .sA..{.....'..Q| +00000030 05 51 a9 fc 98 7e fe ef e2 43 6b a8 da f0 d0 d5 |.Q...~...Ck.....| +00000040 17 03 03 00 17 f3 bb 74 b9 31 69 37 87 c9 eb 04 |.......t.1i7....| +00000050 49 95 8f 30 e7 cf c5 67 27 3d 11 66 |I..0...g'=.f| >>> Flow 4 (server to client) -00000000 17 03 03 00 da 94 6d 10 ed 89 9a e2 a8 d4 87 52 |......m........R| -00000010 7e ff c2 55 79 a7 9d a6 41 6d 1c d0 b5 75 10 95 |~..Uy...Am...u..| -00000020 8f 02 f4 49 b8 ad e7 29 77 d3 ed ab ee 4d db 6c |...I...)w....M.l| -00000030 fa 1b 42 d2 fe f7 d3 a2 a5 ed d5 0a d9 33 13 00 |..B..........3..| -00000040 6b 7b a0 79 08 c6 80 8c 74 c4 15 18 50 a4 b3 93 |k{.y....t...P...| -00000050 73 89 85 eb e6 d2 3d 64 db aa ec 68 22 64 22 ae |s.....=d...h"d".| -00000060 35 a5 7f 01 5b de eb ba f9 0e 5b 89 30 a8 5e 47 |5...[.....[.0.^G| -00000070 39 06 cb 4a bb ce 2c e5 87 36 3f b7 4f 02 6d 32 |9..J..,..6?.O.m2| -00000080 38 86 15 b2 17 60 af 95 8a 6c f1 29 ac e6 da 05 |8....`...l.)....| -00000090 78 42 e0 5f 7c a7 1e 3b 1c 85 5f 2d 2f 8f de c2 |xB._|..;.._-/...| -000000a0 a4 fb 53 ed 74 06 76 08 ef af 8b 59 f2 5e d2 2f |..S.t.v....Y.^./| -000000b0 a0 09 81 cb 41 e4 7d 11 6e 64 49 ff dc bf ac f3 |....A.}.ndI.....| -000000c0 13 d8 d5 a2 69 60 ef cd 82 7a 72 78 c3 58 5b 73 |....i`...zrx.X[s| -000000d0 7b 77 7a 4d cd 66 a0 fb ab 46 37 6d 4f 4e 57 17 |{wzM.f...F7mONW.| -000000e0 03 03 00 da d8 64 ed 87 a6 ac ae d1 16 25 ee 7a |.....d.......%.z| -000000f0 e1 2d 0a 61 1b db 33 c9 72 92 75 04 1f af 6b fb |.-.a..3.r.u...k.| -00000100 73 e6 55 fe 3c cb c8 93 0b 15 ae d1 dc 39 f2 a9 |s.U.<........9..| -00000110 52 29 69 0f cd 3a 9d c6 8a c6 e0 57 c0 29 19 dc |R)i..:.....W.)..| -00000120 26 4d ec b8 49 d3 11 6f 83 c3 a3 71 bb 70 ca 07 |&M..I..o...q.p..| -00000130 bf 7a 94 15 58 6f a0 f8 b4 23 70 e7 c4 1a 3d 03 |.z..Xo...#p...=.| -00000140 c9 55 da 35 47 8c 08 79 09 f6 0e 67 b0 ea 35 ed |.U.5G..y...g..5.| -00000150 37 72 02 92 41 ef 6f 05 db 04 e2 17 35 22 2c c9 |7r..A.o.....5",.| -00000160 98 4b 86 a9 b3 bf 4a 21 9f 01 b1 9b b2 6e 08 d4 |.K....J!.....n..| -00000170 04 9d 60 1d af 79 b5 cd c1 5d c3 26 92 60 c7 7b |..`..y...].&.`.{| -00000180 b2 6f 11 21 58 7d 28 75 92 f3 7c 43 d2 60 0c 8b |.o.!X}(u..|C.`..| -00000190 51 a0 ec a7 b9 1e bb 31 52 ca 48 7e 77 fe 24 d7 |Q......1R.H~w.$.| -000001a0 a5 f6 51 ab 7a 1d ad dd e3 6e 9c 6a a3 46 f5 5d |..Q.z....n.j.F.]| -000001b0 22 33 c7 86 c9 08 d1 1c 07 b7 93 ac f3 93 17 03 |"3..............| -000001c0 03 00 16 51 14 60 dd e3 6f 3d ae 8e b0 da 29 b3 |...Q.`..o=....).| -000001d0 ef 24 61 5b 10 52 da ba b0 |.$a[.R...| +00000000 17 03 03 00 ea 04 c2 4b 8d b2 6b 4e d5 f1 84 03 |.......K..kN....| +00000010 22 ec f6 d5 61 ba fe 8a e2 23 75 f3 9e b5 9f 9f |"...a....#u.....| +00000020 f7 23 a6 45 46 72 c1 90 cf 30 42 22 f4 7b 0b ca |.#.EFr...0B".{..| +00000030 6e b3 4a 74 98 3c 5b a4 1e 27 af 25 a9 af 45 ad |n.Jt.<[..'.%..E.| +00000040 70 0a 61 2a b3 0b 17 e6 ea 99 d5 d9 be 8e e9 97 |p.a*............| +00000050 7a 8b 95 4b 50 91 86 35 ef c5 67 0a 10 0f fb 26 |z..KP..5..g....&| +00000060 11 cb f7 7b 35 5a 58 79 80 38 cf f8 e8 77 c2 84 |...{5ZXy.8...w..| +00000070 3a 91 f5 26 23 79 2c ac 8b f7 40 f1 38 dd 0f d6 |:..&#y,...@.8...| +00000080 3c 0e be e3 12 37 5a 98 0c c8 6a 86 33 df e3 ef |<....7Z...j.3...| +00000090 7d a1 9b 3b 1b 1e 3e 17 58 8d 39 7b 28 c2 02 bd |}..;..>.X.9{(...| +000000a0 8a 5e 20 17 cb 0b 4c 01 df 36 a4 c0 0d de 26 67 |.^ ...L..6....&g| +000000b0 18 b0 a8 b2 98 b2 01 2a 8c 0e 29 ce 2f c7 4a c5 |.......*..)./.J.| +000000c0 ea 2a 86 06 33 62 93 ad 7a 08 15 d1 ab 46 14 43 |.*..3b..z....F.C| +000000d0 8d 44 b8 6f ac 4a bc fe e2 91 2f ca 03 6d 49 66 |.D.o.J..../..mIf| +000000e0 7c bd ca 7b e1 da 73 45 c1 c2 79 02 02 55 52 17 ||..{..sE..y..UR.| +000000f0 03 03 00 ea 3c fa 1d 62 22 67 f0 44 ac ab 17 a0 |....<..b"g.D....| +00000100 f2 7d 44 ce 6a 3f dd 2c d5 45 8f 2c 5d 6f 8e a6 |.}D.j?.,.E.,]o..| +00000110 c8 97 ea e9 df 35 fd 00 57 98 33 d1 87 f4 1a ee |.....5..W.3.....| +00000120 8d 68 a7 ac b0 18 84 e3 26 df 08 85 8f e0 65 48 |.h......&.....eH| +00000130 a9 94 f1 e5 09 78 6c 76 4a 1a 14 35 93 cc 44 ea |.....xlvJ..5..D.| +00000140 8c 8d f7 ee 33 4f cf e0 54 db ba 49 4b 5c b9 ea |....3O..T..IK\..| +00000150 de a9 6d eb bc f4 43 85 27 a4 d6 64 6d 1e 9d 9d |..m...C.'..dm...| +00000160 e1 81 22 30 b9 a1 c4 c9 b4 0b 4b 23 25 58 34 33 |.."0......K#%X43| +00000170 40 fc ea 84 fa f5 ba 40 6d 60 cc 60 1b 95 19 f6 |@......@m`.`....| +00000180 c6 9e ba 00 d8 fd 93 cd bb 50 91 55 f1 e3 34 ea |.........P.U..4.| +00000190 f8 99 7e fd 18 02 69 e3 54 cf 15 3f d3 54 0e e9 |..~...i.T..?.T..| +000001a0 30 4e 67 94 2e 48 49 45 b8 ae 1a 3c 6d 78 f0 2c |0Ng..HIE...>> Flow 5 (client to server) -00000000 17 03 03 00 16 28 82 46 cd 7d f4 b8 ad 95 3d 87 |.....(.F.}....=.| -00000010 6f 95 c2 b5 84 1e 5b fc f9 9b 15 |o.....[....| +00000000 17 03 03 00 16 38 87 e3 aa 7a 6f 28 c7 6f bd cf |.....8...zo(.o..| +00000010 d0 50 21 a4 e0 44 9f fe 29 47 e9 |.P!..D..)G.| >>> Flow 6 (server to client) -00000000 17 03 03 00 1a 3b 79 64 b2 54 a9 0f e7 76 a3 47 |.....;yd.T...v.G| -00000010 bc c1 e2 e0 0d 3d c3 60 43 d2 29 cb e4 89 de |.....=.`C.)....| +00000000 17 03 03 00 1a 3c be d6 90 e8 ad 97 7c 0f c9 b6 |.....<......|...| +00000010 3d 66 52 35 57 1e 01 c5 a2 27 8b c4 17 25 20 |=fR5W....'...% | >>> Flow 7 (client to server) -00000000 17 03 03 00 1d fc 2f 64 89 dc 2d 83 18 7e 48 20 |....../d..-..~H | -00000010 33 32 5c bf 2c a6 c6 4d 26 f6 75 cd 9d ce 20 1e |32\.,..M&.u... .| -00000020 d9 b8 17 03 03 00 13 6b c6 68 a6 50 07 18 2b f3 |.......k.h.P..+.| -00000030 73 29 e5 f4 0d f1 ce c9 c0 39 |s).......9| +00000000 17 03 03 00 1d 21 5f dc 8c da b2 e4 b2 9c 1e c6 |.....!_.........| +00000010 dc 2c a5 f6 51 0d 18 03 13 e5 f3 b2 00 c8 4d 1f |.,..Q.........M.| +00000020 f9 1b 17 03 03 00 13 f0 2a 99 bd b7 c6 3c 9b da |........*....<..| +00000030 b8 c3 3d ee b3 f8 a3 0d 59 f8 |..=.....Y.| diff --git a/testdata/Client-TLSv13-P256-ECDHE b/testdata/Client-TLSv13-P256-ECDHE index 7c8997d..826fd7a 100644 --- a/testdata/Client-TLSv13-P256-ECDHE +++ b/testdata/Client-TLSv13-P256-ECDHE @@ -18,76 +18,109 @@ 00000100 6c 4b 5b 83 56 e2 32 42 e9 58 b6 d7 49 a6 b5 68 |lK[.V.2B.X..I..h| 00000110 1a 41 03 56 6b dc 5a 89 |.A.Vk.Z.| >>> Flow 2 (server to client) -00000000 16 03 03 00 9b 02 00 00 97 03 03 9b 6d 68 8f c5 |............mh..| -00000010 57 3c 87 82 4c 88 98 ec 51 3c bd 18 c7 02 b4 5a |W<..L...Q<.....Z| -00000020 ed 76 16 f9 54 87 1c 83 3f 76 1a 20 00 00 00 00 |.v..T...?v. ....| +00000000 16 03 03 00 9b 02 00 00 97 03 03 43 72 ac ef 29 |...........Cr..)| +00000010 8f 37 16 cf c9 d8 4c ce 9b d9 c1 93 f6 bb 47 a9 |.7....L.......G.| +00000020 2d 23 83 b5 ff b0 e0 93 34 01 52 20 00 00 00 00 |-#......4.R ....| 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 13 01 00 00 |................| 00000050 4f 00 2b 00 02 03 04 00 33 00 45 00 17 00 41 04 |O.+.....3.E...A.| -00000060 a8 5f cf 31 63 1e 59 63 80 b9 59 47 ee 50 d6 68 |._.1c.Yc..YG.P.h| -00000070 af fe 1f 1f b0 4f ae 67 a8 d1 f1 a7 ff f4 43 f8 |.....O.g......C.| -00000080 15 74 ae a7 64 1f 35 2b 29 b3 16 54 91 5c 0f 7d |.t..d.5+)..T.\.}| -00000090 c5 63 64 2c 16 f4 99 e3 76 52 6f f6 b6 e8 c7 78 |.cd,....vRo....x| -000000a0 14 03 03 00 01 01 17 03 03 00 17 47 98 e0 19 54 |...........G...T| -000000b0 3e f3 78 0a 24 92 23 bb c0 03 5d 51 8b fb c1 c2 |>.x.$.#...]Q....| -000000c0 8e e6 17 03 03 02 6d ba 0a a6 e1 a8 13 0c 3c fd |......m.......<.| -000000d0 0d ae 7e 47 76 78 9d 17 13 03 53 ba 7a 22 a4 55 |..~Gvx....S.z".U| -000000e0 3b a3 30 51 d0 e6 33 c3 95 63 07 99 aa 12 82 c3 |;.0Q..3..c......| -000000f0 be 5d b0 88 2e 91 9c 87 a7 a0 a5 79 d8 5e 1c b2 |.].........y.^..| -00000100 9b 27 6e da 98 63 a6 9a e0 f2 51 83 f0 49 85 a4 |.'n..c....Q..I..| -00000110 63 0f 1a 48 85 29 c1 31 78 c0 66 61 36 d2 ec 7c |c..H.).1x.fa6..|| -00000120 ed ba 35 42 ed 7f be a5 2c 91 11 8f 95 f9 8f 7a |..5B....,......z| -00000130 04 32 14 01 5c 78 21 86 f5 70 09 59 7e dc b3 7f |.2..\x!..p.Y~...| -00000140 fd ed 14 d2 40 65 cc b3 1b d7 c6 4b 30 d0 72 59 |....@e.....K0.rY| -00000150 db 1a 13 3c b8 f4 ea 8f 22 f2 13 b7 3f 9c 99 fd |...<...."...?...| -00000160 91 c2 bc e4 e0 71 63 30 81 24 26 2e 9e ff 16 8e |.....qc0.$&.....| -00000170 47 e4 e0 e4 12 2f ba 2c 7e c5 dd 91 79 4f bd 5f |G..../.,~...yO._| -00000180 0f 0e 66 5f da 0e f2 4d 9e 46 f3 c7 7f 65 f6 d4 |..f_...M.F...e..| -00000190 cd f1 cb c6 d7 5e a2 db 58 e1 d1 c5 05 63 90 a0 |.....^..X....c..| -000001a0 96 18 64 29 92 95 88 6c 9f f8 9b 54 b6 d2 e2 bc |..d)...l...T....| -000001b0 3d 6f f2 c0 56 76 66 05 21 47 80 e9 63 85 a1 12 |=o..Vvf.!G..c...| -000001c0 c9 e8 80 c4 fe b5 63 86 cf ae 8f 83 ff ae ff 63 |......c........c| -000001d0 77 20 ae 9c f7 88 1f 6d 18 4a 33 e9 2b e0 12 ca |w .....m.J3.+...| -000001e0 05 4c b7 25 35 b6 8d a4 ba 00 5c f2 be ab a7 d6 |.L.%5.....\.....| -000001f0 0e 02 1c 58 da af c9 51 4c e8 8e b8 fa 27 78 76 |...X...QL....'xv| -00000200 9d 50 2e 36 98 09 23 12 37 f0 c6 4a 32 00 cd 09 |.P.6..#.7..J2...| -00000210 9e ca 6b e4 1e d6 7f 9c 72 b3 81 13 29 2c fe 49 |..k.....r...),.I| -00000220 99 92 2f 8f c9 f0 86 9d fa 56 b8 6c 7b 76 fc 12 |../......V.l{v..| -00000230 c5 1f e7 a1 ea 13 99 ac 2c 6b 9c 23 3e 0b 78 0c |........,k.#>.x.| -00000240 41 9a 47 51 0c 64 87 a3 b8 1b 7f 2c d9 c5 b2 28 |A.GQ.d.....,...(| -00000250 36 13 7e b5 8c ab 32 50 64 a0 eb 9f 57 19 eb fa |6.~...2Pd...W...| -00000260 1e 1d b3 73 81 18 14 de 6b ef 68 ed 37 da 29 0e |...s....k.h.7.).| -00000270 9a 7d c1 31 c5 bd 76 60 2b 40 3a 85 c2 1c b1 de |.}.1..v`+@:.....| -00000280 9f 41 00 22 5a 63 72 9f 57 4e 02 1b 5a 2c 5f 0a |.A."Zcr.WN..Z,_.| -00000290 c0 e2 c8 4c ca 18 39 7e c0 b8 67 58 b4 bd 0c 5b |...L..9~..gX...[| -000002a0 3a bd 1e 39 fd 09 73 63 e9 41 86 6b ed fe 35 f0 |:..9..sc.A.k..5.| -000002b0 64 ed 14 c9 d3 6c 65 97 96 fc dd bf 9f dd e4 01 |d....le.........| -000002c0 1b 02 ad 5a 55 f5 86 9f c1 56 ce 59 30 16 bb 9c |...ZU....V.Y0...| -000002d0 c8 9f 13 5a fd 61 7d 40 3f ec e7 9c 1e 61 0d c7 |...Z.a}@?....a..| -000002e0 44 87 84 2b fd 80 9d dd 00 a0 ce 19 fa 9a 3c f5 |D..+..........<.| -000002f0 59 3b 03 27 10 93 64 15 f4 a5 bd 3b f2 91 38 03 |Y;.'..d....;..8.| -00000300 a4 4f a4 6a dd 7e 3e 8c 5c 40 19 59 f9 7f a7 7c |.O.j.~>.\@.Y...|| -00000310 22 3b e8 55 88 b4 99 1f cb d9 2f 49 74 4d 3c 8b |";.U....../ItM<.| -00000320 81 7a 0c 31 77 87 aa 9d 57 9b cd 8a 16 6a cc 06 |.z.1w...W....j..| -00000330 51 83 1b 00 17 03 03 00 99 a8 77 b4 5b 03 63 c5 |Q.........w.[.c.| -00000340 fb 02 54 c7 56 aa fb ba 3d 19 52 34 c8 1a d5 3f |..T.V...=.R4...?| -00000350 ef bc b9 62 96 e6 42 be 13 4c 67 7a 4c 01 21 14 |...b..B..LgzL.!.| -00000360 12 5a 91 80 0b ff 19 90 b4 a9 d6 66 bc 50 9c 6c |.Z.........f.P.l| -00000370 a2 63 57 d2 78 e7 cb 1a ed 55 02 64 05 f8 7b 4f |.cW.x....U.d..{O| -00000380 1f 5f af a4 ce 9c 9c 82 e2 80 36 77 e6 9b be 82 |._........6w....| -00000390 25 bd 30 a5 e9 7f f8 a3 f8 f7 56 eb a1 8f f3 e5 |%.0.......V.....| -000003a0 6d 9f c0 30 e6 95 83 e3 1b 45 49 10 50 e1 7f 27 |m..0.....EI.P..'| -000003b0 cd 2c da e4 4b da 0d 77 d3 87 fe d2 38 55 e6 ea |.,..K..w....8U..| -000003c0 ec 12 90 ba f5 c7 5d 87 cd f1 35 5b 5b 8e d9 a4 |......]...5[[...| -000003d0 a5 04 17 03 03 00 35 84 59 aa d7 a6 cb 73 41 df |......5.Y....sA.| -000003e0 55 60 eb 39 3d 38 e4 84 96 72 40 ac 90 f4 38 59 |U`.9=8...r@...8Y| -000003f0 be 17 59 ee fa 51 cf 03 1a ec 6a 88 c2 bb 82 3a |..Y..Q....j....:| -00000400 11 3b 62 50 3c a5 4a c7 0e e7 e5 a8 |.;bP<.J.....| +00000060 3b 16 53 b1 b9 87 04 07 c6 35 62 02 6b d1 d6 e6 |;.S......5b.k...| +00000070 06 54 aa eb 03 ab b3 69 79 0f 86 77 1b 09 0c 70 |.T.....iy..w...p| +00000080 2e 7d 09 86 1c df d9 a0 67 5c 87 75 f6 0d 1b 3b |.}......g\.u...;| +00000090 fd 0a 21 e2 2c 47 e4 be 60 79 f8 b4 e0 36 9f 1e |..!.,G..`y...6..| +000000a0 14 03 03 00 01 01 17 03 03 00 17 b5 fa 96 8c 5b |...............[| +000000b0 2b 29 ea 48 bb 2f ef d2 f2 b6 46 6c 06 9a a6 6d |+).H./....Fl...m| +000000c0 b5 d9 17 03 03 02 6d 54 d1 a7 bb 4a 57 68 0f 8d |......mT...JWh..| +000000d0 d9 1f 9c 8d da a4 30 4f 03 74 3e b7 5f 62 9e cc |......0O.t>._b..| +000000e0 5d bb df 24 57 db 11 f4 84 e4 65 a2 98 cf bf 27 |]..$W.....e....'| +000000f0 75 ae 70 3b f8 15 b0 d4 3f e5 50 76 1b 12 fe 41 |u.p;....?.Pv...A| +00000100 cb d3 f4 7b b8 e5 93 2f 25 87 e0 da ba ce 2e ee |...{.../%.......| +00000110 dc ee 2d ae dd e0 d2 2c 55 f8 ff e3 53 d2 c4 b5 |..-....,U...S...| +00000120 0e dc cd 5f d9 4b dc 6b 6f e1 c8 bb 05 aa 6c 4f |..._.K.ko.....lO| +00000130 e9 ee 89 c8 fe 90 ee 37 21 94 c5 7b 06 3c e0 d6 |.......7!..{.<..| +00000140 bd 94 45 96 9c 72 d3 24 cd e7 a4 14 67 5a b3 24 |..E..r.$....gZ.$| +00000150 8c a4 5e 95 bb 5a 1a 83 a5 75 00 b6 9c 3f b4 23 |..^..Z...u...?.#| +00000160 57 ae 19 cb c8 ae ed 17 9a 1a ed 9a c7 51 48 2b |W............QH+| +00000170 1e 35 a5 a3 fa 58 3d 6b e2 06 93 4d 7b 0b 22 cd |.5...X=k...M{.".| +00000180 11 22 33 59 b0 21 88 97 ca 11 a6 35 4d 7a ef d0 |."3Y.!.....5Mz..| +00000190 01 b7 da 3c 32 ce ee 50 d5 cf 3f 17 a5 8f 6c 61 |...<2..P..?...la| +000001a0 8c b0 d2 4f c5 53 43 9a d7 24 1f b0 75 ef fb 14 |...O.SC..$..u...| +000001b0 c6 96 fd 2e 80 d2 9a 8a 9b 69 e0 f5 78 60 a3 47 |.........i..x`.G| +000001c0 36 41 c1 7e 26 d9 9c c3 93 f8 c7 7c 20 77 de 1a |6A.~&......| w..| +000001d0 d9 33 0c 9f 60 89 e2 ac 08 df 34 92 23 fe 6a e6 |.3..`.....4.#.j.| +000001e0 ec bc 51 3f 2f ec 95 38 39 5a e1 12 3b ca ca bb |..Q?/..89Z..;...| +000001f0 be 5d 87 71 4d 9a 2e 04 6c 8b 01 34 bb 71 09 45 |.].qM...l..4.q.E| +00000200 60 a6 bd e2 33 30 04 bb 89 bc 79 01 84 06 73 04 |`...30....y...s.| +00000210 c7 5e af 9f ad f6 62 c5 32 46 69 41 7a 31 56 e9 |.^....b.2FiAz1V.| +00000220 01 5f 65 9f 6b 15 21 d4 a6 ba 3c 45 d7 9e cd 4a |._e.k.!.....| +00000350 02 21 70 2c 25 a3 23 42 08 63 9b 34 0d 88 62 ae |.!p,%.#B.c.4..b.| +00000360 2c 8f ed 91 c6 2d 78 9f bf e3 16 bb b1 83 99 e4 |,....-x.........| +00000370 72 fd 31 ec c3 4f 16 b6 98 d8 d5 d8 46 85 a7 32 |r.1..O......F..2| +00000380 51 d8 b4 0c 9e 31 a3 e6 80 31 ee d1 d8 e6 ad f2 |Q....1...1......| +00000390 d5 3d 73 1d 17 5a 73 e4 f1 ac a8 ca 7f 24 a9 76 |.=s..Zs......$.v| +000003a0 77 28 33 60 c3 fb dd d8 bd bd 38 f5 e5 fc 12 aa |w(3`......8.....| +000003b0 34 c4 c8 24 07 db 59 fe 46 ab ab a6 20 77 44 25 |4..$..Y.F... wD%| +000003c0 d5 27 7c 97 14 ef 01 8a 4c 3a 2b e8 ac 8d c9 05 |.'|.....L:+.....| +000003d0 d8 12 17 03 03 00 35 7b 1a ff 01 f0 d6 9b 24 e2 |......5{......$.| +000003e0 e4 50 54 33 21 2b 58 6d 88 4c d7 fd a9 5a d8 6d |.PT3!+Xm.L...Z.m| +000003f0 78 13 9f 09 8f 8c 1d 3a bc 76 c7 f6 95 9c 4d 04 |x......:.v....M.| +00000400 92 06 e4 82 d1 77 24 da 05 49 4e 52 |.....w$..INR| >>> Flow 3 (client to server) -00000000 17 03 03 00 35 ea 0d 79 a3 d3 98 d9 41 c1 f0 0f |....5..y....A...| -00000010 43 e6 77 23 c7 e2 ca 20 27 ed de 0b 89 fd 2b 60 |C.w#... '.....+`| -00000020 cc c0 09 b2 d1 9c 50 c2 de 79 1f af cb 18 1b df |......P..y......| -00000030 e5 63 33 21 f7 36 35 f5 83 bd 17 03 03 00 17 a4 |.c3!.65.........| -00000040 03 32 95 72 e9 81 7a dc 86 92 d4 d3 6e 27 31 6e |.2.r..z.....n'1n| -00000050 fb 5e f3 4d f7 cb 17 03 03 00 13 69 ad fb c5 d1 |.^.M.......i....| -00000060 8e 3f 20 f5 70 18 41 8f 91 9d 23 58 26 75 |.? .p.A...#X&u| +00000000 14 03 03 00 01 01 17 03 03 00 35 6f 4f 2f 2f c7 |..........5oO//.| +00000010 73 95 d9 6a ea 12 1f e4 a0 ea a0 c5 10 8b 57 99 |s..j..........W.| +00000020 5b 6f 33 ae 14 f8 97 55 7d c2 4a 18 a7 6c 5d a8 |[o3....U}.J..l].| +00000030 3b 33 6f fd 1e b2 78 4a 02 3f 50 b6 f5 0a 52 88 |;3o...xJ.?P...R.| +00000040 17 03 03 00 17 c6 b1 65 78 2e 41 4e a8 a6 68 21 |.......ex.AN..h!| +00000050 27 41 d6 8b cf 69 c4 79 6a a9 93 1e |'A...i.yj...| +>>> Flow 4 (server to client) +00000000 17 03 03 00 ea 38 4c b2 c8 55 46 fe 6f e7 fe 59 |.....8L..UF.o..Y| +00000010 16 64 0d 78 97 f3 13 b1 6a 64 2b ed 64 d8 c0 96 |.d.x....jd+.d...| +00000020 5c 52 45 ba ac 9c b0 42 14 81 15 99 79 c9 75 7c |\RE....B....y.u|| +00000030 41 a4 15 90 7c 2c 8d 7f 75 43 37 1e 26 8f 74 a2 |A...|,..uC7.&.t.| +00000040 13 45 40 1b ec df f6 a8 fa 75 3d e0 29 7e b9 00 |.E@......u=.)~..| +00000050 aa b9 c5 60 dd 87 ac dc 44 74 17 0d ed 5a 50 b6 |...`....Dt...ZP.| +00000060 8f 4e ee 4e d0 a7 97 fc 73 ef 9b 09 d3 ca aa 92 |.N.N....s.......| +00000070 e9 32 61 9e 18 62 67 20 10 2c e5 18 fd 49 d9 76 |.2a..bg .,...I.v| +00000080 68 9a 61 c3 be fc 1e 7c 9e ca ed 8c c5 40 dc 03 |h.a....|.....@..| +00000090 3f 54 39 7e 3a 2a ec 78 a4 a0 91 14 30 cf 8f 9d |?T9~:*.x....0...| +000000a0 a9 c3 5b ba 1b 47 93 83 49 e2 dd fc c7 2b a3 11 |..[..G..I....+..| +000000b0 27 3c dd 35 46 ef 06 d6 89 e6 81 13 c4 61 7f 47 |'<.5F........a.G| +000000c0 5b ea b1 55 4e 6b 04 75 d1 4a a2 dc 1e 22 20 24 |[..UNk.u.J..." $| +000000d0 f3 13 2a 63 b7 f4 51 ca 32 3c 82 75 49 e4 29 76 |..*c..Q.2<.uI.)v| +000000e0 eb 19 20 d5 98 b0 03 9a 02 9f 1f 7e de ca 19 17 |.. ........~....| +000000f0 03 03 00 ea 72 3d f9 82 80 34 d2 b3 a3 bd e8 cc |....r=...4......| +00000100 34 a2 0b 9f 40 c2 07 28 e8 55 5b 73 ce e5 4c 64 |4...@..(.U[s..Ld| +00000110 54 8e 6b 16 22 b4 00 1c 81 1b c4 ec 2b 0b a1 9c |T.k.".......+...| +00000120 10 27 a4 d1 14 d7 4c 65 1e 0f 84 de a3 3e 0e eb |.'....Le.....>..| +00000130 46 db 04 f6 dd c4 7f 17 42 96 39 0d e7 2a ca f3 |F.......B.9..*..| +00000140 ab fb 9b f2 4b a0 fc 8f ba 16 97 bc ce 39 78 b9 |....K........9x.| +00000150 fe 81 c9 de e2 c0 56 df 15 d0 ef d6 02 14 52 4b |......V.......RK| +00000160 a7 70 ee 46 34 22 6c 53 df b0 61 4e 79 de ad ad |.p.F4"lS..aNy...| +00000170 d0 c7 e7 0f fe 02 cd 68 6b e0 57 40 54 f9 7d 57 |.......hk.W@T.}W| +00000180 42 bb 0b 63 a7 68 a0 c6 c9 92 af 5b e6 d6 ec e3 |B..c.h.....[....| +00000190 10 a3 07 ac 2e 9a 88 a9 ec 20 47 77 22 c8 54 08 |......... Gw".T.| +000001a0 90 19 ca 1e 01 a9 92 3e c9 cf 70 92 5b 90 7a 75 |.......>..p.[.zu| +000001b0 95 15 d5 e2 e2 13 6e 45 1a 51 ae e0 e0 6c 39 ed |......nE.Q...l9.| +000001c0 6c ef c4 c0 c4 29 f5 a2 c1 b4 a9 e9 73 fc dc a4 |l....)......s...| +000001d0 ea 90 ec bc 33 bf 7c 94 7f e8 ed 54 e2 19 |....3.|....T..| +>>> Flow 5 (client to server) +00000000 17 03 03 00 13 ca f6 56 a8 93 c9 5c ad 35 01 39 |.......V...\.5.9| +00000010 17 11 3c fb a7 94 d6 e5 |..<.....| diff --git a/testdata/Client-TLSv13-X25519-ECDHE b/testdata/Client-TLSv13-X25519-ECDHE index c8ecf83..3dea0ac 100644 --- a/testdata/Client-TLSv13-X25519-ECDHE +++ b/testdata/Client-TLSv13-X25519-ECDHE @@ -16,74 +16,105 @@ 000000e0 28 da ac 5f bb 29 07 30 ff f6 84 af c4 cf c2 ed |(.._.).0........| 000000f0 90 99 5f 58 cb 3b 74 |.._X.;t| >>> Flow 2 (server to client) -00000000 16 03 03 00 7a 02 00 00 76 03 03 89 a2 c7 e7 3a |....z...v......:| -00000010 1e 5c a5 51 bd ad 35 de 3d 36 f6 ac ce 57 d0 f1 |.\.Q..5.=6...W..| -00000020 e4 c4 42 3f 1d c3 2b 13 a7 0f 20 20 00 00 00 00 |..B?..+... ....| +00000000 16 03 03 00 7a 02 00 00 76 03 03 ff 75 f5 a2 e7 |....z...v...u...| +00000010 a6 49 83 90 e7 aa ad d6 71 53 82 9d 1c 0b 4a 8a |.I......qS....J.| +00000020 ea 06 7d e6 95 72 d8 f5 52 31 9a 20 00 00 00 00 |..}..r..R1. ....| 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 13 01 00 00 |................| -00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 94 |..+.....3.$... .| -00000060 b6 b9 7b 23 f1 28 d5 b6 96 5a ec e4 03 52 68 5a |..{#.(...Z...RhZ| -00000070 23 2e bf c3 cc 2b 0b e8 06 c1 b4 34 52 1f 28 14 |#....+.....4R.(.| -00000080 03 03 00 01 01 17 03 03 00 17 31 ef c3 81 8c d9 |..........1.....| -00000090 9d 98 71 b8 08 27 0e d6 c1 35 09 58 36 38 bc cc |..q..'...5.X68..| -000000a0 a9 17 03 03 02 6d 25 2e 10 a3 aa b1 6a cd 7c ed |.....m%.....j.|.| -000000b0 78 ab 43 5d c8 1f 60 51 00 83 49 59 ac 95 bd 87 |x.C]..`Q..IY....| -000000c0 98 a7 cd 1e 4d 65 d6 bd 76 78 a9 77 e5 0e 44 73 |....Me..vx.w..Ds| -000000d0 1f 5f 24 64 fc 05 02 9e 0d 70 de 04 dc b2 7e d3 |._$d.....p....~.| -000000e0 ee 8d 2e e4 1e 6d 02 dd 45 b8 69 14 46 f5 02 a6 |.....m..E.i.F...| -000000f0 f1 53 10 02 3a 84 1b 12 d9 cb 64 70 87 8b 1f f5 |.S..:.....dp....| -00000100 51 d7 02 a8 93 2c 48 14 f6 d6 bd f3 48 f0 7c 10 |Q....,H.....H.|.| -00000110 82 f7 b2 97 22 26 15 1a 67 4a 0e ca 7c 41 ee 08 |...."&..gJ..|A..| -00000120 78 b6 44 e1 17 78 9a a1 32 d6 68 99 9d a1 4f e1 |x.D..x..2.h...O.| -00000130 88 7e 3c 73 67 76 47 68 5c 88 21 e1 2b 5c 87 37 |.~.| -000001c0 76 71 d1 ba 52 2e 7c e8 01 49 b6 61 e0 e7 17 c1 |vq..R.|..I.a....| -000001d0 38 35 fd fa 4d 90 02 eb c6 b2 a4 d7 a1 ef 4a 4c |85..M.........JL| -000001e0 61 90 a3 0c 00 f2 9b d4 de ce 98 77 fc 54 ef 57 |a..........w.T.W| -000001f0 81 93 06 60 a1 9a da 9d 92 23 28 db 1e 60 3b 6e |...`.....#(..`;n| -00000200 15 18 2d 60 ee f6 60 ed e6 1a 41 a2 62 0a de f5 |..-`..`...A.b...| -00000210 c4 a1 53 d2 16 e8 92 dd 43 7b 6a 26 8b 83 27 42 |..S.....C{j&..'B| -00000220 85 36 6f 73 e9 e2 68 aa 32 e2 28 58 0a eb 1a 7e |.6os..h.2.(X...~| -00000230 d3 b1 cf e7 02 3f c4 25 85 89 80 ab 57 b4 82 2c |.....?.%....W..,| -00000240 90 2a f7 ea 2f 97 59 16 21 d1 79 a8 67 53 a3 61 |.*../.Y.!.y.gS.a| -00000250 1b fa 9a a4 4f dc 66 72 fd 0e ff 31 e0 8f 3a 54 |....O.fr...1..:T| -00000260 63 ee 13 2a d7 af 62 53 3c 19 b5 7d fc 8b 4b 12 |c..*..bS<..}..K.| -00000270 e1 a6 16 a7 28 54 b9 d9 a9 30 08 42 18 11 3b 53 |....(T...0.B..;S| -00000280 98 b1 72 9a 3e 46 9a b5 86 5e e2 6d d7 00 17 6b |..r.>F...^.m...k| -00000290 00 78 35 66 46 03 cb c7 6e 24 32 1b 1d 06 59 96 |.x5fF...n$2...Y.| -000002a0 43 e1 1a bb e5 b6 df 58 bd ec 90 bf b2 2f dd 79 |C......X...../.y| -000002b0 74 21 8d bd 6a ed 63 ee ed 19 43 96 58 c8 55 b5 |t!..j.c...C.X.U.| -000002c0 2f 6e a8 7f 5c fe cd 56 b0 9e e8 03 63 ab be e4 |/n..\..V....c...| -000002d0 45 e0 b8 a0 6c cb 37 dc b8 a4 a1 cd bc c5 09 78 |E...l.7........x| -000002e0 ea d7 00 26 bf f1 fb 02 1e 46 1a ce ca f5 5c 56 |...&.....F....\V| -000002f0 73 42 a7 32 20 09 70 4b 1c bb ca 79 6d ad 8a 6c |sB.2 .pK...ym..l| -00000300 3f 4a e1 b1 1e d4 76 9d 89 91 20 76 cd f6 99 92 |?J....v... v....| -00000310 de 64 00 17 03 03 00 99 7f af 97 d5 ba 57 8a e8 |.d...........W..| -00000320 c7 c7 7c a6 fc 46 50 80 aa 49 36 3a d0 61 42 7e |..|..FP..I6:.aB~| -00000330 8d 0e 3d b4 b2 82 d5 79 51 47 1c 72 79 ed 56 ff |..=....yQG.ry.V.| -00000340 0d 95 dd a5 84 b1 ac 6d 3d 87 66 ce bf 41 c9 64 |.......m=.f..A.d| -00000350 8f 6f 91 e7 24 ff 04 30 83 77 40 33 17 da 57 5b |.o..$..0.w@3..W[| -00000360 55 be a9 a6 bd 62 2c 24 56 c8 cb a1 68 24 73 97 |U....b,$V...h$s.| -00000370 2b ab d3 a8 3b 7d df ac 81 3c 85 d3 35 16 86 c8 |+...;}...<..5...| -00000380 92 a9 a6 95 f2 1d 40 7c a1 85 a9 6d ac 4a 44 82 |......@|...m.JD.| -00000390 ec 92 26 04 b8 e2 65 3e e9 dc cb e5 d1 0a 1f a7 |..&...e>........| -000003a0 2f a5 7a 9c 7c 62 0f 4e 8a 99 53 99 02 18 09 6f |/.z.|b.N..S....o| -000003b0 64 17 03 03 00 35 62 08 e9 3d d4 bc 4c 22 ef fb |d....5b..=..L"..| -000003c0 e0 30 cc fb 85 c9 0a 2d 71 f5 06 da 17 dc 94 e0 |.0.....-q.......| -000003d0 11 7d bb 45 cf b4 32 e5 56 1d 51 e1 74 11 ef 52 |.}.E..2.V.Q.t..R| -000003e0 27 e6 3f 18 3f 72 65 6d b3 79 7a |'.?.?rem.yz| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 37 |..+.....3.$... 7| +00000060 7b a6 43 94 9b 0f 95 5e 65 65 f3 50 25 27 d2 c6 |{.C....^ee.P%'..| +00000070 40 03 1e a3 2f f4 8f c3 a0 f5 62 21 86 0e 32 14 |@.../.....b!..2.| +00000080 03 03 00 01 01 17 03 03 00 17 4c 11 25 b7 37 16 |..........L.%.7.| +00000090 50 0f b8 58 72 30 37 e2 25 10 6c 39 9f 7b bf b5 |P..Xr07.%.l9.{..| +000000a0 53 17 03 03 02 6d 03 5c 76 8c 92 4d 9e f7 75 8b |S....m.\v..M..u.| +000000b0 31 48 b9 f9 43 c1 cf 87 3d 5e dc 10 e4 4a 57 86 |1H..C...=^...JW.| +000000c0 f4 45 f0 9f e2 c3 ac eb c0 c0 0e 9c d5 7f 8a 07 |.E..............| +000000d0 c7 ca d4 9a cd a0 7b 14 c7 b3 da d2 29 19 c6 e3 |......{.....)...| +000000e0 f5 78 e0 fc 61 4e 6a f1 1a 3d b1 ba 91 5b 5d c5 |.x..aNj..=...[].| +000000f0 77 51 13 6a 6b 6a 68 ba 76 11 df af 6f 75 cf e9 |wQ.jkjh.v...ou..| +00000100 08 a8 69 05 ae 1f d4 b2 aa a8 95 a2 22 2d 6e e5 |..i........."-n.| +00000110 fb 18 ac 8c 84 77 56 17 8d 94 c3 25 59 59 b9 c6 |.....wV....%YY..| +00000120 1a c1 f2 cd f9 41 75 64 3b 19 ff 1c 4e 7c fc 84 |.....Aud;...N|..| +00000130 bb 42 12 57 2c d4 e1 0f 73 ae 1a 80 af e5 66 9f |.B.W,...s.....f.| +00000140 24 93 68 ef 41 6e 52 c7 c4 8a 50 66 2c dd ec fb |$.h.AnR...Pf,...| +00000150 75 e7 cd c0 83 cd d3 ce fc 9c 2c af 2b 86 8d 58 |u.........,.+..X| +00000160 50 05 82 dd 03 5a 89 cd 59 13 aa d6 dd 50 86 48 |P....Z..Y....P.H| +00000170 64 a6 ad 12 90 6a 72 78 30 77 dc e1 f1 f5 30 a3 |d....jrx0w....0.| +00000180 d3 86 60 9c bc 7f ae 28 9a f6 0c 8a 54 0c 78 a8 |..`....(....T.x.| +00000190 e5 1f 61 73 a2 25 11 7a 92 50 59 af 67 e4 67 bf |..as.%.z.PY.g.g.| +000001a0 c6 36 02 fc 83 77 b4 2c b2 a3 ab f6 43 68 29 ff |.6...w.,....Ch).| +000001b0 28 1c 9c bb c9 bb dc 89 d1 fa b9 1d 54 d8 bf 2b |(...........T..+| +000001c0 98 8c c6 df 5c bf 22 db 2d 95 2a 22 89 aa 10 98 |....\.".-.*"....| +000001d0 66 a8 04 24 6d 44 19 2c 44 f5 80 fb be a5 84 41 |f..$mD.,D......A| +000001e0 17 ab 01 81 a4 3e 1f 6a fc d0 c2 af d4 fb 48 d3 |.....>.j......H.| +000001f0 d8 a7 d6 af e7 f6 0d 6f 84 76 e5 27 6d 61 a0 95 |.......o.v.'ma..| +00000200 cd 3c 72 c3 c3 12 61 d1 23 6f a3 3a 15 3c e1 56 |.| +00000290 ec b5 d2 15 9c 44 cd f6 f2 65 01 ac d4 b0 7b 31 |.....D...e....{1| +000002a0 96 5d d3 cb ee ba 29 ee da 20 dc 39 25 f9 b8 77 |.]....).. .9%..w| +000002b0 b1 56 e2 72 a2 1d ca 65 69 e6 31 79 b8 cd bb 70 |.V.r...ei.1y...p| +000002c0 00 15 0b 47 e3 b5 00 e1 f1 4e 83 ca e9 2d 84 c3 |...G.....N...-..| +000002d0 69 99 95 43 bf 89 b3 22 7b ca 17 9b 46 b6 fa 3f |i..C..."{...F..?| +000002e0 21 05 87 ea 60 f6 3b ea a8 e8 30 2a c8 aa d9 9a |!...`.;...0*....| +000002f0 e8 4f 15 48 f1 50 54 68 b3 4e 7b e8 8c f2 78 ea |.O.H.PTh.N{...x.| +00000300 32 7c ed e1 32 96 90 6e 46 be 28 bb e0 d6 60 4b |2|..2..nF.(...`K| +00000310 48 fe 5a 17 03 03 00 99 bc bd b8 1f c4 f4 be 7e |H.Z............~| +00000320 e0 cc 0d 79 fe d7 ed 73 d9 c4 80 f3 e3 0a d3 26 |...y...s.......&| +00000330 d5 d7 7d f4 5f c1 56 6a 2c 03 b4 70 46 4d 88 67 |..}._.Vj,..pFM.g| +00000340 d2 43 6c 67 4d 2f e1 89 ff bc 9d 70 c7 de 24 0f |.ClgM/.....p..$.| +00000350 01 53 82 53 d4 20 30 93 8d 70 5d 3f bd b1 a8 d3 |.S.S. 0..p]?....| +00000360 d3 46 aa fa d0 2b 9b 70 de 3c f3 1c a4 75 d8 a0 |.F...+.p.<...u..| +00000370 6a 14 7d ec ad 6f 01 c1 d4 e0 f2 33 1a 1b 71 a8 |j.}..o.....3..q.| +00000380 74 3d 4c dc 64 fe b9 3b 52 22 39 13 71 19 78 7c |t=L.d..;R"9.q.x|| +00000390 bf 9d 06 0d 0d 27 4d b6 35 8a 44 f4 4f b9 f7 55 |.....'M.5.D.O..U| +000003a0 d4 ba f5 ac 05 5b e5 ac 07 8e 49 7a 93 cf 3f 78 |.....[....Iz..?x| +000003b0 fe 17 03 03 00 35 07 76 8c 10 f4 e8 70 e9 c6 12 |.....5.v....p...| +000003c0 2d c8 ee 2f b3 6a 72 59 93 ae 8d af 00 8b 7e 5f |-../.jrY......~_| +000003d0 2a 33 87 dc 92 a9 7f e4 eb b4 09 8e 57 0f 02 16 |*3..........W...| +000003e0 31 13 32 fe c5 88 fc b2 28 56 e5 |1.2.....(V.| >>> Flow 3 (client to server) -00000000 17 03 03 00 35 92 2e 10 eb db 73 85 b8 85 d6 a3 |....5.....s.....| -00000010 87 c6 18 71 f7 63 06 ed 7e 54 3b 5b a6 dd a8 70 |...q.c..~T;[...p| -00000020 c4 94 12 e2 c3 cd 5c a5 af e2 64 9d eb 36 f5 dc |......\...d..6..| -00000030 16 f1 12 ea 5c 95 65 1e 4b dd 17 03 03 00 17 ba |....\.e.K.......| -00000040 be 5d 51 b5 c3 d6 b8 dc a5 38 85 4a 51 0e c7 ca |.]Q......8.JQ...| -00000050 a9 70 0b c7 1c 59 17 03 03 00 13 4d c9 3f 33 6b |.p...Y.....M.?3k| -00000060 27 87 88 73 da 3e 74 b2 18 fc 04 59 fc d9 |'..s.>t....Y..| +00000000 14 03 03 00 01 01 17 03 03 00 35 73 82 31 66 2c |..........5s.1f,| +00000010 6e 22 2d 6f b5 30 4d db eb f0 91 2e b1 11 6d 0e |n"-o.0M.......m.| +00000020 ca 50 e6 ce 92 bc 44 8c e4 e4 3b 8f 13 82 6e 9c |.P....D...;...n.| +00000030 bb 25 bc 36 e8 27 5a c1 8f ed 6d fc f1 8c 8a e1 |.%.6.'Z...m.....| +00000040 17 03 03 00 17 66 bb ee 75 14 79 25 af 92 97 ad |.....f..u.y%....| +00000050 ac 26 bf 2e 37 c1 12 e2 ab 65 1f ac |.&..7....e..| +>>> Flow 4 (server to client) +00000000 17 03 03 00 da 19 f9 46 cf 64 be 58 bf d0 24 37 |.......F.d.X..$7| +00000010 9d 7a 91 0d 24 60 d7 a7 b8 8f dc ca db e2 b3 c6 |.z..$`..........| +00000020 ec 6e 30 f6 88 8b c9 18 92 b8 f1 06 09 82 49 c5 |.n0...........I.| +00000030 89 9b a0 76 8e 55 e0 52 ca 12 88 ef dc 62 7c ad |...v.U.R.....b|.| +00000040 b1 66 cb 23 b9 3b 7f 4f d9 da 02 d8 9c c2 f8 66 |.f.#.;.O.......f| +00000050 26 60 57 a7 99 76 d2 de 15 98 e5 9f b5 b0 54 82 |&`W..v........T.| +00000060 a9 88 76 25 aa bd 10 7b 47 0b 3d e4 c4 a2 fd 5f |..v%...{G.=...._| +00000070 71 da aa 6b 4b e4 77 1e 85 7c f0 6d b8 f2 5b f3 |q..kK.w..|.m..[.| +00000080 df 73 1e df a0 60 bb 8e 53 4b 5b ac 16 49 aa 15 |.s...`..SK[..I..| +00000090 11 bf e1 91 a1 03 df 3d 5f 68 a0 93 08 53 c8 98 |.......=_h...S..| +000000a0 77 b9 22 70 63 44 21 23 22 0c 27 2f b3 22 fd 47 |w."pcD!#".'/.".G| +000000b0 a1 b9 27 8c 10 b0 e7 db 36 d1 0f 45 d4 59 24 cd |..'.....6..E.Y$.| +000000c0 84 db 5f e1 db 8f f8 a6 d7 11 04 6f b4 10 e7 48 |.._........o...H| +000000d0 f7 50 4e 32 f4 a0 ed 37 04 0d 6b f9 7d 30 e8 17 |.PN2...7..k.}0..| +000000e0 03 03 00 da 22 55 eb fb b6 0d 36 a1 46 10 2c 0a |...."U....6.F.,.| +000000f0 22 00 59 c0 e2 69 98 4d f8 38 4b 23 d0 49 a2 3e |".Y..i.M.8K#.I.>| +00000100 d6 f3 64 f7 e1 47 39 a4 90 a5 17 81 c4 9a 2a 0f |..d..G9.......*.| +00000110 6f e9 71 9a 9e e5 c6 e4 5b fe 91 4a 78 68 9b d7 |o.q.....[..Jxh..| +00000120 3e 2b c4 81 cd 0b 7a 1a a0 5d 85 5b 49 db 15 0b |>+....z..].[I...| +00000130 c8 90 34 e6 8e 5f 44 4e 85 07 23 4c aa 41 8a 94 |..4.._DN..#L.A..| +00000140 49 87 69 39 e3 0c 6f 80 19 7c 81 4a 8a 42 5b ed |I.i9..o..|.J.B[.| +00000150 1d 65 0b 7e f0 28 60 87 24 ce 23 4e 34 6e f2 10 |.e.~.(`.$.#N4n..| +00000160 91 85 b1 a0 10 6c ec 30 c0 c3 dd b7 d8 eb 59 71 |.....l.0......Yq| +00000170 80 20 8a 58 f1 79 f7 70 e9 fa d5 12 58 fd 68 06 |. .X.y.p....X.h.| +00000180 66 3e 0a 21 4d 9c aa df 92 fc b4 1f 20 e4 df 98 |f>.!M....... ...| +00000190 c4 11 e1 7b 1f 55 6c e5 75 c1 b9 b6 29 91 85 58 |...{.Ul.u...)..X| +000001a0 85 a0 7c 9f 29 ea 51 3e 4a 93 21 e6 3a ce 69 c5 |..|.).Q>J.!.:.i.| +000001b0 60 77 ca fc 04 13 f7 6e ce 14 73 8d 21 b1 |`w.....n..s.!.| +>>> Flow 5 (client to server) +00000000 17 03 03 00 13 03 3a 80 ef 54 48 49 d8 a1 d8 66 |......:..THI...f| +00000010 3d 5b 76 16 c0 d6 68 5e |=[v...h^| diff --git a/testdata/Server-TLSv13-AES128-SHA256 b/testdata/Server-TLSv13-AES128-SHA256 index 049d2ff..fcc1a49 100644 --- a/testdata/Server-TLSv13-AES128-SHA256 +++ b/testdata/Server-TLSv13-AES128-SHA256 @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 dc 01 00 00 d8 03 03 f8 75 ee c1 65 |............u..e| -00000010 31 d9 dd 36 00 f6 b0 f0 a8 d6 a0 42 da d1 8a a3 |1..6.......B....| -00000020 17 82 1a 44 14 6e bc 43 e0 4b 89 20 88 b8 53 ac |...D.n.C.K. ..S.| -00000030 16 d5 64 58 23 21 20 c4 0b 8d 96 d7 db 59 44 3d |..dX#! ......YD=| -00000040 9e 67 9b f8 a8 21 6c 6d 02 54 a9 b6 00 04 13 01 |.g...!lm.T......| +00000000 16 03 01 00 dc 01 00 00 d8 03 03 f7 9c d1 5f 55 |.............._U| +00000010 eb 97 fd e1 e6 95 50 97 d0 c6 ad ca e0 08 a0 f5 |......P.........| +00000020 ae 38 9e 60 28 e9 dc 06 3c 54 c5 20 46 14 c7 70 |.8.`(...>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 88 b8 53 ac |........... ..S.| -00000030 16 d5 64 58 23 21 20 c4 0b 8d 96 d7 db 59 44 3d |..dX#! ......YD=| -00000040 9e 67 9b f8 a8 21 6c 6d 02 54 a9 b6 13 01 00 00 |.g...!lm.T......| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 46 14 c7 70 |........... F..p| +00000030 69 0d f2 97 27 19 5e 26 3a 1a 3a 70 ec bd 5b 98 |i...'.^&:.:p..[.| +00000040 37 15 49 09 f9 6a e5 d9 24 a7 df 49 13 01 00 00 |7.I..j..$..I....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| -00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| -00000080 03 03 00 17 ff de 7b 26 44 70 00 05 64 fc 65 e3 |......{&Dp..d.e.| -00000090 23 fd ea 4b b3 d0 e6 80 db 2b 4c 17 03 03 02 6d |#..K.....+L....m| -000000a0 8f 7b 9c 1f b5 a8 26 b3 89 76 13 7f a2 9a 9b e3 |.{....&..v......| -000000b0 b8 06 c3 ff 02 c2 41 8e 29 fd f4 45 43 d3 57 23 |......A.)..EC.W#| -000000c0 71 32 03 31 24 2b 73 ca 7a df e9 79 4e 96 7c d5 |q2.1$+s.z..yN.|.| -000000d0 f1 19 05 11 1c cf 5f 85 30 e5 32 2c 61 2c d2 40 |......_.0.2,a,.@| -000000e0 25 c0 72 2c f8 ef d2 8d d9 4f 81 88 cc 9f c0 71 |%.r,.....O.....q| -000000f0 97 9e 79 f4 33 e8 75 47 1e 5a c1 02 20 48 6f a4 |..y.3.uG.Z.. Ho.| -00000100 41 d6 37 73 07 ad 90 37 80 d7 f9 c1 59 96 9f a8 |A.7s...7....Y...| -00000110 e4 f5 e4 65 99 02 a3 69 95 e1 39 07 fb a8 ac 6d |...e...i..9....m| -00000120 40 fb de 64 05 5b b4 32 ba 09 da 92 0a ba 1e 11 |@..d.[.2........| -00000130 3f d3 bd 6d 68 f7 15 d3 74 60 18 cd 96 04 2f db |?..mh...t`..../.| -00000140 c5 09 f2 05 5f 82 8b 23 65 00 7c b7 d5 ef 1d 0e |...._..#e.|.....| -00000150 3a 08 2b c9 6d 99 9b 9a a6 55 2c df 08 c0 4a b1 |:.+.m....U,...J.| -00000160 b3 69 9c d9 68 49 43 28 8e 00 c5 e1 60 07 25 4d |.i..hIC(....`.%M| -00000170 aa 61 2e 74 82 49 62 e0 a8 f0 53 6c 64 ea fc cc |.a.t.Ib...Sld...| -00000180 84 ab 26 b6 b8 ef 55 cd 3d 34 1a 65 25 8f 76 f4 |..&...U.=4.e%.v.| -00000190 dc 06 9b 67 98 59 c1 37 86 0f 24 34 86 b5 a3 dd |...g.Y.7..$4....| -000001a0 5b d4 c8 04 cb 73 e1 67 bb 66 d7 94 16 eb 3b 73 |[....s.g.f....;s| -000001b0 7e 67 8d 7f bf e9 f9 89 6d d8 6a a9 3c 97 eb 67 |~g......m.j.<..g| -000001c0 f0 6f fa 9b 4d f0 25 25 a2 30 1d 3c 93 14 6e 33 |.o..M.%%.0.<..n3| -000001d0 fa bf 5b 3c c3 cc f4 0e fa 55 e2 20 46 3f 1c b7 |..[<.....U. F?..| -000001e0 9d d3 ec d8 54 18 0b 4a be 45 bd 5e a1 3a f2 e9 |....T..J.E.^.:..| -000001f0 15 b0 15 a4 b4 a6 f5 52 36 9b 6b 18 ce ac 37 ae |.......R6.k...7.| -00000200 76 e6 2c d1 6b 3f 95 eb 37 79 fe ec cc a6 34 4a |v.,.k?..7y....4J| -00000210 27 68 0e d0 80 d8 5c 1c 9c ac aa 02 18 e7 c1 72 |'h....\........r| -00000220 08 52 07 63 04 65 13 53 23 51 ce 0e f4 1d 4f ca |.R.c.e.S#Q....O.| -00000230 51 13 ad 10 1b f3 a4 c3 69 ce c0 ed d1 25 6c 60 |Q.......i....%l`| -00000240 e7 21 9e d7 9f 8b a1 20 61 75 f6 e0 06 c4 dd bb |.!..... au......| -00000250 8e e2 05 86 ef fe 75 0e 47 ae 54 82 e9 32 9b 87 |......u.G.T..2..| -00000260 fb eb e4 14 e3 f0 90 1d 48 72 00 02 53 52 24 47 |........Hr..SR$G| -00000270 98 a1 cc b9 b3 8d ab a7 db b0 f5 83 db 56 a1 ad |.............V..| -00000280 7d 45 e7 5f 6a bd a9 65 87 8c 48 1f de dc b4 ce |}E._j..e..H.....| -00000290 47 7c ec 63 fb 77 f3 5a a0 3b 84 53 cf 8b 73 30 |G|.c.w.Z.;.S..s0| -000002a0 bd 0f ac 5a 9b e8 a1 88 f6 45 96 ca b9 48 c3 be |...Z.....E...H..| -000002b0 8b 7e f1 1a fd 8a 54 9e 5a 76 e7 9a bc 06 7e 04 |.~....T.Zv....~.| -000002c0 bd e1 a1 a3 4d 52 56 3b 64 29 70 87 89 c5 f5 ce |....MRV;d)p.....| -000002d0 1f 65 7d 55 9f 28 32 3e 6b c7 b6 17 0b dd 7e ea |.e}U.(2>k.....~.| -000002e0 ef 7b a0 f0 6f 84 2a 11 93 d5 d8 99 dc ee 17 57 |.{..o.*........W| -000002f0 3f d7 7f a7 da c0 30 77 13 31 60 9c ca 32 67 09 |?.....0w.1`..2g.| -00000300 70 ce 05 0d c8 b6 e1 a2 df e4 f1 3c 67 17 03 03 |p............d...B| -00000370 39 15 00 13 c3 c8 35 66 21 d0 1f 94 0b 21 79 22 |9.....5f!....!y"| -00000380 5b 32 89 d4 81 28 6c c7 55 74 a7 a4 22 62 a9 cb |[2...(l.Ut.."b..| -00000390 76 9f e9 af 55 d5 1f b5 51 f7 40 2c fb 3b 03 30 |v...U...Q.@,.;.0| -000003a0 13 ca a0 79 ba 80 1b 0e 57 3d 84 17 03 03 00 35 |...y....W=.....5| -000003b0 fb 34 92 6a 46 f2 59 1a 94 39 63 d1 9d 58 40 e8 |.4.jF.Y..9c..X@.| -000003c0 f0 bb e7 fe 4d 1c 42 a2 38 9e cd a2 01 1c b6 a7 |....M.B.8.......| -000003d0 e3 9a cb 28 73 5f 8a 1e b3 40 41 80 85 2c 49 54 |...(s_...@A..,IT| -000003e0 3d 13 dc cc 6c |=...l| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 65 99 0a bb fc 0a |..........e.....| +00000090 a1 c2 2d 9c 7f 2e 0f 8d 50 5b 17 d3 66 6b 08 d1 |..-.....P[..fk..| +000000a0 cd 17 03 03 02 6d e6 e8 30 95 96 f8 18 a4 0e a9 |.....m..0.......| +000000b0 18 eb 1a 61 d4 57 c4 69 5c fa bf 26 cb d3 6d e7 |...a.W.i\..&..m.| +000000c0 d9 cd b7 d1 a2 46 c2 2d b2 83 f0 02 30 51 73 ac |.....F.-....0Qs.| +000000d0 8c 47 b3 5a b0 ae 13 7f ad a0 15 da 48 96 da 84 |.G.Z........H...| +000000e0 69 e3 a4 8a 71 33 63 1b 6d 42 6d 57 f4 9c 46 fb |i...q3c.mBmW..F.| +000000f0 c0 4a ad 77 6b 99 81 0c 2a 2d a2 d0 98 89 7b 8c |.J.wk...*-....{.| +00000100 ee 56 a4 e0 94 1a 83 07 5f 64 b2 7a 11 77 98 df |.V......_d.z.w..| +00000110 32 85 14 19 5b 97 4e 47 48 7c 6d bf f8 34 eb d4 |2...[.NGH|m..4..| +00000120 38 90 0e 78 df f4 94 49 11 5e 7f d3 65 d3 36 e8 |8..x...I.^..e.6.| +00000130 26 bc a1 ba 28 c8 2e 51 86 77 ea f0 91 4b 7e 31 |&...(..Q.w...K~1| +00000140 9c 42 63 f9 17 7f b4 6d 68 69 76 a2 3c 7f af 01 |.Bc....mhiv.<...| +00000150 d6 e2 72 c3 c9 2a d9 b9 e4 a1 e9 6b 05 07 7f d3 |..r..*.....k....| +00000160 e3 55 d5 9e df 5e 02 ad 3f 84 8f 17 47 f8 c1 6f |.U...^..?...G..o| +00000170 3a 98 63 f7 5f a6 3c a9 79 31 74 3d 99 c2 6c 91 |:.c._.<.y1t=..l.| +00000180 3f 72 5d 96 d4 55 de 46 44 44 d9 99 6f ef d4 96 |?r]..U.FDD..o...| +00000190 f7 a9 e1 2b fc d3 e7 0a a2 01 36 50 b6 8b 29 97 |...+......6P..).| +000001a0 4e 5b 7f f0 20 82 79 3e ea e3 f1 df 40 c5 02 66 |N[.. .y>....@..f| +000001b0 ba f9 fc c1 cf 08 0a ef 18 16 11 4a 78 9b 94 82 |...........Jx...| +000001c0 07 e1 a7 45 b4 7d 47 f9 ae 4b d1 86 d4 86 10 b3 |...E.}G..K......| +000001d0 7e 18 23 12 2f a0 5b 89 fb 82 0d 44 2b cb 4a 05 |~.#./.[....D+.J.| +000001e0 61 f6 9b 66 41 d2 37 9c 3c 05 4e 84 6d 67 65 6f |a..fA.7.<.N.mgeo| +000001f0 0e 0e 97 5c 92 19 f1 b8 14 08 f2 0e a9 a6 93 1e |...\............| +00000200 c5 8c a6 e2 da f1 fe e2 87 67 1b 88 c8 50 73 49 |.........g...PsI| +00000210 2b 27 7a 86 24 d7 55 03 44 a3 45 13 b8 e9 d2 62 |+'z.$.U.D.E....b| +00000220 a5 27 7c 95 31 6d cf aa a1 21 57 c5 1a 7e 4e 63 |.'|.1m...!W..~Nc| +00000230 ad 94 78 7a 42 61 16 19 9c c4 39 de a4 78 71 c3 |..xzBa....9..xq.| +00000240 00 e8 01 4e 1a 84 8b 70 83 cc 09 12 1f 31 18 80 |...N...p.....1..| +00000250 70 92 4e 7e 77 4a d9 05 92 44 e2 03 8e 8e 9b 3c |p.N~wJ...D.....<| +00000260 25 d3 a9 a4 6d 42 06 35 bd 5c 7b e6 b2 99 3f 8f |%...mB.5.\{...?.| +00000270 ba 53 3c e5 45 41 17 19 0e 74 3b 9b 00 93 bb a1 |.S<.EA...t;.....| +00000280 b6 a6 08 a9 58 7b b1 f2 4b 03 c3 d8 2e a4 79 18 |....X{..K.....y.| +00000290 08 8f 1e 10 8d 72 04 76 a9 18 6c 11 8f 19 87 e2 |.....r.v..l.....| +000002a0 6f a6 b1 46 b7 0c 75 e7 a4 87 c1 c5 b4 93 82 85 |o..F..u.........| +000002b0 99 76 41 57 d3 ca 8d 7e 4c e5 83 b0 e7 dd 9e 61 |.vAW...~L......a| +000002c0 11 3c 21 f6 c5 1a 91 25 d5 20 5d 20 55 74 bb 04 |.X| +00000380 b2 05 25 a3 54 a6 1f b8 84 02 3c e4 e0 18 db b9 |..%.T.....<.....| +00000390 1f 35 26 b5 98 68 bd 3e 0b 7c 8c da 8b a8 fe 95 |.5&..h.>.|......| +000003a0 59 39 0c 78 9a c4 d4 21 6b fe 35 c5 1b a9 47 5d |Y9.x...!k.5...G]| +000003b0 50 17 03 03 00 35 ce 61 ce fa 4a ed f7 a7 b1 09 |P....5.a..J.....| +000003c0 f4 ca 2b 94 9d a6 70 39 4a eb b1 e3 63 9f d7 85 |..+...p9J...c...| +000003d0 cc dc 6a 0b 30 1f d8 fa 12 4b ef eb 25 1f e8 1d |..j.0....K..%...| +000003e0 85 e3 f2 04 52 17 ec 78 ed b2 1b |....R..x...| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 35 c5 aa 6e cd 44 |..........5..n.D| -00000010 2f f6 09 74 33 13 e1 c1 32 6f 94 cd 55 2c 45 88 |/..t3...2o..U,E.| -00000020 f1 f8 51 c7 3e 64 62 e1 8a 48 cc bd c8 ac 91 a3 |..Q.>db..H......| -00000030 90 ea 45 1b 21 52 d4 81 84 88 0d ed a2 86 d4 64 |..E.!R.........d| +00000000 14 03 03 00 01 01 17 03 03 00 35 ad 1b 33 af 8e |..........5..3..| +00000010 ab 81 7c f3 9f 2b 76 19 d8 37 9f ef ef b7 76 33 |..|..+v..7....v3| +00000020 1b a9 05 4d 2b 79 d7 ae f7 87 c9 1f c3 4f 8e 50 |...M+y.......O.P| +00000030 02 5b 34 b0 b3 4b f7 ce bf 4c 3c b0 db 31 28 ab |.[4..K...L<..1(.| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e 4c e5 b2 aa 21 9e 56 24 62 da a7 |.....L...!.V$b..| -00000010 af ef 76 b5 8a 9a a1 3b 2e cd e8 68 27 ac 08 e1 |..v....;...h'...| -00000020 c1 37 52 17 03 03 00 13 8e 91 11 5b cf c4 28 e3 |.7R........[..(.| -00000030 a5 ea bb 89 93 fc 94 bc e6 28 32 |.........(2| +00000000 17 03 03 00 1e c7 45 aa 04 3f d4 29 33 fd 40 17 |......E..?.)3.@.| +00000010 c3 60 4d 05 54 f7 f0 68 82 19 dd 00 97 1c 93 e1 |.`M.T..h........| +00000020 01 19 33 17 03 03 00 13 50 d4 21 09 db 6d ce f8 |..3.....P.!..m..| +00000030 d0 ab 2d ba e7 c0 b2 7e 5b 62 e0 |..-....~[b.| diff --git a/testdata/Server-TLSv13-AES256-SHA384 b/testdata/Server-TLSv13-AES256-SHA384 index ab98f48..d7fa998 100644 --- a/testdata/Server-TLSv13-AES256-SHA384 +++ b/testdata/Server-TLSv13-AES256-SHA384 @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 dc 01 00 00 d8 03 03 35 42 f3 56 6d |...........5B.Vm| -00000010 cd 58 c6 08 54 f1 6c 64 c5 16 eb 39 b0 d9 1b 22 |.X..T.ld...9..."| -00000020 88 d6 36 a7 70 a8 27 c8 e8 1a 20 20 cc c6 13 bc |..6.p.'... ....| -00000030 f4 3a ed 6a d2 59 ac 02 18 68 e9 80 50 4a a3 df |.:.j.Y...h..PJ..| -00000040 1e 6b 54 0c 85 3a 17 5c 23 7f e0 fc 00 04 13 02 |.kT..:.\#.......| +00000000 16 03 01 00 dc 01 00 00 d8 03 03 f2 41 21 15 42 |............A!.B| +00000010 77 2a a0 81 3d 0e f8 66 c0 9d 10 e6 0d b2 ea 15 |w*..=..f........| +00000020 ad 7b 23 a4 63 a9 8e 06 fd a5 fb 20 38 22 f7 e8 |.{#.c...... 8"..| +00000030 9d 36 66 18 6a 38 41 49 0c 42 9d 56 11 3d 74 cb |.6f.j8AI.B.V.=t.| +00000040 9b 55 93 bb 68 4e 4d de a9 96 fc 45 00 04 13 02 |.U..hNM....E....| 00000050 00 ff 01 00 00 8b 00 00 00 0e 00 0c 00 00 09 31 |...............1| 00000060 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........| 00000070 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................| @@ -11,82 +11,82 @@ 00000090 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................| 000000a0 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 |...........+....| 000000b0 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 |..-.....3.&.$...| -000000c0 20 de c8 19 7a 66 cb db c3 04 b9 96 f4 5c 2e 52 | ...zf.......\.R| -000000d0 1b 63 0b 11 87 a2 a9 14 f8 54 10 a4 de 5f 9f 13 |.c.......T..._..| -000000e0 09 |.| +000000c0 20 97 44 9d 4b c2 e5 38 dd 18 d5 79 ac 7e 65 b7 | .D.K..8...y.~e.| +000000d0 e9 0e 89 ff f8 ab 81 81 ad 7f 9a c3 59 12 5a 55 |............Y.ZU| +000000e0 4e |N| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 cc c6 13 bc |........... ....| -00000030 f4 3a ed 6a d2 59 ac 02 18 68 e9 80 50 4a a3 df |.:.j.Y...h..PJ..| -00000040 1e 6b 54 0c 85 3a 17 5c 23 7f e0 fc 13 02 00 00 |.kT..:.\#.......| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 38 22 f7 e8 |........... 8"..| +00000030 9d 36 66 18 6a 38 41 49 0c 42 9d 56 11 3d 74 cb |.6f.j8AI.B.V.=t.| +00000040 9b 55 93 bb 68 4e 4d de a9 96 fc 45 13 02 00 00 |.U..hNM....E....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| -00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| -00000080 03 03 00 17 de 82 46 36 68 05 6c 4d 4c 79 da 2a |......F6h.lMLy.*| -00000090 a2 de 70 e3 64 66 79 ba 1d 4f d3 17 03 03 02 6d |..p.dfy..O.....m| -000000a0 66 1a 81 1c 38 21 0d 17 ef 4c 0f ad 52 c1 f3 d5 |f...8!...L..R...| -000000b0 d6 3f ee 05 dd bb ec e3 cd 00 a3 e5 42 90 f6 b8 |.?..........B...| -000000c0 2f d3 95 b8 27 3d 70 63 55 ef 32 e8 55 1a 20 0e |/...'=pcU.2.U. .| -000000d0 c8 47 7b 0c 15 30 86 37 72 25 d7 3b 97 a3 d1 90 |.G{..0.7r%.;....| -000000e0 5c a4 07 e4 b8 3c 3b bc 74 ea 93 d5 a8 30 dc bc |\....<;.t....0..| -000000f0 f9 2b 62 4e 15 84 c6 1c 67 a3 85 e2 8e 71 1d 6a |.+bN....g....q.j| -00000100 8d 26 97 96 ba 08 9d 09 e5 21 fa 4c 72 d9 7a df |.&.......!.Lr.z.| -00000110 39 69 02 82 58 0c ba 79 2a c1 73 d7 97 44 62 56 |9i..X..y*.s..DbV| -00000120 b6 7f 08 91 a3 ed 95 18 84 99 31 f6 64 54 59 bc |..........1.dTY.| -00000130 e0 c6 a2 e1 5f 51 5d 03 fd 5b cf 8f 97 1b 41 4b |...._Q]..[....AK| -00000140 c6 fa 78 06 c4 4d 3c e0 ba d9 3c 5f 5f f8 72 79 |..x..M<...<__.ry| -00000150 53 a0 cc bc aa 92 be 78 15 08 35 36 1f 53 91 89 |S......x..56.S..| -00000160 ec 74 0b b4 9e 97 85 86 d0 15 ff b6 62 9c 89 07 |.t..........b...| -00000170 9f 5d e8 9f 9d 7e b9 17 0e 33 78 06 ea 84 db 9e |.]...~...3x.....| -00000180 90 37 8a db c1 66 e2 a1 72 40 91 c5 49 e6 04 d9 |.7...f..r@..I...| -00000190 35 7c 50 1b 2e d6 63 44 c8 44 f9 e3 72 9c 1c 29 |5|P...cD.D..r..)| -000001a0 63 0f 5e fd a8 ab 09 c8 b8 02 7b 6f 40 35 85 3e |c.^.......{o@5.>| -000001b0 bb ae c9 b2 06 6d 0d 70 7e 65 b9 30 20 8f 54 da |.....m.p~e.0 .T.| -000001c0 9d 55 6e 70 7a a3 b0 15 5a 29 72 51 61 84 57 5c |.Unpz...Z)rQa.W\| -000001d0 f0 65 0a 9b 6e fb a4 d9 22 70 45 de c1 a6 5f 95 |.e..n..."pE..._.| -000001e0 3e 95 c8 3f 6b fa 69 01 ab e8 e0 61 6d 76 7b 5b |>..?k.i....amv{[| -000001f0 b2 33 e9 c1 67 99 33 99 03 75 e3 2c 29 b8 0f 75 |.3..g.3..u.,)..u| -00000200 b8 00 c5 dd cf f3 2e 24 fc 55 cc d5 d4 2d cc f4 |.......$.U...-..| -00000210 f1 59 20 d5 7a c1 ef f5 3b 8b b0 2a 0d c0 2a ad |.Y .z...;..*..*.| -00000220 2c ce c6 91 4d 17 1e 5c e8 d1 98 1e 58 cc d9 42 |,...M..\....X..B| -00000230 42 e9 ff b8 f7 33 f0 af df 8f 1e 7f 52 79 7e 4f |B....3......Ry~O| -00000240 48 e1 21 10 8c aa 7c 84 5d 42 f0 01 73 ff bb e1 |H.!...|.]B..s...| -00000250 de cb 61 a9 d0 9a be 2a cd 18 60 91 0c 20 86 db |..a....*..`.. ..| -00000260 4a e7 08 eb ab af 1b 7a bb 04 f6 49 29 b9 20 65 |J......z...I). e| -00000270 da a6 09 f3 8e 57 b4 5f b0 53 07 86 06 cf 44 de |.....W._.S....D.| -00000280 ba bd 16 ca 88 df 65 50 1a 0d 4b 30 41 ee 04 6a |......eP..K0A..j| -00000290 90 71 27 1b 05 b2 5e 0b 9c 77 ec fb 8a 02 82 18 |.q'...^..w......| -000002a0 34 3e af ea 43 71 4b 9c 12 75 f2 59 32 04 76 87 |4>..CqK..u.Y2.v.| -000002b0 2a ea 31 f6 c8 29 30 41 3f cf 4e c5 2b 38 d0 15 |*.1..)0A?.N.+8..| -000002c0 e6 fa 8d de 2a ec 3e 49 b9 bb 2e 46 ef 8b 8f a4 |....*.>I...F....| -000002d0 e0 96 39 67 d6 2f 56 fb 8b 9c 7c 49 65 3d b3 8e |..9g./V...|Ie=..| -000002e0 1f 48 02 24 53 10 43 49 6d 31 fc d6 99 f6 50 73 |.H.$S.CIm1....Ps| -000002f0 b3 fd b7 57 72 c6 81 a2 df 16 13 0a da 67 8f 3c |...Wr........g.<| -00000300 ff 94 b7 8a 26 0c f2 fe c9 f6 67 a2 f2 17 03 03 |....&.....g.....| -00000310 00 99 1d 59 bb 70 37 f6 a7 72 d1 27 3b 5a d5 1d |...Y.p7..r.';Z..| -00000320 f6 e6 02 84 3c 8b 24 0e 78 ed 88 73 e8 e4 d2 8d |....<.$.x..s....| -00000330 97 c4 cc a3 22 b7 c1 ba 2d df ef d4 84 0d 78 ce |...."...-.....x.| -00000340 70 c9 4f 60 dc fb 13 50 2d d1 52 ba e9 d4 5a 5e |p.O`...P-.R...Z^| -00000350 ed eb 93 ae 99 b8 08 91 61 ee a5 9c 3e 63 07 ed |........a...>c..| -00000360 17 b1 29 5f 03 ae 5b 0d a7 0a 4a 3a f5 6b 9c 6f |..)_..[...J:.k.o| -00000370 28 ad 16 6d f5 31 17 87 f5 10 b5 53 13 c8 a2 a1 |(..m.1.....S....| -00000380 7a 9a 12 10 04 0b e7 b6 c7 3b 55 25 05 d3 0c 5e |z........;U%...^| -00000390 32 60 bf 43 e6 62 d0 cc cd a6 61 9b 19 dc 83 34 |2`.C.b....a....4| -000003a0 9f f2 2d 8f ca 9e 96 73 4d e9 52 17 03 03 00 45 |..-....sM.R....E| -000003b0 28 21 db ab 2f da c8 33 af a5 44 5b f4 2f 18 bd |(!../..3..D[./..| -000003c0 72 74 6d a7 c0 16 fb 13 de 8b d4 f8 03 8f ba 28 |rtm............(| -000003d0 06 89 08 0f 82 14 9b 6d 9b 61 7c 6c c3 de 76 2e |.......m.a|l..v.| -000003e0 f3 2b ff db 2d bc 6f 84 75 19 b3 df eb a1 a7 69 |.+..-.o.u......i| -000003f0 a7 a7 70 27 48 |..p'H| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 c8 4d 76 95 99 66 |...........Mv..f| +00000090 62 83 71 d0 1f 1a 84 b9 11 37 57 e3 49 cc fd d4 |b.q......7W.I...| +000000a0 c9 17 03 03 02 6d 94 79 d5 d0 c7 a0 74 d4 96 53 |.....m.y....t..S| +000000b0 b2 d7 c0 a6 95 2a c9 ba d3 85 16 98 66 4b 6d f8 |.....*......fKm.| +000000c0 b6 c7 6d 2f 48 71 1d bc 12 6b 84 4a 29 89 7f 4d |..m/Hq...k.J)..M| +000000d0 39 89 55 8d 26 6d 68 e8 62 38 0c a2 1f 2b 53 fe |9.U.&mh.b8...+S.| +000000e0 0b 9d c0 8c 73 8b ae 13 03 e6 cc af 4f e1 78 29 |....s.......O.x)| +000000f0 be ec d6 c0 6c 9f 18 d2 3f 44 36 b9 0e 97 fc 1c |....l...?D6.....| +00000100 b3 94 62 8d a3 b1 3f e8 e8 c3 77 d9 49 13 d2 db |..b...?...w.I...| +00000110 93 9a 8b c5 51 85 c0 40 a6 0f f3 ca 66 13 e2 3f |....Q..@....f..?| +00000120 29 f1 65 0e ad cc eb bc de 68 18 c0 b7 05 c7 6b |).e......h.....k| +00000130 83 66 a1 5c 5e 97 68 5f 0e ae b2 19 e0 ab b0 ee |.f.\^.h_........| +00000140 b9 44 64 20 5d 7a 77 ee 77 db a1 77 cb 7b ce d5 |.Dd ]zw.w..w.{..| +00000150 c5 e1 78 b2 75 ea e6 2e 3b 8c 39 e3 51 c9 48 37 |..x.u...;.9.Q.H7| +00000160 60 d5 68 4f 15 a7 29 56 76 c3 2c 5a 68 1c 6a b2 |`.hO..)Vv.,Zh.j.| +00000170 20 c4 f0 df 35 87 72 c5 1a ed fa 24 66 b4 87 12 | ...5.r....$f...| +00000180 f5 b3 79 d4 b6 fe c9 4e 31 14 f3 e2 5d 13 fc ed |..y....N1...]...| +00000190 6d 88 04 9d 8d 11 ed fd 6a fb e6 b4 53 20 51 e6 |m.......j...S Q.| +000001a0 49 24 55 b1 5b 86 36 5a ed 68 02 eb 43 97 da 49 |I$U.[.6Z.h..C..I| +000001b0 da 7a 21 61 27 f6 24 6e cc b3 25 76 e9 ce c2 d2 |.z!a'.$n..%v....| +000001c0 b5 ef f7 63 a6 c9 7c 9b dd 12 ea 7c 15 bd 29 fb |...c..|....|..).| +000001d0 20 f5 37 96 07 cc 2c 22 4a c1 11 ef 22 4e 7a 05 | .7...,"J..."Nz.| +000001e0 80 ff 1f cd c9 a7 11 80 1e 3c 11 0d 10 ed 56 c6 |.........<....V.| +000001f0 13 64 55 13 44 ce cc b7 9d 1a 57 11 b6 ef 27 02 |.dU.D.....W...'.| +00000200 62 3e aa 81 14 ab 79 a5 cc 96 7d e3 bf c1 d3 98 |b>....y...}.....| +00000210 da 9d 34 f1 7a c6 1a 1a 0d b4 3d ed 40 41 49 39 |..4.z.....=.@AI9| +00000220 a7 8d a0 85 50 c1 b3 6c e9 51 be 44 8c 7d d8 3b |....P..l.Q.D.}.;| +00000230 d6 e2 77 cb ab 01 98 87 d4 94 53 e4 f6 04 8f d2 |..w.......S.....| +00000240 a4 36 35 9f df dc 2e 72 22 94 db 58 f7 77 c3 96 |.65....r"..X.w..| +00000250 2b 0f 4a 7a 3d 94 12 5a 18 90 6c 87 18 a0 0b 80 |+.Jz=..Z..l.....| +00000260 eb 44 de 79 4f 0e 66 fa 62 e7 26 73 06 af 44 e7 |.D.yO.f.b.&s..D.| +00000270 7a 36 84 68 3d 3d 79 ac cd 33 97 6a ad 95 ca 6d |z6.h==y..3.j...m| +00000280 c8 a9 75 98 21 b0 d2 dc 72 5d 61 15 67 0c 3e f8 |..u.!...r]a.g.>.| +00000290 54 18 52 bd 46 75 81 3f a6 6d c9 84 7a 97 4e db |T.R.Fu.?.m..z.N.| +000002a0 96 73 ad 53 09 ab 1c d6 c3 4d 1a 5c e9 b2 e7 aa |.s.S.....M.\....| +000002b0 2a f1 d5 be 1b c6 01 d1 8b 54 24 e9 16 d1 02 d0 |*........T$.....| +000002c0 dc cb c1 37 71 e1 01 74 b1 5f 91 60 09 01 31 e2 |...7q..t._.`..1.| +000002d0 2a f0 5b 34 e6 d0 52 db a2 cf f1 f1 b7 da b6 76 |*.[4..R........v| +000002e0 8e fd a5 fd 6e f5 c5 0c 34 74 2e f0 c0 44 b4 57 |....n...4t...D.W| +000002f0 e1 50 f5 68 06 a3 14 1d f5 ac 2b 61 f8 ec cf 05 |.P.h......+a....| +00000300 c9 ef e6 a8 31 aa a5 a8 15 65 36 58 e0 da 96 03 |....1....e6X....| +00000310 57 05 4e 17 03 03 00 99 ec a2 db dd 9e a8 d8 10 |W.N.............| +00000320 fc d4 1b 45 02 b5 2c f1 fc 05 44 30 27 55 63 3e |...E..,...D0'Uc>| +00000330 41 45 ea be e1 a8 0b 2e 4d 70 18 3a 9b ae d2 b5 |AE......Mp.:....| +00000340 ed 0d 3e 08 5f b6 86 b0 e0 06 66 45 91 67 bc fd |..>._.....fE.g..| +00000350 7b 8f 6a 73 d4 29 df 17 74 e7 f8 92 f9 2b e4 31 |{.js.)..t....+.1| +00000360 dc 8a 6c 1c 53 1f c2 d6 fc 83 33 15 58 e1 ea 49 |..l.S.....3.X..I| +00000370 cc 74 7c f3 00 37 ca bc ae 31 e8 b2 aa 19 18 e2 |.t|..7...1......| +00000380 7d 60 8c 15 f8 ce e2 7d 86 1b a1 2c 59 5a 2a b2 |}`.....}...,YZ*.| +00000390 81 f3 22 12 8a 6e 28 b9 22 ba 15 03 3d 24 09 50 |.."..n(."...=$.P| +000003a0 b5 81 43 c0 a1 62 cf c6 9d 69 be ba 89 d1 74 19 |..C..b...i....t.| +000003b0 85 17 03 03 00 45 45 29 37 b5 5d ee db 9c 73 85 |.....EE)7.]...s.| +000003c0 4f 69 2b 32 b7 d7 16 c6 73 f1 59 89 38 10 63 88 |Oi+2....s.Y.8.c.| +000003d0 81 72 5e 60 72 d5 6a 26 c9 50 18 03 d3 bd 50 83 |.r^`r.j&.P....P.| +000003e0 1b ea c1 e3 4b f4 31 b0 e7 90 af aa e3 10 fd 77 |....K.1........w| +000003f0 97 49 ef 8b 63 f3 c0 af 82 06 c3 |.I..c......| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 5b 1d b7 49 6d |..........E[..Im| -00000010 d0 f1 9a 16 cc e8 08 84 c0 80 23 1f 4f fc 15 b1 |..........#.O...| -00000020 20 28 d0 65 1b 58 8b 67 fa 30 c2 37 86 ac b2 47 | (.e.X.g.0.7...G| -00000030 d6 b8 ac 8a 69 bc a3 09 10 c8 47 15 54 b3 a4 79 |....i.....G.T..y| -00000040 1f 12 2d c1 ca e1 ce 54 c0 ce e5 fc 61 f2 7c 07 |..-....T....a.|.| +00000000 14 03 03 00 01 01 17 03 03 00 45 59 c5 37 de 55 |..........EY.7.U| +00000010 de 8c 48 e6 2e 1c c6 d9 12 58 ad 58 97 af f3 09 |..H......X.X....| +00000020 0c 86 38 94 c8 a3 d0 67 b2 3a 36 80 d8 ac f9 7e |..8....g.:6....~| +00000030 42 58 7a a1 0b a3 06 a3 32 0a e3 21 01 cb 7b 55 |BXz.....2..!..{U| +00000040 73 1a 8b 32 ba cd 85 28 f7 ed 9a c8 dd 2b d7 66 |s..2...(.....+.f| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e ba d7 68 39 2c 76 30 fb 0e 36 47 |.......h9,v0..6G| -00000010 d9 b8 7c 2d e2 1c fd 13 86 9b 2c 07 ab 66 03 2d |..|-......,..f.-| -00000020 1e 7d 69 17 03 03 00 13 eb 7b d8 47 8a 5e 53 83 |.}i......{.G.^S.| -00000030 17 87 b3 aa c5 80 71 ba df 1b 60 |......q...`| +00000000 17 03 03 00 1e ee 52 21 e0 e3 c5 ae ac 1b 26 91 |......R!......&.| +00000010 0e b3 a0 b8 70 cc 71 c8 c3 10 0f e8 b4 79 eb 47 |....p.q......y.G| +00000020 fc 13 b7 17 03 03 00 13 02 ef f4 ef 4b a2 83 93 |............K...| +00000030 4b ea 6b 63 d9 29 69 79 0e 8d 34 |K.kc.)iy..4| diff --git a/testdata/Server-TLSv13-ALPN b/testdata/Server-TLSv13-ALPN index c78bf3e..31d7be3 100644 --- a/testdata/Server-TLSv13-ALPN +++ b/testdata/Server-TLSv13-ALPN @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 f8 01 00 00 f4 03 03 c6 52 45 ca ae |............RE..| -00000010 9b 43 49 d4 01 e2 af b0 e8 9b f4 9b f6 ef 38 c6 |.CI...........8.| -00000020 71 9f ed 84 a6 2c 01 92 1f 3f 1b 20 5b cb 8a 16 |q....,...?. [...| -00000030 b3 d2 a8 19 41 d5 0c 6a fa 39 0a b2 6d 65 18 d1 |....A..j.9..me..| -00000040 67 88 16 6b e0 9b e4 7a d2 95 f9 93 00 08 13 02 |g..k...z........| +00000000 16 03 01 00 f8 01 00 00 f4 03 03 ff d4 51 5f e2 |.............Q_.| +00000010 dd 9d 8f 57 03 9e ce ae 23 c2 e6 17 33 de df f9 |...W....#...3...| +00000020 49 f3 42 76 dc fe 7a 91 db 67 a0 20 1b a9 d2 90 |I.Bv..z..g. ....| +00000030 d4 cb ec 3c e5 ea 1f 43 51 dd 0c 57 88 d1 a4 52 |...<...CQ..W...R| +00000040 31 48 6b a2 5c 6d 5b 53 ab 05 7b ac 00 08 13 02 |1Hk.\m[S..{.....| 00000050 13 03 13 01 00 ff 01 00 00 a3 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| @@ -12,83 +12,83 @@ 000000a0 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| 000000b0 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| 000000c0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| -000000d0 02 01 01 00 33 00 26 00 24 00 1d 00 20 d8 72 8f |....3.&.$... .r.| -000000e0 a6 3b a1 1c f7 73 ea b0 d5 85 03 31 46 d6 6b 8b |.;...s.....1F.k.| -000000f0 e0 e6 e0 e6 20 09 a7 f8 a2 fd d1 a7 6b |.... .......k| +000000d0 02 01 01 00 33 00 26 00 24 00 1d 00 20 39 8f 57 |....3.&.$... 9.W| +000000e0 2f 4c ec 9a 34 c2 9a 00 63 8d 55 d0 41 61 6b bf |/L..4...c.U.Aak.| +000000f0 81 28 57 ea dc aa 36 11 aa bf 73 89 6a |.(W...6...s.j| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 5b cb 8a 16 |........... [...| -00000030 b3 d2 a8 19 41 d5 0c 6a fa 39 0a b2 6d 65 18 d1 |....A..j.9..me..| -00000040 67 88 16 6b e0 9b e4 7a d2 95 f9 93 13 02 00 00 |g..k...z........| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 1b a9 d2 90 |........... ....| +00000030 d4 cb ec 3c e5 ea 1f 43 51 dd 0c 57 88 d1 a4 52 |...<...CQ..W...R| +00000040 31 48 6b a2 5c 6d 5b 53 ab 05 7b ac 13 02 00 00 |1Hk.\m[S..{.....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| -00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| -00000080 03 03 00 24 9b af d8 42 6e 75 12 c4 10 c3 42 72 |...$...Bnu....Br| -00000090 de e6 50 f9 2b 15 68 6d b1 32 2f fb 63 b1 80 1a |..P.+.hm.2/.c...| -000000a0 f0 b3 3e 22 c9 d4 ed ba 17 03 03 02 6d c9 fc b7 |..>"........m...| -000000b0 3c 02 17 dc 26 56 b6 1f 3d 2c 07 0e 96 52 a8 9f |<...&V..=,...R..| -000000c0 a2 2a 6e e9 c7 93 2e c7 98 af 9b 63 99 25 14 f1 |.*n........c.%..| -000000d0 45 29 63 26 35 62 af d7 37 f3 33 03 2e a8 02 f2 |E)c&5b..7.3.....| -000000e0 a4 a5 9e 85 19 ad a8 20 81 85 6a 19 c5 bb 8f d7 |....... ..j.....| -000000f0 ea 4d af ee 9d 95 78 26 5a 24 da ee 5b 96 97 34 |.M....x&Z$..[..4| -00000100 7c e6 2c c1 b0 e8 d3 3a 7f 4c b5 c9 44 ad d5 35 ||.,....:.L..D..5| -00000110 99 b2 99 d9 c3 10 97 03 ac fe c9 6d cf 1a c0 6a |...........m...j| -00000120 ec d0 b7 ed b8 79 d6 48 8b eb df 0b 42 87 8e 50 |.....y.H....B..P| -00000130 9a c9 47 e7 e3 6a c6 03 85 8e b4 57 58 b2 aa 5f |..G..j.....WX.._| -00000140 53 8d 00 43 7e 36 4a 9b 2a 0a b7 45 e5 8b 4c 71 |S..C~6J.*..E..Lq| -00000150 62 b3 07 e1 1d 07 16 7b 4b c7 4b ac b3 e0 8b 4b |b......{K.K....K| -00000160 ec 3c 48 2f be eb 32 f6 f5 fa 24 86 76 e6 df ec |.r{.....S...|5| -000001f0 54 38 8a 0b 11 35 90 02 3c 2b ef 3c 9c 81 80 0b |T8...5..<+.<....| -00000200 9e a5 5a d0 07 37 ec b2 4b c9 2d 8a 22 45 20 60 |..Z..7..K.-."E `| -00000210 71 58 e0 a0 99 40 06 62 d4 19 cb 9d 62 65 a8 d6 |qX...@.b....be..| -00000220 dd bd 82 c9 01 ba ce 17 04 d2 09 3a 6b f6 12 9c |...........:k...| -00000230 41 1d 1f f9 f5 42 93 36 70 0b 3a ba 49 f9 54 dc |A....B.6p.:.I.T.| -00000240 d2 30 02 7d 04 0b 4a 3b 12 37 4e a7 96 8c 8b 8c |.0.}..J;.7N.....| -00000250 2e a7 84 78 22 18 d4 2d 93 0a da e1 97 bc ad b5 |...x"..-........| -00000260 2b 81 39 8e d3 5e 81 a1 51 c7 3e 40 3a fb ce 89 |+.9..^..Q.>@:...| -00000270 cf f3 dc 3e 18 0f f1 80 19 00 25 ca 5d e5 0e 0d |...>......%.]...| -00000280 76 4f de 4c eb 92 fa bf 4c 72 01 1d 26 38 88 f1 |vO.L....Lr..&8..| -00000290 9f d1 5f e4 ca e8 19 db dc f3 ba 0a 14 d4 63 b3 |.._...........c.| -000002a0 04 f4 4f ea 1c 0e 93 89 ad 6a 00 e0 64 fd 22 ae |..O......j..d.".| -000002b0 a7 58 dd e8 73 1e 89 b5 ed de ae b3 1e fb 54 1e |.X..s.........T.| -000002c0 70 ab 1e 38 2f bc 1d 16 3b e0 51 9f d9 dd 28 f2 |p..8/...;.Q...(.| -000002d0 2c 24 80 e7 76 b9 d2 25 53 5e c0 df 07 19 0a 8c |,$..v..%S^......| -000002e0 13 ed cd d7 0f dc 4d 92 66 49 41 b1 1f a8 92 c3 |......M.fIA.....| -000002f0 80 26 44 4f f8 49 86 b5 28 1e 3c 0c 1f 42 b9 ae |.&DO.I..(.<..B..| -00000300 27 57 f1 46 d3 61 23 8e 39 cf 50 ad fb 10 ba 7d |'W.F.a#.9.P....}| -00000310 a0 94 c5 b3 6e ad a1 15 71 00 17 03 03 00 99 87 |....n...q.......| -00000320 b6 bb fc 79 5f 53 43 73 bc 7f 0a 49 78 70 48 61 |...y_SCs...IxpHa| -00000330 22 e8 a5 f2 64 55 67 8b 68 de f4 12 64 52 2b 22 |"...dUg.h...dR+"| -00000340 e4 55 53 94 30 a4 7e 10 36 fc 98 9f 0a 32 df 02 |.US.0.~.6....2..| -00000350 b5 bf 58 34 cc 30 31 7b b8 79 54 56 38 48 94 1f |..X4.01{.yTV8H..| -00000360 df 98 b9 c6 dc 29 3c 94 12 ef 47 98 91 0a 81 44 |.....)<...G....D| -00000370 93 f4 96 a2 b2 05 09 d9 6e 25 9f 59 17 0f 41 8b |........n%.Y..A.| -00000380 f7 5c 81 e0 71 25 eb 24 eb bd cf 9a d9 24 8d c6 |.\..q%.$.....$..| -00000390 04 4e 10 0f 92 41 59 df 5c 77 c4 4d c8 30 e0 70 |.N...AY.\w.M.0.p| -000003a0 0c 5d 1b 49 b4 ea 06 bd c5 de 1d b5 19 63 46 72 |.].I.........cFr| -000003b0 98 72 48 e0 aa 76 6c d8 17 03 03 00 45 72 a8 f6 |.rH..vl.....Er..| -000003c0 c0 00 8a 52 91 57 bf 8d 63 87 31 df 97 17 af 41 |...R.W..c.1....A| -000003d0 88 44 19 1e 32 b9 32 d5 16 92 1b c7 6b 6e 29 8c |.D..2.2.....kn).| -000003e0 cc 42 59 05 8d 76 e4 4c 7e 46 5f 42 84 0d 28 37 |.BY..v.L~F_B..(7| -000003f0 15 53 d9 fc de 4b 04 d4 9a 14 6e 9f e8 c9 20 13 |.S...K....n... .| -00000400 00 c4 |..| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 24 6b 2e 09 93 7b 47 |.........$k...{G| +00000090 92 5b ec 7a 94 83 04 a4 fc 5d 9c b0 ca 11 3f 94 |.[.z.....]....?.| +000000a0 fd cb 36 55 be e8 20 34 6e fd db 23 61 d7 17 03 |..6U.. 4n..#a...| +000000b0 03 02 6d 75 74 6c 3e ca 77 66 06 c7 26 76 83 9f |..mutl>.wf..&v..| +000000c0 54 23 47 53 d6 b7 7f 6f a1 fb 78 c5 aa 85 fb 40 |T#GS...o..x....@| +000000d0 9f 34 48 a3 ad 47 70 9f 5f b4 96 f6 5b c8 ac ba |.4H..Gp._...[...| +000000e0 cc f7 ee 3e 9c 7a ad 48 57 44 ce 77 4f 17 13 6c |...>.z.HWD.wO..l| +000000f0 90 f4 c5 53 92 37 16 aa 59 60 51 9d f2 b7 9f 31 |...S.7..Y`Q....1| +00000100 a6 a9 15 86 fe 01 04 36 22 b0 48 45 a0 b5 dd 0f |.......6".HE....| +00000110 87 a7 33 dd 8b 76 66 af e6 a3 7c 1d 1b fb 1d 77 |..3..vf...|....w| +00000120 5e d4 c7 51 50 6f 36 b2 48 c7 a2 7e 3a 1c ad 76 |^..QPo6.H..~:..v| +00000130 01 43 6a bf 8a 2b a8 02 71 3b 9b aa 80 63 35 20 |.Cj..+..q;...c5 | +00000140 b9 37 05 9c 09 41 1d 07 31 2a 43 f9 36 5e 38 62 |.7...A..1*C.6^8b| +00000150 cc 2f 08 6f ff 91 28 98 4b 69 a3 0d 61 c3 cd b7 |./.o..(.Ki..a...| +00000160 06 84 f8 fc a9 e0 46 ac f7 df ba 12 aa c5 d4 4c |......F........L| +00000170 34 4e c3 6c 46 3c d5 d6 63 91 28 b5 32 9a f0 70 |4N.lF<..c.(.2..p| +00000180 15 e6 5e c3 06 de 3b 3b ac a8 b6 78 04 d1 d4 78 |..^...;;...x...x| +00000190 73 10 7d 80 ce c1 56 9d 0e ea 0d 6a 16 75 34 04 |s.}...V....j.u4.| +000001a0 32 bc d4 52 5f 54 90 8a ad a7 7a bc 68 be ba cc |2..R_T....z.h...| +000001b0 60 14 a4 b7 d5 b4 51 b7 11 9a c8 4e 5d d1 a3 71 |`.....Q....N]..q| +000001c0 75 d6 47 d7 03 68 34 a5 32 09 b3 98 43 21 b5 0c |u.G..h4.2...C!..| +000001d0 50 e5 1a 5e d3 0c c3 2d 93 d7 d6 42 4d 98 76 66 |P..^...-...BM.vf| +000001e0 b3 a0 94 25 fc 88 17 33 6d 22 7c 3a da 0c 8e ec |...%...3m"|:....| +000001f0 fa cf 92 20 e0 f7 8f 1e b5 e3 4c 13 4d 4d 45 10 |... ......L.MME.| +00000200 8e e3 4e 0f 4e 9d 63 ec ad 73 7f a3 11 88 69 f2 |..N.N.c..s....i.| +00000210 6f 4e 91 c4 d4 ad 2c a4 21 89 50 a9 f9 2d 9c ff |oN....,.!.P..-..| +00000220 ff 0e db b9 fb 14 1b c1 8c 9b cf 94 49 a3 85 2c |............I..,| +00000230 2d d2 15 12 0c 7d 70 12 01 07 62 1f 05 f0 88 51 |-....}p...b....Q| +00000240 82 84 ac 2a b9 c5 56 ee 6e a5 5f cd 3f 92 0b cc |...*..V.n._.?...| +00000250 8a d2 92 91 93 a1 11 4c 42 3d c9 87 29 e7 13 7d |.......LB=..)..}| +00000260 33 b4 14 0f 1b ed d4 94 17 a1 31 5b 44 e9 1d 78 |3.........1[D..x| +00000270 6a 0f dd d4 0a 3b 40 f1 a2 a2 ab 84 4c 25 7f cd |j....;@.....L%..| +00000280 09 45 36 d8 b8 c3 3c 80 2a 00 67 dd eb 9b 67 b1 |.E6...<.*.g...g.| +00000290 d5 22 d6 84 a7 15 fe 56 b3 b0 a2 6e 64 7e 74 23 |.".....V...nd~t#| +000002a0 9f 20 72 ca f1 b9 03 02 56 a5 d4 d3 f7 bb 53 67 |. r.....V.....Sg| +000002b0 27 1f 2c b2 4e f1 05 17 8b 72 f5 27 cc 66 62 5b |'.,.N....r.'.fb[| +000002c0 95 cf 6e 5b e8 b9 ee d0 f8 b2 6b 4c 3e 99 c4 ed |..n[......kL>...| +000002d0 da 9d 12 73 9e 80 bc 83 6f f1 09 8f 74 47 01 df |...s....o...tG..| +000002e0 f5 ff b0 21 8b 4e 7c 3e 16 47 18 48 51 e0 e2 7f |...!.N|>.G.HQ...| +000002f0 dc 9f e3 2e 35 b0 5b e1 55 29 d7 11 85 5b c3 10 |....5.[.U)...[..| +00000300 5c dc 61 30 52 5f 53 83 08 87 6d b6 1c f2 2b ff |\.a0R_S...m...+.| +00000310 3e 60 17 5b ff fc a2 db 5c 24 6a 70 19 28 ba 14 |>`.[....\$jp.(..| +00000320 17 03 03 00 99 64 2f 8f 76 2f 84 aa c9 ca 55 00 |.....d/.v/....U.| +00000330 16 e4 22 b7 88 be 72 3b 7a db b7 85 0f 44 df dc |.."...r;z....D..| +00000340 7e fa 2c 76 37 c1 dd 95 96 ac c3 0e 4f ce ee ea |~.,v7.......O...| +00000350 71 91 5a 98 af e5 50 4f 5d 42 2d 57 b5 cf a6 a3 |q.Z...PO]B-W....| +00000360 db df 73 a2 1d b4 02 e4 b5 23 ae f5 da b7 f6 cd |..s......#......| +00000370 7d 48 d2 5e 7c 40 4f c6 9b 3e f7 51 8a 58 df b6 |}H.^|@O..>.Q.X..| +00000380 56 ac 3f 17 a4 95 ce 06 5b a3 b4 df 72 08 35 20 |V.?.....[...r.5 | +00000390 0f 92 fd 48 45 48 e1 c2 cf 1f b4 fb 9b 7d b8 6c |...HEH.......}.l| +000003a0 6d fa 10 04 d6 14 a9 59 0e 97 c9 33 85 ca d4 62 |m......Y...3...b| +000003b0 46 b7 0b e8 78 67 ca 6b e5 66 b3 72 f8 90 17 03 |F...xg.k.f.r....| +000003c0 03 00 45 c6 c1 e4 ff 98 d3 4f 79 cd 61 7b 31 42 |..E......Oy.a{1B| +000003d0 f6 db 92 92 f8 ee 41 98 cd 8c db 4f ab e1 84 43 |......A....O...C| +000003e0 d9 35 5a 3a ab 86 0f 3a 5a e3 e4 f6 41 1d 98 6b |.5Z:...:Z...A..k| +000003f0 b2 ac e7 e3 5a 38 c9 54 29 4a ba 13 ed 80 d8 71 |....Z8.T)J.....q| +00000400 6f b9 15 8a 39 3b 89 24 |o...9;.$| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 ac 55 3c 0a 23 |..........E.U<.#| -00000010 d7 29 fa 16 c2 df a7 42 9e 15 7e 93 a7 0a 31 79 |.).....B..~...1y| -00000020 38 96 95 4a 0b 61 d8 f5 bb e5 51 a8 c3 ea 2b 92 |8..J.a....Q...+.| -00000030 a2 b0 9c 59 e1 52 b9 80 26 1b 84 c3 1a 68 f4 40 |...Y.R..&....h.@| -00000040 82 45 42 47 2f c7 3d ba 77 88 8b 5c 3b 03 a8 a7 |.EBG/.=.w..\;...| +00000000 14 03 03 00 01 01 17 03 03 00 45 93 c5 37 2f 37 |..........E..7/7| +00000010 8d ae 7f be 77 25 59 77 39 37 d7 f0 29 68 25 cb |....w%Yw97..)h%.| +00000020 fb 2d 8a 7e 83 d4 60 09 84 69 1a bd 05 fd d8 53 |.-.~..`..i.....S| +00000030 98 f7 40 f5 ba 1b 5e 62 03 50 be 25 65 1b d8 d1 |..@...^b.P.%e...| +00000040 32 a9 6d bf 3d ad bc 0a 1e f1 f6 52 45 5e 98 6c |2.m.=......RE^.l| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e 86 2e cf 5b 32 e1 e0 db 51 51 55 |........[2...QQU| -00000010 ef c3 05 87 ea 90 a8 37 8c 28 5d da 9f 64 70 33 |.......7.(]..dp3| -00000020 8f 94 f0 17 03 03 00 13 ba 81 00 ec 23 57 05 42 |............#W.B| -00000030 aa f4 ca b2 4e 98 d0 22 3b fc 38 |....N..";.8| +00000000 17 03 03 00 1e e2 90 5e 4a be d1 94 5f 64 9e 3a |.......^J..._d.:| +00000010 92 3c e2 bc be df 1b da b2 c0 eb 0d f3 2e 7d 23 |.<............}#| +00000020 fe 71 13 17 03 03 00 13 2a 3e 5b dc 81 c5 2f 73 |.q......*>[.../s| +00000030 81 90 29 95 13 64 59 a3 40 cc d6 |..)..dY.@..| diff --git a/testdata/Server-TLSv13-ALPN-NoMatch b/testdata/Server-TLSv13-ALPN-NoMatch index 8d524a9..0abc717 100644 --- a/testdata/Server-TLSv13-ALPN-NoMatch +++ b/testdata/Server-TLSv13-ALPN-NoMatch @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 f8 01 00 00 f4 03 03 7d 4e fc 70 f4 |...........}N.p.| -00000010 ca f8 bc d4 12 5d 8f 66 37 a0 c8 30 1a 4d 1b 4f |.....].f7..0.M.O| -00000020 0e 0b 86 1a 16 6d 77 2f ff eb a8 20 09 1f f5 06 |.....mw/... ....| -00000030 2c 4d 55 28 be dd 24 02 70 4c 0d 73 c4 c0 a1 d8 |,MU(..$.pL.s....| -00000040 b3 f0 13 26 76 df 47 bd 2e 27 1d 81 00 08 13 02 |...&v.G..'......| +00000000 16 03 01 00 f8 01 00 00 f4 03 03 d8 28 7b f8 3a |............({.:| +00000010 90 13 9b b7 92 e5 33 de 3c 0a 29 bf 0b d8 1b a6 |......3.<.).....| +00000020 d4 8b a5 f9 fa 72 37 b5 6c 0d 4b 20 6b a5 56 0d |.....r7.l.K k.V.| +00000030 86 c6 28 d5 7e 10 c3 6f 36 c3 d1 d2 90 41 34 ee |..(.~..o6....A4.| +00000040 0c ef 47 5f 17 43 ac 86 59 70 44 14 00 08 13 02 |..G_.C..YpD.....| 00000050 13 03 13 01 00 ff 01 00 00 a3 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| @@ -12,82 +12,82 @@ 000000a0 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| 000000b0 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| 000000c0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| -000000d0 02 01 01 00 33 00 26 00 24 00 1d 00 20 a9 8a 27 |....3.&.$... ..'| -000000e0 a2 7c b7 26 1d c6 ad f7 3a d0 97 81 ac 05 6c 10 |.|.&....:.....l.| -000000f0 a0 0d 3c 96 24 ce 55 ef 43 76 87 d4 31 |..<.$.U.Cv..1| +000000d0 02 01 01 00 33 00 26 00 24 00 1d 00 20 71 31 a3 |....3.&.$... q1.| +000000e0 98 a9 e0 5b f1 45 57 46 18 1a 9b d9 04 a7 30 16 |...[.EWF......0.| +000000f0 c5 e7 f3 11 e7 16 92 ed f1 54 4d d2 29 |.........TM.)| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 09 1f f5 06 |........... ....| -00000030 2c 4d 55 28 be dd 24 02 70 4c 0d 73 c4 c0 a1 d8 |,MU(..$.pL.s....| -00000040 b3 f0 13 26 76 df 47 bd 2e 27 1d 81 13 02 00 00 |...&v.G..'......| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 6b a5 56 0d |........... k.V.| +00000030 86 c6 28 d5 7e 10 c3 6f 36 c3 d1 d2 90 41 34 ee |..(.~..o6....A4.| +00000040 0c ef 47 5f 17 43 ac 86 59 70 44 14 13 02 00 00 |..G_.C..YpD.....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| -00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| -00000080 03 03 00 17 74 38 f2 8b ac 52 87 0d e3 a9 77 eb |....t8...R....w.| -00000090 af 7f 53 3e 5c 3c cf 49 0a f3 c1 17 03 03 02 6d |..S>\<.I.......m| -000000a0 1f aa 15 fd 9d 05 77 15 12 24 2d ca 2f 93 18 44 |......w..$-./..D| -000000b0 7a 7c e3 c2 57 33 62 fe dc 95 f7 67 c8 08 95 77 |z|..W3b....g...w| -000000c0 1d f3 17 51 80 bc d9 3a 5d f0 a1 f9 fb 4b 21 00 |...Q...:]....K!.| -000000d0 7a 11 2a 51 3d 83 45 ef 62 ce 31 c2 98 9e 20 95 |z.*Q=.E.b.1... .| -000000e0 66 31 a6 3c 37 3b 91 16 d9 3e 37 0e e4 99 a6 a5 |f1.<7;...>7.....| -000000f0 5c 71 42 79 7d de 3c 9c 51 66 ce 2d 6e 1b e4 1d |\qBy}.<.Qf.-n...| -00000100 d5 ee cd 2c ed f9 94 f9 46 9d d1 91 4d 1c 7f dc |...,....F...M...| -00000110 17 a6 5a 42 87 ee 7a bd f3 6a d4 aa 44 b8 97 6d |..ZB..z..j..D..m| -00000120 a7 a3 9f 2d 14 d1 6d 64 e5 8a ed cf c9 a2 da a9 |...-..md........| -00000130 1b f5 83 d4 c8 aa 53 6c e9 5a ee e3 c6 c3 41 df |......Sl.Z....A.| -00000140 a1 17 44 17 7f ca f0 a8 ac 87 fc 2e 6d ba 0f 85 |..D.........m...| -00000150 d4 6d 58 99 8c 19 c1 0a b1 d8 9f 2c 93 36 e3 d3 |.mX........,.6..| -00000160 b6 0e 16 f1 8f a5 04 ee 3a 4f c5 fb 4c 7d d9 1c |........:O..L}..| -00000170 d4 d0 dd b5 59 9e 11 df 46 6c 6c cb f6 76 7a 03 |....Y...Fll..vz.| -00000180 b3 3e a2 45 38 03 56 e6 5a 23 ff 83 ee 0e d1 51 |.>.E8.V.Z#.....Q| -00000190 cc 94 51 82 6c 1a 8b 15 7e bd cd 09 44 72 42 65 |..Q.l...~...DrBe| -000001a0 45 0c 6c ff d7 4d 32 8a b1 9c 3f fa c0 8e 9e 86 |E.l..M2...?.....| -000001b0 5c d7 23 29 bf dd 40 fa d6 db 25 cb 63 74 33 15 |\.#)..@...%.ct3.| -000001c0 23 79 ab 22 39 e2 9e 41 89 01 9f 2e 58 8c 4b fe |#y."9..A....X.K.| -000001d0 b9 a5 cd 5e df be b2 d1 36 9e 8a c5 3f c4 53 db |...^....6...?.S.| -000001e0 29 95 33 6f 24 dd 84 5d da c2 5c 2c 1d cc de 40 |).3o$..]..\,...@| -000001f0 6c e7 07 a5 e3 95 f9 08 62 75 db dd ca e1 4c ab |l.......bu....L.| -00000200 12 3a 16 14 4a b6 78 58 42 81 91 8e b9 48 e0 a3 |.:..J.xXB....H..| -00000210 e4 1e 5f 18 e1 cf 3b 2f b3 2d 81 4c 4c b5 e4 24 |.._...;/.-.LL..$| -00000220 2c f0 e6 b7 43 9c e2 e4 25 88 5d 07 be e3 7b e5 |,...C...%.]...{.| -00000230 d5 7f 2a ad 28 72 54 92 73 19 39 6e f4 d9 3e 13 |..*.(rT.s.9n..>.| -00000240 f3 ed 37 66 22 8a 89 df 7b 99 b3 34 18 0f 7a 76 |..7f"...{..4..zv| -00000250 86 d4 da bd fd b5 f9 75 70 51 de e9 28 75 72 00 |.......upQ..(ur.| -00000260 f5 3f 11 f7 15 01 7e b3 bd b5 a2 05 33 dc 9d 69 |.?....~.....3..i| -00000270 26 f3 cb 45 a8 68 37 0b c6 6f b1 ca 3c 52 01 3c |&..E.h7..o..*h...| -000002a0 c8 83 75 75 d1 95 84 83 c9 e1 2d 0e 1c 37 9f 14 |..uu......-..7..| -000002b0 3a 78 86 01 c6 bb 04 eb 68 c3 26 ed 96 b7 49 43 |:x......h.&...IC| -000002c0 a5 ae 54 c0 d3 23 40 08 26 2f 3a 7e 63 04 2f 62 |..T..#@.&/:~c./b| -000002d0 3e ce 3d b6 70 bb 79 c6 c9 dc 14 24 de 02 96 08 |>.=.p.y....$....| -000002e0 d9 64 a2 c6 26 29 9d 58 a1 85 63 16 db a6 8d 3b |.d..&).X..c....;| -000002f0 0b 1a 15 9c 13 cb 8c cb ff 22 aa 59 da bd 81 78 |.........".Y...x| -00000300 90 f4 86 52 ad ae fc e4 1c ec ff 08 47 17 03 03 |...R........G...| -00000310 00 99 e6 54 8e c8 05 45 8c cb d1 44 df 88 d8 7d |...T...E...D...}| -00000320 1b 07 e1 06 d1 2b c4 fb 75 dd 63 4c b0 14 ee a4 |.....+..u.cL....| -00000330 7f 05 f3 e6 76 04 04 0b 0a 31 23 27 b1 ee 65 36 |....v....1#'..e6| -00000340 50 d9 cb 12 90 a8 6c 73 37 91 3a 57 fa fd 80 79 |P.....ls7.:W...y| -00000350 17 42 f9 27 36 e3 8a 75 3d 95 d6 17 a3 4e 73 5c |.B.'6..u=....Ns\| -00000360 4b e8 fc 58 d3 56 a2 e2 32 26 a0 2d 69 24 31 1e |K..X.V..2&.-i$1.| -00000370 6a 83 8e 5f 3f c4 9f d9 8b f8 59 3e ec 27 d0 96 |j.._?.....Y>.'..| -00000380 6f d6 28 d1 54 e6 f5 14 b4 55 67 de 90 ee f7 ef |o.(.T....Ug.....| -00000390 69 03 b7 d7 80 bd a9 ee a5 30 89 d6 5b ce 07 9e |i........0..[...| -000003a0 0a 09 03 90 4e 5d 75 8c 02 f2 7d 17 03 03 00 45 |....N]u...}....E| -000003b0 43 81 6f 9c bf c2 3c 14 23 f4 4b 9e 1e 17 0e d4 |C.o...<.#.K.....| -000003c0 bd 3a eb 33 34 e3 59 ea 5c ec 9a 5d 86 27 d8 51 |.:.34.Y.\..].'.Q| -000003d0 1f 0c bb d1 80 e0 2e 41 e5 7d 0a 50 df 26 68 cb |.......A.}.P.&h.| -000003e0 d5 83 aa 94 e9 1a c3 0b ab 0d bd 13 b3 55 d8 89 |.............U..| -000003f0 e1 e2 3b fe 01 |..;..| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 65 07 84 ea dc f3 |..........e.....| +00000090 6d 0e 15 2d 61 75 65 05 38 ca 43 ef 5d 14 fc bf |m..-aue.8.C.]...| +000000a0 d3 17 03 03 02 6d d3 f2 e2 97 77 75 a4 ef f1 81 |.....m....wu....| +000000b0 33 c7 c8 ca f0 8e 26 91 78 4d 18 b7 2d d8 30 69 |3.....&.xM..-.0i| +000000c0 8a 3e d7 f1 13 34 1a 61 43 a7 a8 44 0c 6f e5 da |.>...4.aC..D.o..| +000000d0 4b 5e 8d 58 16 98 c8 63 fb c9 07 cb 84 c8 2d a9 |K^.X...c......-.| +000000e0 6b be 04 51 d4 e7 75 11 28 44 f4 8c 77 96 ab 0d |k..Q..u.(D..w...| +000000f0 e7 54 ff ad 43 b6 7b d2 63 46 7c 07 ee 03 a8 e1 |.T..C.{.cF|.....| +00000100 73 98 05 32 5d 73 fc d0 6c 4c 3a 56 e4 02 e7 05 |s..2]s..lL:V....| +00000110 8d 18 c6 dc e5 b9 4f f4 ee 8b 7c 29 12 d7 b9 22 |......O...|)..."| +00000120 90 21 3d 1d 83 09 a4 ac b9 bb f9 b3 0d 2b 82 b5 |.!=..........+..| +00000130 5a ca a7 fc 46 aa 3b ae 75 14 67 3e 69 a5 95 ea |Z...F.;.u.g>i...| +00000140 79 58 6d 72 63 c1 64 62 88 2e 6f a1 cb 2c aa 18 |yXmrc.db..o..,..| +00000150 5a c0 48 79 45 05 66 01 91 05 4d f7 da 61 b9 d8 |Z.HyE.f...M..a..| +00000160 c0 49 d8 1a e5 de de 84 a1 8f 7f db 33 63 50 1c |.I..........3cP.| +00000170 d3 f1 0d 54 7e 00 94 89 79 70 54 8d 6d ff ad a0 |...T~...ypT.m...| +00000180 ea 2a ac ec dd 3b 51 8c 32 56 1a e8 81 c1 48 cb |.*...;Q.2V....H.| +00000190 98 16 3c 5b b2 54 00 97 87 c6 ae 92 15 8a 00 1f |..<[.T..........| +000001a0 1b ad b8 58 a8 5c 8d ea 69 5a 60 3b e5 e2 9b 3c |...X.\..iZ`;...<| +000001b0 2e 9b 55 94 c2 f9 9a 5e a1 e2 92 8d 15 16 74 90 |..U....^......t.| +000001c0 0f 3c 2f 10 42 99 46 e9 52 7a b6 74 4b 96 2d 6e |.>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 ac 36 2d 53 3e |..........E.6-S>| -00000010 08 c7 41 f3 da 40 ad d6 03 05 c1 b5 71 86 82 df |..A..@......q...| -00000020 6a 84 9e df f4 c5 7f 52 29 b0 a5 97 45 69 6e 6a |j......R)...Einj| -00000030 69 1c 91 32 bc 5b e9 62 b1 b8 af 9b 48 06 bb 37 |i..2.[.b....H..7| -00000040 99 45 f5 a9 cd 25 5a 41 c3 49 10 36 af 4a 56 90 |.E...%ZA.I.6.JV.| +00000000 14 03 03 00 01 01 17 03 03 00 45 3e 0c e1 f6 9c |..........E>....| +00000010 ee d8 82 9d b6 e6 ef ea 09 6e 2a a3 e7 45 1b 07 |.........n*..E..| +00000020 95 c8 d5 56 05 c4 90 10 24 eb bc de 52 d9 8e bb |...V....$...R...| +00000030 32 0e 5e 60 a4 bc 09 47 40 e5 30 56 b5 55 a6 ba |2.^`...G@.0V.U..| +00000040 b2 ad 2a 36 59 2e 33 49 54 e8 7e d6 ea 11 db 09 |..*6Y.3IT.~.....| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e b4 23 d9 cd 9b 2a a8 76 07 c0 1e |......#...*.v...| -00000010 54 bb 7f 63 d9 31 2f e8 7b 91 dc b6 c9 3c a1 48 |T..c.1/.{....<.H| -00000020 2b 82 11 17 03 03 00 13 ae 1b 32 f4 2f 9c 1d 8c |+.........2./...| -00000030 98 4e 1d 80 68 f0 e2 a9 25 db f7 |.N..h...%..| +00000000 17 03 03 00 1e 7c c1 c4 be 47 41 b6 b4 8a 37 cb |.....|...GA...7.| +00000010 d0 33 f4 e3 5d a1 62 3e 9a 0b fd a5 df a3 85 f2 |.3..].b>........| +00000020 2d 0d 9d 17 03 03 00 13 29 f1 b6 f3 3f db 71 5c |-.......)...?.q\| +00000030 fc af 5a 52 52 3f a8 a2 f5 03 57 |..ZRR?....W| diff --git a/testdata/Server-TLSv13-CHACHA20-SHA256 b/testdata/Server-TLSv13-CHACHA20-SHA256 index 4aa6d6b..8c2dcef 100644 --- a/testdata/Server-TLSv13-CHACHA20-SHA256 +++ b/testdata/Server-TLSv13-CHACHA20-SHA256 @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 dc 01 00 00 d8 03 03 1d 2a 53 ec f5 |............*S..| -00000010 20 a6 22 2e 35 9d c4 a8 9b f0 0f 89 70 ef af 2b | .".5.......p..+| -00000020 3c 8c 6b 8a 44 74 71 8f e2 b6 f5 20 34 ab 1d 74 |<.k.Dtq.... 4..t| -00000030 cc cf 78 1f 9a 92 0b 7b 77 6a 67 16 fa 45 d2 d8 |..x....{wjg..E..| -00000040 1f c2 15 c3 91 f7 b6 1f 01 62 3e d1 00 04 13 03 |.........b>.....| +00000000 16 03 01 00 dc 01 00 00 d8 03 03 3a 67 df d1 61 |...........:g..a| +00000010 7e 99 9a 82 12 bc af 5e 66 ca 60 c4 a2 7f a6 a6 |~......^f.`.....| +00000020 71 b5 ff b7 e5 96 12 21 f0 92 85 20 e6 52 d4 99 |q......!... .R..| +00000030 4b 4a b0 43 53 5e d4 cd 8e d9 a9 f5 42 aa c4 64 |KJ.CS^......B..d| +00000040 58 65 ec 46 ae d9 d7 0d 62 de 21 2e 00 04 13 03 |Xe.F....b.!.....| 00000050 00 ff 01 00 00 8b 00 00 00 0e 00 0c 00 00 09 31 |...............1| 00000060 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........| 00000070 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................| @@ -11,80 +11,80 @@ 00000090 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................| 000000a0 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 |...........+....| 000000b0 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 |..-.....3.&.$...| -000000c0 20 71 d3 74 f3 4c 75 f7 29 4d 65 5b 13 b4 ea 4a | q.t.Lu.)Me[...J| -000000d0 ad 25 d2 5c 36 e8 42 f5 1d 4e b3 3e 7c a0 87 48 |.%.\6.B..N.>|..H| -000000e0 29 |)| +000000c0 20 d0 26 0b b3 f0 56 30 0d 3b 71 2b db 78 60 62 | .&...V0.;q+.x`b| +000000d0 e9 d1 6b e0 12 95 27 be 40 ad 40 56 e1 f3 f6 c8 |..k...'.@.@V....| +000000e0 4f |O| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 34 ab 1d 74 |........... 4..t| -00000030 cc cf 78 1f 9a 92 0b 7b 77 6a 67 16 fa 45 d2 d8 |..x....{wjg..E..| -00000040 1f c2 15 c3 91 f7 b6 1f 01 62 3e d1 13 03 00 00 |.........b>.....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 e6 52 d4 99 |........... .R..| +00000030 4b 4a b0 43 53 5e d4 cd 8e d9 a9 f5 42 aa c4 64 |KJ.CS^......B..d| +00000040 58 65 ec 46 ae d9 d7 0d 62 de 21 2e 13 03 00 00 |Xe.F....b.!.....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| -00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| -00000080 03 03 00 17 ed 03 2b 35 ba 39 86 ae ee 50 9e 71 |......+5.9...P.q| -00000090 f6 0a 49 2d 6e cc f5 0a 25 00 fc 17 03 03 02 6d |..I-n...%......m| -000000a0 dd 4a 14 ec 14 0e 41 8c 98 3b 02 df cb 33 f1 33 |.J....A..;...3.3| -000000b0 49 04 d2 bb 10 a1 b6 bb 92 17 09 19 4d 1e 18 03 |I...........M...| -000000c0 0c 97 c3 f9 e1 35 fd 5e 09 58 07 e3 15 8c ca 6b |.....5.^.X.....k| -000000d0 19 7a e1 ac 17 84 f8 f3 1d f4 1c f7 53 d6 fc 54 |.z..........S..T| -000000e0 5a c5 a7 4b 67 58 b9 63 85 a8 12 e4 3e 7a 87 7e |Z..KgX.c....>z.~| -000000f0 d6 b0 7f b9 70 b8 6f 57 23 7c 03 69 61 0a 3e bb |....p.oW#|.ia.>.| -00000100 65 b7 e5 48 4c c5 a3 ae 34 46 cf a4 b1 5b a5 26 |e..HL...4F...[.&| -00000110 5b 50 01 0b b7 36 30 06 46 b1 3e ae f7 72 2b 44 |[P...60.F.>..r+D| -00000120 7b e7 4d d0 18 c0 07 53 d4 73 80 02 cf 10 1b c9 |{.M....S.s......| -00000130 10 a8 29 81 c4 89 78 cf ad 3a 90 92 e3 f2 ac 9c |..)...x..:......| -00000140 88 64 f6 1f 96 bf f7 a8 f4 a1 ec 26 52 a7 ab 3b |.d.........&R..;| -00000150 0c 33 0f 46 6b cf c0 07 80 ca 46 61 28 46 9e 5a |.3.Fk.....Fa(F.Z| -00000160 22 98 d7 cf 1f b8 c5 b4 d1 14 3f 71 0b e8 a3 3f |".........?q...?| -00000170 8a 69 a4 1c a7 5a e4 e0 a0 d8 ee e4 5c ef 6b 55 |.i...Z......\.kU| -00000180 55 e5 4e 6f 75 79 d0 53 b8 21 22 1d bf 86 65 15 |U.Nouy.S.!"...e.| -00000190 7a 24 7f 7c 4b 82 84 6d aa 08 9e 45 1a 5f 2b 34 |z$.|K..m...E._+4| -000001a0 66 f2 92 cc f0 7a 7a e5 d1 2a c2 2e cb 78 c5 aa |f....zz..*...x..| -000001b0 18 87 d3 45 6d 39 39 25 3c f3 aa db 6c 10 8c b4 |...Em99%<...l...| -000001c0 f7 f8 ea 49 5f 8a 5b 20 4d f2 e6 53 11 0f a5 3e |...I_.[ M..S...>| -000001d0 ab 0e 0f 6b fb 5f 43 cb 9f ed 0a f1 5e 21 0f 7c |...k._C.....^!.|| -000001e0 86 4f e0 62 cb 2e be 49 2a c0 3b 53 92 8c 58 c2 |.O.b...I*.;S..X.| -000001f0 53 82 bc 1b 84 e1 5f 85 2d 9e 5f 85 9f 4c 31 7d |S....._.-._..L1}| -00000200 20 ad a4 07 4f 08 06 7b e8 47 52 cf a0 4e e5 0f | ...O..{.GR..N..| -00000210 ff d2 5b f6 f2 a0 5d 08 92 98 f0 d9 a0 e9 4f cd |..[...].......O.| -00000220 c9 bb de d9 a0 b5 e1 ec a9 60 7b a9 37 2f 5c 77 |.........`{.7/\w| -00000230 60 62 de dd f8 e1 63 4e 0b 7f 92 ff 81 96 02 ab |`b....cN........| -00000240 86 e4 f8 4e 52 60 91 cf 75 fc 1d c5 b0 74 c2 06 |...NR`..u....t..| -00000250 15 4e be 1b f8 1c 14 ba 8c 2f 0b ab a2 cc 0e 9a |.N......./......| -00000260 ce fc 05 e9 21 e8 08 55 61 61 8e 98 c8 73 63 2c |....!..Uaa...sc,| -00000270 97 71 2e 74 a1 b1 42 dc fe 6e 26 0f 5b 9d 13 96 |.q.t..B..n&.[...| -00000280 47 03 5f 46 4b ae 81 d0 a0 d1 a7 a3 10 de e6 c6 |G._FK...........| -00000290 6c bc 01 65 04 6f e5 6c 35 72 4c 65 74 a9 2c b0 |l..e.o.l5rLet.,.| -000002a0 10 75 7b d5 c1 1a f0 f8 19 f5 7a 7e 28 f2 53 9d |.u{.......z~(.S.| -000002b0 a0 c4 c9 e3 e4 80 71 bc 5d cc 5f 3d 7b 2d 5f f0 |......q.]._={-_.| -000002c0 51 94 8c d8 8e 0f f6 b8 29 44 90 c3 99 9a dc de |Q.......)D......| -000002d0 b6 81 ac 65 70 2b ad 1d df 47 43 a5 a0 b6 51 6f |...ep+...GC...Qo| -000002e0 0e 29 de 9c cf b0 89 93 94 08 d8 f3 a5 05 b9 d3 |.)..............| -000002f0 a0 bd 92 81 82 91 89 2d 4e df 13 98 09 67 31 c1 |.......-N....g1.| -00000300 4d 28 d0 60 28 dc ae 40 c8 0f 33 d8 ac 17 03 03 |M(.`(..@..3.....| -00000310 00 99 22 21 e8 35 f9 9c 29 9d 3a aa 00 ca 0c a7 |.."!.5..).:.....| -00000320 d1 62 94 94 44 81 8f e0 56 13 29 5f c4 a9 2b ac |.b..D...V.)_..+.| -00000330 8a 67 fe 5f 32 4c 40 00 36 db ff 03 41 67 55 9f |.g._2L@.6...AgU.| -00000340 b5 a8 cc 52 89 0d 08 23 af c5 0f 02 70 3a 62 9f |...R...#....p:b.| -00000350 91 82 cc 1d 6f 57 d3 2b f6 3f 75 f3 65 6b c2 ca |....oW.+.?u.ek..| -00000360 e9 5f 0d 1c 5a 31 8f 8f f8 09 8f a8 4a 27 64 f7 |._..Z1......J'd.| -00000370 18 2d fb 29 09 cd 07 fb 7c 32 47 4e 8d e2 e0 47 |.-.)....|2GN...G| -00000380 60 76 f8 9e 2c 81 71 09 ac 7d 3a 10 30 27 07 06 |`v..,.q..}:.0'..| -00000390 c9 7c 9d 57 5c c2 83 be bf 67 28 70 15 4a fa b6 |.|.W\....g(p.J..| -000003a0 56 8b 15 a8 a6 c8 65 ab 8c a4 03 17 03 03 00 35 |V.....e........5| -000003b0 c6 0c 8f e5 57 46 d9 de 3a 13 7e 80 a9 06 76 e7 |....WF..:.~...v.| -000003c0 a7 6d 5d 0e d1 21 dc 20 8f 2c df 86 cf cd e6 6e |.m]..!. .,.....n| -000003d0 71 14 69 a5 63 a1 38 80 d4 28 20 76 31 37 c6 be |q.i.c.8..( v17..| -000003e0 d9 65 b9 0b 74 |.e..t| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 ea 45 ce e9 f5 10 |...........E....| +00000090 95 59 6d ed 7a 9c fb 59 92 aa 50 11 a8 59 93 03 |.Ym.z..Y..P..Y..| +000000a0 a1 17 03 03 02 6d 3c ce b8 65 ce 05 e3 17 9d ed |.....m<..e......| +000000b0 f7 79 65 08 6b 3d 04 bb 8d 60 0a 38 25 e7 4c a8 |.ye.k=...`.8%.L.| +000000c0 6b e1 ad 95 85 30 59 06 c0 0a 26 0e d6 1a 81 76 |k....0Y...&....v| +000000d0 40 55 6a 43 26 71 95 3b d5 73 1b 24 52 79 23 f9 |@UjC&q.;.s.$Ry#.| +000000e0 db 97 c7 8d a7 c3 03 b8 35 56 1a 4a cc 3d 76 88 |........5V.J.=v.| +000000f0 4f 23 75 67 c2 84 6d db fa cc 6c 77 94 f3 eb 95 |O#ug..m...lw....| +00000100 eb 27 f4 e2 03 41 b5 d7 e9 e1 7e 29 b4 82 01 e6 |.'...A....~)....| +00000110 3f 76 e4 1f ef cb 39 27 a5 3b 34 f1 d5 f2 26 c7 |?v....9'.;4...&.| +00000120 10 37 41 c1 08 81 00 9e 37 6d e4 0f a9 57 a7 1d |.7A.....7m...W..| +00000130 ea a8 19 23 32 a7 1a 04 8f c1 00 18 da 06 fd bc |...#2...........| +00000140 90 5d fb e7 03 f5 68 28 77 ed 47 5d 38 ec 66 6b |.]....h(w.G]8.fk| +00000150 0d c6 04 94 b9 af c0 a6 75 63 a4 8e bc 2e fd 52 |........uc.....R| +00000160 9b c3 f5 4f b0 23 4d ed 7b 56 23 f5 fc d6 0e 3d |...O.#M.{V#....=| +00000170 80 e2 31 24 79 33 6c 14 54 ef 09 b7 2d 3a 27 69 |..1$y3l.T...-:'i| +00000180 a7 18 9d cb 70 f6 bc 1a 87 61 f2 9b 37 62 d5 6e |....p....a..7b.n| +00000190 d1 32 b8 93 9b 83 48 48 27 f4 cb fa cd c4 66 92 |.2....HH'.....f.| +000001a0 5d 4e 20 4b 26 b5 27 26 19 60 83 80 3c 4d a7 0a |]N K&.'&.`...8R`...V.8?..| +00000300 cf 26 02 22 9e 48 30 4f eb 24 e3 94 df 09 bc 8f |.&.".H0O.$......| +00000310 51 27 5f 17 03 03 00 99 aa 1e 71 5d 27 7c 0a cc |Q'_.......q]'|..| +00000320 a6 16 22 c9 77 45 a7 c4 a4 e5 2d 2d ac c8 1b 2b |..".wE....--...+| +00000330 2e 48 03 a5 94 c4 0c 4d 52 e4 2e eb eb 46 36 1e |.H.....MR....F6.| +00000340 57 d8 bd 8a 9b 23 9c 27 fb ac 6f 37 2b 8f 70 69 |W....#.'..o7+.pi| +00000350 ed f4 83 56 54 fb 03 d6 58 b5 5e 0d b7 82 58 09 |...VT...X.^...X.| +00000360 32 ce a0 e4 d7 4d 41 ea 42 39 c3 0b 5e 25 29 50 |2....MA.B9..^%)P| +00000370 d0 5b b4 94 15 22 85 d6 52 19 38 a9 56 c4 81 2e |.[..."..R.8.V...| +00000380 ef 8d 3b b9 a0 9e c2 2f 24 53 4f 44 0e c1 a2 e3 |..;..../$SOD....| +00000390 59 d8 d4 44 a9 39 19 e2 b0 d0 ab c7 7a e0 68 e1 |Y..D.9......z.h.| +000003a0 a1 04 f0 7c 0a 12 e8 85 0a a6 6f ec 68 98 a6 98 |...|......o.h...| +000003b0 b9 17 03 03 00 35 08 a4 e6 55 41 66 f8 c3 d4 3c |.....5...UAf...<| +000003c0 17 6f 54 f3 d5 91 09 53 db b1 49 15 d5 0a 2d ec |.oT....S..I...-.| +000003d0 fc 88 68 76 a3 8d 8d d6 b1 4b af b5 be c8 69 0c |..hv.....K....i.| +000003e0 08 41 a3 9d 23 c1 87 5d 33 b9 a6 |.A..#..]3..| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 35 65 9c 9f 5e ef |..........5e..^.| -00000010 8f 90 79 3f a5 ff cb 00 55 e9 2d 94 62 d4 04 72 |..y?....U.-.b..r| -00000020 0e 93 d1 5b cf 53 80 0b 72 d1 b4 e9 09 0b 9a 0f |...[.S..r.......| -00000030 10 81 27 bf c5 d2 6c 5a 99 f5 04 b5 3e a7 ab 77 |..'...lZ....>..w| +00000000 14 03 03 00 01 01 17 03 03 00 35 6a 0f 9f 87 b5 |..........5j....| +00000010 48 60 db 20 7b e9 4f ba fd bf e5 b8 fc 14 3e 2f |H`. {.O.......>/| +00000020 3e e8 58 ed d4 c5 e5 da cc 7d c4 32 d4 db c2 6a |>.X......}.2...j| +00000030 39 65 85 63 9c 92 7b 7c b3 6f 45 d8 c4 c3 5e 6c |9e.c..{|.oE...^l| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e 24 3a 1a 51 aa f2 9e 47 34 90 c7 |.....$:.Q...G4..| -00000010 d9 cc 02 40 89 15 7b 47 b6 45 4a 8b fb 8b b5 1a |...@..{G.EJ.....| -00000020 43 4c 1e 17 03 03 00 13 01 41 14 2e 85 26 f4 d0 |CL.......A...&..| -00000030 da a5 91 14 52 66 0c 7d 26 82 d0 |....Rf.}&..| +00000000 17 03 03 00 1e f5 83 ab 23 7e fa 4b 92 40 4b d3 |........#~.K.@K.| +00000010 dd 19 de a3 32 df 90 94 86 da da b6 58 97 5a 46 |....2.......X.ZF| +00000020 5f f5 b4 17 03 03 00 13 ef a9 5a 2c 54 8d 83 21 |_.........Z,T..!| +00000030 79 79 0e 9e a6 f2 4f f6 f8 36 63 |yy....O..6c| diff --git a/testdata/Server-TLSv13-ECDHE-ECDSA-AES b/testdata/Server-TLSv13-ECDHE-ECDSA-AES index 152eb24..3cd1aaf 100644 --- a/testdata/Server-TLSv13-ECDHE-ECDSA-AES +++ b/testdata/Server-TLSv13-ECDHE-ECDSA-AES @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 dc 01 00 00 d8 03 03 34 c0 8c 76 f5 |...........4..v.| -00000010 c3 94 de 34 58 f6 fe 27 51 28 2d cf be 74 61 8e |...4X..'Q(-..ta.| -00000020 5c 25 14 22 1b b2 70 4b c6 a5 e7 20 f5 d9 d5 d1 |\%."..pK... ....| -00000030 5c 24 ab df 36 f1 c8 b9 4a 66 aa 52 d3 6c 3b 07 |\$..6...Jf.R.l;.| -00000040 53 e2 e3 a5 6a bf ad 25 1e 93 06 40 00 04 13 01 |S...j..%...@....| +00000000 16 03 01 00 dc 01 00 00 d8 03 03 9e ef 21 d2 56 |.............!.V| +00000010 3a 1d 59 80 d2 09 8b d6 5d df fc 37 e3 b6 8d 14 |:.Y.....]..7....| +00000020 05 7c da 8e 01 c9 cf 0e a8 ec 5b 20 19 22 52 01 |.|........[ ."R.| +00000030 0c d8 6e 8c 98 99 97 e5 ab b4 f9 5c fc 29 3f bd |..n........\.)?.| +00000040 a0 03 0d 05 78 24 dd 69 1d ad 26 39 00 04 13 01 |....x$.i..&9....| 00000050 00 ff 01 00 00 8b 00 00 00 0e 00 0c 00 00 09 31 |...............1| 00000060 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........| 00000070 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................| @@ -11,76 +11,76 @@ 00000090 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................| 000000a0 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 |...........+....| 000000b0 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 |..-.....3.&.$...| -000000c0 20 09 5c dd 14 86 ba fa c5 6f ab b8 50 d5 1b 6f | .\......o..P..o| -000000d0 1b 49 12 c2 d6 e7 a0 8c ca 95 7e 5d 62 ab 5a c8 |.I........~]b.Z.| -000000e0 73 |s| +000000c0 20 8e 46 85 be 7d 3e a5 f5 a0 41 a3 b0 d2 de 25 | .F..}>...A....%| +000000d0 ae 1c 30 b5 b2 33 83 81 e1 1c 72 75 73 59 ba b6 |..0..3....rusY..| +000000e0 0f |.| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 f5 d9 d5 d1 |........... ....| -00000030 5c 24 ab df 36 f1 c8 b9 4a 66 aa 52 d3 6c 3b 07 |\$..6...Jf.R.l;.| -00000040 53 e2 e3 a5 6a bf ad 25 1e 93 06 40 13 01 00 00 |S...j..%...@....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 19 22 52 01 |........... ."R.| +00000030 0c d8 6e 8c 98 99 97 e5 ab b4 f9 5c fc 29 3f bd |..n........\.)?.| +00000040 a0 03 0d 05 78 24 dd 69 1d ad 26 39 13 01 00 00 |....x$.i..&9....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| -00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| -00000080 03 03 00 17 57 c3 ea 50 c5 f5 d6 1f 4f e9 7e 30 |....W..P....O.~0| -00000090 79 5b 6e 09 78 a7 f8 0d a4 20 3d 17 03 03 02 22 |y[n.x.... =...."| -000000a0 78 32 99 7b 8b 67 07 bc bf 86 bc 4e 6d ba 2b 2e |x2.{.g.....Nm.+.| -000000b0 ba c8 bb d4 c5 10 dc 5a 9a 38 13 38 92 6f 8b 8c |.......Z.8.8.o..| -000000c0 73 8e 97 5e 39 3e 4e 93 b7 76 c4 c7 75 67 43 c9 |s..^9>N..v..ugC.| -000000d0 80 a3 bb 88 71 e4 46 e2 dd 17 df a1 ba b8 af 2f |....q.F......../| -000000e0 47 e8 16 a5 04 08 69 66 34 f2 22 c9 28 06 70 b5 |G.....if4.".(.p.| -000000f0 f7 c8 90 61 f4 77 32 7a f7 e5 41 d2 dc e7 13 9b |...a.w2z..A.....| -00000100 41 09 df 97 e2 9a 31 33 ef 48 48 2c 64 d9 9c 11 |A.....13.HH,d...| -00000110 e7 13 2b 1e 6d 3f 73 20 c7 5a 2f 2b aa bd f6 29 |..+.m?s .Z/+...)| -00000120 49 c1 de 95 65 dc 7c a4 de d8 9b 80 1c 38 3b a4 |I...e.|......8;.| -00000130 0c 7b 31 9a 27 b4 6f 38 2a 58 15 82 97 f0 99 bd |.{1.'.o8*X......| -00000140 d0 61 ca c9 2f 3f 71 8f 29 a6 ed 74 32 73 10 38 |.a../?q.)..t2s.8| -00000150 c8 33 ba a0 9b c3 27 59 20 24 15 e5 02 27 b4 1c |.3....'Y $...'..| -00000160 62 72 9c 83 da 93 9e 03 a1 4a d3 50 df d0 5c 78 |br.......J.P..\x| -00000170 74 58 63 c7 f6 3b 6e ba da 13 5c 66 6e 3e cb d5 |tXc..;n...\fn>..| -00000180 7f b1 ed 62 11 60 a1 ed 20 d8 3b 07 d6 36 f0 f2 |...b.`.. .;..6..| -00000190 75 9a a4 3a 11 ac fa 6e a1 2e 06 fe 44 90 06 2e |u..:...n....D...| -000001a0 78 8e 93 97 7f 7a 5c e2 ac be 29 cd 0f ea d2 5c |x....z\...)....\| -000001b0 ca 96 a1 7e 6e b2 3e b3 80 79 fb 25 a4 ee 99 29 |...~n.>..y.%...)| -000001c0 85 f7 b7 1f dd 35 d4 3b fb d2 a9 a1 e9 67 0f 7a |.....5.;.....g.z| -000001d0 ee fd 61 65 79 fc b3 8a c2 32 1c b6 54 b9 c3 ab |..aey....2..T...| -000001e0 2b 32 32 2d 88 16 9e 10 60 ee ef 58 85 1a 65 eb |+22-....`..X..e.| -000001f0 5b 9f ae e3 fb da 37 7e ec 73 69 57 29 e1 ab 76 |[.....7~.siW)..v| -00000200 a3 bd fa 02 91 3d f8 6d 95 49 81 4a 44 2e d9 8c |.....=.m.I.JD...| -00000210 c7 00 0d ef 0c 84 a9 b2 16 ff 6a 52 79 99 37 6d |..........jRy.7m| -00000220 dc 5f c6 32 76 ac 3b 92 cc 21 6a 2b 26 03 43 66 |._.2v.;..!j+&.Cf| -00000230 b2 64 79 51 11 08 7f 3f 63 ec 22 79 d7 90 4f 84 |.dyQ...?c."y..O.| -00000240 ed 58 1f c3 fe e9 87 bf d1 80 66 25 5a 95 53 1f |.X........f%Z.S.| -00000250 08 88 0c b8 7e 3b 07 c3 c7 4b 13 80 23 b1 15 3e |....~;...K..#..>| -00000260 e7 94 9b 91 8e 56 37 47 99 5f 5f 45 2d 11 f7 fc |.....V7G.__E-...| -00000270 33 b6 1f 6a 05 d8 8c 9f 1a 5f 38 d7 e8 1a d0 83 |3..j....._8.....| -00000280 11 b6 bc 09 7b a9 31 19 b2 f1 a7 ea 8b a3 be a7 |....{.1.........| -00000290 72 97 fb 09 19 5a d0 87 9c 01 bb e6 6e 50 91 87 |r....Z......nP..| -000002a0 b1 e6 0c e0 83 af b2 e8 b9 fa 71 3e 3c 6e 59 91 |..........q>| +000000d0 0e 27 e4 dc b3 72 45 59 01 39 f9 da 5a b3 fe 61 |.'...rEY.9..Z..a| +000000e0 e4 27 2c ba e5 b3 59 29 70 b6 3d b0 63 fa 9b 5f |.',...Y)p.=.c.._| +000000f0 8f c0 4c 6e 31 fd 8f 55 1a c5 36 3b 00 91 14 89 |..Ln1..U..6;....| +00000100 87 3c 20 97 88 79 c7 05 c9 37 66 03 70 ea 60 25 |.< ..y...7f.p.`%| +00000110 93 d4 d1 a6 d8 b8 ad 9e 1a 5b 68 30 7b 14 ce e2 |.........[h0{...| +00000120 76 9d 7f d8 b5 5e 7d ad 5d 7b 63 be d1 16 14 60 |v....^}.]{c....`| +00000130 d1 03 21 a8 83 5d 5b 36 13 1a 1e 2d 97 79 eb ef |..!..][6...-.y..| +00000140 36 28 c5 5a 23 78 53 18 59 15 28 31 0f 8b 43 a2 |6(.Z#xS.Y.(1..C.| +00000150 e8 2d d9 87 5e 44 01 fc 94 04 32 2a 0b 8c fb 74 |.-..^D....2*...t| +00000160 c3 40 ac 51 38 1a 87 bc b9 58 8d 75 c2 cc ec 29 |.@.Q8....X.u...)| +00000170 2e 93 f7 9e 6a d1 0b 18 9f b0 d7 b7 4c 3f 8e 44 |....j.......L?.D| +00000180 0e 44 53 dc 64 24 85 35 b0 64 c1 0e 4e 8d ad 3d |.DS.d$.5.d..N..=| +00000190 10 91 2f 89 1d 59 94 06 0f 94 18 19 50 4d dd 9b |../..Y......PM..| +000001a0 ff dd 78 9f 0a 26 35 66 00 0e 13 a2 8b 83 df 3a |..x..&5f.......:| +000001b0 c0 ce c1 d7 8c 6a eb a7 b9 d9 68 cc 69 e9 07 9f |.....j....h.i...| +000001c0 0d 96 c7 3b 73 7e c3 76 96 9a 47 66 7c 66 a3 6b |...;s~.v..Gf|f.k| +000001d0 96 b1 9d 52 06 0a ed b5 87 8f ba ad 06 da 0b 1e |...R............| +000001e0 7c 1a f6 64 c9 6c 27 30 96 bc c2 1a c4 47 c5 e0 ||..d.l'0.....G..| +000001f0 76 1f 7c db aa b5 49 a0 ac aa d9 c7 68 7d 5f 51 |v.|...I.....h}_Q| +00000200 a1 dc 86 a1 01 d7 6a e3 b0 12 c1 d1 79 39 fe 6b |......j.....y9.k| +00000210 bb 6b a6 82 e1 8f f6 a5 a8 7c 06 db 74 4f 80 a8 |.k.......|..tO..| +00000220 ec 67 f5 a8 7a e8 2a 71 be ee 56 fd 39 80 2c ba |.g..z.*q..V.9.,.| +00000230 74 a2 76 83 6f 83 a6 f5 9d 5e f6 23 60 f5 88 e2 |t.v.o....^.#`...| +00000240 13 f2 7b ee cd f8 0f 2b 51 73 44 76 e2 56 32 db |..{....+QsDv.V2.| +00000250 e7 cd 86 6b f4 87 dd 14 47 0a a2 93 7c 53 21 84 |...k....G...|S!.| +00000260 78 f6 c3 f3 ff fc 82 1f d9 7c 4e f7 93 39 aa fc |x........|N..9..| +00000270 89 45 b0 7d 28 81 fe e9 98 94 33 49 0c 1f 3b 95 |.E.}(.....3I..;.| +00000280 68 10 98 c9 34 59 9f ce 60 1e 09 b3 bc 94 1e 16 |h...4Y..`.......| +00000290 cc 72 fd 4e 81 a3 57 fe c2 10 4f 45 3a bf 2b 48 |.r.N..W...OE:.+H| +000002a0 86 be 60 61 19 b7 30 ff c6 83 be 97 80 85 c3 fd |..`a..0.........| +000002b0 f0 cb ad a3 17 6e 66 cf 16 d8 48 51 d1 da 3d a2 |.....nf...HQ..=.| +000002c0 ad ff 36 10 09 ba 09 cf 17 03 03 00 a4 50 2a 1b |..6..........P*.| +000002d0 51 51 99 a8 cf 07 a8 19 ac b1 02 5c a9 16 e0 1c |QQ.........\....| +000002e0 24 97 de 28 e1 38 27 06 f5 b3 4e 99 6f f1 00 a5 |$..(.8'...N.o...| +000002f0 32 eb a4 a4 6e 8f db c2 71 e7 2a 89 da 35 00 7b |2...n...q.*..5.{| +00000300 47 8a 21 70 94 ec 9a 34 10 7b 37 79 f5 c3 8c 34 |G.!p...4.{7y...4| +00000310 c1 d6 b4 3f 36 50 43 16 1e a3 a6 8e a2 bc 16 f9 |...?6PC.........| +00000320 cd 03 2c b2 6c c6 45 87 d5 10 b9 26 12 0d 6e a1 |..,.l.E....&..n.| +00000330 0f 33 94 11 59 90 55 13 3c be c1 b3 e4 b7 43 25 |.3..Y.U.<.....C%| +00000340 5d 41 8d 78 73 21 84 30 d8 51 64 e2 43 48 9d 40 |]A.xs!.0.Qd.CH.@| +00000350 47 c4 6c b5 cf 7d 43 65 f1 5a ce e7 71 66 cd 98 |G.l..}Ce.Z..qf..| +00000360 60 90 10 f9 ad 15 e3 c8 16 d5 13 ba 3b 0b e1 38 |`...........;..8| +00000370 97 17 03 03 00 35 e0 02 c7 69 21 47 8f 99 34 90 |.....5...i!G..4.| +00000380 03 69 0b b5 9b e6 33 63 f0 d1 c0 7c 58 2f 95 e0 |.i....3c...|X/..| +00000390 3f 46 ed ee 1c f6 15 6d 62 d0 05 81 c3 cc 45 ac |?F.....mb.....E.| +000003a0 c6 9c 78 da aa cd d5 8b b1 6b 7d |..x......k}| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 35 c1 5b 7a 5c 1b |..........5.[z\.| -00000010 3c 04 8b 1d 88 fb 64 28 08 47 4b 5e 18 f9 b9 25 |<.....d(.GK^...%| -00000020 39 61 50 21 9b 0a 7a af 2a 26 6e 46 30 66 50 db |9aP!..z.*&nF0fP.| -00000030 8e 3f de c3 9e 65 e3 00 51 cd cc 38 44 92 13 5c |.?...e..Q..8D..\| +00000000 14 03 03 00 01 01 17 03 03 00 35 6e 4d 7c 75 a9 |..........5nM|u.| +00000010 04 4b 9b f9 07 25 d0 c2 d9 fd f8 8b fc 22 1e 54 |.K...%.......".T| +00000020 ff d1 62 6b 2a 3c f8 87 a3 2e 27 44 eb cc 34 8f |..bk*<....'D..4.| +00000030 a6 66 f0 a0 46 c2 6b b9 82 01 3d 85 f8 58 46 9b |.f..F.k...=..XF.| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e 1c 4f 11 b2 e9 66 a3 ed 64 2d 23 |......O...f..d-#| -00000010 b6 11 b0 fa 27 55 53 93 3a 70 01 c8 33 58 f8 48 |....'US.:p..3X.H| -00000020 68 81 50 17 03 03 00 13 9c a6 6d 62 80 e3 55 f6 |h.P.......mb..U.| -00000030 22 d5 84 59 35 8f 79 6f 1f 5e 79 |"..Y5.yo.^y| +00000000 17 03 03 00 1e c6 81 97 11 f3 86 a0 0f e6 7c 91 |..............|.| +00000010 3f 97 8c db 4a 55 95 32 be 19 3d 37 36 1e 68 e4 |?...JU.2..=76.h.| +00000020 81 7b 29 17 03 03 00 13 7e 90 5f 1f 4a 65 c0 fd |.{).....~._.Je..| +00000030 60 96 48 bb 22 b1 08 86 41 75 80 |`.H."...Au.| diff --git a/testdata/Server-TLSv13-ExportKeyingMaterial b/testdata/Server-TLSv13-ExportKeyingMaterial index b1a9405..ce9d5f1 100644 --- a/testdata/Server-TLSv13-ExportKeyingMaterial +++ b/testdata/Server-TLSv13-ExportKeyingMaterial @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 e4 01 00 00 e0 03 03 40 35 14 01 11 |...........@5...| -00000010 ea 27 ee ac 2d 8b d9 de 62 2d 94 4e 4f c6 97 09 |.'..-...b-.NO...| -00000020 8a 84 1d 96 ca 1e 1c a2 a5 9f 82 20 cf 5d fb ec |........... .]..| -00000030 d8 3d 23 2d 89 77 a9 7b 1a 9a 72 e6 bd 17 50 53 |.=#-.w.{..r...PS| -00000040 56 32 17 d3 50 38 0c 9d 0b e4 8d 9a 00 08 13 02 |V2..P8..........| +00000000 16 03 01 00 e4 01 00 00 e0 03 03 ec cb e2 b2 15 |................| +00000010 21 48 2d fd fb 7d ed 7b 44 07 8f f5 d2 e9 31 64 |!H-..}.{D.....1d| +00000020 88 d8 38 6d 2e be e8 12 1d de 1e 20 05 c9 22 74 |..8m....... .."t| +00000030 db c2 68 b3 88 31 3f 9e 8c 65 23 9b 90 58 03 3b |..h..1?..e#..X.;| +00000040 39 7b 61 a9 9f 7c 1e 61 79 dc 4d 29 00 08 13 02 |9{a..|.ay.M)....| 00000050 13 03 13 01 00 ff 01 00 00 8f 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| @@ -11,82 +11,82 @@ 00000090 00 0d 00 1e 00 1c 04 03 05 03 06 03 08 07 08 08 |................| 000000a0 08 09 08 0a 08 0b 08 04 08 05 08 06 04 01 05 01 |................| 000000b0 06 01 00 2b 00 03 02 03 04 00 2d 00 02 01 01 00 |...+......-.....| -000000c0 33 00 26 00 24 00 1d 00 20 99 33 07 c3 2f 4d 4d |3.&.$... .3../MM| -000000d0 f1 3b 8a 93 f4 58 77 2b 69 e6 6e ae e8 1b 0a 30 |.;...Xw+i.n....0| -000000e0 a2 35 f5 1f 9e ed 34 ed 0c |.5....4..| +000000c0 33 00 26 00 24 00 1d 00 20 8b 1b 67 4d 4f 49 83 |3.&.$... ..gMOI.| +000000d0 bd 4c b6 42 07 4e 3b 64 c9 90 64 16 ec 3c f8 9e |.L.B.N;d..d..<..| +000000e0 05 2f 55 11 50 ab b9 1e 54 |./U.P...T| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 cf 5d fb ec |........... .]..| -00000030 d8 3d 23 2d 89 77 a9 7b 1a 9a 72 e6 bd 17 50 53 |.=#-.w.{..r...PS| -00000040 56 32 17 d3 50 38 0c 9d 0b e4 8d 9a 13 02 00 00 |V2..P8..........| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 05 c9 22 74 |........... .."t| +00000030 db c2 68 b3 88 31 3f 9e 8c 65 23 9b 90 58 03 3b |..h..1?..e#..X.;| +00000040 39 7b 61 a9 9f 7c 1e 61 79 dc 4d 29 13 02 00 00 |9{a..|.ay.M)....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| -00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| -00000080 03 03 00 17 57 f0 44 ca 0f b9 92 0d 8f 6f 1f 11 |....W.D......o..| -00000090 a1 03 28 76 f0 0c 46 87 5a c7 b5 17 03 03 02 6d |..(v..F.Z......m| -000000a0 78 f0 92 2b 56 5d b9 62 95 1b 04 8b d0 49 63 31 |x..+V].b.....Ic1| -000000b0 1f 1d 9a 37 b3 64 e5 11 21 58 4c e2 d2 da a4 e1 |...7.d..!XL.....| -000000c0 1b 26 e7 11 3f b5 46 18 62 46 35 8a ae b1 88 93 |.&..?.F.bF5.....| -000000d0 5c 97 6c 66 6e a7 5d 63 fb e2 07 07 f5 59 02 38 |\.lfn.]c.....Y.8| -000000e0 78 d5 52 97 9b 2f 06 d3 91 c0 a3 62 9b 74 7e f8 |x.R../.....b.t~.| -000000f0 41 0b 71 df f9 ed 42 1b 51 ec db 66 86 d7 db c0 |A.q...B.Q..f....| -00000100 a1 27 9e 51 95 fe 54 66 4a f2 72 7b d7 91 cd 00 |.'.Q..TfJ.r{....| -00000110 b1 fd 36 a1 6f c5 c4 31 3e b8 d8 ab 0b f5 57 bf |..6.o..1>.....W.| -00000120 63 91 99 5e 04 63 c7 fa c9 73 b5 23 0e e9 45 3a |c..^.c...s.#..E:| -00000130 15 2b a7 d3 f5 04 50 ab 17 65 40 d3 63 da 6e 2a |.+....P..e@.c.n*| -00000140 66 45 2d 41 1f 09 fa 62 67 86 8f e6 c5 7e 02 d0 |fE-A...bg....~..| -00000150 27 bf 43 e8 15 8e 4f 71 67 2e 9b 13 61 44 23 0b |'.C...Oqg...aD#.| -00000160 29 06 81 0c 9c 28 c5 a9 f1 6e 49 84 b3 75 90 93 |)....(...nI..u..| -00000170 0a f7 db 01 29 9f 73 5d 00 f5 41 a7 cb 0b b0 97 |....).s]..A.....| -00000180 d7 b6 d0 71 31 56 88 88 7b 16 3b 54 5e 82 2b 87 |...q1V..{.;T^.+.| -00000190 2c 74 2c 8f 0a ec 5f 2b ef a6 86 55 49 d9 a2 af |,t,..._+...UI...| -000001a0 4a 34 48 a4 65 b6 4f f3 7f b6 30 e8 c2 f1 03 f4 |J4H.e.O...0.....| -000001b0 89 90 02 b6 f2 6e 27 e8 33 5f c7 34 91 a7 fd 96 |.....n'.3_.4....| -000001c0 58 a1 4b 3a e5 73 92 1c ed 01 dd 15 a2 b5 61 01 |X.K:.s........a.| -000001d0 1b 1d 52 0d 10 1f 1e a8 3b a4 b8 cf 50 0b ff e6 |..R.....;...P...| -000001e0 cf b7 59 cf 60 55 f7 2d ad 1d 7a 76 dc c0 4d d3 |..Y.`U.-..zv..M.| -000001f0 5f 06 d2 1e 02 a8 23 12 6c ae 3a 90 d4 1a ef b1 |_.....#.l.:.....| -00000200 31 c8 82 5c ca 92 1d db c3 0c 5e 9e 80 1c 1d b2 |1..\......^.....| -00000210 f5 55 b5 55 92 94 9a 43 ef 60 86 ee f0 65 68 bd |.U.U...C.`...eh.| -00000220 ad f8 5d f2 06 3f 2d b5 52 26 71 33 bb 0a f2 31 |..]..?-.R&q3...1| -00000230 8a 98 41 8d 8d 59 d1 b7 c9 b1 3c e1 37 9e 70 0b |..A..Y....<.7.p.| -00000240 da ae 25 34 49 93 ce f3 a0 c9 b6 7e 06 34 53 07 |..%4I......~.4S.| -00000250 ef 61 43 9d 79 2c d0 02 5a 64 bd 4a 46 98 3c 42 |.aC.y,..Zd.JF.g.........x| -000003a0 3f eb 55 57 d9 7b 3a 31 c8 b9 d2 17 03 03 00 45 |?.UW.{:1.......E| -000003b0 ec 76 02 21 7b 96 9c ff a5 ea e9 2e 92 a7 d6 f4 |.v.!{...........| -000003c0 8e c0 a0 bc 21 11 44 df 84 dd 3c 21 5d cc 1b 2c |....!.D....| -000003f0 f0 29 1b 4b 6e |.).Kn| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 f1 1b 1c 50 d3 90 |.............P..| +00000090 2b 14 76 bc 0a 21 94 58 1f 9b f1 0a 38 3f f2 54 |+.v..!.X....8?.T| +000000a0 fb 17 03 03 02 6d 45 81 6d 58 83 be 84 b1 29 47 |.....mE.mX....)G| +000000b0 59 99 33 5e 2e d9 7d 86 57 4c 80 74 cf 11 9f b7 |Y.3^..}.WL.t....| +000000c0 0f 06 b2 bb b2 1d fa 18 6b f8 7a b1 e1 12 b5 15 |........k.z.....| +000000d0 ea 3e 3b df e7 c6 5f 82 4e a5 4a 3f 3d 39 61 76 |.>;..._.N.J?=9av| +000000e0 93 0e 7c b0 2d da 75 e3 ee 91 3a f6 0f d1 a7 9a |..|.-.u...:.....| +000000f0 b7 4a 7d 93 e5 05 8b 77 01 d2 21 16 94 b6 4d 60 |.J}....w..!...M`| +00000100 ed de e6 2e 87 23 eb 4b 74 8e 5b 4f 25 67 7b cf |.....#.Kt.[O%g{.| +00000110 1a 43 c1 67 31 8e ca 15 f8 b9 a2 ac cc 58 b7 67 |.C.g1........X.g| +00000120 93 c9 4a 79 9b 45 36 29 1d 80 c0 0c 0a be 38 c3 |..Jy.E6)......8.| +00000130 97 90 2d 20 33 be 71 06 59 6d e1 b8 2f 92 f5 67 |..- 3.q.Ym../..g| +00000140 fe e4 39 ad 86 98 c2 96 ab 89 a5 64 3b 83 33 85 |..9........d;.3.| +00000150 a9 0a 08 89 7b 5a 95 92 b6 ab fe 0c 42 c9 a7 c2 |....{Z......B...| +00000160 5a 49 45 7a ac 44 d9 43 8c 13 b7 cf ac e2 22 ec |ZIEz.D.C......".| +00000170 63 da eb b6 02 4e d7 51 cb 64 e5 9b 14 4d 0c 9e |c....N.Q.d...M..| +00000180 62 b5 48 97 01 8f 44 29 6b 86 0f 0b 96 40 2f 0d |b.H...D)k....@/.| +00000190 61 98 7a e4 bc 3d 11 4b 30 41 8f e1 b4 d1 3f 7f |a.z..=.K0A....?.| +000001a0 3c b0 a7 03 f8 ad b3 61 98 3c 2a 44 5a 5c ef 2f |<......a.<*DZ\./| +000001b0 44 f5 90 92 85 7e e1 72 cf a7 a9 b8 da 88 d5 31 |D....~.r.......1| +000001c0 40 3b 06 d2 fc 35 86 a7 fc 5b 08 0d 97 55 41 3b |@;...5...[...UA;| +000001d0 1c 31 04 90 aa bb e6 76 ff 2e 9a 68 76 d7 2d 41 |.1.....v...hv.-A| +000001e0 09 55 21 d7 7c 40 a1 65 2a 81 d3 f7 4e 0b b3 ae |.U!.|@.e*...N...| +000001f0 31 d3 a4 1e 92 85 65 9b 02 73 46 93 d8 bd 4a 60 |1.....e..sF...J`| +00000200 b8 93 03 70 2f 76 dd 85 d8 d6 eb 34 b8 1a 7e dd |...p/v.....4..~.| +00000210 7b af b1 aa ca 80 18 74 29 c3 c5 4a d9 3e f8 2f |{......t)..J.>./| +00000220 9c 7b ea ca 87 37 44 fe b3 fb 9d 6e 76 fb 19 72 |.{...7D....nv..r| +00000230 17 6f 1d 13 ff 55 3a 8f ce c9 c3 a6 fc 4a 34 da |.o...U:......J4.| +00000240 27 76 6d 1f 56 18 bb b7 16 a5 68 a2 06 74 d6 ad |'vm.V.....h..t..| +00000250 aa bb 79 09 06 22 cd c0 b8 12 b4 03 a0 32 bb 90 |..y..".......2..| +00000260 f6 a3 64 53 f5 f2 6c 2c b0 5d 4e 2d 35 bf 3d 02 |..dS..l,.]N-5.=.| +00000270 49 3a b2 95 99 ac 4e 6b 89 38 c0 d1 e5 ea 39 a1 |I:....Nk.8....9.| +00000280 bf 9f b5 dc be cb b6 e7 cd 88 f6 29 ad a0 a0 2e |...........)....| +00000290 a2 c8 1a 93 97 d3 f4 c0 4a 38 7e 15 87 7e 4d ed |........J8~..~M.| +000002a0 b8 fa 5f 59 2d 1c 6d fe 22 42 11 5b 02 87 d6 31 |.._Y-.m."B.[...1| +000002b0 cb 3c 0f 93 fe 97 d1 48 4c d4 ff b0 32 e5 e9 3a |.<.....HL...2..:| +000002c0 49 5c a8 77 a8 af c9 e9 76 2a 53 b3 1f 1c 29 25 |I\.w....v*S...)%| +000002d0 9f 94 b1 80 e2 f9 6c 53 c7 b2 bb a1 39 f7 42 3d |......lS....9.B=| +000002e0 b5 ea 02 2b ab 71 b6 18 58 2c 51 b2 34 25 64 90 |...+.q..X,Q.4%d.| +000002f0 34 90 09 22 91 a1 41 75 fb a7 b3 80 17 d7 ca 89 |4.."..Au........| +00000300 2a d3 8a 32 39 8b 31 5e 31 3e e2 57 ab 0b 67 3b |*..29.1^1>.W..g;| +00000310 32 cf 7a 17 03 03 00 99 bc 5a 9c 2b 4a 62 b4 20 |2.z......Z.+Jb. | +00000320 bb 2e cd 7e 5d 5c ce 57 1a 6c 2e 1b 95 47 c0 0c |...~]\.W.l...G..| +00000330 a3 7f 0c 0d b8 58 0e 11 4c 08 75 23 8e 78 21 17 |.....X..L.u#.x!.| +00000340 fa 30 60 e4 9b 1d d1 17 3a 3d 2f f7 48 7f bc c2 |.0`.....:=/.H...| +00000350 35 fe 98 22 29 24 16 76 ae 41 f7 fb 97 ac 8b b1 |5..")$.v.A......| +00000360 b5 80 8a bb 44 b9 aa cc fc a4 d7 55 1c 7d a2 97 |....D......U.}..| +00000370 14 29 1e d6 53 aa 2c 63 08 00 80 f8 2f 85 ee 73 |.)..S.,c..../..s| +00000380 ef 87 fa cd d1 50 10 6c 6c ad 44 c0 22 81 a0 9e |.....P.ll.D."...| +00000390 6a 2f 7a 29 77 6d 22 4e 25 95 23 55 f5 9c e6 78 |j/z)wm"N%.#U...x| +000003a0 5e ba c0 7c 18 ab 77 58 b2 9e da 1e 0f fe 50 23 |^..|..wX......P#| +000003b0 8b 17 03 03 00 45 e9 b2 27 9b 47 5e fa 8f f2 ad |.....E..'.G^....| +000003c0 0e 70 e5 19 90 dc 68 4a 74 e7 7e ef 65 94 9e 6c |.p....hJt.~.e..l| +000003d0 f6 5d 9c 28 f1 07 5e ed 14 d0 2c f9 ae 71 a8 77 |.].(..^...,..q.w| +000003e0 13 5d 51 58 2b cd 98 e9 47 f0 99 56 df de d7 ff |.]QX+...G..V....| +000003f0 36 99 4a c3 57 5b d9 28 14 12 c4 |6.J.W[.(...| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 4a 89 ee af 15 |..........EJ....| -00000010 db cf 58 6f f9 5a cd 28 a7 57 08 38 7a a4 1a a6 |..Xo.Z.(.W.8z...| -00000020 d9 ed 5f f8 b1 f8 a9 aa 19 70 5f 8d 87 b9 d8 5c |.._......p_....\| -00000030 b6 4d d6 04 4b 66 1b 6a 57 25 58 bf a1 b6 72 81 |.M..Kf.jW%X...r.| -00000040 74 b9 c9 6f 02 c9 0b f6 b2 7f 70 72 78 a6 06 bd |t..o......prx...| +00000000 14 03 03 00 01 01 17 03 03 00 45 b3 84 9c d1 43 |..........E....C| +00000010 0e da 02 25 e8 03 3a 8f 21 86 d1 76 3e be 62 06 |...%..:.!..v>.b.| +00000020 18 f5 09 d7 e2 85 eb be c5 c0 e7 93 dc 52 37 5c |.............R7\| +00000030 ae dd 0c 20 49 68 15 f7 4a 9e 2a ed af 31 96 8a |... Ih..J.*..1..| +00000040 9f f0 63 a3 dc 99 c9 59 62 b7 39 59 0d 9d fc 8d |..c....Yb.9Y....| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e ee 68 ad 7a 47 ba 93 80 26 01 37 |......h.zG...&.7| -00000010 1b 3b b8 61 aa 60 a1 0f 21 a4 81 51 16 a5 b1 36 |.;.a.`..!..Q...6| -00000020 b2 39 ca 17 03 03 00 13 5e 1c 9b a5 d1 02 68 96 |.9......^.....h.| -00000030 99 41 8c a1 9e 49 38 1d 97 b6 c8 |.A...I8....| +00000000 17 03 03 00 1e 07 ad 4c 9d 83 85 be d5 a3 61 70 |.......L......ap| +00000010 bc 7a a7 40 17 70 d5 97 18 80 1c 9b 52 95 97 de |.z.@.p......R...| +00000020 46 6c ef 17 03 03 00 13 58 d1 0f aa 71 be 1a c9 |Fl......X...q...| +00000030 f3 ef 38 13 a6 5b ff 84 99 09 81 |..8..[.....| diff --git a/testdata/Server-TLSv13-HelloRetryRequest b/testdata/Server-TLSv13-HelloRetryRequest index b63a5f8..1fff456 100644 --- a/testdata/Server-TLSv13-HelloRetryRequest +++ b/testdata/Server-TLSv13-HelloRetryRequest @@ -1,118 +1,119 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 da 01 00 00 d6 03 03 29 a2 7e 24 c3 |...........).~$.| -00000010 02 bf 2c 29 7b 47 08 06 bf 75 ef c5 59 2d a4 f0 |..,){G...u..Y-..| -00000020 2f fc 53 62 5d b8 4d 3c f1 31 2d 20 96 7c 00 da |/.Sb].M<.1- .|..| -00000030 35 8c 39 0a f8 1c 61 b8 4a a8 28 b4 a2 de 56 7b |5.9...a.J.(...V{| -00000040 a9 f3 ab 5d db 30 ca 2c d1 82 9e e2 00 08 13 02 |...].0.,........| +00000000 16 03 01 00 da 01 00 00 d6 03 03 4f 56 85 14 53 |...........OV..S| +00000010 57 df bb 75 5b c6 86 bd cd a2 68 c6 87 ad 2e b5 |W..u[.....h.....| +00000020 07 ef ce 55 c1 d3 12 35 aa a1 a7 20 d1 1e 60 1e |...U...5... ..`.| +00000030 a7 c7 2a e0 f8 ba 46 c3 f0 bf a7 d5 1c 73 68 98 |..*...F......sh.| +00000040 9f 8c 7f 4e 15 9b 59 23 84 a0 f3 fc 00 08 13 02 |...N..Y#........| 00000050 13 03 13 01 00 ff 01 00 00 85 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 06 00 04 00 1d 00 17 00 16 |................| 00000080 00 00 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 |................| 00000090 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 |................| 000000a0 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 |.........+......| -000000b0 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 20 dd |-.....3.&.$... .| -000000c0 c7 c6 35 0b c9 5f f0 7e 40 e8 f1 f7 6f e7 84 8f |..5.._.~@...o...| -000000d0 7f 32 2f 8c a3 22 c6 c1 b9 34 1c ef 17 e7 25 |.2/.."...4....%| +000000b0 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 20 9d |-.....3.&.$... .| +000000c0 63 d4 5c 11 f7 4b d3 49 41 e2 1d ca 2c 67 68 c1 |c.\..K.IA...,gh.| +000000d0 7d 9c ad 2b 77 34 d8 77 82 1c ea e4 26 51 48 |}..+w4.w....&QH| >>> Flow 2 (server to client) 00000000 16 03 03 00 58 02 00 00 54 03 03 cf 21 ad 74 e5 |....X...T...!.t.| 00000010 9a 61 11 be 1d 8c 02 1e 65 b8 91 c2 a2 11 16 7a |.a......e......z| -00000020 bb 8c 5e 07 9e 09 e2 c8 a8 33 9c 20 96 7c 00 da |..^......3. .|..| -00000030 35 8c 39 0a f8 1c 61 b8 4a a8 28 b4 a2 de 56 7b |5.9...a.J.(...V{| -00000040 a9 f3 ab 5d db 30 ca 2c d1 82 9e e2 13 02 00 00 |...].0.,........| -00000050 0c 00 2b 00 02 03 04 00 33 00 02 00 17 |..+.....3....| +00000020 bb 8c 5e 07 9e 09 e2 c8 a8 33 9c 20 d1 1e 60 1e |..^......3. ..`.| +00000030 a7 c7 2a e0 f8 ba 46 c3 f0 bf a7 d5 1c 73 68 98 |..*...F......sh.| +00000040 9f 8c 7f 4e 15 9b 59 23 84 a0 f3 fc 13 02 00 00 |...N..Y#........| +00000050 0c 00 2b 00 02 03 04 00 33 00 02 00 17 14 03 03 |..+.....3.......| +00000060 00 01 01 |...| >>> Flow 3 (client to server) 00000000 14 03 03 00 01 01 16 03 03 00 fb 01 00 00 f7 03 |................| -00000010 03 29 a2 7e 24 c3 02 bf 2c 29 7b 47 08 06 bf 75 |.).~$...,){G...u| -00000020 ef c5 59 2d a4 f0 2f fc 53 62 5d b8 4d 3c f1 31 |..Y-../.Sb].M<.1| -00000030 2d 20 96 7c 00 da 35 8c 39 0a f8 1c 61 b8 4a a8 |- .|..5.9...a.J.| -00000040 28 b4 a2 de 56 7b a9 f3 ab 5d db 30 ca 2c d1 82 |(...V{...].0.,..| -00000050 9e e2 00 08 13 02 13 03 13 01 00 ff 01 00 00 a6 |................| +00000010 03 4f 56 85 14 53 57 df bb 75 5b c6 86 bd cd a2 |.OV..SW..u[.....| +00000020 68 c6 87 ad 2e b5 07 ef ce 55 c1 d3 12 35 aa a1 |h........U...5..| +00000030 a7 20 d1 1e 60 1e a7 c7 2a e0 f8 ba 46 c3 f0 bf |. ..`...*...F...| +00000040 a7 d5 1c 73 68 98 9f 8c 7f 4e 15 9b 59 23 84 a0 |...sh....N..Y#..| +00000050 f3 fc 00 08 13 02 13 03 13 01 00 ff 01 00 00 a6 |................| 00000060 00 00 00 0e 00 0c 00 00 09 31 32 37 2e 30 2e 30 |.........127.0.0| 00000070 2e 31 00 0b 00 04 03 00 01 02 00 0a 00 06 00 04 |.1..............| 00000080 00 1d 00 17 00 16 00 00 00 17 00 00 00 0d 00 1e |................| 00000090 00 1c 04 03 05 03 06 03 08 07 08 08 08 09 08 0a |................| 000000a0 08 0b 08 04 08 05 08 06 04 01 05 01 06 01 00 2b |...............+| 000000b0 00 03 02 03 04 00 2d 00 02 01 01 00 33 00 47 00 |......-.....3.G.| -000000c0 45 00 17 00 41 04 30 30 c4 62 c9 14 6b f7 28 88 |E...A.00.b..k.(.| -000000d0 ff c8 3f 87 2b 9f 24 a3 46 9b 2f 86 c7 df 3f 05 |..?.+.$.F./...?.| -000000e0 6b 8e a7 80 64 ff 66 b7 4d 80 62 fd b4 ba de 27 |k...d.f.M.b....'| -000000f0 44 7f 7a a4 c7 4a f0 81 25 52 3f 8a 8a 48 1e ff |D.z..J..%R?..H..| -00000100 6f 11 ad a9 fe bd |o.....| +000000c0 45 00 17 00 41 04 ab 06 ea de b6 17 db 32 11 c8 |E...A........2..| +000000d0 ed 1e 8b 03 c2 a8 87 46 65 e8 3e 25 34 84 52 dc |.......Fe.>%4.R.| +000000e0 22 4a 67 ce 89 00 04 ce 46 47 0a b8 b0 2d a0 0a |"Jg.....FG...-..| +000000f0 d1 91 e1 73 34 91 77 52 c6 1a 75 8d 70 ad 57 53 |...s4.wR..u.p.WS| +00000100 75 47 81 67 e7 3f |uG.g.?| >>> Flow 4 (server to client) 00000000 16 03 03 00 9b 02 00 00 97 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 20 96 7c 00 da |........... .|..| -00000030 35 8c 39 0a f8 1c 61 b8 4a a8 28 b4 a2 de 56 7b |5.9...a.J.(...V{| -00000040 a9 f3 ab 5d db 30 ca 2c d1 82 9e e2 13 02 00 00 |...].0.,........| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 d1 1e 60 1e |........... ..`.| +00000030 a7 c7 2a e0 f8 ba 46 c3 f0 bf a7 d5 1c 73 68 98 |..*...F......sh.| +00000040 9f 8c 7f 4e 15 9b 59 23 84 a0 f3 fc 13 02 00 00 |...N..Y#........| 00000050 4f 00 2b 00 02 03 04 00 33 00 45 00 17 00 41 04 |O.+.....3.E...A.| 00000060 1e 18 37 ef 0d 19 51 88 35 75 71 b5 e5 54 5b 12 |..7...Q.5uq..T[.| 00000070 2e 8f 09 67 fd a7 24 20 3e b2 56 1c ce 97 28 5e |...g..$ >.V...(^| 00000080 f8 2b 2d 4f 9e f1 07 9f 6c 4b 5b 83 56 e2 32 42 |.+-O....lK[.V.2B| 00000090 e9 58 b6 d7 49 a6 b5 68 1a 41 03 56 6b dc 5a 89 |.X..I..h.A.Vk.Z.| -000000a0 17 03 03 00 17 74 86 c5 4d 7f f0 06 2b fa a3 03 |.....t..M...+...| -000000b0 4d 27 46 e7 33 ce 70 32 ba 61 55 61 17 03 03 02 |M'F.3.p2.aUa....| -000000c0 6d c5 ac cc 02 19 b0 92 c1 bc 6a fe 1d 94 a6 75 |m.........j....u| -000000d0 66 6a 88 b0 87 76 da 3f f9 07 40 67 c7 e5 b8 b7 |fj...v.?..@g....| -000000e0 70 38 41 0e 11 3b cf db 0b 76 73 58 10 93 0e 06 |p8A..;...vsX....| -000000f0 cb 31 75 d0 a8 2f 20 35 b4 c2 87 5f 42 94 e1 18 |.1u../ 5..._B...| -00000100 d5 f8 bc 11 d7 7c 9b ff 0b fe 59 8b 78 1e ef 52 |.....|....Y.x..R| -00000110 6f ea 39 e5 f5 55 93 8b 0b 65 87 05 d3 0d a3 6d |o.9..U...e.....m| -00000120 2e 10 79 1d 60 61 ba 43 13 cd 5a 58 28 cb 32 df |..y.`a.C..ZX(.2.| -00000130 74 3a 58 4e e0 21 d4 d0 2f 6f 63 72 1c 82 18 16 |t:XN.!../ocr....| -00000140 12 4c e7 0b 5e 21 ce e4 de 26 6c d2 91 c1 fd 85 |.L..^!...&l.....| -00000150 5a f4 b7 5d 5a c6 fe 8c 05 fe f7 2a ae a1 67 73 |Z..]Z......*..gs| -00000160 8a 66 60 07 57 35 46 ed cf e1 58 f3 22 94 57 26 |.f`.W5F...X.".W&| -00000170 ae 81 3c ea 42 1c ef 56 ca 0e 35 5a 4c 97 49 36 |..<.B..V..5ZL.I6| -00000180 73 e2 be 8b ad 55 42 a3 8f 50 65 8a 7a 9d cf 7c |s....UB..Pe.z..|| -00000190 4f d9 4b db 0d a4 0e 57 99 08 72 0a 1f cf 9d 19 |O.K....W..r.....| -000001a0 ad 24 7b 64 9b ef d2 9f 8f 42 d4 ca a8 84 2f 15 |.${d.....B..../.| -000001b0 3a 10 8e 1e 22 b8 fc 9f 77 0b 8e 82 22 bd 08 f2 |:..."...w..."...| -000001c0 3e 4c a7 f1 d0 46 a8 fb fb 5e f6 0d 32 8e 2d e4 |>L...F...^..2.-.| -000001d0 3b 17 b8 da 71 03 cb d9 b8 12 9b 70 a0 3a 07 19 |;...q......p.:..| -000001e0 f6 c1 66 1e b8 e2 b2 5a 50 50 c5 51 8f f3 91 e7 |..f....ZPP.Q....| -000001f0 bc ba a2 ee ca a8 71 24 5f f2 25 79 c3 a2 23 70 |......q$_.%y..#p| -00000200 03 0b 8b 99 4d 33 92 f1 ff 64 cd cc 31 b2 13 a9 |....M3...d..1...| -00000210 d3 c2 37 b7 11 17 7f d7 64 ba da 6d 46 b1 a2 03 |..7.....d..mF...| -00000220 fe 8d 4d e3 cd eb a3 2f af 89 f4 a4 af 82 0e e3 |..M..../........| -00000230 65 c3 64 38 33 6a bd c9 13 77 9d 37 c7 c8 1d 55 |e.d83j...w.7...U| -00000240 f9 a6 b8 fc 57 0f f7 94 76 1f bd 4f 4a 74 fe 0a |....W...v..OJt..| -00000250 98 be e9 d9 2e d2 c0 c9 fb d2 3b 27 fb 37 14 f5 |..........;'.7..| -00000260 29 d5 f4 88 a5 b0 98 1d 0c 85 9e 1f ad 29 cf 36 |)............).6| -00000270 3d 2f c0 54 93 1f 14 8b 1e a3 93 aa 53 af da d1 |=/.T........S...| -00000280 da 0b 2b e4 01 fe 8e 48 df 8b 97 fe 92 ab 32 80 |..+....H......2.| -00000290 c3 d2 84 1a 45 a7 0d f3 f8 07 e3 7d a3 27 62 67 |....E......}.'bg| -000002a0 10 4b 3e 09 ee 22 77 0d 54 71 8b 6f 68 6a a9 cc |.K>.."w.Tq.ohj..| -000002b0 80 34 5e 35 36 b0 cb d5 8b 04 6f 0f 28 82 5f 69 |.4^56.....o.(._i| -000002c0 d3 66 cd 19 db 39 1d 73 c2 28 36 94 5f 1b 24 c6 |.f...9.s.(6._.$.| -000002d0 9a 62 34 0f ec 9a f9 c5 8c 72 5c c3 a0 c7 d6 5b |.b4......r\....[| -000002e0 1d 2e 4b 31 cd 2e 8b 37 cc 9a b2 ca e9 5d b0 f9 |..K1...7.....]..| -000002f0 b4 2c ba 27 08 c3 d6 90 1b 51 0c 83 72 0b 8a 72 |.,.'.....Q..r..r| -00000300 a1 12 ab 5c 91 a8 b2 76 f1 c1 09 d3 74 fb bc e5 |...\...v....t...| -00000310 33 96 59 91 3e e0 89 cf 99 7c 40 c4 af 0e 8d 58 |3.Y.>....|@....X| -00000320 20 ea d9 0d 0e 64 10 2c c8 ad ed 38 b0 fa 17 03 | ....d.,...8....| -00000330 03 00 99 f0 80 72 33 a3 53 2f c6 7f 68 e5 42 ee |.....r3.S/..h.B.| -00000340 d0 81 00 07 8b b7 69 ec 0d 9e 5a dc f5 0b 40 82 |......i...Z...@.| -00000350 0e a5 bc ce dd 13 1e 15 4c 10 d8 62 00 42 45 eb |........L..b.BE.| -00000360 2b f1 aa d4 43 4e 29 02 a8 0e b8 3d 17 88 84 0c |+...CN)....=....| -00000370 2d d0 49 48 ff f5 83 8f 0d da 7f 81 d6 e7 93 d5 |-.IH............| -00000380 12 c0 59 1c ed b7 35 7f 9e 1f 9c 39 e6 56 ce a2 |..Y...5....9.V..| -00000390 98 ca 74 72 49 65 7f 69 16 a7 13 67 b3 11 fe 32 |..trIe.i...g...2| -000003a0 99 23 c6 8f 37 e5 18 e8 5e 3b e3 25 84 cd f5 9f |.#..7...^;.%....| -000003b0 de 4c f0 b1 cb 25 31 86 73 07 48 f8 30 7e 7c 7b |.L...%1.s.H.0~|{| -000003c0 04 0f a5 5c 15 c2 25 00 43 18 6e 35 17 03 03 00 |...\..%.C.n5....| -000003d0 45 e0 8a a3 17 a4 5d 29 0d da b8 c1 e8 b9 19 cf |E.....])........| -000003e0 4b 08 e6 d8 5c 0e 9e ed b4 ea cc 95 68 54 6b 4b |K...\.......hTkK| -000003f0 0f 1f 32 3e f0 68 10 a1 9f aa 4b 44 86 3f 3b 66 |..2>.h....KD.?;f| -00000400 08 cd cb d0 92 a2 07 df 64 f9 f2 88 f9 c2 63 9f |........d.....c.| -00000410 01 98 a7 58 41 e6 |...XA.| +000000a0 17 03 03 00 17 62 79 8a 7b 99 e8 48 ab 97 44 7c |.....by.{..H..D|| +000000b0 e1 79 b8 53 a0 a8 d8 38 87 ab 3b f6 17 03 03 02 |.y.S...8..;.....| +000000c0 6d 19 53 7e 2f b0 c9 42 b1 0d e1 f9 d3 5b ae 1b |m.S~/..B.....[..| +000000d0 31 66 13 32 05 c8 af f9 c7 86 78 64 ff a6 1b 78 |1f.2......xd...x| +000000e0 6c 5e 4f c4 ec 21 9f 61 b2 9b 66 6f d1 97 cc 09 |l^O..!.a..fo....| +000000f0 ab da 91 be 8b a2 00 9b 60 ae 7b 9d f1 a4 6d 7e |........`.{...m~| +00000100 27 3d 18 d7 79 8c 7a bb 5a 7e a7 e6 dd 95 06 ec |'=..y.z.Z~......| +00000110 fc 9e 11 45 a8 f8 46 7e cb 50 5f 24 b8 b9 b9 10 |...E..F~.P_$....| +00000120 ae 78 0e 42 a6 28 ea 3f 0e f3 ca f2 10 94 84 a9 |.x.B.(.?........| +00000130 a7 a2 85 25 ce a7 1c 2b 5a 6e 61 06 b6 19 c3 1a |...%...+Zna.....| +00000140 5e 42 2b e6 cc 7e 7e 82 30 69 e8 5d e5 01 21 16 |^B+..~~.0i.]..!.| +00000150 6f e1 e1 f7 1c 77 06 d2 9d 25 80 a4 6d a5 ae 2e |o....w...%..m...| +00000160 cd 9a e3 56 34 81 13 51 63 85 f4 45 26 ae 6a 88 |...V4..Qc..E&.j.| +00000170 4c 3c 00 ec 1b 1a 43 24 c0 e3 79 b3 45 3d c8 9a |L<....C$..y.E=..| +00000180 9e 91 69 9b cd 62 43 06 18 71 b6 78 d7 b0 1b d7 |..i..bC..q.x....| +00000190 a0 42 30 f9 bb 4e f1 90 e0 f0 11 6a c5 03 6e 47 |.B0..N.....j..nG| +000001a0 3c de 86 e2 0b a6 4f 6b 15 cc 5d 40 51 0f 26 9a |<.....Ok..]@Q.&.| +000001b0 5b 16 20 2f d2 d4 58 56 28 23 77 a6 a0 dd cb e5 |[. /..XV(#w.....| +000001c0 e8 c6 5c 52 2b 26 f6 07 85 c1 39 97 e4 7e c8 b2 |..\R+&....9..~..| +000001d0 c7 79 c0 fa 81 64 7a 53 9b 72 ef 81 69 12 a3 ba |.y...dzS.r..i...| +000001e0 e9 40 6f a5 a0 9f 4d e7 0f 3a a3 1a d5 df 32 ec |.@o...M..:....2.| +000001f0 64 28 40 3a b4 87 ea ca 9a 13 60 38 18 23 7b f0 |d(@:......`8.#{.| +00000200 d8 f0 0f 44 ae c8 ce 2c 8d 48 fd 33 78 f1 28 4a |...D...,.H.3x.(J| +00000210 5f db f5 ce 51 a1 9d 80 a2 fd aa 46 3a ff 8f 26 |_...Q......F:..&| +00000220 c2 4a 8a 31 7c f6 a9 2c 60 49 f2 36 2a 86 ec db |.J.1|..,`I.6*...| +00000230 4d 9f 26 cd d8 67 ac b3 6a 63 c0 b6 77 56 cd ed |M.&..g..jc..wV..| +00000240 e0 ba ae 45 d4 c8 fb 62 6a 52 46 32 28 49 76 b0 |...E...bjRF2(Iv.| +00000250 5c f7 17 49 a2 06 cb ee 49 e8 5c 0c 11 b1 4b 55 |\..I....I.\...KU| +00000260 d4 c4 e2 3e 31 ed 0c eb 84 40 c2 20 3c 40 a6 26 |...>1....@. <@.&| +00000270 db e7 80 f8 4d 2e 4c fc 67 eb d8 ae 89 70 7f c4 |....M.L.g....p..| +00000280 18 40 1e 82 df 17 da 49 e0 9c 72 ab 34 04 39 a5 |.@.....I..r.4.9.| +00000290 1a a3 2b 0b 73 b6 32 89 b5 d1 e4 74 95 f3 58 b0 |..+.s.2....t..X.| +000002a0 7a 7b d4 c6 e9 7e 68 86 09 5f 94 12 bd fd 84 1f |z{...~h.._......| +000002b0 fa 7d 56 cf 40 1a 02 04 90 16 5c da 2f b1 de 15 |.}V.@.....\./...| +000002c0 31 d9 59 62 3b fe 8e 99 ec 79 51 44 49 0f a5 a1 |1.Yb;....yQDI...| +000002d0 1f 6d ac e5 b1 93 39 af 50 b4 5e 04 29 31 d7 b8 |.m....9.P.^.)1..| +000002e0 1a e2 58 37 90 e8 a7 a7 1a f3 bb 14 a6 d2 27 b7 |..X7..........'.| +000002f0 71 58 f0 0a 94 63 23 4d d5 4b 22 fd e6 0e 23 9e |qX...c#M.K"...#.| +00000300 90 b8 cb d4 10 c7 49 32 7c 8e 49 cd 17 c9 7f 38 |......I2|.I....8| +00000310 2b e1 38 84 57 25 02 72 a6 d3 f7 28 b2 e3 85 c4 |+.8.W%.r...(....| +00000320 72 ca e1 b2 84 6a 86 4c 78 d4 8e 1c 60 09 17 03 |r....j.Lx...`...| +00000330 03 00 99 14 16 3c 69 12 63 89 2f c4 58 1c 95 97 |.....>> Flow 5 (client to server) -00000000 17 03 03 00 45 64 f9 84 9e cc d0 58 bd 27 48 4f |....Ed.....X.'HO| -00000010 5c fb 26 21 50 37 f7 eb 80 fc 86 a9 a7 00 d7 0f |\.&!P7..........| -00000020 c4 4e e8 2d 4a cf 0b 57 34 10 f4 ea df a0 91 31 |.N.-J..W4......1| -00000030 80 45 78 20 38 1c cd dd 16 5d f5 6c 83 a6 ee f4 |.Ex 8....].l....| -00000040 24 c7 3f f1 0a f8 2d 78 7e b4 |$.?...-x~.| +00000000 17 03 03 00 45 ad 18 70 16 81 4f b3 f5 a2 f3 53 |....E..p..O....S| +00000010 37 84 03 37 89 be ad c2 fe 02 da 67 a6 b6 fd 1a |7..7.......g....| +00000020 9b d4 8b de 8e 80 ab 7d e1 81 c2 de 31 be 07 04 |.......}....1...| +00000030 5d 57 59 7a 05 ea f5 7d aa 7f 8f 23 6c 00 89 4a |]WYz...}...#l..J| +00000040 1f 07 8a a3 e8 c7 9b 0e 8a 8b |..........| >>> Flow 6 (server to client) -00000000 17 03 03 00 1e fe 3e da ac 07 b3 a8 37 ca 6d 3a |......>.....7.m:| -00000010 21 3a 2e 52 e4 1c ee 1c 49 e8 c5 a4 ef 10 bb 92 |!:.R....I.......| -00000020 7b 45 ba 17 03 03 00 13 4d f6 22 39 83 19 74 a8 |{E......M."9..t.| -00000030 86 55 bb 07 4d db 37 a6 f1 9f 13 |.U..M.7....| +00000000 17 03 03 00 1e 22 ef 90 a4 90 32 71 67 2a f9 ca |....."....2qg*..| +00000010 8c 5d 36 51 05 2d 10 a7 72 e8 95 34 69 0e f2 06 |.]6Q.-..r..4i...| +00000020 16 15 7e 17 03 03 00 13 15 3b 8b e7 c9 e1 cd c1 |..~......;......| +00000030 93 f1 34 62 a1 82 9a 91 0b 7c 3a |..4b.....|:| diff --git a/testdata/Server-TLSv13-P256 b/testdata/Server-TLSv13-P256 index 433327b..1143e9f 100644 --- a/testdata/Server-TLSv13-P256 +++ b/testdata/Server-TLSv13-P256 @@ -1,95 +1,95 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 f9 01 00 00 f5 03 03 9b 17 e9 d1 ef |................| -00000010 4d bc 9c 08 44 87 d5 43 09 b5 bd f3 7c a6 52 59 |M...D..C....|.RY| -00000020 ae d3 af 09 c4 24 18 12 7f 4a 03 20 af 3e 04 1d |.....$...J. .>..| -00000030 3a 26 d4 bb 9c 02 71 32 c4 19 a6 ef 46 26 0f d6 |:&....q2....F&..| -00000040 ab 9e 49 4f b5 06 37 92 7a 0a 37 5e 00 08 13 02 |..IO..7.z.7^....| +00000000 16 03 01 00 f9 01 00 00 f5 03 03 3c c9 61 89 62 |...........<.a.b| +00000010 10 c6 ba 45 a5 af c4 8a 02 27 58 b8 74 de 6f 8b |...E.....'X.t.o.| +00000020 62 27 b1 71 54 09 c4 48 e4 e6 33 20 dd 11 6b b4 |b'.qT..H..3 ..k.| +00000030 59 b7 e2 d9 b3 91 01 ab 11 68 65 2e 1d 60 2f 58 |Y........he..`/X| +00000040 41 a6 7a 94 bc ad fd ff 05 a5 56 cb 00 08 13 02 |A.z.......V.....| 00000050 13 03 13 01 00 ff 01 00 00 a4 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 04 00 02 00 17 00 16 00 00 |................| 00000080 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| 00000090 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| 000000a0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| -000000b0 02 01 01 00 33 00 47 00 45 00 17 00 41 04 ec c3 |....3.G.E...A...| -000000c0 f4 ab c7 58 b2 1c b4 8d d9 62 5f eb b9 b8 8f 33 |...X.....b_....3| -000000d0 e3 77 4a e5 57 1d 03 ce 2b bb 9d e6 b3 e4 b6 b6 |.wJ.W...+.......| -000000e0 10 01 03 df c6 b4 ac 26 c8 58 9a a8 97 1d e7 92 |.......&.X......| -000000f0 15 d3 78 a4 40 12 8f e1 c0 0a 80 2b 06 c5 |..x.@......+..| +000000b0 02 01 01 00 33 00 47 00 45 00 17 00 41 04 50 4f |....3.G.E...A.PO| +000000c0 1c 9c 0f 11 5a f0 a0 54 82 44 5b 82 95 e1 0a 1d |....Z..T.D[.....| +000000d0 56 23 a1 7a ee e8 ee ef 8d 28 be 21 c2 dd c9 05 |V#.z.....(.!....| +000000e0 13 bc 6b 0a 69 15 95 4e e3 f9 6a 75 ef 4d 96 12 |..k.i..N..ju.M..| +000000f0 d0 c9 46 78 d7 9d a2 80 0a b7 c8 3f bd c2 |..Fx.......?..| >>> Flow 2 (server to client) 00000000 16 03 03 00 9b 02 00 00 97 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 20 af 3e 04 1d |........... .>..| -00000030 3a 26 d4 bb 9c 02 71 32 c4 19 a6 ef 46 26 0f d6 |:&....q2....F&..| -00000040 ab 9e 49 4f b5 06 37 92 7a 0a 37 5e 13 02 00 00 |..IO..7.z.7^....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 dd 11 6b b4 |........... ..k.| +00000030 59 b7 e2 d9 b3 91 01 ab 11 68 65 2e 1d 60 2f 58 |Y........he..`/X| +00000040 41 a6 7a 94 bc ad fd ff 05 a5 56 cb 13 02 00 00 |A.z.......V.....| 00000050 4f 00 2b 00 02 03 04 00 33 00 45 00 17 00 41 04 |O.+.....3.E...A.| 00000060 1e 18 37 ef 0d 19 51 88 35 75 71 b5 e5 54 5b 12 |..7...Q.5uq..T[.| 00000070 2e 8f 09 67 fd a7 24 20 3e b2 56 1c ce 97 28 5e |...g..$ >.V...(^| 00000080 f8 2b 2d 4f 9e f1 07 9f 6c 4b 5b 83 56 e2 32 42 |.+-O....lK[.V.2B| 00000090 e9 58 b6 d7 49 a6 b5 68 1a 41 03 56 6b dc 5a 89 |.X..I..h.A.Vk.Z.| -000000a0 17 03 03 00 17 42 79 da 18 8e 38 c1 2c a4 2a 9c |.....By...8.,.*.| -000000b0 fd 94 6a a6 b3 08 51 aa 7b 2d 19 a7 17 03 03 02 |..j...Q.{-......| -000000c0 6d 57 f7 92 34 01 09 13 e8 f8 ef 75 ad ba e8 a5 |mW..4......u....| -000000d0 9b cd e9 6c ab 48 b5 4d 33 1e 0b 95 47 74 78 9d |...l.H.M3...Gtx.| -000000e0 3c bb 27 a8 87 1c fb 11 80 91 93 ad 0f 0d 1c 98 |<.'.............| -000000f0 44 cc 36 bc 00 0d eb c0 8b 73 40 11 dd c5 9a a9 |D.6......s@.....| -00000100 90 55 81 e8 55 69 e0 73 97 49 c3 2b ee 56 3c c0 |.U..Ui.s.I.+.V<.| -00000110 c3 b7 4a 18 a3 e4 45 c9 7f 0c 7d ba b4 52 9a a8 |..J...E...}..R..| -00000120 b1 26 4e 57 3b fb 5b 30 28 b0 95 c9 72 35 2d 10 |.&NW;.[0(...r5-.| -00000130 24 8e 70 bb c6 2a 33 83 1c 78 c1 91 c4 6b 06 c0 |$.p..*3..x...k..| -00000140 d0 65 b5 d5 21 21 02 21 86 df 24 d0 99 90 24 12 |.e..!!.!..$...$.| -00000150 9f c8 a4 8d e9 29 5c 84 52 82 4b 11 a6 de 7f 88 |.....)\.R.K.....| -00000160 d9 35 b3 1b d5 c9 0a 54 f2 64 a7 43 13 19 61 0f |.5.....T.d.C..a.| -00000170 28 11 39 3f b1 2a 49 f7 0f de cb f8 ff ad b6 90 |(.9?.*I.........| -00000180 5a af 2a 17 9a 40 c7 c8 32 88 5d e1 af 54 92 3a |Z.*..@..2.]..T.:| -00000190 8b b9 8a 50 93 dd 73 89 cf 0f bf ae 7e ad ba bf |...P..s.....~...| -000001a0 ed 2a f1 47 e0 e5 77 92 27 e5 5b bd 7f 7e a5 47 |.*.G..w.'.[..~.G| -000001b0 af dd d7 ab 72 db 1a bb 83 f8 18 ba 46 92 74 a2 |....r.......F.t.| -000001c0 9e 7a 5c 4d e8 b9 c0 6e ed 20 6d ec 8f 3d 65 d6 |.z\M...n. m..=e.| -000001d0 d5 48 4b 24 14 00 10 2c f2 31 c1 94 ce b6 f8 e2 |.HK$...,.1......| -000001e0 e1 d3 8c e7 38 3c 4b 34 1f 78 8d e0 9b d3 9d 21 |....8..J...F.k.| +00000100 6a e0 53 65 60 1e f5 cc 8b 01 be 1c 3b d9 a9 41 |j.Se`.......;..A| +00000110 ef de eb 8b 73 f6 6d e4 ee 5d 97 c6 b7 2f 50 99 |....s.m..].../P.| +00000120 c7 84 05 f1 80 13 d7 00 c6 05 d7 16 d0 bf 26 44 |..............&D| +00000130 ad 94 47 f2 48 12 86 54 07 25 01 5f 97 b2 5e 11 |..G.H..T.%._..^.| +00000140 6d cf 90 cb 91 f1 1e 9f 50 df 8d 2e 67 4c 12 08 |m.......P...gL..| +00000150 2d 36 e6 b1 15 e4 b5 55 32 df ab 3a ec ae 2e ee |-6.....U2..:....| +00000160 98 31 32 38 73 fc 6c 65 a8 05 ef 91 4a 3a 90 22 |.128s.le....J:."| +00000170 1b 92 df 65 b3 ce 94 b8 18 f5 25 a1 a3 bd a8 c6 |...e......%.....| +00000180 33 ec ad 61 b9 0e 31 49 7d 43 cc 52 2e da 63 7b |3..a..1I}C.R..c{| +00000190 40 b2 40 6d 64 c5 f4 9c 96 7e 82 22 56 bc f1 57 |@.@md....~."V..W| +000001a0 2f 10 f9 b2 b0 19 18 de 03 b7 29 1d 6e 6a df 1c |/.........).nj..| +000001b0 c9 78 02 4b 67 d5 c5 98 32 3f 6c a9 d5 50 3c e3 |.x.Kg...2?l..P<.| +000001c0 4f 8e 75 84 e5 91 da 27 a0 0a d5 93 69 c7 2a 81 |O.u....'....i.*.| +000001d0 85 10 d3 60 f8 51 83 02 fe fc da 00 60 47 be 67 |...`.Q......`G.g| +000001e0 b3 61 c8 41 84 d1 45 cf 2f fa a6 01 e6 33 09 0d |.a.A..E./....3..| +000001f0 d9 a7 61 e0 44 cb e1 16 ad ec f0 65 9f bb 97 95 |..a.D......e....| +00000200 76 ce 01 27 ae f0 c1 20 9c 2a 73 45 2c 06 33 59 |v..'... .*sE,.3Y| +00000210 a6 d6 14 da 37 70 33 a7 9a 8e de 31 ff ce 4c 33 |....7p3....1..L3| +00000220 5f 0e 4a 29 a0 ee 3a 06 cd f6 ae 03 74 e1 0a 95 |_.J)..:.....t...| +00000230 22 68 0d c2 af 1b 40 ab 7c e2 8a 3a a1 36 ae 99 |"h....@.|..:.6..| +00000240 79 ba 41 0a d6 91 04 dd 76 47 c7 a7 75 75 ab 24 |y.A.....vG..uu.$| +00000250 c7 c4 c0 cd 5e ca 8f ae 9c cd 0a dd e1 8e 47 46 |....^.........GF| +00000260 9e bd 48 aa 1e 10 d0 d0 e9 ee dd 10 52 c5 66 ad |..H.........R.f.| +00000270 9a 16 e4 af 96 13 3f b0 b3 75 6e b0 08 05 29 52 |......?..un...)R| +00000280 c1 a7 60 f8 c3 08 fb 04 02 25 17 82 61 31 7a 5f |..`......%..a1z_| +00000290 39 bb de e7 59 d1 14 a7 40 65 24 6f 23 5b 10 81 |9...Y...@e$o#[..| +000002a0 2c 02 b0 90 49 ef 12 1e cd 97 0a bc 30 45 37 06 |,...I.......0E7.| +000002b0 08 e0 47 0c b5 d1 39 6f de e2 8a 00 75 ae 0b 66 |..G...9o....u..f| +000002c0 f0 c7 7b a0 e1 9e 76 7b eb 54 e2 04 cb 8f 76 77 |..{...v{.T....vw| +000002d0 30 8e e6 ec 02 8c 86 00 cb c5 47 69 66 77 cd d9 |0.........Gifw..| +000002e0 25 d6 30 f3 2e de f9 70 ee 52 20 0c 2f 85 87 42 |%.0....p.R ./..B| +000002f0 5e 8b ee 63 b9 15 0a 09 b9 2d 11 c3 5f ab 9e b7 |^..c.....-.._...| +00000300 33 a8 96 4a 11 9d e3 d3 c3 18 5e 35 b3 dd 88 21 |3..J......^5...!| +00000310 c2 4d 93 07 75 66 b2 d8 2a 6e 1e 27 7a 37 2f 10 |.M..uf..*n.'z7/.| +00000320 b4 3b 10 d7 4a 35 6d 16 ae 87 2e cc 07 e5 37 76 |.;..J5m.......7v| +00000330 8e 27 00 f3 17 03 03 00 99 9a b6 00 63 9d fb b6 |.'..........c...| +00000340 81 3f ab ed e9 74 6d 58 33 10 f0 fb 2c ef 95 ed |.?...tmX3...,...| +00000350 92 9e e2 7d 86 e0 9d 98 49 29 ee 90 0c 47 2d 0d |...}....I)...G-.| +00000360 d0 b9 5b 39 ce 3b 84 b4 e5 1c 8a 0b 7c a7 a6 ab |..[9.;......|...| +00000370 cf 26 d4 07 a3 94 b8 06 65 e1 63 fe 23 67 a0 60 |.&......e.c.#g.`| +00000380 4f d8 81 33 7e 98 d0 0a ec b4 36 2f e7 00 bf e3 |O..3~.....6/....| +00000390 5e 83 d2 84 11 b5 8a c9 74 9c 7a 02 0a 26 28 cb |^.......t.z..&(.| +000003a0 d1 2d 76 8c 9c 23 55 a6 1a e9 55 6a e2 15 33 50 |.-v..#U...Uj..3P| +000003b0 d0 f1 0f 45 7b bc 8b a8 1e 70 a3 9b d3 d0 a1 69 |...E{....p.....i| +000003c0 3b 02 3d 59 f6 fa c5 5f 2f 75 b8 b5 cc d5 65 2e |;.=Y..._/u....e.| +000003d0 d1 0e 17 03 03 00 45 db a5 de 00 16 ca e3 c9 93 |......E.........| +000003e0 8e 2d 23 9b f4 ba 46 69 bb cb 40 6d 0f ef bf 2f |.-#...Fi..@m.../| +000003f0 ff ec 58 e7 3a 36 13 1c dd ae 1e 1c 3b ca c4 1c |..X.:6......;...| +00000400 fd 2a f7 9d 00 eb 9f 76 1d ec 9a 61 ef 57 2e d0 |.*.....v...a.W..| +00000410 ec 29 c6 35 e0 72 c5 fc 5c ae fa 55 |.).5.r..\..U| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 b1 15 d9 f0 b0 |..........E.....| -00000010 cf 81 8f de 00 84 97 be 1b 6f af 52 3b d2 34 1b |.........o.R;.4.| -00000020 4d bb d3 b8 c2 09 60 21 e1 61 d3 d9 a1 80 68 77 |M.....`!.a....hw| -00000030 6c 37 6a 87 0e e7 b7 de fe b6 70 eb d3 36 92 c3 |l7j.......p..6..| -00000040 e9 e9 02 e9 cf d0 d4 be 75 9b f3 84 51 fe da 78 |........u...Q..x| +00000000 14 03 03 00 01 01 17 03 03 00 45 b5 0b 9f e1 e1 |..........E.....| +00000010 0e a8 3c 22 83 fb 13 2a d9 cc 96 32 15 d8 fb 1a |..<"...*...2....| +00000020 0b b2 ee 87 2b 50 a6 76 0a 07 a1 41 8b 8f f1 bb |....+P.v...A....| +00000030 b8 03 eb 77 c0 96 b9 5e 4c 2e 6b 9a 2f 7e 3e 8d |...w...^L.k./~>.| +00000040 aa 10 a4 ce 0f 83 d1 25 52 8e 91 98 bc 09 a3 a5 |.......%R.......| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e 7f 61 7b 92 ca 8f 9e c7 96 b0 a5 |......a{........| -00000010 9b 3f cf c3 0e 7a 8d 2c 9f 5c 40 8a 99 6d 71 45 |.?...z.,.\@..mqE| -00000020 9a 9c 96 17 03 03 00 13 01 42 62 3a 49 1a b5 5b |.........Bb:I..[| -00000030 43 0f ec 5b 46 0a e9 1c 6f a6 e2 |C..[F...o..| +00000000 17 03 03 00 1e 59 88 46 14 c1 2e 42 5d 1c 37 37 |.....Y.F...B].77| +00000010 d7 83 5f 82 39 bf 29 6d 21 0a 4c 4f 19 91 b1 4f |.._.9.)m!.LO...O| +00000020 60 f6 97 17 03 03 00 13 a0 ca 1d 58 c1 29 96 42 |`..........X.).B| +00000030 48 31 2d 9b 77 77 f8 f1 14 7b b2 |H1-.ww...{.| diff --git a/testdata/Server-TLSv13-RSA-RSAPSS b/testdata/Server-TLSv13-RSA-RSAPSS index 01cc230..b3ff6f2 100644 --- a/testdata/Server-TLSv13-RSA-RSAPSS +++ b/testdata/Server-TLSv13-RSA-RSAPSS @@ -1,90 +1,90 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 c6 01 00 00 c2 03 03 f0 a4 89 8f b9 |................| -00000010 fd ba d7 9f 2d ca bf f0 7a 6e 04 6a b4 54 9d f4 |....-...zn.j.T..| -00000020 dd b5 e5 c9 f7 4f e1 a4 0c a9 72 20 57 d4 f7 3a |.....O....r W..:| -00000030 88 0a d3 95 c7 3a 4c 7c e3 0c ac 99 bc 24 d7 ad |.....:L|.....$..| -00000040 3f 53 07 08 00 aa c3 e5 2c 2b d3 2f 00 08 13 02 |?S......,+./....| +00000000 16 03 01 00 c6 01 00 00 c2 03 03 e9 1f 49 f4 6e |.............I.n| +00000010 6a 47 e9 46 ae 43 1b b4 00 98 20 27 a7 a6 21 76 |jG.F.C.... '..!v| +00000020 fc 6b 35 d7 12 33 28 fb 2d 00 69 20 c9 28 5e 43 |.k5..3(.-.i .(^C| +00000030 c9 36 a0 b9 c4 68 0f fd d3 ce c6 39 3c 17 26 b1 |.6...h.....9<.&.| +00000040 4c d5 36 50 59 fd cd 47 8f 43 eb 33 00 08 13 02 |L.6PY..G.C.3....| 00000050 13 03 13 01 00 ff 01 00 00 71 00 00 00 0e 00 0c |.........q......| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| 00000080 00 19 00 18 00 16 00 00 00 17 00 00 00 0d 00 04 |................| 00000090 00 02 08 04 00 2b 00 03 02 03 04 00 2d 00 02 01 |.....+......-...| -000000a0 01 00 33 00 26 00 24 00 1d 00 20 ef 5d 96 0f 42 |..3.&.$... .]..B| -000000b0 9a fe c1 40 ee 31 cd 34 6d 11 d2 ad e9 99 9b b6 |...@.1.4m.......| -000000c0 70 27 8f dc 81 c2 a6 ac 90 3f 4b |p'.......?K| +000000a0 01 00 33 00 26 00 24 00 1d 00 20 a4 ab a1 75 b6 |..3.&.$... ...u.| +000000b0 95 db 0e d6 fd 95 57 3b 3f 08 5e cd cc 19 d0 7b |......W;?.^....{| +000000c0 7b cd 67 34 d3 da 65 e5 e6 8d 0c |{.g4..e....| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 57 d4 f7 3a |........... W..:| -00000030 88 0a d3 95 c7 3a 4c 7c e3 0c ac 99 bc 24 d7 ad |.....:L|.....$..| -00000040 3f 53 07 08 00 aa c3 e5 2c 2b d3 2f 13 02 00 00 |?S......,+./....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 c9 28 5e 43 |........... .(^C| +00000030 c9 36 a0 b9 c4 68 0f fd d3 ce c6 39 3c 17 26 b1 |.6...h.....9<.&.| +00000040 4c d5 36 50 59 fd cd 47 8f 43 eb 33 13 02 00 00 |L.6PY..G.C.3....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| -00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| -00000080 03 03 00 17 e9 da 29 cf f2 21 32 b3 92 c0 18 5b |......)..!2....[| -00000090 26 f6 c8 ed eb 67 5c 9c df 5c f2 17 03 03 02 6d |&....g\..\.....m| -000000a0 c8 d6 15 36 38 ef 64 62 1b 49 c8 c9 bc ce f7 99 |...68.db.I......| -000000b0 da da 8e d0 2f 98 b1 cf 9a fa 53 cf 8a 20 11 6c |..../.....S.. .l| -000000c0 25 10 fc fd b2 f1 22 ea 42 64 21 b5 2f 94 9a 0a |%.....".Bd!./...| -000000d0 d3 3e 3b 14 4e b1 d1 3e fb 40 03 54 af d3 9e ea |.>;.N..>.@.T....| -000000e0 c8 fb b2 ed ff fa c1 1d 7e 72 fb bd dd 04 b2 0c |........~r......| -000000f0 ac 33 4c 1b e4 65 2f 91 c1 3e f1 1a 8f e0 92 23 |.3L..e/..>.....#| -00000100 3a 4d 04 f2 4f 14 d4 bb fe f7 fe 6a 69 8b aa 15 |:M..O......ji...| -00000110 c4 97 dd 06 3c 79 1c c9 aa 77 51 ac 95 8e 50 f8 |....| -00000150 2a be aa 06 e7 22 cd 8c f1 46 2a 54 6e 54 bf 90 |*...."...F*TnT..| -00000160 89 01 5e e4 e2 aa 7b d7 bc e9 37 d4 ee 75 18 57 |..^...{...7..u.W| -00000170 0c f7 8b fb 70 b2 cc 1c e2 ed 64 20 22 56 7a d3 |....p.....d "Vz.| -00000180 24 eb 25 0d 29 6f 8b be 5a 99 89 eb aa 04 18 8c |$.%.)o..Z.......| -00000190 bd c8 b3 95 57 5d 5b 00 55 d8 ef a0 22 f8 cb 26 |....W][.U..."..&| -000001a0 8d e0 9a 25 a7 77 6d 25 27 c3 aa 75 f7 51 15 c5 |...%.wm%'..u.Q..| -000001b0 30 72 57 ef d4 41 3e cf dd fc 77 d9 d8 08 41 87 |0rW..A>...w...A.| -000001c0 b6 9a 06 c6 f2 00 c5 a2 14 e9 f3 52 91 65 db 69 |...........R.e.i| -000001d0 a7 2e fb 32 5c 3f 13 c8 ea 65 3a 3a 4d 65 a9 69 |...2\?...e::Me.i| -000001e0 3f 7b f8 7c ee 1e a2 87 81 10 5c 7f 8d 37 1a 75 |?{.|......\..7.u| -000001f0 29 8a 78 58 8a d7 f7 af 75 ee 3d f2 58 c2 de a5 |).xX....u.=.X...| -00000200 60 e7 f9 a3 a1 66 cf df 76 2f 2a cf 5e 6e 80 a3 |`....f..v/*.^n..| -00000210 47 16 c9 c9 d1 b5 02 38 63 0a 86 fc f2 e8 0b 16 |G......8c.......| -00000220 d6 43 8e d1 68 b8 01 a0 63 69 01 c8 d3 1e eb 48 |.C..h...ci.....H| -00000230 28 5e 82 24 3a 19 62 f2 48 65 13 82 77 8c 9a ca |(^.$:.b.He..w...| -00000240 69 84 27 4d fd 88 81 79 74 8a a7 ef 2e be 6c c7 |i.'M...yt.....l.| -00000250 89 9d 19 ab 44 fa 35 99 cc 8e af c3 c0 98 85 85 |....D.5.........| -00000260 e7 92 45 84 39 c3 2d 27 a1 55 98 81 3a 09 1f f3 |..E.9.-'.U..:...| -00000270 9a 86 e5 53 f4 7d 35 8d 1f 2e 06 ef ed bf eb cb |...S.}5.........| -00000280 54 41 b7 9c d9 df 1b 75 00 f3 81 29 27 e4 ed 90 |TA.....u...)'...| -00000290 bd 16 39 96 15 22 c3 19 35 5c 88 db 00 05 38 77 |..9.."..5\....8w| -000002a0 8e ef 42 f5 b2 8c 0a 6c 7f 38 7a f7 c1 13 a6 3d |..B....l.8z....=| -000002b0 80 3c 62 aa 26 d0 80 08 31 b0 f4 84 36 c1 8d 51 |.| +00000110 01 e0 88 73 0f bb f4 cc 7c 75 3a 3f b4 68 04 be |...s....|u:?.h..| +00000120 4e d7 c2 2c 8d 41 df 6c 44 b3 1b 35 dc 46 36 3f |N..,.A.lD..5.F6?| +00000130 f0 dc e4 cc c3 ca 3b bf 3f fa bf 87 7c 2e 65 e1 |......;.?...|.e.| +00000140 d3 4b 2c 2a 6b 1a 57 8c 76 06 53 02 ef 79 d4 6f |.K,*k.W.v.S..y.o| +00000150 93 f0 36 f9 cb 13 05 b3 8c 22 16 fd 0a c2 e8 45 |..6......".....E| +00000160 fa 46 e7 ce f2 35 9f 32 88 97 67 46 e9 0c 13 77 |.F...5.2..gF...w| +00000170 30 b8 f3 59 71 e6 65 4f f5 5b 06 6e 9a 7f 7a 24 |0..Yq.eO.[.n..z$| +00000180 c5 e6 05 eb 8a ec 4d 0f 73 2c 6d aa 54 3d 5c 40 |......M.s,m.T=\@| +00000190 44 68 7f e6 52 b1 02 37 8c a0 be c8 3a f0 74 85 |Dh..R..7....:.t.| +000001a0 4e 0a 20 46 6c 3c 42 e7 94 18 02 30 a7 43 e7 c9 |N. Fl.*.....| +000001c0 3d 77 1e 4e 13 51 7e 38 ba 06 b1 62 99 6c 98 8d |=w.N.Q~8...b.l..| +000001d0 87 b4 59 01 93 d3 84 80 6f e6 07 18 e0 a3 07 5d |..Y.....o......]| +000001e0 b7 97 1a 8b ed 78 20 d1 28 0e 60 dc 51 37 b1 07 |.....x .(.`.Q7..| +000001f0 81 b1 0b d8 81 f4 79 bf 3d ae 60 32 22 2b c5 9c |......y.=.`2"+..| +00000200 d1 37 3a f8 71 22 49 c2 a7 1e 5a 56 c1 c4 b4 5d |.7:.q"I...ZV...]| +00000210 2a 08 60 c6 75 2a 10 3e c0 84 77 dd 1d a6 be 8c |*.`.u*.>..w.....| +00000220 a7 2a 20 6b e1 20 bb bd 03 fb c1 2c 33 fb 97 64 |.* k. .....,3..d| +00000230 88 31 75 df 6e b3 49 dd e8 f2 b8 13 ca d5 24 40 |.1u.n.I.......$@| +00000240 e6 0b e5 7e 12 cb 20 60 b0 0a 72 b6 a5 93 2d ea |...~.. `..r...-.| +00000250 74 22 48 b7 7e 10 bf 81 55 eb 3d 0c 33 f6 37 66 |t"H.~...U.=.3.7f| +00000260 04 2a 1b 9c 3e 0a 06 0d 53 88 f0 cf 4f 52 c4 a1 |.*..>...S...OR..| +00000270 31 ff b0 8e 5c 8e c3 cc 0d a1 68 cb f6 2e 0f 57 |1...\.....h....W| +00000280 06 f9 d6 80 e5 ac b8 24 1f ef 6e b9 5c 32 a4 e1 |.......$..n.\2..| +00000290 44 14 99 75 6e 57 d6 6b 51 5f 16 ee 65 c6 fc 96 |D..unW.kQ_..e...| +000002a0 4e ea 83 85 3f c9 f6 5b b8 14 5e 6a 41 2b 0f 91 |N...?..[..^jA+..| +000002b0 ab 79 f4 3d 0e 63 2a 99 eb 4a e9 07 b8 cd fb d2 |.y.=.c*..J......| +000002c0 ad 33 e6 48 25 b2 b3 29 a6 fc 14 84 a5 ee 53 44 |.3.H%..)......SD| +000002d0 d4 b2 93 db 86 a6 b2 b3 ea 22 3d a7 52 db 53 56 |........."=.R.SV| +000002e0 96 20 24 59 6c b6 10 c2 f4 88 9a ff 69 d3 92 0c |. $Yl.......i...| +000002f0 da e7 67 63 af 3f 94 c2 06 9f da 8a 78 f5 6d 4d |..gc.?......x.mM| +00000300 3d 7b fe 43 6c 71 82 ce 34 07 4b e2 57 05 f8 5c |={.Clq..4.K.W..\| +00000310 dc 17 03 17 03 03 00 99 97 2b be f7 da 39 40 7e |.........+...9@~| +00000320 9f bd 0a 93 db c8 0d 89 e9 b8 52 5c f6 83 6d 6c |..........R\..ml| +00000330 d9 44 1a 3a fe 39 05 f5 c3 25 5e 5e 92 4d 84 d9 |.D.:.9...%^^.M..| +00000340 0e bc f2 27 09 e0 ba 70 f1 0a 9d 6a af b5 e7 90 |...'...p...j....| +00000350 8c 91 c7 82 9b d4 8b 88 dc 16 ec 33 2c 81 e7 4f |...........3,..O| +00000360 ad dd c1 c5 c6 59 36 d4 aa 39 f1 6f de 93 a7 0e |.....Y6..9.o....| +00000370 39 e4 f3 cf 01 b3 ed ad 10 01 70 20 60 ac 6a c5 |9.........p `.j.| +00000380 ec ec f9 fb 7c 40 72 10 c4 99 8f 10 eb b0 08 4e |....|@r........N| +00000390 dd 3f 65 a4 34 c0 69 94 2a 7c 2d cb 33 3b d5 b9 |.?e.4.i.*|-.3;..| +000003a0 03 e0 e9 63 37 54 73 6a 34 ad c9 65 d1 d4 d7 6b |...c7Tsj4..e...k| +000003b0 38 17 03 03 00 45 1c f4 15 86 6e b6 2d cd 84 30 |8....E....n.-..0| +000003c0 55 82 13 52 d9 c9 3f 01 27 ee 01 9c d4 da be ab |U..R..?.'.......| +000003d0 be 10 4d 82 55 32 86 a0 7b 74 bc 15 aa 68 3a e4 |..M.U2..{t...h:.| +000003e0 a1 3a d9 0e b6 c3 60 48 b4 7d e1 77 9d ce f9 41 |.:....`H.}.w...A| +000003f0 5f f7 d5 db ea 1f 6e b1 11 cd ca |_.....n....| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 93 78 a6 3d 50 |..........E.x.=P| -00000010 bd bf cb d5 f5 2d af d7 1a 04 5a 7c 18 57 5f ce |.....-....Z|.W_.| -00000020 bf aa f3 25 1d 19 29 3a 90 06 9b 9a ad bb 03 92 |...%..):........| -00000030 58 62 1f db 30 3b db 83 bf 21 dc 32 50 7a cc c1 |Xb..0;...!.2Pz..| -00000040 51 2d 46 a4 41 eb 07 b3 91 54 55 23 bd 1b c9 82 |Q-F.A....TU#....| +00000000 14 03 03 00 01 01 17 03 03 00 45 e9 b8 73 86 f8 |..........E..s..| +00000010 0c ba 6d ee 91 c4 70 d6 06 df 59 f8 28 21 92 3d |..m...p...Y.(!.=| +00000020 a5 ad 7c d3 08 ad ea f6 9f c8 d6 8a b1 f0 fc d2 |..|.............| +00000030 52 91 e8 1b b4 0b b9 a0 6e 48 18 d8 fb fe 3e d1 |R.......nH....>.| +00000040 d9 81 d5 9f 6a bd 83 74 c5 2d fb 42 95 57 5b 23 |....j..t.-.B.W[#| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e 94 17 fa b4 46 cf 05 18 36 1e 2c |.........F...6.,| -00000010 fa b8 76 fd 66 4f d0 6c df 7d 35 ea cc 5f 8c fb |..v.fO.l.}5.._..| -00000020 6f 31 cc 17 03 03 00 13 7e 91 d1 39 ce 2c 4d e4 |o1......~..9.,M.| -00000030 49 90 a1 a6 c1 12 bf 0b 12 80 40 |I.........@| +00000000 17 03 03 00 1e 64 cd 12 df 96 8c 5d a7 8f 92 98 |.....d.....]....| +00000010 c9 f7 16 11 4e 37 48 dd 55 b2 c6 4c 91 82 8d a8 |....N7H.U..L....| +00000020 01 8b a3 17 03 03 00 13 68 92 77 f7 88 86 d9 3c |........h.w....<| +00000030 4a 52 35 b2 2c b7 24 03 3c db 6c |JR5.,.$.<.l| diff --git a/testdata/Server-TLSv13-X25519 b/testdata/Server-TLSv13-X25519 index e2ede18..57a13f3 100644 --- a/testdata/Server-TLSv13-X25519 +++ b/testdata/Server-TLSv13-X25519 @@ -1,91 +1,91 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 d8 01 00 00 d4 03 03 7b 32 49 3a 30 |...........{2I:0| -00000010 09 44 1d e3 d6 4e c0 2e ec e1 ce fc d9 70 6d 47 |.D...N.......pmG| -00000020 32 61 92 e3 4b 0e 02 96 0a b4 b6 20 18 b5 42 4e |2a..K...... ..BN| -00000030 a4 06 40 82 76 bc 30 6b 5c ef 16 94 e4 bb fa 0b |..@.v.0k\.......| -00000040 49 d4 b1 c5 df 0d 01 92 be 99 6f f2 00 08 13 02 |I.........o.....| +00000000 16 03 01 00 d8 01 00 00 d4 03 03 3a 50 25 cb 97 |...........:P%..| +00000010 ed a7 58 c6 58 64 62 03 f6 ae 8c 70 72 98 55 c0 |..X.Xdb....pr.U.| +00000020 65 8c f5 64 bc 41 29 7f df ce 7b 20 99 ce de a1 |e..d.A)...{ ....| +00000030 6c 2c 3a e0 cd b4 7b 97 ca 00 e0 ee 12 43 a4 0d |l,:...{......C..| +00000040 d0 c7 0d 17 21 d4 03 d2 56 56 f7 32 00 08 13 02 |....!...VV.2....| 00000050 13 03 13 01 00 ff 01 00 00 83 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 04 00 02 00 1d 00 16 00 00 |................| 00000080 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| 00000090 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| 000000a0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| -000000b0 02 01 01 00 33 00 26 00 24 00 1d 00 20 32 8d 5d |....3.&.$... 2.]| -000000c0 3b f5 8f b3 7b 41 92 90 e9 3f 4f aa 61 a8 91 f6 |;...{A...?O.a...| -000000d0 85 c1 70 d6 1a 94 8d 16 1d 4e c8 ea 54 |..p......N..T| +000000b0 02 01 01 00 33 00 26 00 24 00 1d 00 20 30 ac 6d |....3.&.$... 0.m| +000000c0 11 29 bd 1b 06 04 94 10 9a e4 25 1a fa f5 47 ff |.)........%...G.| +000000d0 fc 66 4d 8c d7 79 ed f7 52 c9 d1 3c 3e |.fM..y..R..<>| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 18 b5 42 4e |........... ..BN| -00000030 a4 06 40 82 76 bc 30 6b 5c ef 16 94 e4 bb fa 0b |..@.v.0k\.......| -00000040 49 d4 b1 c5 df 0d 01 92 be 99 6f f2 13 02 00 00 |I.........o.....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 99 ce de a1 |........... ....| +00000030 6c 2c 3a e0 cd b4 7b 97 ca 00 e0 ee 12 43 a4 0d |l,:...{......C..| +00000040 d0 c7 0d 17 21 d4 03 d2 56 56 f7 32 13 02 00 00 |....!...VV.2....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| -00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 17 |.........._X.;t.| -00000080 03 03 00 17 7c ee 15 67 75 36 92 d7 4a d6 56 f5 |....|..gu6..J.V.| -00000090 6d ef 3d e1 2e 94 de 7d 72 dc 2f 17 03 03 02 6d |m.=....}r./....m| -000000a0 a4 38 eb 50 27 ef fa 47 59 74 d0 ad 55 e2 19 15 |.8.P'..GYt..U...| -000000b0 a8 9e 12 dc c5 70 7c fd b7 1c cd 56 b7 44 cc 9c |.....p|....V.D..| -000000c0 4c b7 6c 99 0a 20 8d db fc 5b 4d 97 27 b3 64 61 |L.l.. ...[M.'.da| -000000d0 fd e6 99 9b d7 1f 2c 86 a3 b7 23 16 8c f0 f0 a4 |......,...#.....| -000000e0 70 e1 0e 70 61 db 2d c2 60 10 30 21 eb 3c f4 d4 |p..pa.-.`.0!.<..| -000000f0 07 27 f2 54 bd e7 b8 7a 13 10 47 10 41 46 3d 6f |.'.T...z..G.AF=o| -00000100 20 3b 16 07 d6 0d 16 d0 06 34 a4 b9 eb 6a 3d 1b | ;.......4...j=.| -00000110 69 fd 7b f2 2d a8 8d 56 51 cf 0e 58 c3 19 ce 88 |i.{.-..VQ..X....| -00000120 9f 6c c6 38 11 24 81 2f da c1 f2 57 32 2f 5c 1e |.l.8.$./...W2/\.| -00000130 e1 04 56 58 fd 5c ca b8 c6 f1 bd 66 84 a9 2d 48 |..VX.\.....f..-H| -00000140 4f 4c 08 b3 92 ba 5d 89 95 ce 3d b2 de 76 00 01 |OL....]...=..v..| -00000150 95 56 56 2c 39 1a 65 68 f5 28 4e d2 e9 cc 85 2e |.VV,9.eh.(N.....| -00000160 f0 d9 e6 40 f3 f2 88 10 24 5b 92 5e 18 2d 4c e5 |...@....$[.^.-L.| -00000170 36 dd c6 09 d1 ca ae 44 84 7a 9b dd f3 c9 ac 44 |6......D.z.....D| -00000180 7d 77 e9 41 8b b2 26 93 16 e9 d4 06 8b f5 ab c5 |}w.A..&.........| -00000190 8d ad f4 61 5f 1c ab f0 ff 86 20 f0 4d 90 f5 cb |...a_..... .M...| -000001a0 0f d8 fe 3f 2e 78 5e 11 bf 82 0d 55 a2 9a 7b 4b |...?.x^....U..{K| -000001b0 5d a0 b7 6c b1 d3 98 67 81 c2 ef fa 22 2f a4 68 |]..l...g...."/.h| -000001c0 b4 bd 38 08 68 b8 08 2e 95 70 64 e1 c0 4a 29 2b |..8.h....pd..J)+| -000001d0 d0 5d 0c 2a f0 df 87 e9 7c bd f5 bc a5 e2 56 56 |.].*....|.....VV| -000001e0 e6 79 0e f9 ce 42 9a 7c d9 e4 3a b2 c9 c7 54 f7 |.y...B.|..:...T.| -000001f0 a2 f8 af b0 8d 56 2b 9d 3a de da 22 7a f6 56 b9 |.....V+.:.."z.V.| -00000200 6f cf 61 b1 9f 49 91 1e aa da 27 cb bd 81 f9 a0 |o.a..I....'.....| -00000210 01 8c e0 ad d6 3f ef 8a 2e 8c 4b da 77 83 b7 7a |.....?....K.w..z| -00000220 69 83 62 2e 48 00 d2 dc 96 46 ef e1 c5 1a 49 eb |i.b.H....F....I.| -00000230 3c 6d b9 a6 c1 45 21 a6 7a cb 46 23 57 b1 21 d9 || -00000340 e7 dd b0 e3 9f ee 2d e7 f4 fa 11 56 01 27 86 04 |......-....V.'..| -00000350 4d 76 58 61 e5 1e b3 61 07 1e 50 2f 38 2e 2e 86 |MvXa...a..P/8...| -00000360 b9 c5 77 c5 c5 bf 54 4d b8 50 9f 03 fb 5f 8d 60 |..w...TM.P..._.`| -00000370 49 ed 98 90 34 d5 66 e1 0a 17 9c 55 3f 7a 7e 31 |I...4.f....U?z~1| -00000380 dd b5 d9 12 9d 8c 00 6e 37 d4 3e 45 ad da 6d 30 |.......n7.>E..m0| -00000390 47 2c 70 95 10 a4 d2 1e 20 37 04 6a 58 96 34 0d |G,p..... 7.jX.4.| -000003a0 2c 93 09 de 7b 1b a0 5c 25 19 c5 17 03 03 00 45 |,...{..\%......E| -000003b0 ba 0f cd 55 4f 62 24 0a f9 7d 58 93 69 4f 5f c4 |...UOb$..}X.iO_.| -000003c0 d2 bd 95 3e 10 15 57 1d c1 16 e3 4d 46 8b fd d1 |...>..W....MF...| -000003d0 16 d1 4a 83 4b d5 ed d2 00 90 90 c3 8f 91 43 81 |..J.K.........C.| -000003e0 a1 90 16 3b c9 54 6c 3c 0f 71 c7 5f 2c b0 3f c3 |...;.Tl<.q._,.?.| -000003f0 9b 69 ce 6c 60 |.i.l`| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 17 ae 18 e7 86 a2 |................| +00000090 cb 27 29 d1 e5 e7 3a 73 d8 fd 98 ec 43 74 47 a2 |.')...:s....CtG.| +000000a0 a6 17 03 03 02 6d d2 f0 a6 3e 2e 8d 47 3e b4 03 |.....m...>..G>..| +000000b0 cd c7 96 a2 f0 1f 99 f0 58 b0 4d 81 4c e7 93 ae |........X.M.L...| +000000c0 a5 e9 0a 07 7f e3 6f 82 c5 2f 4f cb 78 1b a3 44 |......o../O.x..D| +000000d0 72 63 75 bc a8 6e cd 21 a9 5b b1 4d 1d cb f4 3c |rcu..n.!.[.M...<| +000000e0 2f 69 f1 92 76 9b 60 b2 27 ff e9 88 3d 06 d1 ac |/i..v.`.'...=...| +000000f0 66 e8 80 a0 92 3d 1c aa bd 81 5d 5b 64 7a b1 9a |f....=....][dz..| +00000100 04 7b 63 38 fa f6 df 56 bf 84 86 8b 05 c9 e5 da |.{c8...V........| +00000110 b0 83 7c 47 e2 39 50 df e2 1b 4f 47 24 31 8d 7d |..|G.9P...OG$1.}| +00000120 80 9f 6d 3b 7e e9 d1 65 96 f5 fc 12 2c e9 d8 08 |..m;~..e....,...| +00000130 f1 0b 4c dd ee c6 77 a1 83 f9 70 b0 48 72 d7 d0 |..L...w...p.Hr..| +00000140 48 0a 58 6c f9 e6 04 37 31 bd ba c5 6a 31 66 6b |H.Xl...71...j1fk| +00000150 cc f5 70 db a3 0e 53 a8 7c ce c2 24 c0 21 c3 6e |..p...S.|..$.!.n| +00000160 bb dd 62 3d fc e6 71 0e 28 b5 76 1b 1c 06 bd c7 |..b=..q.(.v.....| +00000170 4e 72 dd 54 9d 93 a3 8f 0d cb ec e4 f1 0f c1 b9 |Nr.T............| +00000180 ce d4 50 44 61 46 de 1a 6a f4 19 61 bd 56 f2 06 |..PDaF..j..a.V..| +00000190 bb 9f 9e d2 9a b2 7d bd 56 5f cc 6c aa f3 60 15 |......}.V_.l..`.| +000001a0 93 41 05 97 8b 9d 7a 89 5c 1d 66 10 03 cc 7a da |.A....z.\.f...z.| +000001b0 41 5e 32 45 76 21 10 e2 49 a3 df 05 81 a0 4b 9d |A^2Ev!..I.....K.| +000001c0 b7 e5 43 93 c0 a4 33 48 11 81 bd 74 86 45 a4 0b |..C...3H...t.E..| +000001d0 a0 57 33 ea 02 c2 32 22 62 1f a7 85 06 27 bd 2a |.W3...2"b....'.*| +000001e0 4e a6 52 a9 81 76 d3 65 28 58 f9 d3 20 7a 6d a3 |N.R..v.e(X.. zm.| +000001f0 a7 cd b1 5d e6 89 70 88 09 4e 54 bd d9 f1 91 5f |...]..p..NT...._| +00000200 e6 91 32 3e ef 09 40 f9 be 10 bd 46 40 9c 0d 8f |..2>..@....F@...| +00000210 e3 39 0c b6 dc ce dc 29 77 3c 14 dd 53 92 9d 24 |.9.....)w<..S..$| +00000220 62 bb 5b 6e bf 08 ac 66 be bf 06 4d da 79 8a 3f |b.[n...f...M.y.?| +00000230 d6 07 15 2c 0b ed 9b 62 a3 30 2a 7e 73 c7 bc 16 |...,...b.0*~s...| +00000240 35 24 56 67 86 68 72 1a 31 d2 4b 9d 33 51 82 30 |5$Vg.hr.1.K.3Q.0| +00000250 09 8f 3f 71 dc 8f 96 ad e2 9c 0e 9d a1 1b 52 1c |..?q..........R.| +00000260 03 b7 e2 8e 9e fc 7f e0 5c 13 3e 9c 5b e0 28 0c |........\.>.[.(.| +00000270 b1 e9 1f 5b 93 13 07 6d 19 11 43 94 df 27 3e 31 |...[...m..C..'>1| +00000280 e9 ca 57 5a da 3f 69 c5 ef 5a 4b 54 88 b6 78 d3 |..WZ.?i..ZKT..x.| +00000290 c0 17 d4 e8 73 6d d2 ac 4f 82 3c d5 39 dd 33 0d |....sm..O.<.9.3.| +000002a0 d0 65 a4 f4 b4 97 a3 76 cc ae a1 50 72 ae 8a 62 |.e.....v...Pr..b| +000002b0 ba a3 5c ed df a9 d1 16 0e 57 0e c7 7f e2 07 d0 |..\......W......| +000002c0 d1 c4 f3 f6 7b 53 2d 21 c5 92 76 24 22 77 01 ad |....{S-!..v$"w..| +000002d0 de 4b 44 3e 75 80 c3 b5 e0 ab e3 f4 ad d1 23 fd |.KD>u.........#.| +000002e0 e9 ef bf 91 ca b1 fd bd 3d d0 f6 2b 01 10 f2 be |........=..+....| +000002f0 e5 4f 6d cd 42 7d ec 0c 62 0b ec 3e b2 80 02 bb |.Om.B}..b..>....| +00000300 b2 29 49 58 3e d3 72 bb 17 1d d7 c5 3b 69 90 3b |.)IX>.r.....;i.;| +00000310 af 3a 4e 17 03 03 00 99 a4 24 43 f4 e8 d4 49 d9 |.:N......$C...I.| +00000320 4f cf 34 47 cb f4 20 4d d5 ec 13 cf f5 37 5a 5d |O.4G.. M.....7Z]| +00000330 0f 3f b6 47 aa 6c f7 70 85 cb ee 23 d2 a9 c3 26 |.?.G.l.p...#...&| +00000340 bf 19 46 74 13 c6 0e 83 52 a6 41 9b e1 b9 91 3a |..Ft....R.A....:| +00000350 6f d2 ee bd 0b 9a ef 94 45 23 22 b6 19 55 04 a6 |o.......E#"..U..| +00000360 c2 d7 e1 0b e4 ee 05 fc 83 c5 60 55 b6 4a 36 5f |..........`U.J6_| +00000370 04 5e fc cf c2 56 0c 61 39 c8 1d a7 e4 a0 08 4a |.^...V.a9......J| +00000380 75 29 d0 81 a4 8f f7 35 c7 b8 8c 0e d8 76 0a 6e |u).....5.....v.n| +00000390 5c ca 72 58 9a 61 3e 24 a7 2e 1c d5 6a f5 4b 6b |\.rX.a>$....j.Kk| +000003a0 15 86 09 fa 55 78 c3 96 ae 09 63 25 64 3c 7e 1b |....Ux....c%d<~.| +000003b0 aa 17 03 03 00 45 6f cf 21 85 b9 01 82 44 b1 f5 |.....Eo.!....D..| +000003c0 26 f7 1f 20 59 db ca 41 50 6c da cf cd 8b 8e 7e |&.. Y..APl.....~| +000003d0 6d a6 a6 8d 56 d9 cb 00 25 71 69 75 af 26 02 cc |m...V...%qiu.&..| +000003e0 b5 de e3 06 bc d4 f5 10 93 f1 46 17 88 41 52 4f |..........F..ARO| +000003f0 8a 0f c4 08 e0 af 8e f1 5d 24 d1 |........]$.| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 bf 5b 81 15 24 |..........E.[..$| -00000010 3b be 70 41 4d ea 7c 04 a7 31 84 d3 38 b0 e4 cb |;.pAM.|..1..8...| -00000020 42 05 b7 a8 07 1a d5 4f f3 e7 50 56 e8 73 63 1a |B......O..PV.sc.| -00000030 d8 a0 76 5e 10 c8 73 07 fa 88 86 65 69 40 81 37 |..v^..s....ei@.7| -00000040 a2 00 89 b6 ff f1 49 1d 69 e5 63 2e bc 5a eb e6 |......I.i.c..Z..| +00000000 14 03 03 00 01 01 17 03 03 00 45 58 42 c4 20 5f |..........EXB. _| +00000010 a3 5f 66 35 f3 c4 a1 fd 91 b4 f8 ef 21 c1 63 5b |._f5........!.c[| +00000020 d9 d9 3d f4 e5 e2 5b 85 66 63 be 1b 16 30 fd 4b |..=...[.fc...0.K| +00000030 92 86 75 d6 54 f0 44 93 ef f7 04 3d 84 35 5c 13 |..u.T.D....=.5\.| +00000040 fd 31 1e 6f 5b 76 74 f6 43 89 2e b2 1c eb ad 88 |.1.o[vt.C.......| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e ca eb a0 6a b4 a5 eb ca 28 14 25 |........j....(.%| -00000010 07 18 47 3d f0 f6 22 2e 7f 9c 09 73 8c a7 f8 63 |..G=.."....s...c| -00000020 e7 41 fd 17 03 03 00 13 ba f6 ed 7e 36 b5 f2 c6 |.A.........~6...| -00000030 15 27 34 2d 8d bd ea 99 29 81 ee |.'4-....)..| +00000000 17 03 03 00 1e d5 f8 ad 21 c7 c8 98 99 57 b0 48 |........!....W.H| +00000010 af 22 32 d7 dc 75 de 5c eb cf bd 91 89 b5 23 31 |."2..u.\......#1| +00000020 e4 b5 69 17 03 03 00 13 42 a1 ec 2a 8b 8a 05 e4 |..i.....B..*....| +00000030 33 62 eb 3e 18 e8 25 3c 6c 88 ea |3b.>..% Date: Sun, 4 Nov 2018 18:41:37 -0500 Subject: [PATCH 6/8] crypto/tls: implement TLS 1.3 PSK authentication (client side) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also check original certificate validity when resuming TLS 1.0–1.2. Will refuse to resume a session if the certificate is expired or if the original connection had InsecureSkipVerify and the resumed one doesn't. Support only PSK+DHE to protect forward secrecy even with lack of a strong session ticket rotation story. Tested with NSS because s_server does not provide any way of getting the same session ticket key across invocations. Will self-test like TLS 1.0–1.2 once server side is implemented. Incorporates CL 128477 by @santoshankr. Fixes #24919 Updates #9671 Change-Id: Id3eaa5b6c77544a1357668bf9ff255f3420ecc34 Reviewed-on: https://go-review.googlesource.com/c/147420 Reviewed-by: Adam Langley --- cipher_suites.go | 32 ++++--- common.go | 44 ++++++---- conn.go | 26 +++--- handshake_client.go | 168 +++++++++++++++++++++++++++---------- handshake_client_test.go | 67 +++++++++++---- handshake_client_tls13.go | 172 +++++++++++++++++++++++++++++++------- handshake_messages.go | 44 ++++++++++ handshake_server.go | 9 +- handshake_server_tls13.go | 12 +-- key_schedule.go | 11 +++ prf_test.go | 17 +--- 11 files changed, 444 insertions(+), 158 deletions(-) diff --git a/cipher_suites.go b/cipher_suites.go index 41ab2ba..26e14c9 100644 --- a/cipher_suites.go +++ b/cipher_suites.go @@ -399,12 +399,16 @@ func ecdheRSAKA(version uint16) keyAgreement { func mutualCipherSuite(have []uint16, want uint16) *cipherSuite { for _, id := range have { if id == want { - for _, suite := range cipherSuites { - if suite.id == want { - return suite - } - } - return nil + return cipherSuiteByID(id) + } + } + return nil +} + +func cipherSuiteByID(id uint16) *cipherSuite { + for _, cipherSuite := range cipherSuites { + if cipherSuite.id == id { + return cipherSuite } } return nil @@ -413,12 +417,16 @@ func mutualCipherSuite(have []uint16, want uint16) *cipherSuite { func mutualCipherSuiteTLS13(have []uint16, want uint16) *cipherSuiteTLS13 { for _, id := range have { if id == want { - for _, suite := range cipherSuitesTLS13 { - if suite.id == want { - return suite - } - } - return nil + return cipherSuiteTLS13ByID(id) + } + } + return nil +} + +func cipherSuiteTLS13ByID(id uint16) *cipherSuiteTLS13 { + for _, cipherSuite := range cipherSuitesTLS13 { + if cipherSuite.id == id { + return cipherSuite } } return nil diff --git a/common.go b/common.go index 1d9e0bd..1412e82 100644 --- a/common.go +++ b/common.go @@ -240,22 +240,32 @@ type ClientSessionState struct { sessionTicket []uint8 // Encrypted ticket used for session resumption with server vers uint16 // SSL/TLS version negotiated for the session cipherSuite uint16 // Ciphersuite negotiated for the session - masterSecret []byte // MasterSecret generated by client on a full handshake + masterSecret []byte // Full handshake MasterSecret, or TLS 1.3 resumption_master_secret serverCertificates []*x509.Certificate // Certificate chain presented by the server verifiedChains [][]*x509.Certificate // Certificate chains we built for verification + receivedAt time.Time // When the session ticket was received from the server + + // TLS 1.3 fields. + nonce []byte // Ticket nonce sent by the server, to derive PSK + useBy time.Time // Expiration of the ticket lifetime as set by the server + ageAdd uint32 // Random obfuscation factor for sending the ticket age } // ClientSessionCache is a cache of ClientSessionState objects that can be used // by a client to resume a TLS session with a given server. ClientSessionCache // implementations should expect to be called concurrently from different -// goroutines. Only ticket-based resumption is supported, not SessionID-based -// resumption. +// goroutines. Up to TLS 1.2, only ticket-based resumption is supported, not +// SessionID-based resumption. In TLS 1.3 they were merged into PSK modes, which +// are supported via this interface. type ClientSessionCache interface { // Get searches for a ClientSessionState associated with the given key. // On return, ok is true if one was found. Get(sessionKey string) (session *ClientSessionState, ok bool) - // Put adds the ClientSessionState to the cache with the given key. + // Put adds the ClientSessionState to the cache with the given key. It might + // get called multiple times in a connection if a TLS 1.3 server provides + // more than one session ticket. If called with a nil *ClientSessionState, + // it should remove the cache entry. Put(sessionKey string, cs *ClientSessionState) } @@ -502,19 +512,19 @@ type Config struct { // the order of elements in CipherSuites, is used. PreferServerCipherSuites bool - // SessionTicketsDisabled may be set to true to disable session ticket - // (resumption) support. Note that on clients, session ticket support is + // SessionTicketsDisabled may be set to true to disable session ticket and + // PSK (resumption) support. Note that on clients, session ticket support is // also disabled if ClientSessionCache is nil. SessionTicketsDisabled bool - // SessionTicketKey is used by TLS servers to provide session - // resumption. See RFC 5077. If zero, it will be filled with - // random data before the first server handshake. + // SessionTicketKey is used by TLS servers to provide session resumption. + // See RFC 5077 and the PSK mode of RFC 8446. If zero, it will be filled + // with random data before the first server handshake. // // If multiple servers are terminating connections for the same host // they should all have the same SessionTicketKey. If the // SessionTicketKey leaks, previously recorded and future TLS - // connections using that key are compromised. + // connections using that key might be compromised. SessionTicketKey [32]byte // ClientSessionCache is a cache of ClientSessionState entries for TLS @@ -937,15 +947,21 @@ func NewLRUClientSessionCache(capacity int) ClientSessionCache { } } -// Put adds the provided (sessionKey, cs) pair to the cache. +// Put adds the provided (sessionKey, cs) pair to the cache. If cs is nil, the entry +// corresponding to sessionKey is removed from the cache instead. func (c *lruSessionCache) Put(sessionKey string, cs *ClientSessionState) { c.Lock() defer c.Unlock() if elem, ok := c.m[sessionKey]; ok { - entry := elem.Value.(*lruSessionCacheEntry) - entry.state = cs - c.q.MoveToFront(elem) + if cs == nil { + c.q.Remove(elem) + delete(c.m, sessionKey) + } else { + entry := elem.Value.(*lruSessionCacheEntry) + entry.state = cs + c.q.MoveToFront(elem) + } return } diff --git a/conn.go b/conn.go index 5b0db53..fa366eb 100644 --- a/conn.go +++ b/conn.go @@ -57,6 +57,9 @@ type Conn struct { secureRenegotiation bool // ekm is a closure for exporting keying material. ekm func(label string, context []byte, length int) ([]byte, error) + // resumptionSecret is the resumption_master_secret for generating or + // handling NewSessionTicket messages. nil if config.SessionTicketsDisabled. + resumptionSecret []byte // clientFinishedIsFirst is true if the client sent the first Finished // message during the most recent handshake. This is recorded because @@ -1169,10 +1172,15 @@ func (c *Conn) handlePostHandshakeMessage() error { return err } + c.retryCount++ + if c.retryCount > maxUselessRecords { + c.sendAlert(alertUnexpectedMessage) + return c.in.setErrorLocked(errors.New("tls: too many non-advancing records")) + } + switch msg := msg.(type) { case *newSessionTicketMsgTLS13: - // TODO(filippo): TLS 1.3 session ticket not implemented. - return nil + return c.handleNewSessionTicket(msg) case *keyUpdateMsg: return c.handleKeyUpdate(msg) default: @@ -1182,19 +1190,7 @@ func (c *Conn) handlePostHandshakeMessage() error { } func (c *Conn) handleKeyUpdate(keyUpdate *keyUpdateMsg) error { - c.retryCount++ - if c.retryCount > maxUselessRecords { - c.sendAlert(alertUnexpectedMessage) - return c.in.setErrorLocked(errors.New("tls: too many non-advancing records")) - } - - var cipherSuite *cipherSuiteTLS13 - for _, suite := range cipherSuitesTLS13 { - if suite.id == c.cipherSuite { - cipherSuite = suite - break - } - } + cipherSuite := cipherSuiteTLS13ByID(c.cipherSuite) if cipherSuite == nil { return c.in.setErrorLocked(c.sendAlert(alertInternalError)) } diff --git a/handshake_client.go b/handshake_client.go index 1d2ba12..8a3d3d9 100644 --- a/handshake_client.go +++ b/handshake_client.go @@ -18,6 +18,7 @@ import ( "strconv" "strings" "sync/atomic" + "time" ) type clientHandshakeState struct { @@ -134,7 +135,7 @@ NextCipherSuite: return hello, params, nil } -func (c *Conn) clientHandshake() error { +func (c *Conn) clientHandshake() (err error) { if c.config == nil { c.config = defaultConfig() } @@ -148,8 +149,20 @@ func (c *Conn) clientHandshake() error { return err } - var newSession *ClientSessionState - cacheKey, session := c.loadSession(hello) + 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) + } + }() + } if _, err := c.writeRecord(recordTypeHandshake, hello.marshal()); err != nil { return err @@ -177,81 +190,147 @@ func (c *Conn) clientHandshake() error { hello: hello, ecdheParams: ecdheParams, session: session, + earlySecret: earlySecret, + binderKey: binderKey, } - if err := hs.handshake(); err != nil { - return err - } + // In TLS 1.3, session tickets are delivered after the handshake. + return hs.handshake() + } - newSession = hs.session - } else { - hs := &clientHandshakeState{ - c: c, - serverHello: serverHello, - hello: hello, - session: session, - } + hs := &clientHandshakeState{ + c: c, + serverHello: serverHello, + hello: hello, + session: session, + } - if err := hs.handshake(); err != nil { - return err - } - - newSession = hs.session + if err := hs.handshake(); 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 hello.ticketSupported && newSession != nil && session != newSession { - c.config.ClientSessionCache.Put(cacheKey, newSession) + if cacheKey != "" && hs.session != nil && session != hs.session { + c.config.ClientSessionCache.Put(cacheKey, hs.session) } return nil } -func (c *Conn) loadSession(hello *clientHelloMsg) (cacheKey string, session *ClientSessionState) { +func (c *Conn) loadSession(hello *clientHelloMsg) (cacheKey string, + session *ClientSessionState, earlySecret, binderKey []byte) { if c.config.SessionTicketsDisabled || c.config.ClientSessionCache == nil { - return + return "", nil, nil, nil } hello.ticketSupported = true + if hello.supportedVersions[0] == VersionTLS13 { + // Require DHE on resumption as it guarantees forward secrecy against + // compromise of the session ticket key. See RFC 8446, Section 4.2.9. + hello.pskModes = []uint8{pskModeDHE} + } + // 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 c.handshakes != 0 { - return + return "", nil, nil, nil } // Try to resume a previously negotiated TLS session, if available. cacheKey = clientSessionCacheKey(c.conn.RemoteAddr(), c.config) - candidateSession, ok := c.config.ClientSessionCache.Get(cacheKey) - if !ok { - return - } - - // Check that the ciphersuite and version used for the previous session - // are still valid. - cipherSuiteOk := false - for _, id := range hello.cipherSuites { - if id == candidateSession.cipherSuite { - cipherSuiteOk = true - break - } + session, ok := c.config.ClientSessionCache.Get(cacheKey) + if !ok || session == nil { + return cacheKey, nil, nil, nil } + // Check that version used for the previous session is still valid. versOk := false for _, v := range hello.supportedVersions { - if v == candidateSession.vers { + if v == session.vers { versOk = true break } } - - if versOk && cipherSuiteOk { - session = candidateSession - hello.sessionTicket = session.sessionTicket + if !versOk { + return cacheKey, nil, nil, nil } + // Check that the cached server certificate is not expired, and that it's + // valid for the ServerName. This should be ensured by the cache key, but + // protect the application from a faulty ClientSessionCache implementation. + if !c.config.InsecureSkipVerify { + if len(session.verifiedChains) == 0 { + // The original connection had InsecureSkipVerify, while this doesn't. + return cacheKey, nil, nil, nil + } + serverCert := session.serverCertificates[0] + if c.config.time().After(serverCert.NotAfter) { + // Expired certificate, delete the entry. + c.config.ClientSessionCache.Put(cacheKey, nil) + return cacheKey, nil, nil, nil + } + if err := serverCert.VerifyHostname(c.config.ServerName); err != nil { + return cacheKey, nil, nil, nil + } + } + + if session.vers != VersionTLS13 { + // In TLS 1.2 the cipher suite must match the resumed session. Ensure we + // are still offering it. + if mutualCipherSuite(hello.cipherSuites, session.cipherSuite) == nil { + return cacheKey, nil, nil, nil + } + + hello.sessionTicket = session.sessionTicket + return + } + + // Check that the session ticket is not expired. + if c.config.time().After(session.useBy) { + c.config.ClientSessionCache.Put(cacheKey, nil) + return cacheKey, nil, nil, nil + } + + // In TLS 1.3 the KDF hash must match the resumed session. Ensure we + // offer at least one cipher suite with that hash. + cipherSuite := cipherSuiteTLS13ByID(session.cipherSuite) + if cipherSuite == nil { + return cacheKey, nil, nil, nil + } + cipherSuiteOk := false + for _, offeredID := range hello.cipherSuites { + offeredSuite := cipherSuiteTLS13ByID(offeredID) + if offeredSuite != nil && offeredSuite.hash == cipherSuite.hash { + cipherSuiteOk = true + break + } + } + if !cipherSuiteOk { + return cacheKey, nil, nil, nil + } + + // Set the pre_shared_key extension. See RFC 8446, Section 4.2.11.1. + ticketAge := uint32(c.config.time().Sub(session.receivedAt) / time.Millisecond) + identity := pskIdentity{ + label: session.sessionTicket, + obfuscatedTicketAge: ticketAge + session.ageAdd, + } + hello.pskIdentities = []pskIdentity{identity} + hello.pskBinders = [][]byte{make([]byte, cipherSuite.hash.Size())} + + // Compute the PSK binders. See RFC 8446, Section 4.2.11.2. + psk := cipherSuite.expandLabel(session.masterSecret, "resumption", + session.nonce, cipherSuite.hash.Size()) + earlySecret = cipherSuite.extract(psk, nil) + binderKey = cipherSuite.deriveSecret(earlySecret, resumptionBinderLabel, nil) + transcript := cipherSuite.hash.New() + transcript.Write(hello.marshalWithoutBinders()) + pskBinders := [][]byte{cipherSuite.finishedHash(binderKey, transcript)} + hello.updateBinders(pskBinders) + return } @@ -275,8 +354,8 @@ func (c *Conn) pickTLSVersion(serverHello *serverHelloMsg) error { return nil } -// Does the handshake, either a full one or resumes old session. -// Requires hs.c, hs.hello, and, optionally, hs.session to be set. +// Does the handshake, either a full one or resumes old session. Requires hs.c, +// hs.hello, hs.serverHello, and, optionally, hs.session to be set. func (hs *clientHandshakeState) handshake() error { c := hs.c @@ -692,6 +771,7 @@ func (hs *clientHandshakeState) readSessionTicket() error { masterSecret: hs.masterSecret, serverCertificates: c.peerCertificates, verifiedChains: c.verifiedChains, + receivedAt: c.config.time(), } return nil diff --git a/handshake_client_test.go b/handshake_client_test.go index c60fb62..103dfa4 100644 --- a/handshake_client_test.go +++ b/handshake_client_test.go @@ -529,7 +529,7 @@ func runClientTestForVersion(t *testing.T, template *clientTest, version, option test.name = version + "-" + test.name if len(test.command) == 0 { - test.command = defaultClientCommand + test.command = defaultServerCommand } test.command = append([]string(nil), test.command...) test.command = append(test.command, option) @@ -746,10 +746,9 @@ func TestHandshakeClientCHACHA20SHA256(t *testing.T) { func TestHandshakeClientECDSATLS13(t *testing.T) { test := &clientTest{ - name: "ECDSA", - command: []string{"openssl", "s_server"}, - cert: testECDSACertificate, - key: testECDSAPrivateKey, + name: "ECDSA", + cert: testECDSACertificate, + key: testECDSAPrivateKey, } runClientTestTLS13(t, test) } @@ -871,6 +870,9 @@ func TestClientKeyUpdate(t *testing.T) { } func TestClientResumption(t *testing.T) { + // TODO(filippo): update to test both TLS 1.3 and 1.2 once PSK are + // supported server-side. + serverConfig := &Config{ CipherSuites: []uint16{TLS_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA}, Certificates: testConfig.Certificates, @@ -907,6 +909,10 @@ func TestClientResumption(t *testing.T) { getTicket := func() []byte { return clientConfig.ClientSessionCache.(*lruSessionCache).q.Front().Value.(*lruSessionCacheEntry).state.sessionTicket } + deleteTicket := func() { + ticketKey := clientConfig.ClientSessionCache.(*lruSessionCache).q.Front().Value.(*lruSessionCacheEntry).sessionKey + clientConfig.ClientSessionCache.Put(ticketKey, nil) + } randomKey := func() [32]byte { var k [32]byte if _, err := io.ReadFull(serverConfig.rand(), k[:]); err != nil { @@ -951,6 +957,28 @@ func TestClientResumption(t *testing.T) { testResumeState("DifferentCipherSuite", false) testResumeState("DifferentCipherSuiteRecovers", true) + deleteTicket() + testResumeState("WithoutSessionTicket", false) + + // Session resumption should work when using client certificates + deleteTicket() + serverConfig.ClientCAs = rootCAs + serverConfig.ClientAuth = RequireAndVerifyClientCert + clientConfig.Certificates = serverConfig.Certificates + testResumeState("InitialHandshake", false) + testResumeState("WithClientCertificates", true) + + // Tickets should be removed from the session cache on TLS handshake failure + farFuture := func() time.Time { return time.Unix(16725225600, 0) } + serverConfig.Time = farFuture + _, _, err = testHandshake(t, clientConfig, serverConfig) + if err == nil { + t.Fatalf("handshake did not fail after client certificate expiry") + } + serverConfig.Time = nil + testResumeState("AfterHandshakeFailure", false) + serverConfig.ClientAuth = NoClientCert + clientConfig.ClientSessionCache = nil testResumeState("WithoutSessionCache", false) } @@ -994,10 +1022,21 @@ func TestLRUClientSessionCache(t *testing.T) { t.Fatalf("session cache failed update for key 0") } - // Adding a nil entry is valid. + // Calling Put with a nil entry deletes the key. cache.Put(keys[0], nil) - if s, ok := cache.Get(keys[0]); !ok || s != nil { - t.Fatalf("failed to add nil entry to cache") + if _, ok := cache.Get(keys[0]); ok { + t.Fatalf("session cache failed to delete key 0") + } + + // Delete entry 2. LRU should keep 4 and 5 + cache.Put(keys[2], nil) + if _, ok := cache.Get(keys[2]); ok { + t.Fatalf("session cache failed to delete key 4") + } + for i := 4; i < 6; i++ { + if s, ok := cache.Get(keys[i]); !ok || s != &cs[i] { + t.Fatalf("session cache should not have deleted key: %s", keys[i]) + } } } @@ -1128,11 +1167,10 @@ func TestHandshakClientSCTs(t *testing.T) { t.Fatal(err) } + // Note that this needs OpenSSL 1.0.2 because that is the first + // version that supports the -serverinfo flag. test := &clientTest{ - name: "SCT", - // Note that this needs OpenSSL 1.0.2 because that is the first - // version that supports the -serverinfo flag. - command: []string{"openssl", "s_server"}, + name: "SCT", config: config, extensions: [][]byte{scts}, validate: func(state ConnectionState) error { @@ -1237,9 +1275,8 @@ func TestRenegotiateTwiceRejected(t *testing.T) { func TestHandshakeClientExportKeyingMaterial(t *testing.T) { test := &clientTest{ - name: "ExportKeyingMaterial", - command: []string{"openssl", "s_server"}, - config: testConfig.Clone(), + name: "ExportKeyingMaterial", + config: testConfig.Clone(), validate: func(state ConnectionState) error { if km, err := state.ExportKeyingMaterial("test", nil, 42); err != nil { return fmt.Errorf("ExportKeyingMaterial failed: %v", err) diff --git a/handshake_client_tls13.go b/handshake_client_tls13.go index 83287dd..233b163 100644 --- a/handshake_client_tls13.go +++ b/handshake_client_tls13.go @@ -11,22 +11,30 @@ import ( "errors" "hash" "sync/atomic" + "time" ) type clientHandshakeStateTLS13 struct { - c *Conn - serverHello *serverHelloMsg - hello *clientHelloMsg + c *Conn + serverHello *serverHelloMsg + hello *clientHelloMsg + ecdheParams ecdheParameters + + session *ClientSessionState + earlySecret []byte + binderKey []byte + certReq *certificateRequestMsgTLS13 + usingPSK bool sentDummyCCS bool - ecdheParams ecdheParameters suite *cipherSuiteTLS13 transcript hash.Hash masterSecret []byte trafficSecret []byte // client_application_traffic_secret_0 - session *ClientSessionState } +// handshake requires hs.c, hs.hello, hs.serverHello, hs.ecdheParams, and, +// optionally, hs.session, hs.earlySecret and hs.binderKey to be set. func (hs *clientHandshakeStateTLS13) handshake() error { c := hs.c @@ -50,22 +58,12 @@ func (hs *clientHandshakeStateTLS13) handshake() error { hs.transcript.Write(hs.hello.marshal()) if bytes.Equal(hs.serverHello.random, helloRetryRequestRandom) { - // The first ClientHello gets double-hashed into the transcript upon a - // HelloRetryRequest. See RFC 8446, Section 4.4.1. - chHash := hs.transcript.Sum(nil) - hs.transcript.Reset() - hs.transcript.Write([]byte{typeMessageHash, 0, 0, uint8(len(chHash))}) - hs.transcript.Write(chHash) - hs.transcript.Write(hs.serverHello.marshal()) - if err := hs.sendDummyChangeCipherSpec(); err != nil { return err } if err := hs.processHelloRetryRequest(); err != nil { return err } - - hs.transcript.Write(hs.hello.marshal()) } hs.transcript.Write(hs.serverHello.marshal()) @@ -83,7 +81,7 @@ func (hs *clientHandshakeStateTLS13) handshake() error { if err := hs.readServerParameters(); err != nil { return err } - if err := hs.doFullHandshake(); err != nil { + if err := hs.readServerCertificate(); err != nil { return err } if err := hs.readServerFinished(); err != nil { @@ -178,6 +176,14 @@ func (hs *clientHandshakeStateTLS13) sendDummyChangeCipherSpec() error { func (hs *clientHandshakeStateTLS13) processHelloRetryRequest() error { c := hs.c + // The first ClientHello gets double-hashed into the transcript upon a + // HelloRetryRequest. See RFC 8446, Section 4.4.1. + chHash := hs.transcript.Sum(nil) + hs.transcript.Reset() + hs.transcript.Write([]byte{typeMessageHash, 0, 0, uint8(len(chHash))}) + hs.transcript.Write(chHash) + hs.transcript.Write(hs.serverHello.marshal()) + if hs.serverHello.serverShare.group != 0 { c.sendAlert(alertDecodeError) return errors.New("tls: received malformed key_share extension") @@ -218,6 +224,31 @@ func (hs *clientHandshakeStateTLS13) processHelloRetryRequest() error { hs.hello.cookie = hs.serverHello.cookie hs.hello.raw = nil + if len(hs.hello.pskIdentities) > 0 { + pskSuite := cipherSuiteTLS13ByID(hs.session.cipherSuite) + if pskSuite == nil { + return c.sendAlert(alertInternalError) + } + if pskSuite.hash == hs.suite.hash { + // Update binders and obfuscated_ticket_age. + ticketAge := uint32(c.config.time().Sub(hs.session.receivedAt) / time.Millisecond) + hs.hello.pskIdentities[0].obfuscatedTicketAge = ticketAge + hs.session.ageAdd + + transcript := hs.suite.hash.New() + transcript.Write([]byte{typeMessageHash, 0, 0, uint8(len(chHash))}) + transcript.Write(chHash) + transcript.Write(hs.serverHello.marshal()) + transcript.Write(hs.hello.marshalWithoutBinders()) + pskBinders := [][]byte{hs.suite.finishedHash(hs.binderKey, transcript)} + hs.hello.updateBinders(pskBinders) + } else { + // Server selected a cipher suite incompatible with the PSK. + hs.hello.pskIdentities = nil + hs.hello.pskBinders = nil + } + } + + hs.transcript.Write(hs.hello.marshal()) if _, err := c.writeRecord(recordTypeHandshake, hs.hello.marshal()); err != nil { return err } @@ -259,11 +290,40 @@ func (hs *clientHandshakeStateTLS13) processServerHello() error { return errors.New("tls: malformed key_share extension") } + if hs.serverHello.serverShare.group == 0 { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server did not send a key share") + } if hs.serverHello.serverShare.group != hs.ecdheParams.CurveID() { c.sendAlert(alertIllegalParameter) return errors.New("tls: server selected unsupported group") } + if !hs.serverHello.selectedIdentityPresent { + return nil + } + + if int(hs.serverHello.selectedIdentity) >= len(hs.hello.pskIdentities) { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server selected an invalid PSK") + } + + if len(hs.hello.pskIdentities) != 1 || hs.session == nil { + return c.sendAlert(alertInternalError) + } + pskSuite := cipherSuiteTLS13ByID(hs.session.cipherSuite) + if pskSuite == nil { + return c.sendAlert(alertInternalError) + } + if pskSuite.hash != hs.suite.hash { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: server selected an invalid PSK and cipher suite pair") + } + + hs.usingPSK = true + c.didResume = true + c.peerCertificates = hs.session.serverCertificates + c.verifiedChains = hs.session.verifiedChains return nil } @@ -276,7 +336,10 @@ func (hs *clientHandshakeStateTLS13) establishHandshakeKeys() error { return errors.New("tls: invalid server key share") } - earlySecret := hs.suite.extract(nil, nil) + earlySecret := hs.earlySecret + if !hs.usingPSK { + earlySecret = hs.suite.extract(nil, nil) + } handshakeSecret := hs.suite.extract(sharedKey, hs.suite.deriveSecret(earlySecret, "derived", nil)) @@ -328,9 +391,15 @@ func (hs *clientHandshakeStateTLS13) readServerParameters() error { return nil } -func (hs *clientHandshakeStateTLS13) doFullHandshake() error { +func (hs *clientHandshakeStateTLS13) readServerCertificate() error { c := hs.c + // Either a PSK or a certificate is always used, but not both. + // See RFC 8446, Section 4.1.1. + if hs.usingPSK { + return nil + } + msg, err := c.readHandshake() if err != nil { return err @@ -419,13 +488,10 @@ func (hs *clientHandshakeStateTLS13) readServerFinished() error { return unexpectedMessageError(finished, msg) } - // See RFC 8446, sections 4.4.4 and 4.4. - finishedKey := hs.suite.expandLabel(c.in.trafficSecret, "finished", nil, hs.suite.hash.Size()) - expectedMAC := hmac.New(hs.suite.hash.New, finishedKey) - expectedMAC.Write(hs.transcript.Sum(nil)) - if !hmac.Equal(expectedMAC.Sum(nil), finished.verifyData) { + expectedMAC := hs.suite.finishedHash(c.in.trafficSecret, hs.transcript) + if !hmac.Equal(expectedMAC, finished.verifyData) { c.sendAlert(alertDecryptError) - return errors.New("tls: invalid finished hash") + return errors.New("tls: invalid server finished hash") } hs.transcript.Write(finished.marshal()) @@ -465,11 +531,8 @@ func (hs *clientHandshakeStateTLS13) sendClientCertificate() error { func (hs *clientHandshakeStateTLS13) sendClientFinished() error { c := hs.c - finishedKey := hs.suite.expandLabel(c.out.trafficSecret, "finished", nil, hs.suite.hash.Size()) - verifyData := hmac.New(hs.suite.hash.New, finishedKey) - verifyData.Write(hs.transcript.Sum(nil)) finished := &finishedMsg{ - verifyData: verifyData.Sum(nil), + verifyData: hs.suite.finishedHash(c.out.trafficSecret, hs.transcript), } hs.transcript.Write(finished.marshal()) @@ -479,5 +542,58 @@ func (hs *clientHandshakeStateTLS13) sendClientFinished() error { c.out.setTrafficSecret(hs.suite, hs.trafficSecret) + if !c.config.SessionTicketsDisabled && c.config.ClientSessionCache != nil { + c.resumptionSecret = hs.suite.deriveSecret(hs.masterSecret, + resumptionLabel, hs.transcript) + } + + return nil +} + +func (c *Conn) handleNewSessionTicket(msg *newSessionTicketMsgTLS13) error { + if !c.isClient { + c.sendAlert(alertUnexpectedMessage) + return errors.New("tls: received new session ticket from a client") + } + + if c.config.SessionTicketsDisabled || c.config.ClientSessionCache == nil { + return nil + } + + // See RFC 8446, Section 4.6.1. + if msg.lifetime == 0 { + return nil + } + lifetime := time.Duration(msg.lifetime) * time.Second + if lifetime > 7*24*time.Hour { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: received a session ticket with invalid lifetime") + } + + cipherSuite := cipherSuiteTLS13ByID(c.cipherSuite) + if cipherSuite == nil || c.resumptionSecret == nil { + return c.sendAlert(alertInternalError) + } + + // Save the resumption_master_secret and nonce instead of deriving the PSK + // to do the least amount of work on NewSessionTicket messages before we + // know if the ticket will be used. Forward secrecy of resumed connections + // is guaranteed by the requirement for pskModeDHE. + session := &ClientSessionState{ + sessionTicket: msg.label, + vers: c.vers, + cipherSuite: c.cipherSuite, + masterSecret: c.resumptionSecret, + serverCertificates: c.peerCertificates, + verifiedChains: c.verifiedChains, + receivedAt: c.config.time(), + nonce: msg.nonce, + useBy: c.config.time().Add(lifetime), + ageAdd: msg.ageAdd, + } + + cacheKey := clientSessionCacheKey(c.conn.RemoteAddr(), c.config) + c.config.ClientSessionCache.Put(cacheKey, session) + return nil } diff --git a/handshake_messages.go b/handshake_messages.go index 98b7bd5..c1f86f6 100644 --- a/handshake_messages.go +++ b/handshake_messages.go @@ -288,6 +288,50 @@ func (m *clientHelloMsg) marshal() []byte { return m.raw } +// marshalWithoutBinders returns the ClientHello through the +// PreSharedKeyExtension.identities field, according to RFC 8446, Section +// 4.2.11.2. Note that m.pskBinders must be set to slices of the correct length. +func (m *clientHelloMsg) marshalWithoutBinders() []byte { + bindersLen := 2 // uint16 length prefix + for _, binder := range m.pskBinders { + bindersLen += 1 // uint8 length prefix + bindersLen += len(binder) + } + + fullMessage := m.marshal() + return fullMessage[:len(fullMessage)-bindersLen] +} + +// updateBinders updates the m.pskBinders field, if necessary updating the +// cached marshalled representation. The supplied binders must have the same +// length as the current m.pskBinders. +func (m *clientHelloMsg) updateBinders(pskBinders [][]byte) { + if len(pskBinders) != len(m.pskBinders) { + panic("tls: internal error: pskBinders length mismatch") + } + for i := range m.pskBinders { + if len(pskBinders[i]) != len(m.pskBinders[i]) { + panic("tls: internal error: pskBinders length mismatch") + } + } + m.pskBinders = pskBinders + if m.raw != nil { + lenWithoutBinders := len(m.marshalWithoutBinders()) + // TODO(filippo): replace with NewFixedBuilder once CL 148882 is imported. + b := cryptobyte.NewBuilder(m.raw[:lenWithoutBinders]) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, binder := range m.pskBinders { + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(binder) + }) + } + }) + if len(b.BytesOrPanic()) != len(m.raw) { + panic("tls: internal error: failed to update binders") + } + } +} + func (m *clientHelloMsg) unmarshal(data []byte) bool { *m = clientHelloMsg{raw: data} s := cryptobyte.String(data) diff --git a/handshake_server.go b/handshake_server.go index 3b4f8b7..f24ebf1 100644 --- a/handshake_server.go +++ b/handshake_server.go @@ -756,14 +756,7 @@ func (hs *serverHandshakeState) processCertsFromClient(certificates [][]byte) (c func (hs *serverHandshakeState) setCipherSuite(id uint16, supportedCipherSuites []uint16, version uint16) bool { for _, supported := range supportedCipherSuites { if id == supported { - var candidate *cipherSuite - - for _, s := range cipherSuites { - if s.id == id { - candidate = s - break - } - } + candidate := cipherSuiteByID(id) if candidate == nil { continue } diff --git a/handshake_server_tls13.go b/handshake_server_tls13.go index 2da0760..4daf62b 100644 --- a/handshake_server_tls13.go +++ b/handshake_server_tls13.go @@ -434,12 +434,8 @@ func (hs *serverHandshakeStateTLS13) sendServerCertificate() error { func (hs *serverHandshakeStateTLS13) sendServerFinished() error { c := hs.c - // See RFC 8446, sections 4.4.4 and 4.4. - finishedKey := hs.suite.expandLabel(c.out.trafficSecret, "finished", nil, hs.suite.hash.Size()) - verifyData := hmac.New(hs.suite.hash.New, finishedKey) - verifyData.Write(hs.transcript.Sum(nil)) finished := &finishedMsg{ - verifyData: verifyData.Sum(nil), + verifyData: hs.suite.finishedHash(c.out.trafficSecret, hs.transcript), } hs.transcript.Write(finished.marshal()) @@ -488,10 +484,8 @@ func (hs *serverHandshakeStateTLS13) readClientFinished() error { return unexpectedMessageError(finished, msg) } - finishedKey := hs.suite.expandLabel(c.in.trafficSecret, "finished", nil, hs.suite.hash.Size()) - expectedMAC := hmac.New(hs.suite.hash.New, finishedKey) - expectedMAC.Write(hs.transcript.Sum(nil)) - if !hmac.Equal(expectedMAC.Sum(nil), finished.verifyData) { + expectedMAC := hs.suite.finishedHash(c.in.trafficSecret, hs.transcript) + if !hmac.Equal(expectedMAC, finished.verifyData) { c.sendAlert(alertDecryptError) return errors.New("tls: invalid client finished hash") } diff --git a/key_schedule.go b/key_schedule.go index 0a88c96..310d92e 100644 --- a/key_schedule.go +++ b/key_schedule.go @@ -6,6 +6,7 @@ package tls import ( "crypto/elliptic" + "crypto/hmac" "errors" "golang_org/x/crypto/cryptobyte" "golang_org/x/crypto/curve25519" @@ -77,6 +78,16 @@ func (c *cipherSuiteTLS13) trafficKey(trafficSecret []byte) (key, iv []byte) { return } +// finishedHash generates the Finished verify_data or PskBinderEntry according +// to RFC 8446, Section 4.4.4. See sections 4.4 and 4.2.11.2 for the baseKey +// selection. +func (c *cipherSuiteTLS13) finishedHash(baseKey []byte, transcript hash.Hash) []byte { + finishedKey := c.expandLabel(baseKey, "finished", nil, c.hash.Size()) + verifyData := hmac.New(c.hash.New, finishedKey) + verifyData.Write(transcript.Sum(nil)) + return verifyData.Sum(nil) +} + // exportKeyingMaterial implements RFC5705 exporters for TLS 1.3 according to // RFC 8446, Section 7.5. func (c *cipherSuiteTLS13) exportKeyingMaterial(masterSecret []byte, transcript hash.Hash) func(string, []byte, int) ([]byte, error) { diff --git a/prf_test.go b/prf_test.go index f201253..ec54aac 100644 --- a/prf_test.go +++ b/prf_test.go @@ -87,20 +87,11 @@ func TestKeysFromPreMasterSecret(t *testing.T) { } } -func cipherSuiteById(id uint16) *cipherSuite { - for _, cipherSuite := range cipherSuites { - if cipherSuite.id == id { - return cipherSuite - } - } - panic("ciphersuite not found") -} - // These test vectors were generated from GnuTLS using `gnutls-cli --insecure -d 9 ` var testKeysFromTests = []testKeysFromTest{ { VersionTLS10, - cipherSuiteById(TLS_RSA_WITH_RC4_128_SHA), + cipherSuiteByID(TLS_RSA_WITH_RC4_128_SHA), "0302cac83ad4b1db3b9ab49ad05957de2a504a634a386fc600889321e1a971f57479466830ac3e6f468e87f5385fa0c5", "4ae66303755184a3917fcb44880605fcc53baa01912b22ed94473fc69cebd558", "4ae663020ec16e6bb5130be918cfcafd4d765979a3136a5d50c593446e4e44db", @@ -116,7 +107,7 @@ var testKeysFromTests = []testKeysFromTest{ }, { VersionTLS10, - cipherSuiteById(TLS_RSA_WITH_RC4_128_SHA), + cipherSuiteByID(TLS_RSA_WITH_RC4_128_SHA), "03023f7527316bc12cbcd69e4b9e8275d62c028f27e65c745cfcddc7ce01bd3570a111378b63848127f1c36e5f9e4890", "4ae66364b5ea56b20ce4e25555aed2d7e67f42788dd03f3fee4adae0459ab106", "4ae66363ab815cbf6a248b87d6b556184e945e9b97fbdf247858b0bdafacfa1c", @@ -132,7 +123,7 @@ var testKeysFromTests = []testKeysFromTest{ }, { VersionTLS10, - cipherSuiteById(TLS_RSA_WITH_RC4_128_SHA), + cipherSuiteByID(TLS_RSA_WITH_RC4_128_SHA), "832d515f1d61eebb2be56ba0ef79879efb9b527504abb386fb4310ed5d0e3b1f220d3bb6b455033a2773e6d8bdf951d278a187482b400d45deb88a5d5a6bb7d6a7a1decc04eb9ef0642876cd4a82d374d3b6ff35f0351dc5d411104de431375355addc39bfb1f6329fb163b0bc298d658338930d07d313cd980a7e3d9196cac1", "4ae663b2ee389c0de147c509d8f18f5052afc4aaf9699efe8cb05ece883d3a5e", "4ae664d503fd4cff50cfc1fb8fc606580f87b0fcdac9554ba0e01d785bdf278e", @@ -148,7 +139,7 @@ var testKeysFromTests = []testKeysFromTest{ }, { VersionSSL30, - cipherSuiteById(TLS_RSA_WITH_RC4_128_SHA), + cipherSuiteByID(TLS_RSA_WITH_RC4_128_SHA), "832d515f1d61eebb2be56ba0ef79879efb9b527504abb386fb4310ed5d0e3b1f220d3bb6b455033a2773e6d8bdf951d278a187482b400d45deb88a5d5a6bb7d6a7a1decc04eb9ef0642876cd4a82d374d3b6ff35f0351dc5d411104de431375355addc39bfb1f6329fb163b0bc298d658338930d07d313cd980a7e3d9196cac1", "4ae663b2ee389c0de147c509d8f18f5052afc4aaf9699efe8cb05ece883d3a5e", "4ae664d503fd4cff50cfc1fb8fc606580f87b0fcdac9554ba0e01d785bdf278e", From 166c58b85c36f7d848c12cff27a5c98e8eb45a32 Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Mon, 5 Nov 2018 15:59:08 -0500 Subject: [PATCH 7/8] crypto/tls: implement TLS 1.3 PSK authentication (server side) Added some assertions to testHandshake, but avoided checking the error of one of the Close() because the one that would lose the race would write the closeNotify to a connection closed on the other side which is broken on js/wasm (#28650). Moved that Close() after the chan sync to ensure it happens second. Accepting a ticket with client certificates when NoClientCert is configured is probably not a problem, and we could hide them to avoid confusing the application, but the current behavior is to skip the ticket, and I'd rather keep behavior changes to a minimum. Updates #9671 Change-Id: I93b56e44ddfe3d48c2bef52c83285ba2f46f297a Reviewed-on: https://go-review.googlesource.com/c/147445 Reviewed-by: Adam Langley --- common.go | 15 ++ handshake_client_test.go | 49 ++-- handshake_client_tls13.go | 2 +- handshake_messages.go | 126 ++++++---- handshake_messages_test.go | 22 ++ handshake_server.go | 14 +- handshake_server_test.go | 110 +++++++-- handshake_server_tls13.go | 230 +++++++++++++++++- testdata/Server-TLSv13-AES128-SHA256 | 158 ++++++------ testdata/Server-TLSv13-AES256-SHA384 | 163 +++++++------ testdata/Server-TLSv13-ALPN | 164 +++++++------ testdata/Server-TLSv13-ALPN-NoMatch | 163 +++++++------ testdata/Server-TLSv13-CHACHA20-SHA256 | 158 ++++++------ testdata/Server-TLSv13-ECDHE-ECDSA-AES | 150 ++++++------ testdata/Server-TLSv13-ExportKeyingMaterial | 163 +++++++------ testdata/Server-TLSv13-HelloRetryRequest | 188 +++++++------- testdata/Server-TLSv13-IssueTicket | 103 ++++++++ testdata/Server-TLSv13-IssueTicketPreDisable | 103 ++++++++ testdata/Server-TLSv13-P256 | 167 +++++++------ testdata/Server-TLSv13-RSA-RSAPSS | 163 +++++++------ testdata/Server-TLSv13-Resume | 66 +++++ .../Server-TLSv13-Resume-HelloRetryRequest | 106 ++++++++ testdata/Server-TLSv13-ResumeDisabled | 104 ++++++++ testdata/Server-TLSv13-X25519 | 163 +++++++------ ticket.go | 63 ++++- 25 files changed, 1959 insertions(+), 954 deletions(-) create mode 100644 testdata/Server-TLSv13-IssueTicket create mode 100644 testdata/Server-TLSv13-IssueTicketPreDisable create mode 100644 testdata/Server-TLSv13-Resume create mode 100644 testdata/Server-TLSv13-Resume-HelloRetryRequest create mode 100644 testdata/Server-TLSv13-ResumeDisabled diff --git a/common.go b/common.go index 1412e82..3f7d5fc 100644 --- a/common.go +++ b/common.go @@ -234,6 +234,17 @@ const ( RequireAndVerifyClientCert ) +// requiresClientCert returns whether the ClientAuthType requires a client +// certificate to be provided. +func requiresClientCert(c ClientAuthType) bool { + switch c { + case RequireAnyClientCert, RequireAndVerifyClientCert: + return true + default: + return false + } +} + // ClientSessionState contains the state needed by clients to resume TLS // sessions. type ClientSessionState struct { @@ -599,6 +610,10 @@ func ticketKeyFromBytes(b [32]byte) (key ticketKey) { return key } +// maxSessionTicketLifetime is the maximum allowed lifetime of a TLS 1.3 session +// ticket, and the lifetime we set for tickets we send. +const maxSessionTicketLifetime = 7 * 24 * time.Hour + // Clone returns a shallow clone of c. It is safe to clone a Config that is // being used concurrently by a TLS client or server. func (c *Config) Clone() *Config { diff --git a/handshake_client_test.go b/handshake_client_test.go index 103dfa4..29b6386 100644 --- a/handshake_client_test.go +++ b/handshake_client_test.go @@ -869,11 +869,14 @@ func TestClientKeyUpdate(t *testing.T) { runClientTestTLS13(t, test) } -func TestClientResumption(t *testing.T) { - // TODO(filippo): update to test both TLS 1.3 and 1.2 once PSK are - // supported server-side. +func TestResumption(t *testing.T) { + t.Run("TLSv12", func(t *testing.T) { testResumption(t, VersionTLS12) }) + t.Run("TLSv13", func(t *testing.T) { testResumption(t, VersionTLS13) }) +} +func testResumption(t *testing.T, version uint16) { serverConfig := &Config{ + MaxVersion: version, CipherSuites: []uint16{TLS_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA}, Certificates: testConfig.Certificates, } @@ -887,6 +890,7 @@ func TestClientResumption(t *testing.T) { rootCAs.AddCert(issuer) clientConfig := &Config{ + MaxVersion: version, CipherSuites: []uint16{TLS_RSA_WITH_RC4_128_SHA}, ClientSessionCache: NewLRUClientSessionCache(32), RootCAs: rootCAs, @@ -924,9 +928,12 @@ func TestClientResumption(t *testing.T) { testResumeState("Handshake", false) ticket := getTicket() testResumeState("Resume", true) - if !bytes.Equal(ticket, getTicket()) { + if !bytes.Equal(ticket, getTicket()) && version != VersionTLS13 { t.Fatal("first ticket doesn't match ticket after resumption") } + if bytes.Equal(ticket, getTicket()) && version == VersionTLS13 { + t.Fatal("ticket didn't change after resumption") + } key1 := randomKey() serverConfig.SetSessionTicketKeys([][32]byte{key1}) @@ -946,6 +953,7 @@ func TestClientResumption(t *testing.T) { // Reset serverConfig to ensure that calling SetSessionTicketKeys // before the serverConfig is used works. serverConfig = &Config{ + MaxVersion: version, CipherSuites: []uint16{TLS_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA}, Certificates: testConfig.Certificates, } @@ -953,9 +961,13 @@ func TestClientResumption(t *testing.T) { testResumeState("FreshConfig", true) - clientConfig.CipherSuites = []uint16{TLS_ECDHE_RSA_WITH_RC4_128_SHA} - testResumeState("DifferentCipherSuite", false) - testResumeState("DifferentCipherSuiteRecovers", true) + // In TLS 1.3, cross-cipher suite resumption is allowed as long as the KDF + // hash matches. Also, Config.CipherSuites does not apply to TLS 1.3. + if version != VersionTLS13 { + clientConfig.CipherSuites = []uint16{TLS_ECDHE_RSA_WITH_RC4_128_SHA} + testResumeState("DifferentCipherSuite", false) + testResumeState("DifferentCipherSuiteRecovers", true) + } deleteTicket() testResumeState("WithoutSessionTicket", false) @@ -966,18 +978,21 @@ func TestClientResumption(t *testing.T) { serverConfig.ClientAuth = RequireAndVerifyClientCert clientConfig.Certificates = serverConfig.Certificates testResumeState("InitialHandshake", false) - testResumeState("WithClientCertificates", true) + if version != VersionTLS13 { + // TODO(filippo): reenable when client authentication is implemented + testResumeState("WithClientCertificates", true) - // Tickets should be removed from the session cache on TLS handshake failure - farFuture := func() time.Time { return time.Unix(16725225600, 0) } - serverConfig.Time = farFuture - _, _, err = testHandshake(t, clientConfig, serverConfig) - if err == nil { - t.Fatalf("handshake did not fail after client certificate expiry") + // Tickets should be removed from the session cache on TLS handshake failure + farFuture := func() time.Time { return time.Unix(16725225600, 0) } + serverConfig.Time = farFuture + _, _, err = testHandshake(t, clientConfig, serverConfig) + if err == nil { + t.Fatalf("handshake did not fail after client certificate expiry") + } + serverConfig.Time = nil + testResumeState("AfterHandshakeFailure", false) + serverConfig.ClientAuth = NoClientCert } - serverConfig.Time = nil - testResumeState("AfterHandshakeFailure", false) - serverConfig.ClientAuth = NoClientCert clientConfig.ClientSessionCache = nil testResumeState("WithoutSessionCache", false) diff --git a/handshake_client_tls13.go b/handshake_client_tls13.go index 233b163..8c38612 100644 --- a/handshake_client_tls13.go +++ b/handshake_client_tls13.go @@ -565,7 +565,7 @@ func (c *Conn) handleNewSessionTicket(msg *newSessionTicketMsgTLS13) error { return nil } lifetime := time.Duration(msg.lifetime) * time.Second - if lifetime > 7*24*time.Hour { + if lifetime > maxSessionTicketLifetime { c.sendAlert(alertIllegalParameter) return errors.New("tls: received a session ticket with invalid lifetime") } diff --git a/handshake_messages.go b/handshake_messages.go index c1f86f6..b6001e3 100644 --- a/handshake_messages.go +++ b/handshake_messages.go @@ -30,6 +30,23 @@ func addBytesWithLength(b *cryptobyte.Builder, v []byte, n int) { })) } +// addUint64 appends a big-endian, 64-bit value to the cryptobyte.Builder. +func addUint64(b *cryptobyte.Builder, v uint64) { + b.AddUint32(uint32(v >> 32)) + b.AddUint32(uint32(v)) +} + +// readUint64 decodes a big-endian, 64-bit value into out and advances over it. +// It reports whether the read was successful. +func readUint64(s *cryptobyte.String, out *uint64) bool { + var hi, lo uint32 + if !s.ReadUint32(&hi) || !s.ReadUint32(&lo) { + return false + } + *out = uint64(hi)<<32 | uint64(lo) + return true +} + // readUint8LengthPrefixed acts like s.ReadUint8LengthPrefixed, but targets a // []byte instead of a cryptobyte.String. func readUint8LengthPrefixed(s *cryptobyte.String, out *[]byte) bool { @@ -1266,58 +1283,81 @@ func (m *certificateMsgTLS13) marshal() []byte { b.AddUint8(typeCertificate) b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { b.AddUint8(0) // certificate_request_context - b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { - for i, cert := range m.certificate.Certificate { - b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { - b.AddBytes(cert) - }) - b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { - if i > 0 { - // This library only supports OCSP and SCT for leaf certificates. - return - } - if m.ocspStapling { - b.AddUint16(extensionStatusRequest) - b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { - b.AddUint8(statusTypeOCSP) - b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { - b.AddBytes(m.certificate.OCSPStaple) - }) - }) - } - if m.scts { - b.AddUint16(extensionSCT) - b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { - b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { - for _, sct := range m.certificate.SignedCertificateTimestamps { - b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { - b.AddBytes(sct) - }) - } - }) - }) - } - }) - } - }) + + certificate := m.certificate + if !m.ocspStapling { + certificate.OCSPStaple = nil + } + if !m.scts { + certificate.SignedCertificateTimestamps = nil + } + marshalCertificate(b, certificate) }) m.raw = b.BytesOrPanic() return m.raw } +func marshalCertificate(b *cryptobyte.Builder, certificate Certificate) { + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + for i, cert := range certificate.Certificate { + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(cert) + }) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + if i > 0 { + // This library only supports OCSP and SCT for leaf certificates. + return + } + if certificate.OCSPStaple != nil { + b.AddUint16(extensionStatusRequest) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint8(statusTypeOCSP) + b.AddUint24LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(certificate.OCSPStaple) + }) + }) + } + if certificate.SignedCertificateTimestamps != nil { + b.AddUint16(extensionSCT) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, sct := range certificate.SignedCertificateTimestamps { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(sct) + }) + } + }) + }) + } + }) + } + }) +} + func (m *certificateMsgTLS13) unmarshal(data []byte) bool { *m = certificateMsgTLS13{raw: data} s := cryptobyte.String(data) - var context, certList cryptobyte.String + var context cryptobyte.String if !s.Skip(4) || // message type and uint24 length field !s.ReadUint8LengthPrefixed(&context) || !context.Empty() || - !s.ReadUint24LengthPrefixed(&certList) || + !unmarshalCertificate(&s, &m.certificate) || !s.Empty() { return false } + m.scts = m.certificate.SignedCertificateTimestamps != nil + m.ocspStapling = m.certificate.OCSPStaple != nil + + return true +} + +func unmarshalCertificate(s *cryptobyte.String, certificate *Certificate) bool { + var certList cryptobyte.String + if !s.ReadUint24LengthPrefixed(&certList) { + return false + } for !certList.Empty() { var cert []byte var extensions cryptobyte.String @@ -1325,7 +1365,7 @@ func (m *certificateMsgTLS13) unmarshal(data []byte) bool { !certList.ReadUint16LengthPrefixed(&extensions) { return false } - m.certificate.Certificate = append(m.certificate.Certificate, cert) + certificate.Certificate = append(certificate.Certificate, cert) for !extensions.Empty() { var extension uint16 var extData cryptobyte.String @@ -1333,22 +1373,20 @@ func (m *certificateMsgTLS13) unmarshal(data []byte) bool { !extensions.ReadUint16LengthPrefixed(&extData) { return false } - if len(m.certificate.Certificate) > 1 { + if len(certificate.Certificate) > 1 { // This library only supports OCSP and SCT for leaf certificates. continue } switch extension { case extensionStatusRequest: - m.ocspStapling = true var statusType uint8 if !extData.ReadUint8(&statusType) || statusType != statusTypeOCSP || - !readUint24LengthPrefixed(&extData, &m.certificate.OCSPStaple) || - len(m.certificate.OCSPStaple) == 0 { + !readUint24LengthPrefixed(&extData, &certificate.OCSPStaple) || + len(certificate.OCSPStaple) == 0 { return false } case extensionSCT: - m.scts = true var sctList cryptobyte.String if !extData.ReadUint16LengthPrefixed(&sctList) || sctList.Empty() { return false @@ -1359,8 +1397,8 @@ func (m *certificateMsgTLS13) unmarshal(data []byte) bool { len(sct) == 0 { return false } - m.certificate.SignedCertificateTimestamps = append( - m.certificate.SignedCertificateTimestamps, sct) + certificate.SignedCertificateTimestamps = append( + certificate.SignedCertificateTimestamps, sct) } default: // Ignore unknown extensions. diff --git a/handshake_messages_test.go b/handshake_messages_test.go index ab9e1f5..8a73523 100644 --- a/handshake_messages_test.go +++ b/handshake_messages_test.go @@ -29,6 +29,7 @@ var tests = []interface{}{ &nextProtoMsg{}, &newSessionTicketMsg{}, &sessionState{}, + &sessionStateTLS13{}, &encryptedExtensionsMsg{}, &endOfEarlyDataMsg{}, &keyUpdateMsg{}, @@ -332,6 +333,27 @@ func (*sessionState) Generate(rand *rand.Rand, size int) reflect.Value { return reflect.ValueOf(s) } +func (*sessionStateTLS13) Generate(rand *rand.Rand, size int) reflect.Value { + s := &sessionStateTLS13{} + s.cipherSuite = uint16(rand.Intn(10000)) + s.resumptionSecret = randomBytes(rand.Intn(100)+1, rand) + s.createdAt = uint64(rand.Int63()) + for i := 0; i < rand.Intn(2)+1; i++ { + s.certificate.Certificate = append( + s.certificate.Certificate, randomBytes(rand.Intn(500)+1, rand)) + } + if rand.Intn(10) > 5 { + s.certificate.OCSPStaple = randomBytes(rand.Intn(100)+1, rand) + } + if rand.Intn(10) > 5 { + for i := 0; i < rand.Intn(2)+1; i++ { + s.certificate.SignedCertificateTimestamps = append( + s.certificate.SignedCertificateTimestamps, randomBytes(rand.Intn(500)+1, rand)) + } + } + return reflect.ValueOf(s) +} + func (*endOfEarlyDataMsg) Generate(rand *rand.Rand, size int) reflect.Value { m := &endOfEarlyDataMsg{} return reflect.ValueOf(m) diff --git a/handshake_server.go b/handshake_server.go index f24ebf1..56ec3b6 100644 --- a/handshake_server.go +++ b/handshake_server.go @@ -323,9 +323,13 @@ func (hs *serverHandshakeState) checkForResumption() bool { return false } - var ok bool - var sessionTicket = append([]uint8{}, hs.clientHello.sessionTicket...) - if hs.sessionState, ok = c.decryptTicket(sessionTicket); !ok { + plaintext, usedOldKey := c.decryptTicket(hs.clientHello.sessionTicket) + if plaintext == nil { + return false + } + hs.sessionState = &sessionState{usedOldKey: usedOldKey} + ok := hs.sessionState.unmarshal(plaintext) + if !ok { return false } @@ -352,7 +356,7 @@ func (hs *serverHandshakeState) checkForResumption() bool { } sessionHasClientCerts := len(hs.sessionState.certificates) != 0 - needClientCerts := c.config.ClientAuth == RequireAnyClientCert || c.config.ClientAuth == RequireAndVerifyClientCert + needClientCerts := requiresClientCert(c.config.ClientAuth) if needClientCerts && !sessionHasClientCerts { return false } @@ -657,7 +661,7 @@ func (hs *serverHandshakeState) sendSessionTicket() error { masterSecret: hs.masterSecret, certificates: hs.certsFromClient, } - m.ticket, err = c.encryptTicket(&state) + m.ticket, err = c.encryptTicket(state.marshal()) if err != nil { return err } diff --git a/handshake_server_test.go b/handshake_server_test.go index eb6bd2f..c8e6adc 100644 --- a/handshake_server_test.go +++ b/handshake_server_test.go @@ -16,6 +16,7 @@ import ( "errors" "fmt" "io" + "io/ioutil" "math/big" "net" "os" @@ -348,21 +349,41 @@ func TestClose(t *testing.T) { func testHandshake(t *testing.T, clientConfig, serverConfig *Config) (serverState, clientState ConnectionState, err error) { c, s := localPipe(t) - done := make(chan bool) + errChan := make(chan error) go func() { cli := Client(c, clientConfig) - cli.Handshake() + err := cli.Handshake() + if err != nil { + errChan <- fmt.Errorf("client: %v", err) + c.Close() + return + } + defer cli.Close() clientState = cli.ConnectionState() - c.Close() - done <- true + buf, err := ioutil.ReadAll(cli) + if err != nil { + t.Errorf("failed to call cli.Read: %v", err) + } + if got := string(buf); got != opensslSentinel { + t.Errorf("read %q from TLS connection, but expected %q", got, opensslSentinel) + } + errChan <- nil }() server := Server(s, serverConfig) err = server.Handshake() if err == nil { serverState = server.ConnectionState() + if _, err := io.WriteString(server, opensslSentinel); err != nil { + t.Errorf("failed to call server.Write: %v", err) + } + if err := server.Close(); err != nil { + t.Errorf("failed to call server.Close: %v", err) + } + err = <-errChan + } else { + s.Close() + <-errChan } - s.Close() - <-done return } @@ -1053,49 +1074,83 @@ func TestCipherSuiteCertPreferenceECDSA(t *testing.T) { runServerTestTLS12(t, test) } -func TestResumption(t *testing.T) { +func TestServerResumption(t *testing.T) { sessionFilePath := tempFile("") defer os.Remove(sessionFilePath) - test := &serverTest{ + testIssue := &serverTest{ name: "IssueTicket", command: []string{"openssl", "s_client", "-cipher", "AES128-SHA", "-sess_out", sessionFilePath}, wait: true, } - runServerTestTLS12(t, test) - - test = &serverTest{ + testResume := &serverTest{ name: "Resume", command: []string{"openssl", "s_client", "-cipher", "AES128-SHA", "-sess_in", sessionFilePath}, + validate: func(state ConnectionState) error { + if !state.DidResume { + return errors.New("did not resume") + } + return nil + }, } - runServerTestTLS12(t, test) + + runServerTestTLS12(t, testIssue) + runServerTestTLS12(t, testResume) + + runServerTestTLS13(t, testIssue) + runServerTestTLS13(t, testResume) + + config := testConfig.Clone() + config.CurvePreferences = []CurveID{CurveP256} + + testResumeHRR := &serverTest{ + name: "Resume-HelloRetryRequest", + command: []string{"openssl", "s_client", "-curves", "X25519:P-256", "-sess_in", sessionFilePath}, + config: config, + validate: func(state ConnectionState) error { + if !state.DidResume { + return errors.New("did not resume") + } + return nil + }, + } + + runServerTestTLS13(t, testResumeHRR) } -func TestResumptionDisabled(t *testing.T) { +func TestServerResumptionDisabled(t *testing.T) { sessionFilePath := tempFile("") defer os.Remove(sessionFilePath) config := testConfig.Clone() - test := &serverTest{ + testIssue := &serverTest{ name: "IssueTicketPreDisable", command: []string{"openssl", "s_client", "-cipher", "AES128-SHA", "-sess_out", sessionFilePath}, config: config, wait: true, } - runServerTestTLS12(t, test) - - config.SessionTicketsDisabled = true - - test = &serverTest{ + testResume := &serverTest{ name: "ResumeDisabled", command: []string{"openssl", "s_client", "-cipher", "AES128-SHA", "-sess_in", sessionFilePath}, config: config, + validate: func(state ConnectionState) error { + if state.DidResume { + return errors.New("resumed with SessionTicketsDisabled") + } + return nil + }, } - runServerTestTLS12(t, test) - // One needs to manually confirm that the handshake in the golden data - // file for ResumeDisabled does not include a resumption handshake. + config.SessionTicketsDisabled = false + runServerTestTLS12(t, testIssue) + config.SessionTicketsDisabled = true + runServerTestTLS12(t, testResume) + + config.SessionTicketsDisabled = false + runServerTestTLS13(t, testIssue) + config.SessionTicketsDisabled = true + runServerTestTLS13(t, testResume) } func TestFallbackSCSV(t *testing.T) { @@ -1593,3 +1648,14 @@ func TestCloseServerConnectionOnIdleClient(t *testing.T) { t.Errorf("Error expected, but no error returned") } } + +func TestCloneHash(t *testing.T) { + h1 := crypto.SHA256.New() + h1.Write([]byte("test")) + s1 := h1.Sum(nil) + h2 := cloneHash(h1, crypto.SHA256) + s2 := h2.Sum(nil) + if !bytes.Equal(s1, s2) { + t.Error("cloned hash generated a different sum") + } +} diff --git a/handshake_server_tls13.go b/handshake_server_tls13.go index 4daf62b..512ca07 100644 --- a/handshake_server_tls13.go +++ b/handshake_server_tls13.go @@ -14,8 +14,14 @@ import ( "hash" "io" "sync/atomic" + "time" ) +// maxClientPSKIdentities is the number of client PSK identities the server will +// attempt to validate. It will ignore the rest not to let cheap ClientHello +// messages cause too much work in session ticket decryption attempts. +const maxClientPSKIdentities = 5 + type serverHandshakeStateTLS13 struct { c *Conn clientHello *clientHelloMsg @@ -24,9 +30,12 @@ type serverHandshakeStateTLS13 struct { suite *cipherSuiteTLS13 cert *Certificate sigAlg SignatureScheme + earlySecret []byte + sharedKey []byte handshakeSecret []byte trafficSecret []byte // client_application_traffic_secret_0 transcript hash.Hash + clientFinished []byte } func (hs *serverHandshakeStateTLS13) handshake() error { @@ -36,16 +45,33 @@ func (hs *serverHandshakeStateTLS13) handshake() error { if err := hs.processClientHello(); err != nil { return err } + usePSK, err := hs.checkForResumption() + if err != nil { + return err + } + if !usePSK { + if err := hs.pickCertificate(); err != nil { + return err + } + } c.buffering = true if err := hs.sendServerParameters(); err != nil { return err } - if err := hs.sendServerCertificate(); err != nil { - return err + if !usePSK { + if err := hs.sendServerCertificate(); err != nil { + return err + } } if err := hs.sendServerFinished(); err != nil { return err } + // Note that at this point we could start sending application data without + // waiting for the client's second flight, but the application might not + // expect the lack of replay protection of the ClientHello parameters. + if err := hs.sendSessionTickets(); err != nil { + return err + } if _, err := c.flush(); err != nil { return err } @@ -163,14 +189,138 @@ GroupSelection: return err } hs.hello.serverShare = keyShare{group: selectedGroup, data: params.PublicKey()} - sharedKey := params.SharedKey(clientKeyShare.data) - if sharedKey == nil { + hs.sharedKey = params.SharedKey(clientKeyShare.data) + if hs.sharedKey == nil { c.sendAlert(alertIllegalParameter) return errors.New("tls: invalid client key share") } - earlySecret := hs.suite.extract(nil, nil) - hs.handshakeSecret = hs.suite.extract(sharedKey, - hs.suite.deriveSecret(earlySecret, "derived", nil)) + + return nil +} + +func (hs *serverHandshakeStateTLS13) checkForResumption() (usePSK bool, err error) { + c := hs.c + + if c.config.SessionTicketsDisabled { + return false, nil + } + + modeOK := false + for _, mode := range hs.clientHello.pskModes { + if mode == pskModeDHE { + modeOK = true + break + } + } + if !modeOK { + return false, nil + } + + if len(hs.clientHello.pskIdentities) != len(hs.clientHello.pskBinders) { + c.sendAlert(alertIllegalParameter) + return false, errors.New("tls: invalid or missing PSK binders") + } + if len(hs.clientHello.pskIdentities) == 0 { + return false, nil + } + + for i, identity := range hs.clientHello.pskIdentities { + if i >= maxClientPSKIdentities { + break + } + + plaintext, _ := c.decryptTicket(identity.label) + if plaintext == nil { + continue + } + sessionState := new(sessionStateTLS13) + if ok := sessionState.unmarshal(plaintext); !ok { + continue + } + + createdAt := time.Unix(int64(sessionState.createdAt), 0) + if c.config.time().Sub(createdAt) > maxSessionTicketLifetime { + continue + } + + // We don't check the obfuscated ticket age because it's affected by + // clock skew and it's only a freshness signal useful for shrinking the + // window for replay attacks, which don't affect us as we don't do 0-RTT. + + pskSuite := cipherSuiteTLS13ByID(sessionState.cipherSuite) + if pskSuite == nil || pskSuite.hash != hs.suite.hash { + continue + } + + // PSK connections don't re-establish client certificates, but carry + // them over in the session ticket. Ensure the presence of client certs + // in the ticket is consistent with the configured requirements. + sessionHasClientCerts := len(sessionState.certificate.Certificate) != 0 + needClientCerts := requiresClientCert(c.config.ClientAuth) + if needClientCerts && !sessionHasClientCerts { + continue + } + if sessionHasClientCerts && c.config.ClientAuth == NoClientCert { + continue + } + + psk := hs.suite.expandLabel(sessionState.resumptionSecret, "resumption", + nil, hs.suite.hash.Size()) + hs.earlySecret = hs.suite.extract(psk, nil) + binderKey := hs.suite.deriveSecret(hs.earlySecret, resumptionBinderLabel, nil) + // Clone the transcript in case a HelloRetryRequest was recorded. + transcript := cloneHash(hs.transcript, hs.suite.hash) + if transcript == nil { + c.sendAlert(alertInternalError) + return false, errors.New("tls: internal error: failed to clone hash") + } + transcript.Write(hs.clientHello.marshalWithoutBinders()) + pskBinder := hs.suite.finishedHash(binderKey, transcript) + if !hmac.Equal(hs.clientHello.pskBinders[i], pskBinder) { + c.sendAlert(alertDecryptError) + return false, errors.New("tls: invalid PSK binder") + } + + hs.hello.selectedIdentityPresent = true + hs.hello.selectedIdentity = uint16(i) + c.didResume = true + // TODO(filippo): surface sessionState.certificate. + return true, nil + } + + return false, nil +} + +// cloneHash uses the encoding.BinaryMarshaler and encoding.BinaryUnmarshaler +// interfaces implemented by standard library hashes to clone the state of in +// to a new instance of h. It returns nil if the operation fails. +func cloneHash(in hash.Hash, h crypto.Hash) hash.Hash { + // Recreate the interface to avoid importing encoding. + type binaryMarshaler interface { + MarshalBinary() (data []byte, err error) + UnmarshalBinary(data []byte) error + } + marshaler, ok := in.(binaryMarshaler) + if !ok { + return nil + } + state, err := marshaler.MarshalBinary() + if err != nil { + return nil + } + out := h.New() + unmarshaler, ok := out.(binaryMarshaler) + if !ok { + return nil + } + if err := unmarshaler.UnmarshalBinary(state); err != nil { + return nil + } + return out +} + +func (hs *serverHandshakeStateTLS13) pickCertificate() error { + c := hs.c // This implements a very simplistic certificate selection strategy for now: // getCertificate delegates to the application Config.GetCertificate, or @@ -350,6 +500,13 @@ func (hs *serverHandshakeStateTLS13) sendServerParameters() error { return err } + earlySecret := hs.earlySecret + if earlySecret == nil { + earlySecret = hs.suite.extract(nil, nil) + } + hs.handshakeSecret = hs.suite.extract(hs.sharedKey, + hs.suite.deriveSecret(earlySecret, "derived", nil)) + clientSecret := hs.suite.deriveSecret(hs.handshakeSecret, clientHandshakeTrafficLabel, hs.transcript) c.in.setTrafficSecret(hs.suite, clientSecret) @@ -467,6 +624,60 @@ func (hs *serverHandshakeStateTLS13) sendServerFinished() error { c.ekm = hs.suite.exportKeyingMaterial(masterSecret, hs.transcript) + // Precompute the expected client flight for the transcript. + hs.clientFinished = hs.suite.finishedHash(c.in.trafficSecret, hs.transcript) + finishedMsg := &finishedMsg{ + verifyData: hs.clientFinished, + } + hs.transcript.Write(finishedMsg.marshal()) + + if hs.shouldSendSessionTickets() { + c.resumptionSecret = hs.suite.deriveSecret(masterSecret, + resumptionLabel, hs.transcript) + } + + return nil +} + +func (hs *serverHandshakeStateTLS13) shouldSendSessionTickets() bool { + if hs.c.config.SessionTicketsDisabled { + return false + } + + // Don't send tickets the client wouldn't use. See RFC 8446, Section 4.2.9. + for _, pskMode := range hs.clientHello.pskModes { + if pskMode == pskModeDHE { + return true + } + } + return false +} + +func (hs *serverHandshakeStateTLS13) sendSessionTickets() error { + c := hs.c + + if !hs.shouldSendSessionTickets() { + return nil + } + + m := new(newSessionTicketMsgTLS13) + + var err error + state := sessionStateTLS13{ + cipherSuite: hs.suite.id, + createdAt: uint64(c.config.time().Unix()), + resumptionSecret: c.resumptionSecret, + } + m.label, err = c.encryptTicket(state.marshal()) + if err != nil { + return err + } + m.lifetime = uint32(maxSessionTicketLifetime / time.Second) + + if _, err := c.writeRecord(recordTypeHandshake, m.marshal()); err != nil { + return err + } + return nil } @@ -484,14 +695,11 @@ func (hs *serverHandshakeStateTLS13) readClientFinished() error { return unexpectedMessageError(finished, msg) } - expectedMAC := hs.suite.finishedHash(c.in.trafficSecret, hs.transcript) - if !hmac.Equal(expectedMAC, finished.verifyData) { + if !hmac.Equal(hs.clientFinished, finished.verifyData) { c.sendAlert(alertDecryptError) return errors.New("tls: invalid client finished hash") } - hs.transcript.Write(finished.marshal()) - c.in.setTrafficSecret(hs.suite, hs.trafficSecret) return nil diff --git a/testdata/Server-TLSv13-AES128-SHA256 b/testdata/Server-TLSv13-AES128-SHA256 index fcc1a49..9e85403 100644 --- a/testdata/Server-TLSv13-AES128-SHA256 +++ b/testdata/Server-TLSv13-AES128-SHA256 @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 dc 01 00 00 d8 03 03 f7 9c d1 5f 55 |.............._U| -00000010 eb 97 fd e1 e6 95 50 97 d0 c6 ad ca e0 08 a0 f5 |......P.........| -00000020 ae 38 9e 60 28 e9 dc 06 3c 54 c5 20 46 14 c7 70 |.8.`(....L.. r...| +00000030 ad d2 b6 e8 86 d8 34 45 42 44 b7 36 50 9b 64 36 |......4EBD.6P.d6| +00000040 de 03 b0 e5 99 8b f9 5a 67 5b f6 72 00 04 13 01 |.......Zg[.r....| 00000050 00 ff 01 00 00 8b 00 00 00 0e 00 0c 00 00 09 31 |...............1| 00000060 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........| 00000070 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................| @@ -11,80 +11,90 @@ 00000090 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................| 000000a0 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 |...........+....| 000000b0 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 |..-.....3.&.$...| -000000c0 20 c3 51 8d 67 9c 81 e9 70 8e 8c 4f 85 79 7f ad | .Q.g...p..O.y..| -000000d0 a9 63 8d 2a 48 84 a5 05 03 58 c7 c0 0b ab 9f 7c |.c.*H....X.....|| -000000e0 1d |.| +000000c0 20 52 35 32 79 0e bf 01 91 5a b1 be 9b ff bf f4 | R52y....Z......| +000000d0 72 13 1a 3d a6 a8 15 9f ad c3 a9 b6 32 79 84 32 |r..=........2y.2| +000000e0 71 |q| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 46 14 c7 70 |........... F..p| -00000030 69 0d f2 97 27 19 5e 26 3a 1a 3a 70 ec bd 5b 98 |i...'.^&:.:p..[.| -00000040 37 15 49 09 f9 6a e5 d9 24 a7 df 49 13 01 00 00 |7.I..j..$..I....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 72 a7 88 94 |........... r...| +00000030 ad d2 b6 e8 86 d8 34 45 42 44 b7 36 50 9b 64 36 |......4EBD.6P.d6| +00000040 de 03 b0 e5 99 8b f9 5a 67 5b f6 72 13 01 00 00 |.......Zg[.r....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| 00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| -00000080 03 03 00 01 01 17 03 03 00 17 65 99 0a bb fc 0a |..........e.....| -00000090 a1 c2 2d 9c 7f 2e 0f 8d 50 5b 17 d3 66 6b 08 d1 |..-.....P[..fk..| -000000a0 cd 17 03 03 02 6d e6 e8 30 95 96 f8 18 a4 0e a9 |.....m..0.......| -000000b0 18 eb 1a 61 d4 57 c4 69 5c fa bf 26 cb d3 6d e7 |...a.W.i\..&..m.| -000000c0 d9 cd b7 d1 a2 46 c2 2d b2 83 f0 02 30 51 73 ac |.....F.-....0Qs.| -000000d0 8c 47 b3 5a b0 ae 13 7f ad a0 15 da 48 96 da 84 |.G.Z........H...| -000000e0 69 e3 a4 8a 71 33 63 1b 6d 42 6d 57 f4 9c 46 fb |i...q3c.mBmW..F.| -000000f0 c0 4a ad 77 6b 99 81 0c 2a 2d a2 d0 98 89 7b 8c |.J.wk...*-....{.| -00000100 ee 56 a4 e0 94 1a 83 07 5f 64 b2 7a 11 77 98 df |.V......_d.z.w..| -00000110 32 85 14 19 5b 97 4e 47 48 7c 6d bf f8 34 eb d4 |2...[.NGH|m..4..| -00000120 38 90 0e 78 df f4 94 49 11 5e 7f d3 65 d3 36 e8 |8..x...I.^..e.6.| -00000130 26 bc a1 ba 28 c8 2e 51 86 77 ea f0 91 4b 7e 31 |&...(..Q.w...K~1| -00000140 9c 42 63 f9 17 7f b4 6d 68 69 76 a2 3c 7f af 01 |.Bc....mhiv.<...| -00000150 d6 e2 72 c3 c9 2a d9 b9 e4 a1 e9 6b 05 07 7f d3 |..r..*.....k....| -00000160 e3 55 d5 9e df 5e 02 ad 3f 84 8f 17 47 f8 c1 6f |.U...^..?...G..o| -00000170 3a 98 63 f7 5f a6 3c a9 79 31 74 3d 99 c2 6c 91 |:.c._.<.y1t=..l.| -00000180 3f 72 5d 96 d4 55 de 46 44 44 d9 99 6f ef d4 96 |?r]..U.FDD..o...| -00000190 f7 a9 e1 2b fc d3 e7 0a a2 01 36 50 b6 8b 29 97 |...+......6P..).| -000001a0 4e 5b 7f f0 20 82 79 3e ea e3 f1 df 40 c5 02 66 |N[.. .y>....@..f| -000001b0 ba f9 fc c1 cf 08 0a ef 18 16 11 4a 78 9b 94 82 |...........Jx...| -000001c0 07 e1 a7 45 b4 7d 47 f9 ae 4b d1 86 d4 86 10 b3 |...E.}G..K......| -000001d0 7e 18 23 12 2f a0 5b 89 fb 82 0d 44 2b cb 4a 05 |~.#./.[....D+.J.| -000001e0 61 f6 9b 66 41 d2 37 9c 3c 05 4e 84 6d 67 65 6f |a..fA.7.<.N.mgeo| -000001f0 0e 0e 97 5c 92 19 f1 b8 14 08 f2 0e a9 a6 93 1e |...\............| -00000200 c5 8c a6 e2 da f1 fe e2 87 67 1b 88 c8 50 73 49 |.........g...PsI| -00000210 2b 27 7a 86 24 d7 55 03 44 a3 45 13 b8 e9 d2 62 |+'z.$.U.D.E....b| -00000220 a5 27 7c 95 31 6d cf aa a1 21 57 c5 1a 7e 4e 63 |.'|.1m...!W..~Nc| -00000230 ad 94 78 7a 42 61 16 19 9c c4 39 de a4 78 71 c3 |..xzBa....9..xq.| -00000240 00 e8 01 4e 1a 84 8b 70 83 cc 09 12 1f 31 18 80 |...N...p.....1..| -00000250 70 92 4e 7e 77 4a d9 05 92 44 e2 03 8e 8e 9b 3c |p.N~wJ...D.....<| -00000260 25 d3 a9 a4 6d 42 06 35 bd 5c 7b e6 b2 99 3f 8f |%...mB.5.\{...?.| -00000270 ba 53 3c e5 45 41 17 19 0e 74 3b 9b 00 93 bb a1 |.S<.EA...t;.....| -00000280 b6 a6 08 a9 58 7b b1 f2 4b 03 c3 d8 2e a4 79 18 |....X{..K.....y.| -00000290 08 8f 1e 10 8d 72 04 76 a9 18 6c 11 8f 19 87 e2 |.....r.v..l.....| -000002a0 6f a6 b1 46 b7 0c 75 e7 a4 87 c1 c5 b4 93 82 85 |o..F..u.........| -000002b0 99 76 41 57 d3 ca 8d 7e 4c e5 83 b0 e7 dd 9e 61 |.vAW...~L......a| -000002c0 11 3c 21 f6 c5 1a 91 25 d5 20 5d 20 55 74 bb 04 |.X| -00000380 b2 05 25 a3 54 a6 1f b8 84 02 3c e4 e0 18 db b9 |..%.T.....<.....| -00000390 1f 35 26 b5 98 68 bd 3e 0b 7c 8c da 8b a8 fe 95 |.5&..h.>.|......| -000003a0 59 39 0c 78 9a c4 d4 21 6b fe 35 c5 1b a9 47 5d |Y9.x...!k.5...G]| -000003b0 50 17 03 03 00 35 ce 61 ce fa 4a ed f7 a7 b1 09 |P....5.a..J.....| -000003c0 f4 ca 2b 94 9d a6 70 39 4a eb b1 e3 63 9f d7 85 |..+...p9J...c...| -000003d0 cc dc 6a 0b 30 1f d8 fa 12 4b ef eb 25 1f e8 1d |..j.0....K..%...| -000003e0 85 e3 f2 04 52 17 ec 78 ed b2 1b |....R..x...| +00000080 03 03 00 01 01 17 03 03 00 17 2a 27 a8 a8 aa f7 |..........*'....| +00000090 7f c4 74 12 f2 f5 b3 46 e3 fc 9f c6 8e 4d 81 4c |..t....F.....M.L| +000000a0 f2 17 03 03 02 6d 4c ad 3d 6f 2b c3 22 fc e0 3f |.....mL.=o+."..?| +000000b0 74 c2 f7 20 1a 37 ff 42 3e 5c c7 7e 0a 27 48 88 |t.. .7.B>\.~.'H.| +000000c0 23 77 d3 e9 96 d0 6c 44 67 e0 13 03 06 e3 f8 70 |#w....lDg......p| +000000d0 c0 e1 56 8f a3 18 58 8a d0 a0 f1 96 0a 4b 47 f8 |..V...X......KG.| +000000e0 a0 51 06 82 03 09 e8 82 e7 c1 91 5a fb 2e a4 a7 |.Q.........Z....| +000000f0 34 19 d8 c1 86 0d 56 e9 74 f1 28 7a 7e bf 50 30 |4.....V.t.(z~.P0| +00000100 e1 29 43 fa d9 67 6f d1 94 4c 7f 06 b9 b7 5d 6c |.)C..go..L....]l| +00000110 f1 a4 dc 48 53 de 7e d6 c2 8a 32 a3 78 94 2d 55 |...HS.~...2.x.-U| +00000120 76 0d 3c b8 93 76 98 70 36 c2 2e a2 b3 8c ec 32 |v.<..v.p6......2| +00000130 43 50 06 f8 76 28 19 3b a3 51 64 26 24 fa 97 43 |CP..v(.;.Qd&$..C| +00000140 65 12 aa 2f 55 c3 30 33 9a 88 dc 4c 86 e5 13 aa |e../U.03...L....| +00000150 4b 4d 85 e6 67 0c 87 61 26 cd 1b 7b 80 67 87 60 |KM..g..a&..{.g.`| +00000160 00 0d 7a eb 9a e4 d2 a6 72 b5 66 f4 5b 9c 2f 42 |..z.....r.f.[./B| +00000170 c1 4b d3 cf 9f e7 be bf a4 12 57 d4 15 83 ce 61 |.K........W....a| +00000180 c0 29 71 ed d5 c3 e3 68 a0 c7 02 ed 94 d7 1f b2 |.)q....h........| +00000190 11 c1 38 67 a6 42 d2 23 ae b8 16 ed 69 92 91 57 |..8g.B.#....i..W| +000001a0 ca b6 fd 93 8f 32 ab 2d 8b 74 f8 b0 bb 5a a0 16 |.....2.-.t...Z..| +000001b0 72 92 6e 9e 10 46 3a 7d 2f 55 de 0c d4 9d b6 d0 |r.n..F:}/U......| +000001c0 e1 f6 2d 10 de 97 c1 28 c8 d4 63 4a 5b f9 08 c7 |..-....(..cJ[...| +000001d0 8b 28 65 0b 07 e2 62 82 09 3e d2 dd 82 a6 72 79 |.(e...b..>....ry| +000001e0 1d 59 ef 58 87 5a b6 b1 38 20 3c 4c 55 c0 9d fb |.Y.X.Z..8 3.$oe7@..A_| +000003e0 43 3a dd 65 3d a7 b4 6c bf 21 f4 17 03 03 00 93 |C:.e=..l.!......| +000003f0 1a a6 3b b4 be dd c0 64 5f ae 2d 05 70 3b 5e fc |..;....d_.-.p;^.| +00000400 83 e0 ad 5b d0 b3 32 bc f9 98 b2 f5 9f 16 14 52 |...[..2........R| +00000410 37 2c 72 90 c1 be 97 49 a3 4d 10 97 0e d0 ec ff |7,r....I.M......| +00000420 98 50 87 90 ba f2 f0 81 08 14 ad f6 f9 3b d0 b8 |.P...........;..| +00000430 f8 c2 62 96 d1 4b 4f 5a 96 43 9f b6 96 6b 59 b8 |..b..KOZ.C...kY.| +00000440 f5 cc cf bc 79 1a a6 6e c6 7d 06 10 8f a0 21 39 |....y..n.}....!9| +00000450 67 5f 36 37 19 fa 0f 56 00 36 16 10 a2 80 9f 01 |g_67...V.6......| +00000460 0a 68 2d 50 a1 fc 67 c5 00 24 36 54 c2 5a 93 a4 |.h-P..g..$6T.Z..| +00000470 0a 6c cd aa 3f 22 bf ef f4 80 32 6a 14 e1 1e 6b |.l..?"....2j...k| +00000480 8a 38 40 |.8@| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 35 ad 1b 33 af 8e |..........5..3..| -00000010 ab 81 7c f3 9f 2b 76 19 d8 37 9f ef ef b7 76 33 |..|..+v..7....v3| -00000020 1b a9 05 4d 2b 79 d7 ae f7 87 c9 1f c3 4f 8e 50 |...M+y.......O.P| -00000030 02 5b 34 b0 b3 4b f7 ce bf 4c 3c b0 db 31 28 ab |.[4..K...L<..1(.| +00000000 14 03 03 00 01 01 17 03 03 00 35 3c 0b 73 34 15 |..........5<.s4.| +00000010 e0 fc da 7f 3a 12 a0 50 95 09 0c ec 6a d5 7b 55 |....:..P....j.{U| +00000020 76 0f 7a 8e 25 e4 d2 b9 5f 5a 79 95 a5 a4 c6 9d |v.z.%..._Zy.....| +00000030 eb 0a ad 13 d1 97 a5 bd c4 d0 1e ce 59 59 04 16 |............YY..| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e c7 45 aa 04 3f d4 29 33 fd 40 17 |......E..?.)3.@.| -00000010 c3 60 4d 05 54 f7 f0 68 82 19 dd 00 97 1c 93 e1 |.`M.T..h........| -00000020 01 19 33 17 03 03 00 13 50 d4 21 09 db 6d ce f8 |..3.....P.!..m..| -00000030 d0 ab 2d ba e7 c0 b2 7e 5b 62 e0 |..-....~[b.| +00000000 17 03 03 00 1e 9a 92 bf 83 9f 0b 36 66 2f 8e d5 |...........6f/..| +00000010 69 74 a7 a2 20 bb b2 d5 ac e8 99 b1 e6 df 4d 03 |it.. .........M.| +00000020 3e 9e 9c 17 03 03 00 13 7e 0c 85 34 9e 48 48 4a |>.......~..4.HHJ| +00000030 ce fa 96 dd 7b 7c 11 38 20 8d 33 |....{|.8 .3| diff --git a/testdata/Server-TLSv13-AES256-SHA384 b/testdata/Server-TLSv13-AES256-SHA384 index d7fa998..60aa82d 100644 --- a/testdata/Server-TLSv13-AES256-SHA384 +++ b/testdata/Server-TLSv13-AES256-SHA384 @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 dc 01 00 00 d8 03 03 f2 41 21 15 42 |............A!.B| -00000010 77 2a a0 81 3d 0e f8 66 c0 9d 10 e6 0d b2 ea 15 |w*..=..f........| -00000020 ad 7b 23 a4 63 a9 8e 06 fd a5 fb 20 38 22 f7 e8 |.{#.c...... 8"..| -00000030 9d 36 66 18 6a 38 41 49 0c 42 9d 56 11 3d 74 cb |.6f.j8AI.B.V.=t.| -00000040 9b 55 93 bb 68 4e 4d de a9 96 fc 45 00 04 13 02 |.U..hNM....E....| +00000000 16 03 01 00 dc 01 00 00 d8 03 03 70 b7 07 12 16 |...........p....| +00000010 50 d7 b9 c9 5f 02 47 2d ff 93 a7 2f e8 51 dc a0 |P..._.G-.../.Q..| +00000020 8f 0d c8 80 38 c7 af 7e da bb ed 20 67 73 58 d7 |....8..~... gsX.| +00000030 11 8b c6 0d 72 86 e0 08 3e 2d d9 b9 16 9f 85 6e |....r...>-.....n| +00000040 3c 87 fd 87 c3 95 f6 4c 76 21 50 af 00 04 13 02 |<......Lv!P.....| 00000050 00 ff 01 00 00 8b 00 00 00 0e 00 0c 00 00 09 31 |...............1| 00000060 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........| 00000070 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................| @@ -11,82 +11,93 @@ 00000090 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................| 000000a0 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 |...........+....| 000000b0 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 |..-.....3.&.$...| -000000c0 20 97 44 9d 4b c2 e5 38 dd 18 d5 79 ac 7e 65 b7 | .D.K..8...y.~e.| -000000d0 e9 0e 89 ff f8 ab 81 81 ad 7f 9a c3 59 12 5a 55 |............Y.ZU| -000000e0 4e |N| +000000c0 20 f4 08 51 f6 69 b7 d6 a9 3e 18 a7 ee c0 30 f3 | ..Q.i...>....0.| +000000d0 13 63 52 40 30 7c 79 6c 24 03 c9 89 25 bd a4 5f |.cR@0|yl$...%.._| +000000e0 64 |d| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 38 22 f7 e8 |........... 8"..| -00000030 9d 36 66 18 6a 38 41 49 0c 42 9d 56 11 3d 74 cb |.6f.j8AI.B.V.=t.| -00000040 9b 55 93 bb 68 4e 4d de a9 96 fc 45 13 02 00 00 |.U..hNM....E....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 67 73 58 d7 |........... gsX.| +00000030 11 8b c6 0d 72 86 e0 08 3e 2d d9 b9 16 9f 85 6e |....r...>-.....n| +00000040 3c 87 fd 87 c3 95 f6 4c 76 21 50 af 13 02 00 00 |<......Lv!P.....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| 00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| -00000080 03 03 00 01 01 17 03 03 00 17 c8 4d 76 95 99 66 |...........Mv..f| -00000090 62 83 71 d0 1f 1a 84 b9 11 37 57 e3 49 cc fd d4 |b.q......7W.I...| -000000a0 c9 17 03 03 02 6d 94 79 d5 d0 c7 a0 74 d4 96 53 |.....m.y....t..S| -000000b0 b2 d7 c0 a6 95 2a c9 ba d3 85 16 98 66 4b 6d f8 |.....*......fKm.| -000000c0 b6 c7 6d 2f 48 71 1d bc 12 6b 84 4a 29 89 7f 4d |..m/Hq...k.J)..M| -000000d0 39 89 55 8d 26 6d 68 e8 62 38 0c a2 1f 2b 53 fe |9.U.&mh.b8...+S.| -000000e0 0b 9d c0 8c 73 8b ae 13 03 e6 cc af 4f e1 78 29 |....s.......O.x)| -000000f0 be ec d6 c0 6c 9f 18 d2 3f 44 36 b9 0e 97 fc 1c |....l...?D6.....| -00000100 b3 94 62 8d a3 b1 3f e8 e8 c3 77 d9 49 13 d2 db |..b...?...w.I...| -00000110 93 9a 8b c5 51 85 c0 40 a6 0f f3 ca 66 13 e2 3f |....Q..@....f..?| -00000120 29 f1 65 0e ad cc eb bc de 68 18 c0 b7 05 c7 6b |).e......h.....k| -00000130 83 66 a1 5c 5e 97 68 5f 0e ae b2 19 e0 ab b0 ee |.f.\^.h_........| -00000140 b9 44 64 20 5d 7a 77 ee 77 db a1 77 cb 7b ce d5 |.Dd ]zw.w..w.{..| -00000150 c5 e1 78 b2 75 ea e6 2e 3b 8c 39 e3 51 c9 48 37 |..x.u...;.9.Q.H7| -00000160 60 d5 68 4f 15 a7 29 56 76 c3 2c 5a 68 1c 6a b2 |`.hO..)Vv.,Zh.j.| -00000170 20 c4 f0 df 35 87 72 c5 1a ed fa 24 66 b4 87 12 | ...5.r....$f...| -00000180 f5 b3 79 d4 b6 fe c9 4e 31 14 f3 e2 5d 13 fc ed |..y....N1...]...| -00000190 6d 88 04 9d 8d 11 ed fd 6a fb e6 b4 53 20 51 e6 |m.......j...S Q.| -000001a0 49 24 55 b1 5b 86 36 5a ed 68 02 eb 43 97 da 49 |I$U.[.6Z.h..C..I| -000001b0 da 7a 21 61 27 f6 24 6e cc b3 25 76 e9 ce c2 d2 |.z!a'.$n..%v....| -000001c0 b5 ef f7 63 a6 c9 7c 9b dd 12 ea 7c 15 bd 29 fb |...c..|....|..).| -000001d0 20 f5 37 96 07 cc 2c 22 4a c1 11 ef 22 4e 7a 05 | .7...,"J..."Nz.| -000001e0 80 ff 1f cd c9 a7 11 80 1e 3c 11 0d 10 ed 56 c6 |.........<....V.| -000001f0 13 64 55 13 44 ce cc b7 9d 1a 57 11 b6 ef 27 02 |.dU.D.....W...'.| -00000200 62 3e aa 81 14 ab 79 a5 cc 96 7d e3 bf c1 d3 98 |b>....y...}.....| -00000210 da 9d 34 f1 7a c6 1a 1a 0d b4 3d ed 40 41 49 39 |..4.z.....=.@AI9| -00000220 a7 8d a0 85 50 c1 b3 6c e9 51 be 44 8c 7d d8 3b |....P..l.Q.D.}.;| -00000230 d6 e2 77 cb ab 01 98 87 d4 94 53 e4 f6 04 8f d2 |..w.......S.....| -00000240 a4 36 35 9f df dc 2e 72 22 94 db 58 f7 77 c3 96 |.65....r"..X.w..| -00000250 2b 0f 4a 7a 3d 94 12 5a 18 90 6c 87 18 a0 0b 80 |+.Jz=..Z..l.....| -00000260 eb 44 de 79 4f 0e 66 fa 62 e7 26 73 06 af 44 e7 |.D.yO.f.b.&s..D.| -00000270 7a 36 84 68 3d 3d 79 ac cd 33 97 6a ad 95 ca 6d |z6.h==y..3.j...m| -00000280 c8 a9 75 98 21 b0 d2 dc 72 5d 61 15 67 0c 3e f8 |..u.!...r]a.g.>.| -00000290 54 18 52 bd 46 75 81 3f a6 6d c9 84 7a 97 4e db |T.R.Fu.?.m..z.N.| -000002a0 96 73 ad 53 09 ab 1c d6 c3 4d 1a 5c e9 b2 e7 aa |.s.S.....M.\....| -000002b0 2a f1 d5 be 1b c6 01 d1 8b 54 24 e9 16 d1 02 d0 |*........T$.....| -000002c0 dc cb c1 37 71 e1 01 74 b1 5f 91 60 09 01 31 e2 |...7q..t._.`..1.| -000002d0 2a f0 5b 34 e6 d0 52 db a2 cf f1 f1 b7 da b6 76 |*.[4..R........v| -000002e0 8e fd a5 fd 6e f5 c5 0c 34 74 2e f0 c0 44 b4 57 |....n...4t...D.W| -000002f0 e1 50 f5 68 06 a3 14 1d f5 ac 2b 61 f8 ec cf 05 |.P.h......+a....| -00000300 c9 ef e6 a8 31 aa a5 a8 15 65 36 58 e0 da 96 03 |....1....e6X....| -00000310 57 05 4e 17 03 03 00 99 ec a2 db dd 9e a8 d8 10 |W.N.............| -00000320 fc d4 1b 45 02 b5 2c f1 fc 05 44 30 27 55 63 3e |...E..,...D0'Uc>| -00000330 41 45 ea be e1 a8 0b 2e 4d 70 18 3a 9b ae d2 b5 |AE......Mp.:....| -00000340 ed 0d 3e 08 5f b6 86 b0 e0 06 66 45 91 67 bc fd |..>._.....fE.g..| -00000350 7b 8f 6a 73 d4 29 df 17 74 e7 f8 92 f9 2b e4 31 |{.js.)..t....+.1| -00000360 dc 8a 6c 1c 53 1f c2 d6 fc 83 33 15 58 e1 ea 49 |..l.S.....3.X..I| -00000370 cc 74 7c f3 00 37 ca bc ae 31 e8 b2 aa 19 18 e2 |.t|..7...1......| -00000380 7d 60 8c 15 f8 ce e2 7d 86 1b a1 2c 59 5a 2a b2 |}`.....}...,YZ*.| -00000390 81 f3 22 12 8a 6e 28 b9 22 ba 15 03 3d 24 09 50 |.."..n(."...=$.P| -000003a0 b5 81 43 c0 a1 62 cf c6 9d 69 be ba 89 d1 74 19 |..C..b...i....t.| -000003b0 85 17 03 03 00 45 45 29 37 b5 5d ee db 9c 73 85 |.....EE)7.]...s.| -000003c0 4f 69 2b 32 b7 d7 16 c6 73 f1 59 89 38 10 63 88 |Oi+2....s.Y.8.c.| -000003d0 81 72 5e 60 72 d5 6a 26 c9 50 18 03 d3 bd 50 83 |.r^`r.j&.P....P.| -000003e0 1b ea c1 e3 4b f4 31 b0 e7 90 af aa e3 10 fd 77 |....K.1........w| -000003f0 97 49 ef 8b 63 f3 c0 af 82 06 c3 |.I..c......| +00000080 03 03 00 01 01 17 03 03 00 17 cc b9 e4 43 5e f6 |.............C^.| +00000090 9a 5a 62 14 02 39 fb 13 76 e8 10 db 26 1c 07 ec |.Zb..9..v...&...| +000000a0 06 17 03 03 02 6d 39 e9 a0 33 ee 39 36 54 62 f1 |.....m9..3.96Tb.| +000000b0 e9 1d 32 45 0f 5a ca 72 f7 7e 43 d8 89 97 00 3d |..2E.Z.r.~C....=| +000000c0 59 70 08 b4 d1 e1 84 24 7a b8 45 3c b8 32 93 b5 |Yp.....$z.E<.2..| +000000d0 51 a5 58 60 3f 60 52 aa c1 ff 85 fb fd 50 87 38 |Q.X`?`R......P.8| +000000e0 47 7a 88 c6 d1 e6 3c b3 16 14 5b cb 23 50 26 7a |Gz....<...[.#P&z| +000000f0 1d 28 d1 d2 29 5d b0 40 97 2f 3b 58 7c 8a 76 1f |.(..)].@./;X|.v.| +00000100 1c c1 d2 2b 63 9d 53 bc fb c2 42 cb 40 0d d0 7c |...+c.S...B.@..|| +00000110 73 6c dc 63 90 89 e3 66 67 2b a2 70 af e0 af fe |sl.c...fg+.p....| +00000120 0c c0 db 41 76 d0 16 37 2a 09 7a 79 31 03 c6 4a |...Av..7*.zy1..J| +00000130 f4 06 22 ac 96 b4 25 1f 54 11 24 c8 67 22 8f 2a |.."...%.T.$.g".*| +00000140 56 0c 24 fa 20 ed a8 37 66 f7 38 44 43 e2 e6 e3 |V.$. ..7f.8DC...| +00000150 96 b5 d5 dd a5 2c 23 e4 57 57 7d 7a 59 e2 4f 66 |.....,#.WW}zY.Of| +00000160 c4 29 d6 d1 32 a3 9c 4c dd 63 b2 a6 dc ff 6f 61 |.)..2..L.c....oa| +00000170 c2 db 88 80 23 c1 27 d4 be dd 4f b4 c9 b8 56 4c |....#.'...O...VL| +00000180 65 b6 f8 32 b2 60 7b af 5f 54 71 61 20 db 25 85 |e..2.`{._Tqa .%.| +00000190 34 b6 58 9b 71 01 dd 53 cd 13 65 2e 23 69 96 0e |4.X.q..S..e.#i..| +000001a0 89 94 75 09 64 60 76 d2 65 85 38 3d f1 0e cb 47 |..u.d`v.e.8=...G| +000001b0 c1 2c 52 f8 ce 7a a6 9f dd 7c 39 7e a7 f9 a6 1b |.,R..z...|9~....| +000001c0 c1 23 81 a6 7a b1 6c d4 3c 1c f3 71 ce 72 24 01 |.#..z.l.<..q.r$.| +000001d0 4a 8d e9 24 47 51 73 67 dc 7a 9f 0b 63 7d 29 e1 |J..$GQsg.z..c}).| +000001e0 3e 5e ac 72 d7 c8 d9 c2 13 de 92 dd 04 cb 09 21 |>^.r...........!| +000001f0 ad 41 69 27 77 48 eb 87 cb 3b 23 ba 06 a3 68 96 |.Ai'wH...;#...h.| +00000200 ad 24 35 f6 a6 03 87 a7 4d 9f d4 bf e5 8b 9f 56 |.$5.....M......V| +00000210 54 dd 0e 08 da 29 ff eb 9b e1 0a a5 25 b1 85 be |T....)......%...| +00000220 f8 ae 63 f4 49 64 cc 0a 41 0e 26 8a 8e bc 6f c9 |..c.Id..A.&...o.| +00000230 f5 41 55 80 0d bd 70 ad 85 b0 d4 8d 33 ac b6 40 |.AU...p.....3..@| +00000240 3e 76 fc fb 8f d2 7d 06 14 d4 45 24 6e 36 46 1c |>v....}...E$n6F.| +00000250 06 d3 f7 f3 4c 3a a5 83 4f 75 72 77 b4 5e 37 49 |....L:..Ourw.^7I| +00000260 41 f1 9f e6 d1 46 87 56 c8 64 28 fd 38 f0 0f 9c |A....F.V.d(.8...| +00000270 d0 39 ff 4b 46 56 73 0d 12 7d bf 63 b4 b8 0d 33 |.9.KFVs..}.c...3| +00000280 6b 4a 2b f8 39 67 f1 ec 2d a6 0b 5c 91 2d d8 3e |kJ+.9g..-..\.-.>| +00000290 91 81 1a 37 29 c7 14 d2 be db 31 61 dc 5d b1 e4 |...7).....1a.]..| +000002a0 64 af 14 9c 93 85 e7 5b 0e 42 63 c7 5e b5 cc 51 |d......[.Bc.^..Q| +000002b0 ca 83 ca fa 52 bd 44 a1 1c 76 20 bc 3d 9f 82 79 |....R.D..v .=..y| +000002c0 20 5c 01 14 e3 07 02 4c f6 87 f7 46 b8 de 47 23 | \.....L...F..G#| +000002d0 5d 5c b3 8f cd 96 49 51 32 3f d2 5d 92 32 19 b5 |]\....IQ2?.].2..| +000002e0 10 33 46 37 f0 b5 82 23 a5 91 1f 60 fb 21 2c 08 |.3F7...#...`.!,.| +000002f0 c3 6e 17 72 0b 5d c9 7b cc 77 97 6f 20 d9 a6 fa |.n.r.].{.w.o ...| +00000300 cc 4a bb c6 3b 0e b1 66 ae 57 f5 1b 16 46 36 b7 |.J..;..f.W...F6.| +00000310 a5 94 ae 17 03 03 00 99 d7 86 a0 5f c0 d2 33 3e |..........._..3>| +00000320 ce ce ea db cb a1 a5 11 b7 cc a1 48 b6 86 f5 11 |...........H....| +00000330 d6 32 8c f9 e8 bb e3 3e ea 6f 1a df 64 cd c8 7d |.2.....>.o..d..}| +00000340 e9 cb e4 19 fe cd 75 74 03 4a fe 91 1d 87 28 65 |......ut.J....(e| +00000350 25 79 3a 19 13 ba 67 16 aa 7e 8e c0 e6 53 4f bb |%y:...g..~...SO.| +00000360 98 ed cc 59 db 5e 73 23 d4 a9 a7 2a 6d 01 73 4a |...Y.^s#...*m.sJ| +00000370 e6 65 2e c0 34 49 c1 d8 70 2e 70 1b 10 97 74 23 |.e..4I..p.p...t#| +00000380 fe 6b 5d cd fa 71 c8 43 c3 5b 42 5c 7b e0 9e 3f |.k]..q.C.[B\{..?| +00000390 a8 3d a9 d1 97 17 87 80 af 7c 5d 8b 70 ba 87 06 |.=.......|].p...| +000003a0 67 dd 29 df f3 ca 9a f4 c8 93 e8 f8 ac c0 df 8e |g.).............| +000003b0 c5 17 03 03 00 45 40 a4 26 66 29 18 b8 d6 a7 87 |.....E@.&f).....| +000003c0 91 5f 6d 79 13 f8 7a 47 cf ac 93 7c 11 cb 4a b2 |._my..zG...|..J.| +000003d0 24 a6 40 fb d4 ed 71 ec 19 53 ba ae e0 bb e6 cf |$.@...q..S......| +000003e0 d6 8a a6 3c 6a 4e a3 6f 6c d7 2d e1 8a a4 6c da |.....q=....| +00000410 dc 2f 4a 62 c2 9f e2 e5 16 51 ff 35 a7 70 df 12 |./Jb.....Q.5.p..| +00000420 23 d6 f7 6c 96 91 7f 0f 6d d4 45 5f c6 8c c5 93 |#..l....m.E_....| +00000430 b1 b7 46 ef f0 f4 a3 68 35 ff 09 38 8d 6d c6 84 |..F....h5..8.m..| +00000440 d3 1c 4d 48 4e fc 4a c0 46 06 b1 a5 1c 74 a0 44 |..MHN.J.F....t.D| +00000450 69 68 20 33 df 70 60 69 57 c7 85 bd 3e ed 55 d0 |ih 3.p`iW...>.U.| +00000460 56 84 8f 19 03 5a 54 9a d5 3e 5d 37 98 40 4c f0 |V....ZT..>]7.@L.| +00000470 5e f1 26 e5 97 01 fc 0f 2a 09 e9 7a 51 69 c0 8e |^.&.....*..zQi..| +00000480 d4 25 80 f4 ca 91 f3 a7 5c 0c 96 ba ec a8 b5 ee |.%......\.......| +00000490 ab ec 05 cb 99 30 78 48 1b 78 bf 3d b9 f4 e8 33 |.....0xH.x.=...3| +000004a0 4d 45 d1 |ME.| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 59 c5 37 de 55 |..........EY.7.U| -00000010 de 8c 48 e6 2e 1c c6 d9 12 58 ad 58 97 af f3 09 |..H......X.X....| -00000020 0c 86 38 94 c8 a3 d0 67 b2 3a 36 80 d8 ac f9 7e |..8....g.:6....~| -00000030 42 58 7a a1 0b a3 06 a3 32 0a e3 21 01 cb 7b 55 |BXz.....2..!..{U| -00000040 73 1a 8b 32 ba cd 85 28 f7 ed 9a c8 dd 2b d7 66 |s..2...(.....+.f| +00000000 14 03 03 00 01 01 17 03 03 00 45 54 0e c1 aa 95 |..........ET....| +00000010 fd c5 d2 8b a0 ae 40 a1 9a b8 87 39 17 53 f7 10 |......@....9.S..| +00000020 62 6f 55 18 42 cf 75 cb 05 de 32 28 c4 a0 f1 17 |boU.B.u...2(....| +00000030 f1 55 ae 2c 97 9e dd d2 d0 a7 6b c6 51 51 c6 0c |.U.,......k.QQ..| +00000040 81 3f 04 db 94 e6 68 f0 a1 80 10 39 06 99 25 e2 |.?....h....9..%.| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e ee 52 21 e0 e3 c5 ae ac 1b 26 91 |......R!......&.| -00000010 0e b3 a0 b8 70 cc 71 c8 c3 10 0f e8 b4 79 eb 47 |....p.q......y.G| -00000020 fc 13 b7 17 03 03 00 13 02 ef f4 ef 4b a2 83 93 |............K...| -00000030 4b ea 6b 63 d9 29 69 79 0e 8d 34 |K.kc.)iy..4| +00000000 17 03 03 00 1e e4 4f d5 b0 e7 a0 e2 13 69 75 7c |......O......iu|| +00000010 b1 84 93 be 99 ea 27 20 dd 08 89 6c e2 5a c6 bc |......' ...l.Z..| +00000020 b8 41 3d 17 03 03 00 13 cf 64 ad ad d9 84 87 36 |.A=......d.....6| +00000030 b9 ea b8 76 97 93 c1 03 44 c5 de |...v....D..| diff --git a/testdata/Server-TLSv13-ALPN b/testdata/Server-TLSv13-ALPN index 31d7be3..4ac9f1d 100644 --- a/testdata/Server-TLSv13-ALPN +++ b/testdata/Server-TLSv13-ALPN @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 f8 01 00 00 f4 03 03 ff d4 51 5f e2 |.............Q_.| -00000010 dd 9d 8f 57 03 9e ce ae 23 c2 e6 17 33 de df f9 |...W....#...3...| -00000020 49 f3 42 76 dc fe 7a 91 db 67 a0 20 1b a9 d2 90 |I.Bv..z..g. ....| -00000030 d4 cb ec 3c e5 ea 1f 43 51 dd 0c 57 88 d1 a4 52 |...<...CQ..W...R| -00000040 31 48 6b a2 5c 6d 5b 53 ab 05 7b ac 00 08 13 02 |1Hk.\m[S..{.....| +00000000 16 03 01 00 f8 01 00 00 f4 03 03 65 16 78 26 cc |...........e.x&.| +00000010 27 bc 06 a0 4c f5 a3 e3 cd c2 f0 42 8c 61 0e e9 |'...L......B.a..| +00000020 8b 2b 52 ca a3 07 d6 58 96 4f f1 20 c3 7f e3 22 |.+R....X.O. ..."| +00000030 2c 27 94 91 ab cc e5 56 b1 31 fb eb ed b4 84 3e |,'.....V.1.....>| +00000040 ae 93 6e 6e a9 5c d2 47 6e 5b 0c 43 00 08 13 02 |..nn.\.Gn[.C....| 00000050 13 03 13 01 00 ff 01 00 00 a3 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| @@ -12,83 +12,93 @@ 000000a0 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| 000000b0 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| 000000c0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| -000000d0 02 01 01 00 33 00 26 00 24 00 1d 00 20 39 8f 57 |....3.&.$... 9.W| -000000e0 2f 4c ec 9a 34 c2 9a 00 63 8d 55 d0 41 61 6b bf |/L..4...c.U.Aak.| -000000f0 81 28 57 ea dc aa 36 11 aa bf 73 89 6a |.(W...6...s.j| +000000d0 02 01 01 00 33 00 26 00 24 00 1d 00 20 76 1d a9 |....3.&.$... v..| +000000e0 43 43 a4 98 96 39 59 80 b0 7e 13 29 2a ea 53 e7 |CC...9Y..~.)*.S.| +000000f0 34 73 7a 10 0c f5 b0 92 b1 ab e2 26 17 |4sz........&.| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 1b a9 d2 90 |........... ....| -00000030 d4 cb ec 3c e5 ea 1f 43 51 dd 0c 57 88 d1 a4 52 |...<...CQ..W...R| -00000040 31 48 6b a2 5c 6d 5b 53 ab 05 7b ac 13 02 00 00 |1Hk.\m[S..{.....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 c3 7f e3 22 |........... ..."| +00000030 2c 27 94 91 ab cc e5 56 b1 31 fb eb ed b4 84 3e |,'.....V.1.....>| +00000040 ae 93 6e 6e a9 5c d2 47 6e 5b 0c 43 13 02 00 00 |..nn.\.Gn[.C....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| 00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| -00000080 03 03 00 01 01 17 03 03 00 24 6b 2e 09 93 7b 47 |.........$k...{G| -00000090 92 5b ec 7a 94 83 04 a4 fc 5d 9c b0 ca 11 3f 94 |.[.z.....]....?.| -000000a0 fd cb 36 55 be e8 20 34 6e fd db 23 61 d7 17 03 |..6U.. 4n..#a...| -000000b0 03 02 6d 75 74 6c 3e ca 77 66 06 c7 26 76 83 9f |..mutl>.wf..&v..| -000000c0 54 23 47 53 d6 b7 7f 6f a1 fb 78 c5 aa 85 fb 40 |T#GS...o..x....@| -000000d0 9f 34 48 a3 ad 47 70 9f 5f b4 96 f6 5b c8 ac ba |.4H..Gp._...[...| -000000e0 cc f7 ee 3e 9c 7a ad 48 57 44 ce 77 4f 17 13 6c |...>.z.HWD.wO..l| -000000f0 90 f4 c5 53 92 37 16 aa 59 60 51 9d f2 b7 9f 31 |...S.7..Y`Q....1| -00000100 a6 a9 15 86 fe 01 04 36 22 b0 48 45 a0 b5 dd 0f |.......6".HE....| -00000110 87 a7 33 dd 8b 76 66 af e6 a3 7c 1d 1b fb 1d 77 |..3..vf...|....w| -00000120 5e d4 c7 51 50 6f 36 b2 48 c7 a2 7e 3a 1c ad 76 |^..QPo6.H..~:..v| -00000130 01 43 6a bf 8a 2b a8 02 71 3b 9b aa 80 63 35 20 |.Cj..+..q;...c5 | -00000140 b9 37 05 9c 09 41 1d 07 31 2a 43 f9 36 5e 38 62 |.7...A..1*C.6^8b| -00000150 cc 2f 08 6f ff 91 28 98 4b 69 a3 0d 61 c3 cd b7 |./.o..(.Ki..a...| -00000160 06 84 f8 fc a9 e0 46 ac f7 df ba 12 aa c5 d4 4c |......F........L| -00000170 34 4e c3 6c 46 3c d5 d6 63 91 28 b5 32 9a f0 70 |4N.lF<..c.(.2..p| -00000180 15 e6 5e c3 06 de 3b 3b ac a8 b6 78 04 d1 d4 78 |..^...;;...x...x| -00000190 73 10 7d 80 ce c1 56 9d 0e ea 0d 6a 16 75 34 04 |s.}...V....j.u4.| -000001a0 32 bc d4 52 5f 54 90 8a ad a7 7a bc 68 be ba cc |2..R_T....z.h...| -000001b0 60 14 a4 b7 d5 b4 51 b7 11 9a c8 4e 5d d1 a3 71 |`.....Q....N]..q| -000001c0 75 d6 47 d7 03 68 34 a5 32 09 b3 98 43 21 b5 0c |u.G..h4.2...C!..| -000001d0 50 e5 1a 5e d3 0c c3 2d 93 d7 d6 42 4d 98 76 66 |P..^...-...BM.vf| -000001e0 b3 a0 94 25 fc 88 17 33 6d 22 7c 3a da 0c 8e ec |...%...3m"|:....| -000001f0 fa cf 92 20 e0 f7 8f 1e b5 e3 4c 13 4d 4d 45 10 |... ......L.MME.| -00000200 8e e3 4e 0f 4e 9d 63 ec ad 73 7f a3 11 88 69 f2 |..N.N.c..s....i.| -00000210 6f 4e 91 c4 d4 ad 2c a4 21 89 50 a9 f9 2d 9c ff |oN....,.!.P..-..| -00000220 ff 0e db b9 fb 14 1b c1 8c 9b cf 94 49 a3 85 2c |............I..,| -00000230 2d d2 15 12 0c 7d 70 12 01 07 62 1f 05 f0 88 51 |-....}p...b....Q| -00000240 82 84 ac 2a b9 c5 56 ee 6e a5 5f cd 3f 92 0b cc |...*..V.n._.?...| -00000250 8a d2 92 91 93 a1 11 4c 42 3d c9 87 29 e7 13 7d |.......LB=..)..}| -00000260 33 b4 14 0f 1b ed d4 94 17 a1 31 5b 44 e9 1d 78 |3.........1[D..x| -00000270 6a 0f dd d4 0a 3b 40 f1 a2 a2 ab 84 4c 25 7f cd |j....;@.....L%..| -00000280 09 45 36 d8 b8 c3 3c 80 2a 00 67 dd eb 9b 67 b1 |.E6...<.*.g...g.| -00000290 d5 22 d6 84 a7 15 fe 56 b3 b0 a2 6e 64 7e 74 23 |.".....V...nd~t#| -000002a0 9f 20 72 ca f1 b9 03 02 56 a5 d4 d3 f7 bb 53 67 |. r.....V.....Sg| -000002b0 27 1f 2c b2 4e f1 05 17 8b 72 f5 27 cc 66 62 5b |'.,.N....r.'.fb[| -000002c0 95 cf 6e 5b e8 b9 ee d0 f8 b2 6b 4c 3e 99 c4 ed |..n[......kL>...| -000002d0 da 9d 12 73 9e 80 bc 83 6f f1 09 8f 74 47 01 df |...s....o...tG..| -000002e0 f5 ff b0 21 8b 4e 7c 3e 16 47 18 48 51 e0 e2 7f |...!.N|>.G.HQ...| -000002f0 dc 9f e3 2e 35 b0 5b e1 55 29 d7 11 85 5b c3 10 |....5.[.U)...[..| -00000300 5c dc 61 30 52 5f 53 83 08 87 6d b6 1c f2 2b ff |\.a0R_S...m...+.| -00000310 3e 60 17 5b ff fc a2 db 5c 24 6a 70 19 28 ba 14 |>`.[....\$jp.(..| -00000320 17 03 03 00 99 64 2f 8f 76 2f 84 aa c9 ca 55 00 |.....d/.v/....U.| -00000330 16 e4 22 b7 88 be 72 3b 7a db b7 85 0f 44 df dc |.."...r;z....D..| -00000340 7e fa 2c 76 37 c1 dd 95 96 ac c3 0e 4f ce ee ea |~.,v7.......O...| -00000350 71 91 5a 98 af e5 50 4f 5d 42 2d 57 b5 cf a6 a3 |q.Z...PO]B-W....| -00000360 db df 73 a2 1d b4 02 e4 b5 23 ae f5 da b7 f6 cd |..s......#......| -00000370 7d 48 d2 5e 7c 40 4f c6 9b 3e f7 51 8a 58 df b6 |}H.^|@O..>.Q.X..| -00000380 56 ac 3f 17 a4 95 ce 06 5b a3 b4 df 72 08 35 20 |V.?.....[...r.5 | -00000390 0f 92 fd 48 45 48 e1 c2 cf 1f b4 fb 9b 7d b8 6c |...HEH.......}.l| -000003a0 6d fa 10 04 d6 14 a9 59 0e 97 c9 33 85 ca d4 62 |m......Y...3...b| -000003b0 46 b7 0b e8 78 67 ca 6b e5 66 b3 72 f8 90 17 03 |F...xg.k.f.r....| -000003c0 03 00 45 c6 c1 e4 ff 98 d3 4f 79 cd 61 7b 31 42 |..E......Oy.a{1B| -000003d0 f6 db 92 92 f8 ee 41 98 cd 8c db 4f ab e1 84 43 |......A....O...C| -000003e0 d9 35 5a 3a ab 86 0f 3a 5a e3 e4 f6 41 1d 98 6b |.5Z:...:Z...A..k| -000003f0 b2 ac e7 e3 5a 38 c9 54 29 4a ba 13 ed 80 d8 71 |....Z8.T)J.....q| -00000400 6f b9 15 8a 39 3b 89 24 |o...9;.$| +00000080 03 03 00 01 01 17 03 03 00 24 1a dd ed 59 79 84 |.........$...Yy.| +00000090 d6 2e 17 81 75 e0 ee b3 98 8c 04 a3 ea 7c 46 f0 |....u........|F.| +000000a0 76 58 78 5a 37 99 a6 32 ad c6 5a 5a 3a ce 17 03 |vXxZ7..2..ZZ:...| +000000b0 03 02 6d 31 3b 00 34 ef 22 53 8a 31 f5 88 fb 3f |..m1;.4."S.1...?| +000000c0 e4 72 a8 20 65 ef be c6 78 84 4e 93 6a 8a fa 01 |.r. e...x.N.j...| +000000d0 10 b0 dd 0e 7d 8f 07 b8 da 29 4b 0a 5b 32 de cf |....}....)K.[2..| +000000e0 31 66 04 9c c6 d8 ab f0 07 f0 aa c3 b6 3e bf d4 |1f...........>..| +000000f0 0e 53 5d a4 4f aa 19 cf f4 3d 60 5b 19 ec e3 e2 |.S].O....=`[....| +00000100 71 1b 54 20 48 41 68 32 f5 28 06 e2 b7 29 89 c3 |q.T HAh2.(...)..| +00000110 d5 eb 07 f3 49 fb 0b f5 81 0a f2 65 70 24 a9 bc |....I......ep$..| +00000120 6b e7 70 58 7c f2 0a 91 3e f4 26 ea 1a 22 15 24 |k.pX|...>.&..".$| +00000130 5a 28 43 89 ac 1c 9b 39 1a 93 ec 32 5e ba cb f4 |Z(C....9...2^...| +00000140 57 a1 ca 03 8e 2e 0b 96 e7 7f e5 c5 30 22 ec fd |W...........0"..| +00000150 fe 6d 5f 01 e9 7a 5e b3 68 67 ee e9 23 d5 72 46 |.m_..z^.hg..#.rF| +00000160 77 05 b7 27 26 78 fe f9 cc c8 c2 fe a8 4e 93 04 |w..'&x.......N..| +00000170 56 bc 64 f1 55 ff 92 8d cb 81 46 cb 2d db 9b 41 |V.d.U.....F.-..A| +00000180 59 76 0c b5 65 7a e1 09 2f b6 3b d4 92 87 7c a6 |Yv..ez../.;...|.| +00000190 06 d7 37 aa db bc 07 12 a4 2e 38 be 97 83 80 80 |..7.......8.....| +000001a0 86 05 3a 4b 89 25 7f ef 5e 54 42 4a 89 99 f2 95 |..:K.%..^TBJ....| +000001b0 70 92 fb ac 2f ae b4 1f a0 5c 8c bf 45 2d 54 91 |p.../....\..E-T.| +000001c0 01 88 d5 9b a3 da af 67 1c ce 2e 9c 05 4c 68 d8 |.......g.....Lh.| +000001d0 b5 ee 98 06 a4 18 c8 c0 2d 7c bf 6e e2 eb 0d aa |........-|.n....| +000001e0 5b c6 f8 27 ad 3a 1a cf ac 35 f4 55 41 3c e0 8c |[..'.:...5.UA<..| +000001f0 3e 26 56 95 33 c4 f1 05 5a e7 9d 6e 33 90 d1 37 |>&V.3...Z..n3..7| +00000200 03 77 1f 76 1a 35 43 c1 a4 8c 5a 68 f5 bc 6c 7a |.w.v.5C...Zh..lz| +00000210 43 27 37 cd d9 55 76 69 bd 78 47 4e 2e 25 96 e6 |C'7..Uvi.xGN.%..| +00000220 8f 46 a3 70 ff b8 55 f2 66 46 2c 59 ad b9 b7 9a |.F.p..U.fF,Y....| +00000230 a1 dc a4 8b 2b fa 14 17 dd bf 46 c6 9a ef 50 54 |....+.....F...PT| +00000240 6e b8 d3 d7 13 d4 74 dd a5 ef 16 5f 2a fa ea 9b |n.....t...._*...| +00000250 59 7c 41 f8 6d 00 b5 01 9d c8 35 34 1e 1c 3f 64 |Y|A.m.....54..?d| +00000260 6a da 1e c4 64 4d e5 2e c7 28 f8 14 70 e6 72 4b |j...dM...(..p.rK| +00000270 ab 8a 22 5e 2b 5c aa b3 02 72 80 0c 80 11 cd 18 |.."^+\...r......| +00000280 b8 e1 8c 54 54 72 fd 68 71 66 ef bc 3e 03 ca a4 |...TTr.hqf..>...| +00000290 ae f4 ad 7b 29 08 ff 49 07 09 bc a1 cd e3 14 69 |...{)..I.......i| +000002a0 47 0e b0 c0 a8 89 3a 7b 71 e5 ba 32 36 e8 b5 0a |G.....:{q..26...| +000002b0 9e f6 9f 6f 12 89 f5 36 5c 96 28 e1 2d 6b b3 06 |...o...6\.(.-k..| +000002c0 d6 68 d3 99 f4 3d 27 b2 61 df 75 29 a0 24 8a ba |.h...='.a.u).$..| +000002d0 48 c4 5c 8c 36 21 3a 3e bf 92 4f 73 cc bd a1 b1 |H.\.6!:>..Os....| +000002e0 e7 00 c6 05 94 1e 8e 73 d3 52 aa 4d 02 40 3b 50 |.......s.R.M.@;P| +000002f0 5f f0 37 b6 61 43 9f 39 63 64 ad 37 12 97 2a 0c |_.7.aC.9cd.7..*.| +00000300 5e d9 20 e0 78 da f3 80 d8 29 ea b3 c5 52 55 cc |^. .x....)...RU.| +00000310 3d e0 91 b7 f8 f9 b0 29 5a b3 e9 65 04 31 5c 6c |=......)Z..e.1\l| +00000320 17 03 03 00 99 7d d6 2e 45 d8 e2 5b f8 c1 21 86 |.....}..E..[..!.| +00000330 8a 31 78 88 5d 61 ca 8c e5 23 07 d7 85 da cb 04 |.1x.]a...#......| +00000340 be c3 24 2b 27 42 bb a1 1e 4f 8b bb a2 5d 3b 1e |..$+'B...O...];.| +00000350 8a 64 f0 2a 2f 79 51 cc 1b 34 99 b6 33 75 31 c9 |.d.*/yQ..4..3u1.| +00000360 2e ea 70 ef 97 c4 bb 4c ec aa cf 11 6c 88 96 c4 |..p....L....l...| +00000370 9b b9 df b9 ef 10 bb 36 65 1f 8d 7e 22 e8 67 80 |.......6e..~".g.| +00000380 80 6e 2b 34 94 a4 5f b1 5d 88 11 2e bf 22 f9 fe |.n+4.._.]...."..| +00000390 be 76 e8 86 da 40 76 8c 9c 40 b6 b4 50 41 92 f5 |.v...@v..@..PA..| +000003a0 ce 8c bd 13 ea f0 6f 56 c2 1c c6 ed 08 33 71 36 |......oV.....3q6| +000003b0 a4 16 b6 ca bf ba 0e 65 b0 a2 2b 35 39 c7 17 03 |.......e..+59...| +000003c0 03 00 45 3b 7a 67 26 15 b4 9b 0f ba 61 5d d0 4c |..E;zg&.....a].L| +000003d0 60 27 29 03 fb da 90 ea 0c 64 22 24 ac 60 74 02 |`')......d"$.`t.| +000003e0 0e 99 e0 e1 55 35 da c2 75 19 82 0c fa f8 f0 09 |....U5..u.......| +000003f0 35 1e ca de d1 e1 17 8e d2 f7 fb f9 94 d1 03 fb |5...............| +00000400 b5 8a 32 f6 8f 02 5f fa 17 03 03 00 a3 21 96 04 |..2..._......!..| +00000410 46 58 eb 83 db 06 a7 ba f2 9e 5c 8a 35 0d 87 78 |FX........\.5..x| +00000420 29 17 4f 7a 95 21 1f b4 f3 fa bb de 93 b7 e7 1c |).Oz.!..........| +00000430 24 40 06 6b 9f b5 12 49 36 39 01 b9 17 cb 5c 99 |$@.k...I69....\.| +00000440 93 71 dc 8f c5 54 c0 dd ff 36 92 24 cd b3 ac 40 |.q...T...6.$...@| +00000450 c0 57 76 c3 2a a0 d3 07 af 00 4b df c5 f9 34 77 |.Wv.*.....K...4w| +00000460 ed cc 14 e1 50 bf 41 1e b5 39 5d 92 a8 e4 f5 a6 |....P.A..9].....| +00000470 b2 12 08 56 b6 43 cf dc eb a9 0e 9e 0e 8a 97 63 |...V.C.........c| +00000480 f8 92 a8 1b 74 f3 65 60 6a f3 f0 e7 54 fd d3 08 |....t.e`j...T...| +00000490 20 ce b4 16 ab c9 e1 7a 49 9c bf d6 3a a7 2b 5c | ......zI...:.+\| +000004a0 1b 1c a7 89 f3 6a 6d 3d 0a 07 16 b4 c1 c2 4b 2e |.....jm=......K.| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 93 c5 37 2f 37 |..........E..7/7| -00000010 8d ae 7f be 77 25 59 77 39 37 d7 f0 29 68 25 cb |....w%Yw97..)h%.| -00000020 fb 2d 8a 7e 83 d4 60 09 84 69 1a bd 05 fd d8 53 |.-.~..`..i.....S| -00000030 98 f7 40 f5 ba 1b 5e 62 03 50 be 25 65 1b d8 d1 |..@...^b.P.%e...| -00000040 32 a9 6d bf 3d ad bc 0a 1e f1 f6 52 45 5e 98 6c |2.m.=......RE^.l| +00000000 14 03 03 00 01 01 17 03 03 00 45 90 6e 35 6d 4e |..........E.n5mN| +00000010 3b 8a 39 88 85 99 ac 05 fe 2c e3 a8 31 46 4e c2 |;.9......,..1FN.| +00000020 ea fe a2 ff 41 5b 64 77 bc 0c 6d 72 f7 c8 f3 07 |....A[dw..mr....| +00000030 ce 29 c2 6e 7c b5 88 13 35 f8 c0 90 98 ab 0f f9 |.).n|...5.......| +00000040 e2 8e 57 7e 23 7b 57 17 b6 13 11 9e 52 67 44 26 |..W~#{W.....RgD&| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e e2 90 5e 4a be d1 94 5f 64 9e 3a |.......^J..._d.:| -00000010 92 3c e2 bc be df 1b da b2 c0 eb 0d f3 2e 7d 23 |.<............}#| -00000020 fe 71 13 17 03 03 00 13 2a 3e 5b dc 81 c5 2f 73 |.q......*>[.../s| -00000030 81 90 29 95 13 64 59 a3 40 cc d6 |..)..dY.@..| +00000000 17 03 03 00 1e 98 55 d6 42 d5 d4 01 c9 be 70 27 |......U.B.....p'| +00000010 9e 5a d5 7d fc 41 1e ec fe fd d5 0f 01 16 56 82 |.Z.}.A........V.| +00000020 13 13 c7 17 03 03 00 13 bb 71 20 65 f8 af 42 ea |.........q e..B.| +00000030 42 73 b8 24 d8 dc 79 7c 71 32 35 |Bs.$..y|q25| diff --git a/testdata/Server-TLSv13-ALPN-NoMatch b/testdata/Server-TLSv13-ALPN-NoMatch index 0abc717..84c38ac 100644 --- a/testdata/Server-TLSv13-ALPN-NoMatch +++ b/testdata/Server-TLSv13-ALPN-NoMatch @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 f8 01 00 00 f4 03 03 d8 28 7b f8 3a |............({.:| -00000010 90 13 9b b7 92 e5 33 de 3c 0a 29 bf 0b d8 1b a6 |......3.<.).....| -00000020 d4 8b a5 f9 fa 72 37 b5 6c 0d 4b 20 6b a5 56 0d |.....r7.l.K k.V.| -00000030 86 c6 28 d5 7e 10 c3 6f 36 c3 d1 d2 90 41 34 ee |..(.~..o6....A4.| -00000040 0c ef 47 5f 17 43 ac 86 59 70 44 14 00 08 13 02 |..G_.C..YpD.....| +00000000 16 03 01 00 f8 01 00 00 f4 03 03 b6 62 6e 7c 66 |............bn|f| +00000010 e0 73 6f bc ce d7 e3 5c 3a 39 c5 c9 5e f3 8f 76 |.so....\:9..^..v| +00000020 f0 ed 0e 30 fd 80 a0 79 74 fd d4 20 6b 6e f8 9d |...0...yt.. kn..| +00000030 30 1b ee fa 7c 5f 64 e0 da 81 26 7a 85 d2 f9 79 |0...|_d...&z...y| +00000040 e7 09 71 f8 2a 4c 41 74 02 a9 0c d2 00 08 13 02 |..q.*LAt........| 00000050 13 03 13 01 00 ff 01 00 00 a3 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| @@ -12,82 +12,93 @@ 000000a0 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| 000000b0 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| 000000c0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| -000000d0 02 01 01 00 33 00 26 00 24 00 1d 00 20 71 31 a3 |....3.&.$... q1.| -000000e0 98 a9 e0 5b f1 45 57 46 18 1a 9b d9 04 a7 30 16 |...[.EWF......0.| -000000f0 c5 e7 f3 11 e7 16 92 ed f1 54 4d d2 29 |.........TM.)| +000000d0 02 01 01 00 33 00 26 00 24 00 1d 00 20 8d 7d e2 |....3.&.$... .}.| +000000e0 55 da a7 1b 29 fc a4 d3 b0 62 51 43 d9 d6 cd 79 |U...)....bQC...y| +000000f0 a4 f9 3c f2 4e 03 87 1f 38 29 35 c3 36 |..<.N...8)5.6| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 6b a5 56 0d |........... k.V.| -00000030 86 c6 28 d5 7e 10 c3 6f 36 c3 d1 d2 90 41 34 ee |..(.~..o6....A4.| -00000040 0c ef 47 5f 17 43 ac 86 59 70 44 14 13 02 00 00 |..G_.C..YpD.....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 6b 6e f8 9d |........... kn..| +00000030 30 1b ee fa 7c 5f 64 e0 da 81 26 7a 85 d2 f9 79 |0...|_d...&z...y| +00000040 e7 09 71 f8 2a 4c 41 74 02 a9 0c d2 13 02 00 00 |..q.*LAt........| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| 00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| -00000080 03 03 00 01 01 17 03 03 00 17 65 07 84 ea dc f3 |..........e.....| -00000090 6d 0e 15 2d 61 75 65 05 38 ca 43 ef 5d 14 fc bf |m..-aue.8.C.]...| -000000a0 d3 17 03 03 02 6d d3 f2 e2 97 77 75 a4 ef f1 81 |.....m....wu....| -000000b0 33 c7 c8 ca f0 8e 26 91 78 4d 18 b7 2d d8 30 69 |3.....&.xM..-.0i| -000000c0 8a 3e d7 f1 13 34 1a 61 43 a7 a8 44 0c 6f e5 da |.>...4.aC..D.o..| -000000d0 4b 5e 8d 58 16 98 c8 63 fb c9 07 cb 84 c8 2d a9 |K^.X...c......-.| -000000e0 6b be 04 51 d4 e7 75 11 28 44 f4 8c 77 96 ab 0d |k..Q..u.(D..w...| -000000f0 e7 54 ff ad 43 b6 7b d2 63 46 7c 07 ee 03 a8 e1 |.T..C.{.cF|.....| -00000100 73 98 05 32 5d 73 fc d0 6c 4c 3a 56 e4 02 e7 05 |s..2]s..lL:V....| -00000110 8d 18 c6 dc e5 b9 4f f4 ee 8b 7c 29 12 d7 b9 22 |......O...|)..."| -00000120 90 21 3d 1d 83 09 a4 ac b9 bb f9 b3 0d 2b 82 b5 |.!=..........+..| -00000130 5a ca a7 fc 46 aa 3b ae 75 14 67 3e 69 a5 95 ea |Z...F.;.u.g>i...| -00000140 79 58 6d 72 63 c1 64 62 88 2e 6f a1 cb 2c aa 18 |yXmrc.db..o..,..| -00000150 5a c0 48 79 45 05 66 01 91 05 4d f7 da 61 b9 d8 |Z.HyE.f...M..a..| -00000160 c0 49 d8 1a e5 de de 84 a1 8f 7f db 33 63 50 1c |.I..........3cP.| -00000170 d3 f1 0d 54 7e 00 94 89 79 70 54 8d 6d ff ad a0 |...T~...ypT.m...| -00000180 ea 2a ac ec dd 3b 51 8c 32 56 1a e8 81 c1 48 cb |.*...;Q.2V....H.| -00000190 98 16 3c 5b b2 54 00 97 87 c6 ae 92 15 8a 00 1f |..<[.T..........| -000001a0 1b ad b8 58 a8 5c 8d ea 69 5a 60 3b e5 e2 9b 3c |...X.\..iZ`;...<| -000001b0 2e 9b 55 94 c2 f9 9a 5e a1 e2 92 8d 15 16 74 90 |..U....^......t.| -000001c0 0f 3c 2f 10 42 99 46 e9 52 7a b6 74 4b 96 2d 6e |...Z3aI.MG| +00000100 95 16 c5 6e a4 b3 94 44 4c 8b 5d d6 2c c9 26 a1 |...n...DL.].,.&.| +00000110 01 e8 cc 20 9c 19 d3 3e eb d5 7c 97 4e 1e af 7b |... ...>..|.N..{| +00000120 68 0e 7b eb bb 91 81 60 a2 c8 37 96 84 f2 cd fe |h.{....`..7.....| +00000130 7f 22 7f 7f 22 6a c7 23 68 79 48 ae 35 47 27 4b |.".."j.#hyH.5G'K| +00000140 c0 ce e7 9c 7f 23 fd 44 e1 a5 da 9f 61 94 46 1f |.....#.D....a.F.| +00000150 6c ea b9 50 53 c2 35 70 d4 77 d7 2d d5 54 fb d7 |l..PS.5p.w.-.T..| +00000160 90 4b f9 bb 98 67 cc 5b 97 56 ef ff 5d c9 08 9c |.K...g.[.V..]...| +00000170 26 cd cf ba 51 6f a5 f4 20 34 83 85 ef 71 98 1b |&...Qo.. 4...q..| +00000180 dd 41 f9 51 f3 59 77 d7 b5 f5 98 40 fd 78 ef b6 |.A.Q.Yw....@.x..| +00000190 47 8c 27 e3 c8 ae 9d c3 47 92 dc 97 23 82 2f 80 |G.'.....G...#./.| +000001a0 2f 0f 17 17 17 f1 49 ec c3 1c 73 02 38 b3 a6 6d |/.....I...s.8..m| +000001b0 89 5f 55 30 ea 10 5d fe a7 6e 88 fb cc fd 9a 01 |._U0..]..n......| +000001c0 10 f8 4e 6a 7f ba 62 ab 15 85 7a 8d fc de 92 f7 |..Nj..b...z.....| +000001d0 91 9a d8 dc f3 de 3e 36 19 45 44 8c d7 03 67 c8 |......>6.ED...g.| +000001e0 14 24 09 33 1b f3 2f 2d a6 a5 9a 6c e2 04 da 4b |.$.3../-...l...K| +000001f0 18 13 57 12 83 86 46 8f af 35 f4 0a 1b 09 1c 25 |..W...F..5.....%| +00000200 bb 1e 22 fb 71 48 3f 34 47 d4 52 ec 3c 81 dd 5b |..".qH?4G.R.<..[| +00000210 0d a0 b4 74 a7 60 5f 60 14 ee d3 08 54 92 45 42 |...t.`_`....T.EB| +00000220 52 82 8d 54 84 ee c0 1d a7 a9 b4 a0 13 82 75 cd |R..T..........u.| +00000230 f6 a7 bc aa 0a e9 0a c5 36 ea 6f c1 8b 56 22 81 |........6.o..V".| +00000240 0a 8e 81 3d bf 34 f4 cc 80 02 d2 01 b5 2c b8 6b |...=.4.......,.k| +00000250 4b e8 06 06 cf e1 69 50 59 ea b2 a5 b0 06 96 02 |K.....iPY.......| +00000260 0e 45 8c 8c 46 ae 24 a0 80 92 75 46 7b cd 9e de |.E..F.$...uF{...| +00000270 a2 a0 d5 f4 68 ef 34 82 37 08 64 62 e8 eb 41 a4 |....h.4.7.db..A.| +00000280 32 a8 d4 c3 ee 16 67 2c 47 08 ef 23 c7 27 4a 21 |2.....g,G..#.'J!| +00000290 5c 66 36 93 6c 8c 8c fd 04 9a d9 84 e0 be 45 50 |\f6.l.........EP| +000002a0 0c 42 a2 d3 ba 5a 92 14 86 75 d2 33 6f 8b 69 a3 |.B...Z...u.3o.i.| +000002b0 b2 da 7e 19 e0 a6 0d 8e cb 21 bf f6 fa 5c 41 de |..~......!...\A.| +000002c0 d8 56 f7 d0 53 66 54 d2 5c e7 b5 20 af 0d 01 5a |.V..SfT.\.. ...Z| +000002d0 09 d0 ed 7f f1 1d d7 32 55 a8 c2 5a ba d8 e1 46 |.......2U..Z...F| +000002e0 fb 32 39 8b 8c 94 73 44 85 64 d6 c7 9f 6a d5 4e |.29...sD.d...j.N| +000002f0 fc 16 a2 10 cb 06 43 10 da a5 b2 71 e7 04 a6 3f |......C....q...?| +00000300 83 79 2c cb 2e 40 ab c8 53 18 11 95 3a f5 b9 b7 |.y,..@..S...:...| +00000310 df 99 d7 17 03 03 00 99 c0 29 f3 15 df b1 dc 36 |.........).....6| +00000320 a9 78 21 ed ba 5a 85 11 51 23 3f e9 b4 b3 bb b3 |.x!..Z..Q#?.....| +00000330 27 92 8e 9c a0 f8 b3 38 35 ef 9f bf 2b 31 82 cd |'......85...+1..| +00000340 de 3a 0c 0c b1 09 65 77 00 4c af 8c fe ff 2c 75 |.:....ew.L....,u| +00000350 62 48 13 96 63 5c 73 00 13 1f ef 27 f5 b2 4c fe |bH..c\s....'..L.| +00000360 8e 2a ff ab 94 68 5e 7c 02 19 d5 f3 68 07 b8 a1 |.*...h^|....h...| +00000370 2a 48 fc 4e ad b9 1c 95 13 d9 19 9d 47 7f 07 4d |*H.N........G..M| +00000380 b8 75 79 e7 da 6f 46 3e eb 27 c4 6f da ab bb fd |.uy..oF>.'.o....| +00000390 0a 04 08 15 c4 45 c4 1a 09 db 48 ca 3d 8e 63 af |.....E....H.=.c.| +000003a0 d8 0d 6b a2 04 22 eb 6d ed bf b6 45 d2 c8 b9 ee |..k..".m...E....| +000003b0 02 17 03 03 00 45 5c ef 9a 1c 12 95 25 da 79 21 |.....E\.....%.y!| +000003c0 6c 74 a2 64 cf bf aa cd 53 a4 43 48 d7 f3 b2 35 |lt.d....S.CH...5| +000003d0 da f2 0e d4 1c 14 23 63 8f 7a e5 5a 98 46 71 ad |......#c.z.Z.Fq.| +000003e0 19 a2 8f 22 b1 c5 93 89 0b 7f cd 38 09 9a ea f1 |...".......8....| +000003f0 51 6b 46 0f 8b 00 8d c2 1a 97 de 17 03 03 00 a3 |QkF.............| +00000400 32 88 68 5e f9 90 07 5d 4d 04 3d 1d 26 ac a2 1b |2.h^...]M.=.&...| +00000410 54 d0 37 7c 9f e7 8f ee c5 a6 bc b6 a9 78 08 40 |T.7|.........x.@| +00000420 f3 07 2f f5 b4 1f 08 c6 af 2d 4f 2e 87 4e 5f 95 |../......-O..N_.| +00000430 c9 b7 42 3a b5 ef ff 43 41 05 7c 7d 64 3f 56 ec |..B:...CA.|}d?V.| +00000440 ee b6 04 61 0a 56 79 77 5f 1c be e2 24 a2 cb 81 |...a.Vyw_...$...| +00000450 96 6f 95 6e a7 5a 2c 9e a0 e6 30 e5 f7 02 ff 10 |.o.n.Z,...0.....| +00000460 33 28 6e d7 ec 34 98 bf 26 2e 56 1d 99 e9 50 94 |3(n..4..&.V...P.| +00000470 71 be 0e 05 d3 86 95 db b9 4f 42 80 8a 12 2e ff |q........OB.....| +00000480 b6 be 81 f2 6f 4c 6a 00 a0 b8 53 c7 d7 fa 94 c6 |....oLj...S.....| +00000490 b2 b5 80 4b 3e e9 88 42 36 52 23 ca e4 48 b6 03 |...K>..B6R#..H..| +000004a0 13 7d 69 |.}i| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 3e 0c e1 f6 9c |..........E>....| -00000010 ee d8 82 9d b6 e6 ef ea 09 6e 2a a3 e7 45 1b 07 |.........n*..E..| -00000020 95 c8 d5 56 05 c4 90 10 24 eb bc de 52 d9 8e bb |...V....$...R...| -00000030 32 0e 5e 60 a4 bc 09 47 40 e5 30 56 b5 55 a6 ba |2.^`...G@.0V.U..| -00000040 b2 ad 2a 36 59 2e 33 49 54 e8 7e d6 ea 11 db 09 |..*6Y.3IT.~.....| +00000000 14 03 03 00 01 01 17 03 03 00 45 1d 07 22 a7 34 |..........E..".4| +00000010 0d a7 a0 e5 8c ed 58 d4 5c 39 d2 96 43 73 eb 8c |......X.\9..Cs..| +00000020 5f c1 0c 90 67 6f ae b1 ae ee 6c dd cd 47 31 83 |_...go....l..G1.| +00000030 be b1 f2 50 ec 31 54 ba 21 82 c4 bd aa 51 0a 7a |...P.1T.!....Q.z| +00000040 0d 25 18 68 00 18 8b 51 c3 ca ae b1 fa 20 e0 0b |.%.h...Q..... ..| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e 7c c1 c4 be 47 41 b6 b4 8a 37 cb |.....|...GA...7.| -00000010 d0 33 f4 e3 5d a1 62 3e 9a 0b fd a5 df a3 85 f2 |.3..].b>........| -00000020 2d 0d 9d 17 03 03 00 13 29 f1 b6 f3 3f db 71 5c |-.......)...?.q\| -00000030 fc af 5a 52 52 3f a8 a2 f5 03 57 |..ZRR?....W| +00000000 17 03 03 00 1e 1a 08 af cf 27 80 23 d8 94 0a fe |.........'.#....| +00000010 44 1c 78 f2 76 ac 9b 90 db 5c b6 8d c0 73 36 62 |D.x.v....\...s6b| +00000020 82 5d 8a 17 03 03 00 13 1a 2b 70 c9 14 dc c8 df |.].......+p.....| +00000030 e2 01 4e 69 e8 d7 13 0c 94 96 75 |..Ni......u| diff --git a/testdata/Server-TLSv13-CHACHA20-SHA256 b/testdata/Server-TLSv13-CHACHA20-SHA256 index 8c2dcef..760c597 100644 --- a/testdata/Server-TLSv13-CHACHA20-SHA256 +++ b/testdata/Server-TLSv13-CHACHA20-SHA256 @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 dc 01 00 00 d8 03 03 3a 67 df d1 61 |...........:g..a| -00000010 7e 99 9a 82 12 bc af 5e 66 ca 60 c4 a2 7f a6 a6 |~......^f.`.....| -00000020 71 b5 ff b7 e5 96 12 21 f0 92 85 20 e6 52 d4 99 |q......!... .R..| -00000030 4b 4a b0 43 53 5e d4 cd 8e d9 a9 f5 42 aa c4 64 |KJ.CS^......B..d| -00000040 58 65 ec 46 ae d9 d7 0d 62 de 21 2e 00 04 13 03 |Xe.F....b.!.....| +00000000 16 03 01 00 dc 01 00 00 d8 03 03 7f d6 02 2f 2d |............../-| +00000010 ed b1 3c f2 c2 48 5e d5 f4 57 c9 8c ba 81 36 52 |..<..H^..W....6R| +00000020 85 3e 79 de 79 cc 36 6a f9 88 89 20 db e1 89 a5 |.>y.y.6j... ....| +00000030 26 4c 2a 2d 0f 33 e2 3f 57 05 cc 74 cd 4c 96 be |&L*-.3.?W..t.L..| +00000040 91 94 ef 54 1c 1f 01 ef d4 36 75 2f 00 04 13 03 |...T.....6u/....| 00000050 00 ff 01 00 00 8b 00 00 00 0e 00 0c 00 00 09 31 |...............1| 00000060 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........| 00000070 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................| @@ -11,80 +11,90 @@ 00000090 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................| 000000a0 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 |...........+....| 000000b0 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 |..-.....3.&.$...| -000000c0 20 d0 26 0b b3 f0 56 30 0d 3b 71 2b db 78 60 62 | .&...V0.;q+.x`b| -000000d0 e9 d1 6b e0 12 95 27 be 40 ad 40 56 e1 f3 f6 c8 |..k...'.@.@V....| -000000e0 4f |O| +000000c0 20 30 20 a8 d0 3d ea df 38 aa 65 6f dd c8 25 13 | 0 ..=..8.eo..%.| +000000d0 03 c4 a2 24 d4 a8 0d 1a a6 65 32 75 83 ef 71 70 |...$.....e2u..qp| +000000e0 30 |0| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 e6 52 d4 99 |........... .R..| -00000030 4b 4a b0 43 53 5e d4 cd 8e d9 a9 f5 42 aa c4 64 |KJ.CS^......B..d| -00000040 58 65 ec 46 ae d9 d7 0d 62 de 21 2e 13 03 00 00 |Xe.F....b.!.....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 db e1 89 a5 |........... ....| +00000030 26 4c 2a 2d 0f 33 e2 3f 57 05 cc 74 cd 4c 96 be |&L*-.3.?W..t.L..| +00000040 91 94 ef 54 1c 1f 01 ef d4 36 75 2f 13 03 00 00 |...T.....6u/....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| 00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| -00000080 03 03 00 01 01 17 03 03 00 17 ea 45 ce e9 f5 10 |...........E....| -00000090 95 59 6d ed 7a 9c fb 59 92 aa 50 11 a8 59 93 03 |.Ym.z..Y..P..Y..| -000000a0 a1 17 03 03 02 6d 3c ce b8 65 ce 05 e3 17 9d ed |.....m<..e......| -000000b0 f7 79 65 08 6b 3d 04 bb 8d 60 0a 38 25 e7 4c a8 |.ye.k=...`.8%.L.| -000000c0 6b e1 ad 95 85 30 59 06 c0 0a 26 0e d6 1a 81 76 |k....0Y...&....v| -000000d0 40 55 6a 43 26 71 95 3b d5 73 1b 24 52 79 23 f9 |@UjC&q.;.s.$Ry#.| -000000e0 db 97 c7 8d a7 c3 03 b8 35 56 1a 4a cc 3d 76 88 |........5V.J.=v.| -000000f0 4f 23 75 67 c2 84 6d db fa cc 6c 77 94 f3 eb 95 |O#ug..m...lw....| -00000100 eb 27 f4 e2 03 41 b5 d7 e9 e1 7e 29 b4 82 01 e6 |.'...A....~)....| -00000110 3f 76 e4 1f ef cb 39 27 a5 3b 34 f1 d5 f2 26 c7 |?v....9'.;4...&.| -00000120 10 37 41 c1 08 81 00 9e 37 6d e4 0f a9 57 a7 1d |.7A.....7m...W..| -00000130 ea a8 19 23 32 a7 1a 04 8f c1 00 18 da 06 fd bc |...#2...........| -00000140 90 5d fb e7 03 f5 68 28 77 ed 47 5d 38 ec 66 6b |.]....h(w.G]8.fk| -00000150 0d c6 04 94 b9 af c0 a6 75 63 a4 8e bc 2e fd 52 |........uc.....R| -00000160 9b c3 f5 4f b0 23 4d ed 7b 56 23 f5 fc d6 0e 3d |...O.#M.{V#....=| -00000170 80 e2 31 24 79 33 6c 14 54 ef 09 b7 2d 3a 27 69 |..1$y3l.T...-:'i| -00000180 a7 18 9d cb 70 f6 bc 1a 87 61 f2 9b 37 62 d5 6e |....p....a..7b.n| -00000190 d1 32 b8 93 9b 83 48 48 27 f4 cb fa cd c4 66 92 |.2....HH'.....f.| -000001a0 5d 4e 20 4b 26 b5 27 26 19 60 83 80 3c 4d a7 0a |]N K&.'&.`...8R`...V.8?..| -00000300 cf 26 02 22 9e 48 30 4f eb 24 e3 94 df 09 bc 8f |.&.".H0O.$......| -00000310 51 27 5f 17 03 03 00 99 aa 1e 71 5d 27 7c 0a cc |Q'_.......q]'|..| -00000320 a6 16 22 c9 77 45 a7 c4 a4 e5 2d 2d ac c8 1b 2b |..".wE....--...+| -00000330 2e 48 03 a5 94 c4 0c 4d 52 e4 2e eb eb 46 36 1e |.H.....MR....F6.| -00000340 57 d8 bd 8a 9b 23 9c 27 fb ac 6f 37 2b 8f 70 69 |W....#.'..o7+.pi| -00000350 ed f4 83 56 54 fb 03 d6 58 b5 5e 0d b7 82 58 09 |...VT...X.^...X.| -00000360 32 ce a0 e4 d7 4d 41 ea 42 39 c3 0b 5e 25 29 50 |2....MA.B9..^%)P| -00000370 d0 5b b4 94 15 22 85 d6 52 19 38 a9 56 c4 81 2e |.[..."..R.8.V...| -00000380 ef 8d 3b b9 a0 9e c2 2f 24 53 4f 44 0e c1 a2 e3 |..;..../$SOD....| -00000390 59 d8 d4 44 a9 39 19 e2 b0 d0 ab c7 7a e0 68 e1 |Y..D.9......z.h.| -000003a0 a1 04 f0 7c 0a 12 e8 85 0a a6 6f ec 68 98 a6 98 |...|......o.h...| -000003b0 b9 17 03 03 00 35 08 a4 e6 55 41 66 f8 c3 d4 3c |.....5...UAf...<| -000003c0 17 6f 54 f3 d5 91 09 53 db b1 49 15 d5 0a 2d ec |.oT....S..I...-.| -000003d0 fc 88 68 76 a3 8d 8d d6 b1 4b af b5 be c8 69 0c |..hv.....K....i.| -000003e0 08 41 a3 9d 23 c1 87 5d 33 b9 a6 |.A..#..]3..| +00000080 03 03 00 01 01 17 03 03 00 17 f4 9a 6e ea 99 81 |............n...| +00000090 59 33 26 a6 6a 40 1d a9 59 67 31 35 09 b0 ed 15 |Y3&.j@..Yg15....| +000000a0 83 17 03 03 02 6d 56 59 69 c8 6d 45 c6 2f 58 3d |.....mVYi.mE./X=| +000000b0 db 87 dd 56 0f 2d d9 21 1b 97 94 77 f2 72 28 0d |...V.-.!...w.r(.| +000000c0 48 04 79 83 7e 2e a1 c9 30 56 d7 9c c8 0a 37 65 |H.y.~...0V....7e| +000000d0 b6 6b 31 ae 9a 5f ff 13 15 94 99 7c 92 e1 32 80 |.k1.._.....|..2.| +000000e0 28 3c ab b1 cc fe ba 92 3c 03 bb fd b8 55 f5 f2 |(<......<....U..| +000000f0 ba be 28 90 c5 7e 07 48 d5 45 b6 84 80 02 2d cd |..(..~.H.E....-.| +00000100 14 27 81 b6 4e b4 7f 5f 78 a3 26 c2 0c af 12 d6 |.'..N.._x.&.....| +00000110 e9 14 22 c8 ee 2e 5e fc c3 ca 8f 01 9b 37 6a b0 |.."...^......7j.| +00000120 f8 53 b2 8e 31 d7 1f 34 f6 35 ed 81 e0 f7 6f e1 |.S..1..4.5....o.| +00000130 90 cf 1a 4f 44 50 d5 cd 96 c3 4a 22 7a 54 28 bd |...ODP....J"zT(.| +00000140 88 56 5c 77 67 eb a6 78 5c 8b 82 39 03 13 55 c3 |.V\wg..x\..9..U.| +00000150 20 68 45 26 7a 96 fe 1c f9 33 14 1e 1d 8a 5f 51 | hE&z....3...._Q| +00000160 c3 2f 17 91 ba 37 63 49 e1 65 89 bf e8 a1 27 5f |./...7cI.e....'_| +00000170 fd 59 46 80 f7 9b 45 89 50 ab cd 9b aa b4 45 04 |.YF...E.P.....E.| +00000180 b5 1b 85 88 1c 59 ba b2 d6 50 0b fd 5c d9 59 83 |.....Y...P..\.Y.| +00000190 7a 6c 9b ad 27 33 a0 49 74 eb a6 cd a8 e8 4b d7 |zl..'3.It.....K.| +000001a0 71 ef 63 64 ff 24 a7 09 2e b7 f6 6f 9d 9f 75 84 |q.cd.$.....o..u.| +000001b0 97 0a 76 bf 72 ed ff e8 1a 49 ca 0b 0d f5 2c fb |..v.r....I....,.| +000001c0 69 c2 5c fe db 58 0a a1 9c d4 47 6a 8f a6 bd ec |i.\..X....Gj....| +000001d0 32 fb 40 6a 71 9d 19 37 e6 fd d4 3d fa 5b f3 53 |2.@jq..7...=.[.S| +000001e0 43 df d5 fa 53 29 40 70 77 a6 9e f7 03 7d 08 8b |C...S)@pw....}..| +000001f0 5a 71 73 e5 af 45 58 56 9f 56 ad 73 aa d2 b3 7c |Zqs..EXV.V.s...|| +00000200 92 99 c8 04 16 bf ca f2 81 2e 29 c3 79 21 f1 11 |..........).y!..| +00000210 92 f4 1d 34 24 73 e3 82 28 5a 31 70 45 da 8d 94 |...4$s..(Z1pE...| +00000220 38 75 31 bc f9 e5 2b 11 7e fd bc 19 fe 65 ad 53 |8u1...+.~....e.S| +00000230 e5 e6 17 b8 69 ea 54 fd 92 a9 41 7a 8c 7f da 4f |....i.T...Az...O| +00000240 ba f1 9f a2 e2 5b e7 7a 23 17 9e 29 95 7e 72 79 |.....[.z#..).~ry| +00000250 22 67 c5 68 0a 4d fb e9 64 61 3a 53 18 e7 dd 7d |"g.h.M..da:S...}| +00000260 5b 16 b9 fa 69 95 82 eb ee 1a 30 97 93 97 fc ee |[...i.....0.....| +00000270 9e 2b 22 64 08 7d 25 05 77 5e d7 bd 0e c3 9f a4 |.+"d.}%.w^......| +00000280 f4 bf 77 3d 56 84 c8 a1 10 1c e0 5b da 39 3d 2d |..w=V......[.9=-| +00000290 92 80 9a 07 b2 29 c5 ab e0 e1 1c ad ba 3e fa 4e |.....).......>.N| +000002a0 65 4f 31 63 de 33 6a 5c af e0 88 70 fc 6e 6a a2 |eO1c.3j\...p.nj.| +000002b0 ca da 2f 14 1d 4f 8c 7d 8d da 36 9b ea 7f 7e 79 |../..O.}..6...~y| +000002c0 9c dc 4a 3b 69 d9 50 31 bb f2 f8 8a 7f 6e 73 bc |..J;i.P1.....ns.| +000002d0 41 7c 3a 86 10 91 9b 3a 8e 3e c8 bc 6a c4 4d f2 |A|:....:.>..j.M.| +000002e0 45 87 49 49 d2 2f aa 4d d0 6f e9 1e a4 d6 06 63 |E.II./.M.o.....c| +000002f0 ac 90 ce 9a cb f7 97 55 2b e8 8c 8d 55 f6 32 26 |.......U+...U.2&| +00000300 55 d4 60 0e c0 0b da 0e ac c9 4c c3 95 03 54 d7 |U.`.......L...T.| +00000310 99 ec e1 17 03 03 00 99 c4 65 5e 67 e3 a1 98 d6 |.........e^g....| +00000320 f8 34 15 ed a9 55 80 c7 c0 e7 ca 67 f1 cb 58 e2 |.4...U.....g..X.| +00000330 6e 4d d4 9e 18 c3 37 c2 ff 72 bc cb 8e 6a 97 e2 |nM....7..r...j..| +00000340 b5 83 75 34 2a 75 9f 7f 8e 1e 47 e6 cd 53 85 c5 |..u4*u....G..S..| +00000350 69 b6 c0 46 9f 46 a8 09 6a 21 d5 af 36 d2 d0 ba |i..F.F..j!..6...| +00000360 65 0f da a5 af eb 3a 0c 8b 85 00 2a dd 11 71 28 |e.....:....*..q(| +00000370 5b 71 a9 df 69 20 8a d9 27 1e 4f 02 89 03 6f 27 |[q..i ..'.O...o'| +00000380 20 e1 37 17 69 c2 62 3e 46 39 43 2d 64 43 f3 cc | .7.i.b>F9C-dC..| +00000390 14 5f a0 73 06 bf 42 cb da 79 21 28 b1 a1 c4 de |._.s..B..y!(....| +000003a0 39 98 83 ad 3a d6 05 fd 58 b0 2c 97 bf 48 74 0e |9...:...X.,..Ht.| +000003b0 25 17 03 03 00 35 69 10 76 25 e3 9e 63 10 76 73 |%....5i.v%..c.vs| +000003c0 f5 fc 90 2c 95 e5 dc 29 79 a0 ed 0a 3a 72 58 38 |...,...)y...:rX8| +000003d0 bf b9 17 af 77 9f 05 92 af d4 a7 c7 d6 56 77 01 |....w........Vw.| +000003e0 da 94 31 d2 be be 95 e1 b1 95 75 17 03 03 00 93 |..1.......u.....| +000003f0 f9 fa a9 41 89 d3 e8 3b cb 11 63 76 56 fe 28 86 |...A...;..cvV.(.| +00000400 87 b0 0f d0 4d a8 fb 22 e9 89 f6 40 8a db 51 be |....M.."...@..Q.| +00000410 2c 9f 9c 39 f4 43 bc 1f b0 32 9b 9c 8e a6 6e e1 |,..9.C...2....n.| +00000420 f3 f7 f0 91 ed 56 6f 2d be 37 6b 3b ed f7 5b a6 |.....Vo-.7k;..[.| +00000430 d3 14 0a f9 58 b8 7b 37 fc 15 97 57 79 16 8c 0c |....X.{7...Wy...| +00000440 d2 93 7a 58 b8 48 51 f7 58 82 7d a0 4b e1 41 f6 |..zX.HQ.X.}.K.A.| +00000450 e1 44 12 1e ea 80 f3 b6 d0 72 ec 5c 84 01 6a b3 |.D.......r.\..j.| +00000460 f7 83 b5 47 22 0b e7 03 60 09 a7 23 23 20 5e 6b |...G"...`..## ^k| +00000470 f6 25 34 64 11 ad 46 90 db cb 13 f5 10 0a 75 e8 |.%4d..F.......u.| +00000480 3e c8 03 |>..| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 35 6a 0f 9f 87 b5 |..........5j....| -00000010 48 60 db 20 7b e9 4f ba fd bf e5 b8 fc 14 3e 2f |H`. {.O.......>/| -00000020 3e e8 58 ed d4 c5 e5 da cc 7d c4 32 d4 db c2 6a |>.X......}.2...j| -00000030 39 65 85 63 9c 92 7b 7c b3 6f 45 d8 c4 c3 5e 6c |9e.c..{|.oE...^l| +00000000 14 03 03 00 01 01 17 03 03 00 35 27 f0 39 68 fc |..........5'.9h.| +00000010 9f 6c a4 fd a7 cf 1f 25 67 54 3c e6 9e 7c 99 5a |.l.....%gT<..|.Z| +00000020 e9 b7 3c 0c f2 dc b6 22 36 0d 43 a3 ee 76 4b a9 |..<...."6.C..vK.| +00000030 6a cb b8 f6 8a c8 58 91 79 19 95 7c 83 a0 87 57 |j.....X.y..|...W| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e f5 83 ab 23 7e fa 4b 92 40 4b d3 |........#~.K.@K.| -00000010 dd 19 de a3 32 df 90 94 86 da da b6 58 97 5a 46 |....2.......X.ZF| -00000020 5f f5 b4 17 03 03 00 13 ef a9 5a 2c 54 8d 83 21 |_.........Z,T..!| -00000030 79 79 0e 9e a6 f2 4f f6 f8 36 63 |yy....O..6c| +00000000 17 03 03 00 1e d5 8a ef 04 f9 6c 27 62 0a f1 a4 |..........l'b...| +00000010 4b 7f e4 e4 ff 53 f3 61 20 b9 56 96 30 f9 06 c9 |K....S.a .V.0...| +00000020 cc 9c ed 17 03 03 00 13 4a 83 cd 86 98 97 20 45 |........J..... E| +00000030 ab 2f c5 72 15 f6 ed a8 8c 8c 0e |./.r.......| diff --git a/testdata/Server-TLSv13-ECDHE-ECDSA-AES b/testdata/Server-TLSv13-ECDHE-ECDSA-AES index 3cd1aaf..d2b0250 100644 --- a/testdata/Server-TLSv13-ECDHE-ECDSA-AES +++ b/testdata/Server-TLSv13-ECDHE-ECDSA-AES @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 dc 01 00 00 d8 03 03 9e ef 21 d2 56 |.............!.V| -00000010 3a 1d 59 80 d2 09 8b d6 5d df fc 37 e3 b6 8d 14 |:.Y.....]..7....| -00000020 05 7c da 8e 01 c9 cf 0e a8 ec 5b 20 19 22 52 01 |.|........[ ."R.| -00000030 0c d8 6e 8c 98 99 97 e5 ab b4 f9 5c fc 29 3f bd |..n........\.)?.| -00000040 a0 03 0d 05 78 24 dd 69 1d ad 26 39 00 04 13 01 |....x$.i..&9....| +00000000 16 03 01 00 dc 01 00 00 d8 03 03 90 bc cf 62 d0 |..............b.| +00000010 bc 89 6b 84 ad 18 87 f5 9c 96 0e 02 3f ae a5 4b |..k.........?..K| +00000020 80 70 f8 54 47 b1 78 03 48 4d 06 20 ae 9e 3c 17 |.p.TG.x.HM. ..<.| +00000030 1a c6 fa 52 84 da ea a9 9c 08 e7 10 65 3a 65 4e |...R........e:eN| +00000040 d1 65 61 40 bf 7c ee db d4 f2 73 ff 00 04 13 01 |.ea@.|....s.....| 00000050 00 ff 01 00 00 8b 00 00 00 0e 00 0c 00 00 09 31 |...............1| 00000060 32 37 2e 30 2e 30 2e 31 00 0b 00 04 03 00 01 02 |27.0.0.1........| 00000070 00 0a 00 0c 00 0a 00 1d 00 17 00 1e 00 19 00 18 |................| @@ -11,76 +11,86 @@ 00000090 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 |................| 000000a0 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 |...........+....| 000000b0 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 |..-.....3.&.$...| -000000c0 20 8e 46 85 be 7d 3e a5 f5 a0 41 a3 b0 d2 de 25 | .F..}>...A....%| -000000d0 ae 1c 30 b5 b2 33 83 81 e1 1c 72 75 73 59 ba b6 |..0..3....rusY..| -000000e0 0f |.| +000000c0 20 ad 11 a7 07 20 9c cb 33 96 f4 0d 78 a1 89 55 | .... ..3...x..U| +000000d0 6c af 70 f4 ac d6 cb d9 0d 1b 13 fa 50 de 68 17 |l.p.........P.h.| +000000e0 1d |.| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 19 22 52 01 |........... ."R.| -00000030 0c d8 6e 8c 98 99 97 e5 ab b4 f9 5c fc 29 3f bd |..n........\.)?.| -00000040 a0 03 0d 05 78 24 dd 69 1d ad 26 39 13 01 00 00 |....x$.i..&9....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 ae 9e 3c 17 |........... ..<.| +00000030 1a c6 fa 52 84 da ea a9 9c 08 e7 10 65 3a 65 4e |...R........e:eN| +00000040 d1 65 61 40 bf 7c ee db d4 f2 73 ff 13 01 00 00 |.ea@.|....s.....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| 00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| -00000080 03 03 00 01 01 17 03 03 00 17 7d 27 14 0c e1 76 |..........}'...v| -00000090 ac 23 c8 3f ff b6 f2 93 32 cd 6c 79 e9 c7 2d cd |.#.?....2.ly..-.| -000000a0 07 17 03 03 02 22 8d 6a df 72 09 4a 7f df 86 d9 |.....".j.r.J....| -000000b0 9a 0e e2 e6 d1 a3 86 7f ee d2 87 15 d0 79 c5 d6 |.............y..| -000000c0 79 d8 23 58 ff db 09 c2 0e cc b3 72 4f 51 28 3e |y.#X.......rOQ(>| -000000d0 0e 27 e4 dc b3 72 45 59 01 39 f9 da 5a b3 fe 61 |.'...rEY.9..Z..a| -000000e0 e4 27 2c ba e5 b3 59 29 70 b6 3d b0 63 fa 9b 5f |.',...Y)p.=.c.._| -000000f0 8f c0 4c 6e 31 fd 8f 55 1a c5 36 3b 00 91 14 89 |..Ln1..U..6;....| -00000100 87 3c 20 97 88 79 c7 05 c9 37 66 03 70 ea 60 25 |.< ..y...7f.p.`%| -00000110 93 d4 d1 a6 d8 b8 ad 9e 1a 5b 68 30 7b 14 ce e2 |.........[h0{...| -00000120 76 9d 7f d8 b5 5e 7d ad 5d 7b 63 be d1 16 14 60 |v....^}.]{c....`| -00000130 d1 03 21 a8 83 5d 5b 36 13 1a 1e 2d 97 79 eb ef |..!..][6...-.y..| -00000140 36 28 c5 5a 23 78 53 18 59 15 28 31 0f 8b 43 a2 |6(.Z#xS.Y.(1..C.| -00000150 e8 2d d9 87 5e 44 01 fc 94 04 32 2a 0b 8c fb 74 |.-..^D....2*...t| -00000160 c3 40 ac 51 38 1a 87 bc b9 58 8d 75 c2 cc ec 29 |.@.Q8....X.u...)| -00000170 2e 93 f7 9e 6a d1 0b 18 9f b0 d7 b7 4c 3f 8e 44 |....j.......L?.D| -00000180 0e 44 53 dc 64 24 85 35 b0 64 c1 0e 4e 8d ad 3d |.DS.d$.5.d..N..=| -00000190 10 91 2f 89 1d 59 94 06 0f 94 18 19 50 4d dd 9b |../..Y......PM..| -000001a0 ff dd 78 9f 0a 26 35 66 00 0e 13 a2 8b 83 df 3a |..x..&5f.......:| -000001b0 c0 ce c1 d7 8c 6a eb a7 b9 d9 68 cc 69 e9 07 9f |.....j....h.i...| -000001c0 0d 96 c7 3b 73 7e c3 76 96 9a 47 66 7c 66 a3 6b |...;s~.v..Gf|f.k| -000001d0 96 b1 9d 52 06 0a ed b5 87 8f ba ad 06 da 0b 1e |...R............| -000001e0 7c 1a f6 64 c9 6c 27 30 96 bc c2 1a c4 47 c5 e0 ||..d.l'0.....G..| -000001f0 76 1f 7c db aa b5 49 a0 ac aa d9 c7 68 7d 5f 51 |v.|...I.....h}_Q| -00000200 a1 dc 86 a1 01 d7 6a e3 b0 12 c1 d1 79 39 fe 6b |......j.....y9.k| -00000210 bb 6b a6 82 e1 8f f6 a5 a8 7c 06 db 74 4f 80 a8 |.k.......|..tO..| -00000220 ec 67 f5 a8 7a e8 2a 71 be ee 56 fd 39 80 2c ba |.g..z.*q..V.9.,.| -00000230 74 a2 76 83 6f 83 a6 f5 9d 5e f6 23 60 f5 88 e2 |t.v.o....^.#`...| -00000240 13 f2 7b ee cd f8 0f 2b 51 73 44 76 e2 56 32 db |..{....+QsDv.V2.| -00000250 e7 cd 86 6b f4 87 dd 14 47 0a a2 93 7c 53 21 84 |...k....G...|S!.| -00000260 78 f6 c3 f3 ff fc 82 1f d9 7c 4e f7 93 39 aa fc |x........|N..9..| -00000270 89 45 b0 7d 28 81 fe e9 98 94 33 49 0c 1f 3b 95 |.E.}(.....3I..;.| -00000280 68 10 98 c9 34 59 9f ce 60 1e 09 b3 bc 94 1e 16 |h...4Y..`.......| -00000290 cc 72 fd 4e 81 a3 57 fe c2 10 4f 45 3a bf 2b 48 |.r.N..W...OE:.+H| -000002a0 86 be 60 61 19 b7 30 ff c6 83 be 97 80 85 c3 fd |..`a..0.........| -000002b0 f0 cb ad a3 17 6e 66 cf 16 d8 48 51 d1 da 3d a2 |.....nf...HQ..=.| -000002c0 ad ff 36 10 09 ba 09 cf 17 03 03 00 a4 50 2a 1b |..6..........P*.| -000002d0 51 51 99 a8 cf 07 a8 19 ac b1 02 5c a9 16 e0 1c |QQ.........\....| -000002e0 24 97 de 28 e1 38 27 06 f5 b3 4e 99 6f f1 00 a5 |$..(.8'...N.o...| -000002f0 32 eb a4 a4 6e 8f db c2 71 e7 2a 89 da 35 00 7b |2...n...q.*..5.{| -00000300 47 8a 21 70 94 ec 9a 34 10 7b 37 79 f5 c3 8c 34 |G.!p...4.{7y...4| -00000310 c1 d6 b4 3f 36 50 43 16 1e a3 a6 8e a2 bc 16 f9 |...?6PC.........| -00000320 cd 03 2c b2 6c c6 45 87 d5 10 b9 26 12 0d 6e a1 |..,.l.E....&..n.| -00000330 0f 33 94 11 59 90 55 13 3c be c1 b3 e4 b7 43 25 |.3..Y.U.<.....C%| -00000340 5d 41 8d 78 73 21 84 30 d8 51 64 e2 43 48 9d 40 |]A.xs!.0.Qd.CH.@| -00000350 47 c4 6c b5 cf 7d 43 65 f1 5a ce e7 71 66 cd 98 |G.l..}Ce.Z..qf..| -00000360 60 90 10 f9 ad 15 e3 c8 16 d5 13 ba 3b 0b e1 38 |`...........;..8| -00000370 97 17 03 03 00 35 e0 02 c7 69 21 47 8f 99 34 90 |.....5...i!G..4.| -00000380 03 69 0b b5 9b e6 33 63 f0 d1 c0 7c 58 2f 95 e0 |.i....3c...|X/..| -00000390 3f 46 ed ee 1c f6 15 6d 62 d0 05 81 c3 cc 45 ac |?F.....mb.....E.| -000003a0 c6 9c 78 da aa cd d5 8b b1 6b 7d |..x......k}| +00000080 03 03 00 01 01 17 03 03 00 17 f1 16 14 8f 0a b5 |................| +00000090 92 fa 55 d7 fb 6c 33 04 ae c6 ed 3b 90 27 e9 ae |..U..l3....;.'..| +000000a0 e8 17 03 03 02 22 ca b1 97 19 9d da 2e 1d 12 f4 |....."..........| +000000b0 05 af 35 28 1e 85 9d 28 81 f0 5a 83 46 9c df f7 |..5(...(..Z.F...| +000000c0 58 2e 30 fa b9 07 00 cf fe 69 37 5e f2 75 a0 ef |X.0......i7^.u..| +000000d0 f3 ab 60 0b c5 09 72 bd b4 42 2f 45 24 3e 82 d0 |..`...r..B/E$>..| +000000e0 f1 a1 dd 3a de 6a b9 9d 85 2b 83 75 47 c9 d2 c3 |...:.j...+.uG...| +000000f0 25 91 85 c2 a1 97 6a 62 dd aa 19 11 94 e2 6b f9 |%.....jb......k.| +00000100 7d 5a bc 5e d4 64 bc 74 44 85 d1 7a eb 3a ef d5 |}Z.^.d.tD..z.:..| +00000110 96 f4 22 64 61 2b 79 77 ac 8b 61 69 cc eb ad fd |.."da+yw..ai....| +00000120 38 5e 61 74 d9 4f 70 82 06 3b 3e f8 a8 53 7c e8 |8^at.Op..;>..S|.| +00000130 9d 98 43 a1 af 86 ba d9 64 64 f0 e0 b0 8f 39 6b |..C.....dd....9k| +00000140 16 d6 92 09 8d 5b d0 34 f4 14 60 69 a0 28 73 3a |.....[.4..`i.(s:| +00000150 24 7f 81 4e 8b d1 50 49 1a c0 60 92 fd 02 47 6d |$..N..PI..`...Gm| +00000160 d8 97 62 b2 b4 57 8b d7 d1 b6 bf 19 40 cb 13 09 |..b..W......@...| +00000170 ef d6 55 66 39 88 29 e0 14 2d 06 98 d6 b6 bf a6 |..Uf9.)..-......| +00000180 04 10 47 d5 64 fe 38 69 db 33 a4 fc 12 de 83 5b |..G.d.8i.3.....[| +00000190 c9 8e 76 56 bc f7 dd ac 96 c6 a0 ed e5 43 0b 13 |..vV.........C..| +000001a0 1e 78 94 18 fd 57 50 79 08 91 18 aa 84 63 4e 46 |.x...WPy.....cNF| +000001b0 53 db e0 f3 9a 0b d6 13 20 36 aa 56 dd 7a 62 d9 |S....... 6.V.zb.| +000001c0 3f f6 bd 87 74 3c 86 d1 94 a1 04 79 a8 54 e4 8e |?...t<.....y.T..| +000001d0 11 d6 52 42 5c 4b 77 18 b9 d7 db f7 48 9a 69 e1 |..RB\Kw.....H.i.| +000001e0 2d b9 38 38 e4 e8 94 5e b1 7e 2c 81 96 6a a0 ed |-.88...^.~,..j..| +000001f0 bb 35 6a 8c 93 f2 6d 38 70 df 79 54 d9 45 c8 b8 |.5j...m8p.yT.E..| +00000200 b2 9c 0f 9f 70 34 8f ac b3 08 f5 3e b1 d2 5a d7 |....p4.....>..Z.| +00000210 7b ee f3 dc 9a d1 12 c3 77 24 76 9b bf 09 50 a7 |{.......w$v...P.| +00000220 3c ab 7f 1f 99 b5 02 8c ac 5e 85 cc 53 fd ca e0 |<........^..S...| +00000230 c7 e2 41 08 fd cb b0 79 0c 8b 02 4f 80 92 c2 cd |..A....y...O....| +00000240 6c a1 aa 75 d2 4c d1 25 40 7c 14 41 a7 15 20 a3 |l..u.L.%@|.A.. .| +00000250 a6 81 64 7c c0 c7 2d dd 82 84 ad 2a f4 06 f9 61 |..d|..-....*...a| +00000260 23 1c dd c6 ef 72 da 6b eb be 41 f0 b4 5f 9a 02 |#....r.k..A.._..| +00000270 ee a8 f3 bb 05 48 ec 50 a3 ff f3 94 bb d8 a9 6d |.....H.P.......m| +00000280 92 49 7c bf a1 eb 55 26 08 26 d3 80 d6 cb 05 ea |.I|...U&.&......| +00000290 d1 db bf 97 3d 10 ff 4e f6 05 33 23 68 95 31 42 |....=..N..3#h.1B| +000002a0 5a d5 30 61 79 c4 88 7f e1 be 28 ad 72 bb 78 36 |Z.0ay.....(.r.x6| +000002b0 ba bb 38 75 fb 97 33 b6 28 8c a2 f4 46 fe 37 d8 |..8u..3.(...F.7.| +000002c0 b0 67 63 97 c1 51 0c 61 17 03 03 00 a4 20 15 70 |.gc..Q.a..... .p| +000002d0 7a 69 b1 33 c2 e1 f5 9c 2b b2 06 1e 01 a6 7f 03 |zi.3....+.......| +000002e0 cd 00 13 02 3b 0c 2b 3f 85 d8 ed 6d 81 7e e9 b2 |....;.+?...m.~..| +000002f0 b6 be 7b 77 51 30 dd b5 fc 93 08 91 9e 46 e2 85 |..{wQ0.......F..| +00000300 74 3c 9a 04 26 86 b8 6c 98 99 57 7e 36 54 0d 90 |t<..&..l..W~6T..| +00000310 4c 55 65 77 69 59 b2 e5 5b a3 19 4a b0 72 3d 91 |LUewiY..[..J.r=.| +00000320 2e 5d 9b 8c 52 a1 e6 f5 22 c6 3c 0d 9b d8 9c b9 |.]..R...".<.....| +00000330 cb 90 51 bc 16 69 06 30 22 16 62 08 3b 3f 05 99 |..Q..i.0".b.;?..| +00000340 60 2a cc cf 29 f5 e1 b0 84 81 c8 63 00 d4 d4 13 |`*..)......c....| +00000350 b5 5d 4c 63 8a 60 3e 44 24 03 30 85 91 4c 3d f2 |.]Lc.`>D$.0..L=.| +00000360 2c c2 78 f2 c3 4c bb 90 60 0b 66 18 02 e7 5c 85 |,.x..L..`.f...\.| +00000370 19 17 03 03 00 35 49 76 5f ff 32 3a 09 7a 4b f2 |.....5Iv_.2:.zK.| +00000380 fe f3 38 b6 76 f4 12 f2 aa a3 ed b6 02 ab 0b b9 |..8.v...........| +00000390 3b 9d 00 51 f1 5c 96 23 6b 49 f8 32 9f 74 30 32 |;..Q.\.#kI.2.t02| +000003a0 4d af af ef d5 55 2c ff 2b a0 45 17 03 03 00 93 |M....U,.+.E.....| +000003b0 6e e0 6a f9 44 af c0 af 95 ab 1e ff fd 97 38 f5 |n.j.D.........8.| +000003c0 7b 24 70 da e2 4e 8b dc 9b 49 84 fe 73 0a b0 7e |{$p..N...I..s..~| +000003d0 cf 14 f7 8a 67 e7 74 bd ee 82 93 c6 27 a2 bd 1e |....g.t.....'...| +000003e0 cb 71 06 af 65 dd f0 d9 91 81 b0 f8 21 34 48 d1 |.q..e.......!4H.| +000003f0 c4 e0 e3 19 a8 b4 48 b7 3a be 52 e5 7c a8 a3 c2 |......H.:.R.|...| +00000400 08 6c ac 66 4d 36 cf a1 9d 1f 72 c5 09 20 db 05 |.l.fM6....r.. ..| +00000410 e5 0a 44 af 4a d8 32 38 19 7d 28 e3 05 23 99 66 |..D.J.28.}(..#.f| +00000420 f6 ad 77 02 7e 00 67 c1 71 58 b9 89 3c 93 15 95 |..w.~.g.qX..<...| +00000430 ee 38 e2 ea c0 73 fe da e4 75 6d 38 ca 54 0b bf |.8...s...um8.T..| +00000440 f0 af 86 |...| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 35 6e 4d 7c 75 a9 |..........5nM|u.| -00000010 04 4b 9b f9 07 25 d0 c2 d9 fd f8 8b fc 22 1e 54 |.K...%.......".T| -00000020 ff d1 62 6b 2a 3c f8 87 a3 2e 27 44 eb cc 34 8f |..bk*<....'D..4.| -00000030 a6 66 f0 a0 46 c2 6b b9 82 01 3d 85 f8 58 46 9b |.f..F.k...=..XF.| +00000000 14 03 03 00 01 01 17 03 03 00 35 23 02 12 13 f1 |..........5#....| +00000010 db fa 70 c0 92 85 8a d3 fa 80 1b 5c a6 22 ff 20 |..p........\.". | +00000020 5d bf 1d 61 58 34 c0 48 6f e1 26 a6 bf bc 76 c7 |]..aX4.Ho.&...v.| +00000030 8b da ee 54 64 30 c4 5c b1 61 67 82 29 bb 3f 4b |...Td0.\.ag.).?K| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e c6 81 97 11 f3 86 a0 0f e6 7c 91 |..............|.| -00000010 3f 97 8c db 4a 55 95 32 be 19 3d 37 36 1e 68 e4 |?...JU.2..=76.h.| -00000020 81 7b 29 17 03 03 00 13 7e 90 5f 1f 4a 65 c0 fd |.{).....~._.Je..| -00000030 60 96 48 bb 22 b1 08 86 41 75 80 |`.H."...Au.| +00000000 17 03 03 00 1e 95 c0 53 e2 37 94 09 83 1e 7e 23 |.......S.7....~#| +00000010 dc 9f 02 5e 91 19 b6 f9 72 0d 38 3f 25 ae b2 5f |...^....r.8?%.._| +00000020 4b f2 78 17 03 03 00 13 d2 ad 73 d6 f3 21 ab 7c |K.x.......s..!.|| +00000030 02 dd 63 ff cf d7 34 ca 71 3d 70 |..c...4.q=p| diff --git a/testdata/Server-TLSv13-ExportKeyingMaterial b/testdata/Server-TLSv13-ExportKeyingMaterial index ce9d5f1..078739c 100644 --- a/testdata/Server-TLSv13-ExportKeyingMaterial +++ b/testdata/Server-TLSv13-ExportKeyingMaterial @@ -1,9 +1,9 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 e4 01 00 00 e0 03 03 ec cb e2 b2 15 |................| -00000010 21 48 2d fd fb 7d ed 7b 44 07 8f f5 d2 e9 31 64 |!H-..}.{D.....1d| -00000020 88 d8 38 6d 2e be e8 12 1d de 1e 20 05 c9 22 74 |..8m....... .."t| -00000030 db c2 68 b3 88 31 3f 9e 8c 65 23 9b 90 58 03 3b |..h..1?..e#..X.;| -00000040 39 7b 61 a9 9f 7c 1e 61 79 dc 4d 29 00 08 13 02 |9{a..|.ay.M)....| +00000000 16 03 01 00 e4 01 00 00 e0 03 03 40 53 50 a3 f5 |...........@SP..| +00000010 3a 20 4f 16 ef 9c a4 1c a3 10 1d 93 cb ea 1f 69 |: O............i| +00000020 6b aa 50 ae a8 01 7e 65 d9 7b 5c 20 8c 9b cc d4 |k.P...~e.{\ ....| +00000030 6b 07 4d 1e d9 69 d2 d8 a0 a0 d5 b7 75 d8 e3 d8 |k.M..i......u...| +00000040 c4 ac f7 d2 6f e5 f5 8f 46 9a bf 85 00 08 13 02 |....o...F.......| 00000050 13 03 13 01 00 ff 01 00 00 8f 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| @@ -11,82 +11,93 @@ 00000090 00 0d 00 1e 00 1c 04 03 05 03 06 03 08 07 08 08 |................| 000000a0 08 09 08 0a 08 0b 08 04 08 05 08 06 04 01 05 01 |................| 000000b0 06 01 00 2b 00 03 02 03 04 00 2d 00 02 01 01 00 |...+......-.....| -000000c0 33 00 26 00 24 00 1d 00 20 8b 1b 67 4d 4f 49 83 |3.&.$... ..gMOI.| -000000d0 bd 4c b6 42 07 4e 3b 64 c9 90 64 16 ec 3c f8 9e |.L.B.N;d..d..<..| -000000e0 05 2f 55 11 50 ab b9 1e 54 |./U.P...T| +000000c0 33 00 26 00 24 00 1d 00 20 81 67 45 ec b4 08 4d |3.&.$... .gE...M| +000000d0 a6 50 79 b4 d4 a9 d1 35 51 2b db 8d b7 e7 7c 3c |.Py....5Q+....|<| +000000e0 fd 0f 4b 47 87 e1 bb fb 2d |..KG....-| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 05 c9 22 74 |........... .."t| -00000030 db c2 68 b3 88 31 3f 9e 8c 65 23 9b 90 58 03 3b |..h..1?..e#..X.;| -00000040 39 7b 61 a9 9f 7c 1e 61 79 dc 4d 29 13 02 00 00 |9{a..|.ay.M)....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 8c 9b cc d4 |........... ....| +00000030 6b 07 4d 1e d9 69 d2 d8 a0 a0 d5 b7 75 d8 e3 d8 |k.M..i......u...| +00000040 c4 ac f7 d2 6f e5 f5 8f 46 9a bf 85 13 02 00 00 |....o...F.......| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| 00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| -00000080 03 03 00 01 01 17 03 03 00 17 f1 1b 1c 50 d3 90 |.............P..| -00000090 2b 14 76 bc 0a 21 94 58 1f 9b f1 0a 38 3f f2 54 |+.v..!.X....8?.T| -000000a0 fb 17 03 03 02 6d 45 81 6d 58 83 be 84 b1 29 47 |.....mE.mX....)G| -000000b0 59 99 33 5e 2e d9 7d 86 57 4c 80 74 cf 11 9f b7 |Y.3^..}.WL.t....| -000000c0 0f 06 b2 bb b2 1d fa 18 6b f8 7a b1 e1 12 b5 15 |........k.z.....| -000000d0 ea 3e 3b df e7 c6 5f 82 4e a5 4a 3f 3d 39 61 76 |.>;..._.N.J?=9av| -000000e0 93 0e 7c b0 2d da 75 e3 ee 91 3a f6 0f d1 a7 9a |..|.-.u...:.....| -000000f0 b7 4a 7d 93 e5 05 8b 77 01 d2 21 16 94 b6 4d 60 |.J}....w..!...M`| -00000100 ed de e6 2e 87 23 eb 4b 74 8e 5b 4f 25 67 7b cf |.....#.Kt.[O%g{.| -00000110 1a 43 c1 67 31 8e ca 15 f8 b9 a2 ac cc 58 b7 67 |.C.g1........X.g| -00000120 93 c9 4a 79 9b 45 36 29 1d 80 c0 0c 0a be 38 c3 |..Jy.E6)......8.| -00000130 97 90 2d 20 33 be 71 06 59 6d e1 b8 2f 92 f5 67 |..- 3.q.Ym../..g| -00000140 fe e4 39 ad 86 98 c2 96 ab 89 a5 64 3b 83 33 85 |..9........d;.3.| -00000150 a9 0a 08 89 7b 5a 95 92 b6 ab fe 0c 42 c9 a7 c2 |....{Z......B...| -00000160 5a 49 45 7a ac 44 d9 43 8c 13 b7 cf ac e2 22 ec |ZIEz.D.C......".| -00000170 63 da eb b6 02 4e d7 51 cb 64 e5 9b 14 4d 0c 9e |c....N.Q.d...M..| -00000180 62 b5 48 97 01 8f 44 29 6b 86 0f 0b 96 40 2f 0d |b.H...D)k....@/.| -00000190 61 98 7a e4 bc 3d 11 4b 30 41 8f e1 b4 d1 3f 7f |a.z..=.K0A....?.| -000001a0 3c b0 a7 03 f8 ad b3 61 98 3c 2a 44 5a 5c ef 2f |<......a.<*DZ\./| -000001b0 44 f5 90 92 85 7e e1 72 cf a7 a9 b8 da 88 d5 31 |D....~.r.......1| -000001c0 40 3b 06 d2 fc 35 86 a7 fc 5b 08 0d 97 55 41 3b |@;...5...[...UA;| -000001d0 1c 31 04 90 aa bb e6 76 ff 2e 9a 68 76 d7 2d 41 |.1.....v...hv.-A| -000001e0 09 55 21 d7 7c 40 a1 65 2a 81 d3 f7 4e 0b b3 ae |.U!.|@.e*...N...| -000001f0 31 d3 a4 1e 92 85 65 9b 02 73 46 93 d8 bd 4a 60 |1.....e..sF...J`| -00000200 b8 93 03 70 2f 76 dd 85 d8 d6 eb 34 b8 1a 7e dd |...p/v.....4..~.| -00000210 7b af b1 aa ca 80 18 74 29 c3 c5 4a d9 3e f8 2f |{......t)..J.>./| -00000220 9c 7b ea ca 87 37 44 fe b3 fb 9d 6e 76 fb 19 72 |.{...7D....nv..r| -00000230 17 6f 1d 13 ff 55 3a 8f ce c9 c3 a6 fc 4a 34 da |.o...U:......J4.| -00000240 27 76 6d 1f 56 18 bb b7 16 a5 68 a2 06 74 d6 ad |'vm.V.....h..t..| -00000250 aa bb 79 09 06 22 cd c0 b8 12 b4 03 a0 32 bb 90 |..y..".......2..| -00000260 f6 a3 64 53 f5 f2 6c 2c b0 5d 4e 2d 35 bf 3d 02 |..dS..l,.]N-5.=.| -00000270 49 3a b2 95 99 ac 4e 6b 89 38 c0 d1 e5 ea 39 a1 |I:....Nk.8....9.| -00000280 bf 9f b5 dc be cb b6 e7 cd 88 f6 29 ad a0 a0 2e |...........)....| -00000290 a2 c8 1a 93 97 d3 f4 c0 4a 38 7e 15 87 7e 4d ed |........J8~..~M.| -000002a0 b8 fa 5f 59 2d 1c 6d fe 22 42 11 5b 02 87 d6 31 |.._Y-.m."B.[...1| -000002b0 cb 3c 0f 93 fe 97 d1 48 4c d4 ff b0 32 e5 e9 3a |.<.....HL...2..:| -000002c0 49 5c a8 77 a8 af c9 e9 76 2a 53 b3 1f 1c 29 25 |I\.w....v*S...)%| -000002d0 9f 94 b1 80 e2 f9 6c 53 c7 b2 bb a1 39 f7 42 3d |......lS....9.B=| -000002e0 b5 ea 02 2b ab 71 b6 18 58 2c 51 b2 34 25 64 90 |...+.q..X,Q.4%d.| -000002f0 34 90 09 22 91 a1 41 75 fb a7 b3 80 17 d7 ca 89 |4.."..Au........| -00000300 2a d3 8a 32 39 8b 31 5e 31 3e e2 57 ab 0b 67 3b |*..29.1^1>.W..g;| -00000310 32 cf 7a 17 03 03 00 99 bc 5a 9c 2b 4a 62 b4 20 |2.z......Z.+Jb. | -00000320 bb 2e cd 7e 5d 5c ce 57 1a 6c 2e 1b 95 47 c0 0c |...~]\.W.l...G..| -00000330 a3 7f 0c 0d b8 58 0e 11 4c 08 75 23 8e 78 21 17 |.....X..L.u#.x!.| -00000340 fa 30 60 e4 9b 1d d1 17 3a 3d 2f f7 48 7f bc c2 |.0`.....:=/.H...| -00000350 35 fe 98 22 29 24 16 76 ae 41 f7 fb 97 ac 8b b1 |5..")$.v.A......| -00000360 b5 80 8a bb 44 b9 aa cc fc a4 d7 55 1c 7d a2 97 |....D......U.}..| -00000370 14 29 1e d6 53 aa 2c 63 08 00 80 f8 2f 85 ee 73 |.)..S.,c..../..s| -00000380 ef 87 fa cd d1 50 10 6c 6c ad 44 c0 22 81 a0 9e |.....P.ll.D."...| -00000390 6a 2f 7a 29 77 6d 22 4e 25 95 23 55 f5 9c e6 78 |j/z)wm"N%.#U...x| -000003a0 5e ba c0 7c 18 ab 77 58 b2 9e da 1e 0f fe 50 23 |^..|..wX......P#| -000003b0 8b 17 03 03 00 45 e9 b2 27 9b 47 5e fa 8f f2 ad |.....E..'.G^....| -000003c0 0e 70 e5 19 90 dc 68 4a 74 e7 7e ef 65 94 9e 6c |.p....hJt.~.e..l| -000003d0 f6 5d 9c 28 f1 07 5e ed 14 d0 2c f9 ae 71 a8 77 |.].(..^...,..q.w| -000003e0 13 5d 51 58 2b cd 98 e9 47 f0 99 56 df de d7 ff |.]QX+...G..V....| -000003f0 36 99 4a c3 57 5b d9 28 14 12 c4 |6.J.W[.(...| +00000080 03 03 00 01 01 17 03 03 00 17 d2 bf e0 2f ba e9 |............./..| +00000090 84 f5 8b 96 93 ac de 94 3b 92 03 ca db 43 f4 55 |........;....C.U| +000000a0 12 17 03 03 02 6d 54 36 b6 78 fb bf 9f 36 02 78 |.....mT6.x...6.x| +000000b0 b3 92 50 c9 ab 85 b6 57 69 18 10 c1 fe da d4 05 |..P....Wi.......| +000000c0 89 db 62 bd 83 b0 82 38 29 5f ce 53 88 2d f2 cd |..b....8)_.S.-..| +000000d0 6a d7 1d c0 c5 03 e7 e4 4b ec eb bf 95 8e d5 9b |j.......K.......| +000000e0 65 45 09 52 ef 29 60 7b 22 61 6f ca 1b 3d 30 a4 |eE.R.)`{"ao..=0.| +000000f0 c4 c4 06 55 39 5e 3a ef a2 62 61 35 6c c4 fc 8b |...U9^:..ba5l...| +00000100 19 dc c1 b0 8d dd ba d0 9e 87 65 1c 8d 73 6c 82 |..........e..sl.| +00000110 e4 45 e9 a9 53 94 20 ba 19 7e 4e 7e fb 14 dc 5d |.E..S. ..~N~...]| +00000120 86 19 0b fe f8 9c 7e 61 8e 17 e6 59 12 c2 e0 6a |......~a...Y...j| +00000130 52 c0 25 05 30 c8 f7 d6 54 69 15 ca c9 8e 96 1d |R.%.0...Ti......| +00000140 42 55 1f 9a 9b 03 95 af 74 05 be 5e 51 35 8b 1f |BU......t..^Q5..| +00000150 24 0a 13 03 90 fc c0 c4 22 c3 f0 8a f2 60 a8 ff |$......."....`..| +00000160 7b 04 48 10 3e 42 da e5 c2 7b 72 9c e1 d6 b5 56 |{.H.>B...{r....V| +00000170 f7 69 ce 46 67 33 e4 d3 e5 61 43 b2 57 e8 b2 43 |.i.Fg3...aC.W..C| +00000180 84 ac 75 15 d1 cb 70 53 99 1c 29 9a 21 bb c0 d3 |..u...pS..).!...| +00000190 66 8a be 16 b1 67 1b 60 d3 2f c6 a3 7e f3 3b 4f |f....g.`./..~.;O| +000001a0 78 4d ec 1f 9f 6d 46 1c 43 2f 50 ad 44 75 93 49 |xM...mF.C/P.Du.I| +000001b0 e2 29 c4 be aa 22 51 f1 17 1a 20 97 8a 23 06 2c |.)..."Q... ..#.,| +000001c0 93 b6 9d 11 5a 55 34 d9 f1 a4 c6 5b 84 f6 bb 0c |....ZU4....[....| +000001d0 a0 7c a2 25 47 df a6 22 c8 df e5 ae 74 1c f3 db |.|.%G.."....t...| +000001e0 3c 04 6f fa 86 76 c9 be ae 2a e0 64 65 d2 8f 9a |<.o..v...*.de...| +000001f0 7b a2 38 4d 74 8d 44 ad ef c1 12 0b ca 64 6c b5 |{.8Mt.D......dl.| +00000200 13 03 2c b4 6a e8 78 ba 57 d5 ef 9a d1 1d 7e 92 |..,.j.x.W.....~.| +00000210 58 52 78 c2 c5 e2 f8 e9 2d 06 28 88 19 d4 19 7b |XRx.....-.(....{| +00000220 7f 41 ea ed f9 9e 14 f1 9b 3f dc f7 bc 35 20 ca |.A.......?...5 .| +00000230 fc 8f b8 df ee ef 83 50 c4 41 91 ae 83 4b bd d1 |.......P.A...K..| +00000240 00 e1 3f 70 5d cb 40 a6 77 70 cd 9a 09 5b 05 14 |..?p].@.wp...[..| +00000250 83 b9 7c 8d 1c e1 7f 6e 41 1a b9 8c 70 2a 95 01 |..|....nA...p*..| +00000260 ef 19 0c 59 7d 47 b4 64 7b 91 5e 9b 02 c5 ed ee |...Y}G.d{.^.....| +00000270 d4 9b ad 12 70 d1 d9 6b 02 26 b5 48 4e 23 bb 61 |....p..k.&.HN#.a| +00000280 ae c7 82 74 a9 68 59 b1 66 07 b8 e3 93 0f 2c 9f |...t.hY.f.....,.| +00000290 8d 8d f1 e8 3f b7 2c 64 90 4f 88 7f 41 78 66 ba |....?.,d.O..Axf.| +000002a0 26 eb 1c 8b 70 47 f5 78 cb fe 66 34 6f 74 b1 98 |&...pG.x..f4ot..| +000002b0 ca 12 f5 91 8c cb 15 85 eb 77 ad af 76 f8 3f 3f |.........w..v.??| +000002c0 cb 86 82 fe 1e 78 1e d3 16 c2 b7 e6 a6 2b a0 6c |.....x.......+.l| +000002d0 da 99 3f dd 3b 0b 10 3b 16 bd d9 4f 45 c3 12 b5 |..?.;..;...OE...| +000002e0 14 1b 53 33 56 c1 f4 7c 4a 47 b9 c2 b0 bd 4e 78 |..S3V..|JG....Nx| +000002f0 e1 6f 76 05 d1 e3 af 01 f8 b4 e6 23 12 11 cf 43 |.ov........#...C| +00000300 91 9d eb be d8 6b 9c d2 fd 3b b5 3b 8c 52 4e 12 |.....k...;.;.RN.| +00000310 df 26 42 17 03 03 00 99 fc fb 50 ba e0 83 07 bb |.&B.......P.....| +00000320 13 4f 7c 1e 5f 35 e5 2f b9 c0 40 cb 51 9a 38 a6 |.O|._5./..@.Q.8.| +00000330 bf 1a 22 e3 ea 8b 5e 30 e0 b2 2b 40 aa 76 62 bc |.."...^0..+@.vb.| +00000340 c5 e3 3c f3 2a 10 2e 35 58 2b 5e c1 56 da 78 a9 |..<.*..5X+^.V.x.| +00000350 57 b5 46 1f d8 ad 59 3c 5a b8 37 be 66 86 d0 ad |W.F...Y..]_V| +000003b0 05 17 03 03 00 45 81 1e e7 bb e8 81 f4 41 12 af |.....E.......A..| +000003c0 fb f0 8f bd d0 d6 b3 10 a5 1e d6 0c f7 aa 01 15 |................| +000003d0 9d 30 5b 65 e1 fd 3e 72 3d 43 62 21 02 0e ec da |.0[e..>r=Cb!....| +000003e0 ec 74 2c e2 22 84 c9 90 18 71 f8 ef db 3f 05 d6 |.t,."....q...?..| +000003f0 91 09 46 c2 5c 2b f7 03 39 2b 3e 17 03 03 00 a3 |..F.\+..9+>.....| +00000400 53 cc 75 04 8c c5 25 70 1f 4b 9c 04 92 af 1a 3f |S.u...%p.K.....?| +00000410 26 1e 00 98 fa e3 c2 25 63 ca d4 03 fd 6c 94 a0 |&......%c....l..| +00000420 0a 87 5f 68 63 52 72 25 69 3f 21 66 f6 a6 00 2a |.._hcRr%i?!f...*| +00000430 25 e3 1e 95 f3 bd a8 22 bc 9a 74 f0 41 5d b1 30 |%......"..t.A].0| +00000440 36 ff 13 09 d9 69 7f 16 35 11 34 0e 65 2e e7 52 |6....i..5.4.e..R| +00000450 b4 6e a1 dc 06 fe a3 3e 3b eb 79 fe d0 e1 e8 76 |.n.....>;.y....v| +00000460 e2 0e 49 78 c3 cf c5 31 ce 7f 9b d6 c5 6d 3f 7b |..Ix...1.....m?{| +00000470 79 9a 5d a7 c3 3b 58 eb a2 43 55 c6 42 7a a8 34 |y.]..;X..CU.Bz.4| +00000480 6e c9 47 aa 5e 44 4a bd 4b 89 28 ab ac 5a 95 dc |n.G.^DJ.K.(..Z..| +00000490 96 99 28 dc 29 04 10 f3 8c 49 45 b7 29 69 3d 9e |..(.)....IE.)i=.| +000004a0 dd fe 4a |..J| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 b3 84 9c d1 43 |..........E....C| -00000010 0e da 02 25 e8 03 3a 8f 21 86 d1 76 3e be 62 06 |...%..:.!..v>.b.| -00000020 18 f5 09 d7 e2 85 eb be c5 c0 e7 93 dc 52 37 5c |.............R7\| -00000030 ae dd 0c 20 49 68 15 f7 4a 9e 2a ed af 31 96 8a |... Ih..J.*..1..| -00000040 9f f0 63 a3 dc 99 c9 59 62 b7 39 59 0d 9d fc 8d |..c....Yb.9Y....| +00000000 14 03 03 00 01 01 17 03 03 00 45 3f e6 f9 73 13 |..........E?..s.| +00000010 98 fa c1 e1 84 7a 0c 10 eb 9a bf 2b df c1 44 26 |.....z.....+..D&| +00000020 36 1a 95 02 b4 12 67 7c e2 7d f3 1e 54 79 7b 51 |6.....g|.}..Ty{Q| +00000030 e6 13 94 cb 00 cc 25 fb 6e 8a 35 4e f0 f0 95 34 |......%.n.5N...4| +00000040 53 fd 7e 37 d2 a8 0a 71 a7 2d 8d 58 2e ae 27 34 |S.~7...q.-.X..'4| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e 07 ad 4c 9d 83 85 be d5 a3 61 70 |.......L......ap| -00000010 bc 7a a7 40 17 70 d5 97 18 80 1c 9b 52 95 97 de |.z.@.p......R...| -00000020 46 6c ef 17 03 03 00 13 58 d1 0f aa 71 be 1a c9 |Fl......X...q...| -00000030 f3 ef 38 13 a6 5b ff 84 99 09 81 |..8..[.....| +00000000 17 03 03 00 1e 07 34 2c 55 6a c5 14 e7 0a 51 94 |......4,Uj....Q.| +00000010 74 ad e1 c0 4d e8 1c 3e ad 3e 8e 71 e5 60 9c d8 |t...M..>.>.q.`..| +00000020 6a 44 ac 17 03 03 00 13 09 9e 97 ff 3d b8 f1 a6 |jD..........=...| +00000030 5d f9 8f b0 65 93 31 6b 9d 81 76 |]...e.1k..v| diff --git a/testdata/Server-TLSv13-HelloRetryRequest b/testdata/Server-TLSv13-HelloRetryRequest index 1fff456..96a5488 100644 --- a/testdata/Server-TLSv13-HelloRetryRequest +++ b/testdata/Server-TLSv13-HelloRetryRequest @@ -1,119 +1,129 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 da 01 00 00 d6 03 03 4f 56 85 14 53 |...........OV..S| -00000010 57 df bb 75 5b c6 86 bd cd a2 68 c6 87 ad 2e b5 |W..u[.....h.....| -00000020 07 ef ce 55 c1 d3 12 35 aa a1 a7 20 d1 1e 60 1e |...U...5... ..`.| -00000030 a7 c7 2a e0 f8 ba 46 c3 f0 bf a7 d5 1c 73 68 98 |..*...F......sh.| -00000040 9f 8c 7f 4e 15 9b 59 23 84 a0 f3 fc 00 08 13 02 |...N..Y#........| +00000000 16 03 01 00 da 01 00 00 d6 03 03 ab e7 6d 22 09 |.............m".| +00000010 bf 08 ef a1 7e 7c 8d ea fd a5 39 43 62 84 67 a8 |....~|....9Cb.g.| +00000020 df b1 a1 3a d7 37 dc 0d ef 27 54 20 20 f3 5b 41 |...:.7...'T .[A| +00000030 67 3e 30 d8 8e 2d 0f a1 c2 df 86 48 8c 05 bb d7 |g>0..-.....H....| +00000040 73 30 80 86 cf 2c 85 d1 2a fe 21 36 00 08 13 02 |s0...,..*.!6....| 00000050 13 03 13 01 00 ff 01 00 00 85 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 06 00 04 00 1d 00 17 00 16 |................| 00000080 00 00 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 |................| 00000090 06 03 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 |................| 000000a0 08 06 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 |.........+......| -000000b0 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 20 9d |-.....3.&.$... .| -000000c0 63 d4 5c 11 f7 4b d3 49 41 e2 1d ca 2c 67 68 c1 |c.\..K.IA...,gh.| -000000d0 7d 9c ad 2b 77 34 d8 77 82 1c ea e4 26 51 48 |}..+w4.w....&QH| +000000b0 2d 00 02 01 01 00 33 00 26 00 24 00 1d 00 20 1a |-.....3.&.$... .| +000000c0 ae 88 dd 6c 7c 4c fb e5 65 ca 8e 63 a1 97 4c d3 |...l|L..e..c..L.| +000000d0 33 ff 00 95 db 0b ce 67 62 26 78 27 52 f0 5c |3......gb&x'R.\| >>> Flow 2 (server to client) 00000000 16 03 03 00 58 02 00 00 54 03 03 cf 21 ad 74 e5 |....X...T...!.t.| 00000010 9a 61 11 be 1d 8c 02 1e 65 b8 91 c2 a2 11 16 7a |.a......e......z| -00000020 bb 8c 5e 07 9e 09 e2 c8 a8 33 9c 20 d1 1e 60 1e |..^......3. ..`.| -00000030 a7 c7 2a e0 f8 ba 46 c3 f0 bf a7 d5 1c 73 68 98 |..*...F......sh.| -00000040 9f 8c 7f 4e 15 9b 59 23 84 a0 f3 fc 13 02 00 00 |...N..Y#........| +00000020 bb 8c 5e 07 9e 09 e2 c8 a8 33 9c 20 20 f3 5b 41 |..^......3. .[A| +00000030 67 3e 30 d8 8e 2d 0f a1 c2 df 86 48 8c 05 bb d7 |g>0..-.....H....| +00000040 73 30 80 86 cf 2c 85 d1 2a fe 21 36 13 02 00 00 |s0...,..*.!6....| 00000050 0c 00 2b 00 02 03 04 00 33 00 02 00 17 14 03 03 |..+.....3.......| 00000060 00 01 01 |...| >>> Flow 3 (client to server) 00000000 14 03 03 00 01 01 16 03 03 00 fb 01 00 00 f7 03 |................| -00000010 03 4f 56 85 14 53 57 df bb 75 5b c6 86 bd cd a2 |.OV..SW..u[.....| -00000020 68 c6 87 ad 2e b5 07 ef ce 55 c1 d3 12 35 aa a1 |h........U...5..| -00000030 a7 20 d1 1e 60 1e a7 c7 2a e0 f8 ba 46 c3 f0 bf |. ..`...*...F...| -00000040 a7 d5 1c 73 68 98 9f 8c 7f 4e 15 9b 59 23 84 a0 |...sh....N..Y#..| -00000050 f3 fc 00 08 13 02 13 03 13 01 00 ff 01 00 00 a6 |................| +00000010 03 ab e7 6d 22 09 bf 08 ef a1 7e 7c 8d ea fd a5 |...m".....~|....| +00000020 39 43 62 84 67 a8 df b1 a1 3a d7 37 dc 0d ef 27 |9Cb.g....:.7...'| +00000030 54 20 20 f3 5b 41 67 3e 30 d8 8e 2d 0f a1 c2 df |T .[Ag>0..-....| +00000040 86 48 8c 05 bb d7 73 30 80 86 cf 2c 85 d1 2a fe |.H....s0...,..*.| +00000050 21 36 00 08 13 02 13 03 13 01 00 ff 01 00 00 a6 |!6..............| 00000060 00 00 00 0e 00 0c 00 00 09 31 32 37 2e 30 2e 30 |.........127.0.0| 00000070 2e 31 00 0b 00 04 03 00 01 02 00 0a 00 06 00 04 |.1..............| 00000080 00 1d 00 17 00 16 00 00 00 17 00 00 00 0d 00 1e |................| 00000090 00 1c 04 03 05 03 06 03 08 07 08 08 08 09 08 0a |................| 000000a0 08 0b 08 04 08 05 08 06 04 01 05 01 06 01 00 2b |...............+| 000000b0 00 03 02 03 04 00 2d 00 02 01 01 00 33 00 47 00 |......-.....3.G.| -000000c0 45 00 17 00 41 04 ab 06 ea de b6 17 db 32 11 c8 |E...A........2..| -000000d0 ed 1e 8b 03 c2 a8 87 46 65 e8 3e 25 34 84 52 dc |.......Fe.>%4.R.| -000000e0 22 4a 67 ce 89 00 04 ce 46 47 0a b8 b0 2d a0 0a |"Jg.....FG...-..| -000000f0 d1 91 e1 73 34 91 77 52 c6 1a 75 8d 70 ad 57 53 |...s4.wR..u.p.WS| -00000100 75 47 81 67 e7 3f |uG.g.?| +000000c0 45 00 17 00 41 04 22 3e 1f 4b 0f 2e f4 af bf 6c |E...A.">.K.....l| +000000d0 d7 35 69 72 23 00 3f 16 6a 8e 00 3e 2b 8f f8 60 |.5ir#.?.j..>+..`| +000000e0 17 e8 e8 80 f3 28 5d cd 1f f7 99 88 59 01 a5 d7 |.....(].....Y...| +000000f0 34 d0 d9 38 5b 73 3e d6 3c c8 9e 39 8f 45 d0 37 |4..8[s>.<..9.E.7| +00000100 aa 5b 8e 59 2f 0c |.[.Y/.| >>> Flow 4 (server to client) 00000000 16 03 03 00 9b 02 00 00 97 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 20 d1 1e 60 1e |........... ..`.| -00000030 a7 c7 2a e0 f8 ba 46 c3 f0 bf a7 d5 1c 73 68 98 |..*...F......sh.| -00000040 9f 8c 7f 4e 15 9b 59 23 84 a0 f3 fc 13 02 00 00 |...N..Y#........| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 20 f3 5b 41 |........... .[A| +00000030 67 3e 30 d8 8e 2d 0f a1 c2 df 86 48 8c 05 bb d7 |g>0..-.....H....| +00000040 73 30 80 86 cf 2c 85 d1 2a fe 21 36 13 02 00 00 |s0...,..*.!6....| 00000050 4f 00 2b 00 02 03 04 00 33 00 45 00 17 00 41 04 |O.+.....3.E...A.| 00000060 1e 18 37 ef 0d 19 51 88 35 75 71 b5 e5 54 5b 12 |..7...Q.5uq..T[.| 00000070 2e 8f 09 67 fd a7 24 20 3e b2 56 1c ce 97 28 5e |...g..$ >.V...(^| 00000080 f8 2b 2d 4f 9e f1 07 9f 6c 4b 5b 83 56 e2 32 42 |.+-O....lK[.V.2B| 00000090 e9 58 b6 d7 49 a6 b5 68 1a 41 03 56 6b dc 5a 89 |.X..I..h.A.Vk.Z.| -000000a0 17 03 03 00 17 62 79 8a 7b 99 e8 48 ab 97 44 7c |.....by.{..H..D|| -000000b0 e1 79 b8 53 a0 a8 d8 38 87 ab 3b f6 17 03 03 02 |.y.S...8..;.....| -000000c0 6d 19 53 7e 2f b0 c9 42 b1 0d e1 f9 d3 5b ae 1b |m.S~/..B.....[..| -000000d0 31 66 13 32 05 c8 af f9 c7 86 78 64 ff a6 1b 78 |1f.2......xd...x| -000000e0 6c 5e 4f c4 ec 21 9f 61 b2 9b 66 6f d1 97 cc 09 |l^O..!.a..fo....| -000000f0 ab da 91 be 8b a2 00 9b 60 ae 7b 9d f1 a4 6d 7e |........`.{...m~| -00000100 27 3d 18 d7 79 8c 7a bb 5a 7e a7 e6 dd 95 06 ec |'=..y.z.Z~......| -00000110 fc 9e 11 45 a8 f8 46 7e cb 50 5f 24 b8 b9 b9 10 |...E..F~.P_$....| -00000120 ae 78 0e 42 a6 28 ea 3f 0e f3 ca f2 10 94 84 a9 |.x.B.(.?........| -00000130 a7 a2 85 25 ce a7 1c 2b 5a 6e 61 06 b6 19 c3 1a |...%...+Zna.....| -00000140 5e 42 2b e6 cc 7e 7e 82 30 69 e8 5d e5 01 21 16 |^B+..~~.0i.]..!.| -00000150 6f e1 e1 f7 1c 77 06 d2 9d 25 80 a4 6d a5 ae 2e |o....w...%..m...| -00000160 cd 9a e3 56 34 81 13 51 63 85 f4 45 26 ae 6a 88 |...V4..Qc..E&.j.| -00000170 4c 3c 00 ec 1b 1a 43 24 c0 e3 79 b3 45 3d c8 9a |L<....C$..y.E=..| -00000180 9e 91 69 9b cd 62 43 06 18 71 b6 78 d7 b0 1b d7 |..i..bC..q.x....| -00000190 a0 42 30 f9 bb 4e f1 90 e0 f0 11 6a c5 03 6e 47 |.B0..N.....j..nG| -000001a0 3c de 86 e2 0b a6 4f 6b 15 cc 5d 40 51 0f 26 9a |<.....Ok..]@Q.&.| -000001b0 5b 16 20 2f d2 d4 58 56 28 23 77 a6 a0 dd cb e5 |[. /..XV(#w.....| -000001c0 e8 c6 5c 52 2b 26 f6 07 85 c1 39 97 e4 7e c8 b2 |..\R+&....9..~..| -000001d0 c7 79 c0 fa 81 64 7a 53 9b 72 ef 81 69 12 a3 ba |.y...dzS.r..i...| -000001e0 e9 40 6f a5 a0 9f 4d e7 0f 3a a3 1a d5 df 32 ec |.@o...M..:....2.| -000001f0 64 28 40 3a b4 87 ea ca 9a 13 60 38 18 23 7b f0 |d(@:......`8.#{.| -00000200 d8 f0 0f 44 ae c8 ce 2c 8d 48 fd 33 78 f1 28 4a |...D...,.H.3x.(J| -00000210 5f db f5 ce 51 a1 9d 80 a2 fd aa 46 3a ff 8f 26 |_...Q......F:..&| -00000220 c2 4a 8a 31 7c f6 a9 2c 60 49 f2 36 2a 86 ec db |.J.1|..,`I.6*...| -00000230 4d 9f 26 cd d8 67 ac b3 6a 63 c0 b6 77 56 cd ed |M.&..g..jc..wV..| -00000240 e0 ba ae 45 d4 c8 fb 62 6a 52 46 32 28 49 76 b0 |...E...bjRF2(Iv.| -00000250 5c f7 17 49 a2 06 cb ee 49 e8 5c 0c 11 b1 4b 55 |\..I....I.\...KU| -00000260 d4 c4 e2 3e 31 ed 0c eb 84 40 c2 20 3c 40 a6 26 |...>1....@. <@.&| -00000270 db e7 80 f8 4d 2e 4c fc 67 eb d8 ae 89 70 7f c4 |....M.L.g....p..| -00000280 18 40 1e 82 df 17 da 49 e0 9c 72 ab 34 04 39 a5 |.@.....I..r.4.9.| -00000290 1a a3 2b 0b 73 b6 32 89 b5 d1 e4 74 95 f3 58 b0 |..+.s.2....t..X.| -000002a0 7a 7b d4 c6 e9 7e 68 86 09 5f 94 12 bd fd 84 1f |z{...~h.._......| -000002b0 fa 7d 56 cf 40 1a 02 04 90 16 5c da 2f b1 de 15 |.}V.@.....\./...| -000002c0 31 d9 59 62 3b fe 8e 99 ec 79 51 44 49 0f a5 a1 |1.Yb;....yQDI...| -000002d0 1f 6d ac e5 b1 93 39 af 50 b4 5e 04 29 31 d7 b8 |.m....9.P.^.)1..| -000002e0 1a e2 58 37 90 e8 a7 a7 1a f3 bb 14 a6 d2 27 b7 |..X7..........'.| -000002f0 71 58 f0 0a 94 63 23 4d d5 4b 22 fd e6 0e 23 9e |qX...c#M.K"...#.| -00000300 90 b8 cb d4 10 c7 49 32 7c 8e 49 cd 17 c9 7f 38 |......I2|.I....8| -00000310 2b e1 38 84 57 25 02 72 a6 d3 f7 28 b2 e3 85 c4 |+.8.W%.r...(....| -00000320 72 ca e1 b2 84 6a 86 4c 78 d4 8e 1c 60 09 17 03 |r....j.Lx...`...| -00000330 03 00 99 14 16 3c 69 12 63 89 2f c4 58 1c 95 97 |.....d....n.| +00000150 6e dc 43 87 4d bd 26 1e c1 0a 5f 8b a7 2d 8c cc |n.C.M.&..._..-..| +00000160 94 25 60 59 33 ef 38 93 a3 d1 63 5b 9b ae 10 2f |.%`Y3.8...c[.../| +00000170 63 af 27 32 35 b8 db 75 e8 e6 19 09 8e f3 b1 4d |c.'25..u.......M| +00000180 b6 8a 83 6c 88 41 3a d9 1e da ad b3 06 3b ba 41 |...l.A:......;.A| +00000190 f9 fd 23 46 a5 9e 8a 11 31 d9 f6 8c 56 32 eb a8 |..#F....1...V2..| +000001a0 7f c1 0a d1 78 c7 46 cb b5 f7 3f 7e 56 39 75 45 |....x.F...?~V9uE| +000001b0 5b fb 84 b4 16 28 14 4c 45 9d f4 8d 65 38 5d 93 |[....(.LE...e8].| +000001c0 53 ab 5e ae bc 9c 73 4b cb d2 85 cd d8 a7 00 67 |S.^...sK.......g| +000001d0 f8 0c c3 81 0b fc 5b f8 74 4f 6a 2f 3c 57 68 22 |......[.tOj/......,b..x.L| +00000450 99 cb 38 ad ef a4 00 42 51 04 3b b8 4b 06 89 ee |..8....BQ.;.K...| +00000460 33 48 3e c7 72 9c de f2 e4 23 5f 76 33 db cb 92 |3H>.r....#_v3...| +00000470 92 b0 90 ea 25 4f 05 68 b3 8e 59 9c 36 8b 1b b0 |....%O.h..Y.6...| +00000480 02 73 96 bf e6 fe 80 2c 32 26 ac 91 33 af cd 86 |.s.....,2&..3...| +00000490 57 cc de d3 a2 eb 9e 43 ea 5b d4 56 f0 1b 95 3b |W......C.[.V...;| +000004a0 a1 da 33 21 cb 0b 48 92 35 73 0c 33 01 c4 6d 79 |..3!..H.5s.3..my| +000004b0 7a bb 39 a1 32 3a 85 18 9f 91 a7 e1 42 0a |z.9.2:......B.| >>> Flow 5 (client to server) -00000000 17 03 03 00 45 ad 18 70 16 81 4f b3 f5 a2 f3 53 |....E..p..O....S| -00000010 37 84 03 37 89 be ad c2 fe 02 da 67 a6 b6 fd 1a |7..7.......g....| -00000020 9b d4 8b de 8e 80 ab 7d e1 81 c2 de 31 be 07 04 |.......}....1...| -00000030 5d 57 59 7a 05 ea f5 7d aa 7f 8f 23 6c 00 89 4a |]WYz...}...#l..J| -00000040 1f 07 8a a3 e8 c7 9b 0e 8a 8b |..........| +00000000 17 03 03 00 45 b7 e2 1a d9 6a aa c1 54 e3 9a 42 |....E....j..T..B| +00000010 11 cd 13 c2 dc 5a b0 fa e3 62 09 a1 4b 9a a1 b3 |.....Z...b..K...| +00000020 84 7b 63 29 69 47 5c bf ca c6 36 2f ae e0 2f 6e |.{c)iG\...6/../n| +00000030 1b 42 c4 c9 65 17 e8 bd c4 97 5b e4 5f 27 86 d2 |.B..e.....[._'..| +00000040 1f 97 1f 68 9a 1f ee 09 04 82 |...h......| >>> Flow 6 (server to client) -00000000 17 03 03 00 1e 22 ef 90 a4 90 32 71 67 2a f9 ca |....."....2qg*..| -00000010 8c 5d 36 51 05 2d 10 a7 72 e8 95 34 69 0e f2 06 |.]6Q.-..r..4i...| -00000020 16 15 7e 17 03 03 00 13 15 3b 8b e7 c9 e1 cd c1 |..~......;......| -00000030 93 f1 34 62 a1 82 9a 91 0b 7c 3a |..4b.....|:| +00000000 17 03 03 00 1e ed fb 39 62 34 b9 5d a3 db 30 fe |.......9b4.]..0.| +00000010 ed 5e 92 77 44 7e fb 77 84 5e 54 6b 11 7c 27 99 |.^.wD~.w.^Tk.|'.| +00000020 80 66 a5 17 03 03 00 13 9b 78 92 3b 84 3d cb 69 |.f.......x.;.=.i| +00000030 86 2b d1 db cc 91 d3 00 55 43 2f |.+......UC/| diff --git a/testdata/Server-TLSv13-IssueTicket b/testdata/Server-TLSv13-IssueTicket new file mode 100644 index 0000000..1a8b384 --- /dev/null +++ b/testdata/Server-TLSv13-IssueTicket @@ -0,0 +1,103 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 e4 01 00 00 e0 03 03 26 46 4d 2d 7d |...........&FM-}| +00000010 5c dc ef fb 2b 8b f7 15 4b ba 8b 1a 26 da f6 9b |\...+...K...&...| +00000020 e6 3c c6 8c a0 f9 6c 60 f6 11 81 20 53 f8 00 fb |.<....l`... S...| +00000030 8b be ff 98 74 c9 d9 3d aa 40 4d 0e 05 96 f9 30 |....t..=.@M....0| +00000040 d6 f5 7b f1 bc 31 18 30 5f 24 03 a8 00 08 13 02 |..{..1.0_$......| +00000050 13 03 13 01 00 ff 01 00 00 8f 00 00 00 0e 00 0c |................| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| +00000080 00 19 00 18 00 23 00 00 00 16 00 00 00 17 00 00 |.....#..........| +00000090 00 0d 00 1e 00 1c 04 03 05 03 06 03 08 07 08 08 |................| +000000a0 08 09 08 0a 08 0b 08 04 08 05 08 06 04 01 05 01 |................| +000000b0 06 01 00 2b 00 03 02 03 04 00 2d 00 02 01 01 00 |...+......-.....| +000000c0 33 00 26 00 24 00 1d 00 20 b6 ad 52 4d 37 b1 eb |3.&.$... ..RM7..| +000000d0 1e 57 2b a8 5d e7 43 b9 a0 98 47 8b ff 40 a9 14 |.W+.].C...G..@..| +000000e0 9e 23 26 c7 47 a7 cb f6 47 |.#&.G...G| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 53 f8 00 fb |........... S...| +00000030 8b be ff 98 74 c9 d9 3d aa 40 4d 0e 05 96 f9 30 |....t..=.@M....0| +00000040 d6 f5 7b f1 bc 31 18 30 5f 24 03 a8 13 02 00 00 |..{..1.0_$......| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 b9 4a b7 2a b5 48 |...........J.*.H| +00000090 bc ba 18 3e 1a 99 bd fa 0d fc 2a 5d 52 93 b5 97 |...>......*]R...| +000000a0 5c 17 03 03 02 6d 30 8f 19 00 1c fa 90 a7 6c 08 |\....m0.......l.| +000000b0 6f 5a e8 d8 e0 3e 81 30 f1 11 85 7e 35 47 b3 d0 |oZ...>.0...~5G..| +000000c0 48 95 ce af e6 2f fc 22 0a 5f 56 bd 1c 7d 8c 48 |H..../."._V..}.H| +000000d0 f3 ad b7 5b 2e 4b d8 d1 16 46 7a ba c3 71 02 3c |...[.K...Fz..q.<| +000000e0 54 75 b8 92 02 b1 b9 cc 15 c4 fa d1 2d ba 0d 9f |Tu..........-...| +000000f0 65 a1 78 0d 8f d6 1c be fa 42 1f d7 48 1a 8e 11 |e.x......B..H...| +00000100 64 4c 12 ef bd 65 9d b4 31 18 4f 2a 77 c4 1f 1b |dL...e..1.O*w...| +00000110 90 90 37 ea 59 aa 05 bf 45 04 fb e8 a9 3f f9 11 |..7.Y...E....?..| +00000120 f9 25 95 fc d4 8e 5c 84 19 f3 4c e4 05 c3 db 8c |.%....\...L.....| +00000130 07 f9 b3 b0 6d ce d3 14 aa 78 17 f9 2f 14 1b bc |....m....x../...| +00000140 4b 23 29 f1 2e 7c 3b 71 9b cf 0b d5 02 48 5e ce |K#)..|;q.....H^.| +00000150 9c 43 dd 29 17 42 0b 9d 0e a7 a7 93 e1 37 cc 97 |.C.).B.......7..| +00000160 df 0f 2d d3 f7 01 08 34 5f bd ad 12 12 6f 87 56 |..-....4_....o.V| +00000170 4e 99 16 f6 6e 61 5c f0 0e 30 0b d5 38 37 70 97 |N...na\..0..87p.| +00000180 ed e1 79 74 00 cc 55 be a9 32 7d 72 50 27 42 c9 |..yt..U..2}rP'B.| +00000190 99 64 ea bd 3e c8 4f b0 cc 31 ef 10 57 9f c1 02 |.d..>.O..1..W...| +000001a0 ca db f6 d6 53 94 d2 83 57 71 e9 06 7a dd 46 3b |....S...Wq..z.F;| +000001b0 b1 2c f8 87 1c 8b 8a 04 05 2f d0 32 54 9a 80 33 |.,......./.2T..3| +000001c0 b2 95 e5 62 71 e9 1a 3b ea 64 ee 81 29 c4 ea 53 |...bq..;.d..)..S| +000001d0 de 6b 27 b1 04 48 27 ba 7f 28 aa 9e 15 82 49 a9 |.k'..H'..(....I.| +000001e0 43 3d d3 33 82 50 a9 4e 38 ed 8d f8 e8 0e 11 ab |C=.3.P.N8.......| +000001f0 8b 6e 63 e9 c1 cf ee 45 4f a0 62 e7 2e 00 b8 61 |.nc....EO.b....a| +00000200 2a 29 5e 04 e2 81 11 b3 64 f3 b5 b0 ec ae 63 6c |*)^.....d.....cl| +00000210 27 56 ac f2 09 d3 a4 c8 18 4a 55 c8 ff fd 8b 42 |'V.......JU....B| +00000220 63 00 3a c9 25 40 b7 8d 17 f3 95 76 7b 01 cf bc |c.:.%@.....v{...| +00000230 9b a7 4c 03 4a 7d 3c 54 16 8f 84 ca 2f 1a f5 12 |..L.J}.| +00000330 f1 1e 11 c7 72 f5 65 b4 03 38 f2 48 16 a9 20 31 |....r.e..8.H.. 1| +00000340 c2 52 4c 33 92 70 45 91 19 f4 5c 08 77 49 af 25 |.RL3.pE...\.wI.%| +00000350 8e b5 bd 3f e3 93 dc e6 26 b0 8a 30 69 f1 86 17 |...?....&..0i...| +00000360 72 31 66 87 2f d4 42 70 4c e0 58 61 6e b2 38 0b |r1f./.BpL.Xan.8.| +00000370 13 ad 32 83 14 81 d4 af dd 9f 17 09 af 3b 64 78 |..2..........;dx| +00000380 c8 63 da 05 70 47 54 f9 c6 f5 f8 e6 97 e1 d0 87 |.c..pGT.........| +00000390 aa 5a e7 5b d3 a3 b3 ce be 56 30 e7 4d ad 43 bd |.Z.[.....V0.M.C.| +000003a0 5e 88 9a ef 34 78 06 eb 6f 8f 04 39 47 6a c2 3d |^...4x..o..9Gj.=| +000003b0 ba 17 03 03 00 45 89 37 db 55 b2 9e 6e 31 a0 9b |.....E.7.U..n1..| +000003c0 97 51 27 13 b0 7e 2e 85 4a 9b 72 b0 fe c5 e4 12 |.Q'..~..J.r.....| +000003d0 fd ea 29 d5 bb ae a2 24 e2 0d b4 cd 28 92 5c 88 |..)....$....(.\.| +000003e0 98 b4 e4 8e a8 46 c6 a0 0e c0 73 ba f7 62 3a 43 |.....F....s..b:C| +000003f0 1a c7 d3 4b 5b 47 7b 44 8b bb 7b 17 03 03 00 a3 |...K[G{D..{.....| +00000400 f1 5f 26 2b 1c 99 6d 1d 55 bc a7 2f ae c8 3a ed |._&+..m.U../..:.| +00000410 5a 16 3c 83 e8 d4 18 7e 84 fa ba 21 0f 30 b0 05 |Z.<....~...!.0..| +00000420 ec 45 92 53 80 7a 78 d4 9e e0 02 e9 11 74 a6 e2 |.E.S.zx......t..| +00000430 87 7e 43 26 c0 18 46 6b 28 e5 f4 92 89 5c 0d b5 |.~C&..Fk(....\..| +00000440 8d 90 55 4f 3b 0a f4 ba 1b fb 60 54 46 23 03 28 |..UO;.....`TF#.(| +00000450 6e c3 3b 4d 69 62 65 d5 4e 95 46 c9 f2 8d ae f9 |n.;Mibe.N.F.....| +00000460 53 a6 65 da ca 1e b7 f7 80 a8 97 97 ca 38 14 a5 |S.e..........8..| +00000470 34 81 e2 68 12 fb 45 90 c2 f9 c9 70 fe 28 b8 b5 |4..h..E....p.(..| +00000480 6c 1d 2c d4 07 69 1d eb 1f 4b df ba ca 5e e0 65 |l.,..i...K...^.e| +00000490 ad ee be 41 02 78 23 19 b9 ea 1d 65 20 43 0e 3d |...A.x#....e C.=| +000004a0 11 03 b3 |...| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 45 88 0d 45 f0 61 |..........E..E.a| +00000010 a3 d0 7b 33 9e 17 c5 c3 6f 8f f6 67 b8 03 65 5f |..{3....o..g..e_| +00000020 bf 94 e9 1d 58 eb 4d 12 68 8a 96 42 6f 08 08 b8 |....X.M.h..Bo...| +00000030 be ce 2c f0 c4 00 d4 22 e6 94 09 05 f2 a7 77 0f |..,...."......w.| +00000040 48 e9 5c 6c e9 b2 9a d6 ff 48 2b 08 9a ea 23 1a |H.\l.....H+...#.| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e 2a f5 09 7f 7b 5f 8a ff d3 cc 16 |.....*...{_.....| +00000010 d1 d3 38 76 5c f7 e3 ee f3 72 b5 92 8e f9 bf 37 |..8v\....r.....7| +00000020 7e dc 61 17 03 03 00 13 66 ba 9e ff 3a 9f 25 74 |~.a.....f...:.%t| +00000030 44 35 70 f4 cf ae dc b0 3c 28 44 |D5p.....<(D| diff --git a/testdata/Server-TLSv13-IssueTicketPreDisable b/testdata/Server-TLSv13-IssueTicketPreDisable new file mode 100644 index 0000000..ed3f55a --- /dev/null +++ b/testdata/Server-TLSv13-IssueTicketPreDisable @@ -0,0 +1,103 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 e4 01 00 00 e0 03 03 4a ec fd a5 c5 |...........J....| +00000010 ef 77 88 18 25 40 50 c8 24 60 45 85 e6 3e 55 86 |.w..%@P.$`E..>U.| +00000020 d1 ea 0e 5f 0b d1 66 7a 1c 90 ad 20 a3 63 23 52 |..._..fz... .c#R| +00000030 d8 c8 f6 79 20 04 8d 07 eb 2f 78 a3 1a 0d 58 af |...y ..../x...X.| +00000040 70 3c ef 4b 90 43 42 67 57 39 bf fa 00 08 13 02 |p<.K.CBgW9......| +00000050 13 03 13 01 00 ff 01 00 00 8f 00 00 00 0e 00 0c |................| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| +00000080 00 19 00 18 00 23 00 00 00 16 00 00 00 17 00 00 |.....#..........| +00000090 00 0d 00 1e 00 1c 04 03 05 03 06 03 08 07 08 08 |................| +000000a0 08 09 08 0a 08 0b 08 04 08 05 08 06 04 01 05 01 |................| +000000b0 06 01 00 2b 00 03 02 03 04 00 2d 00 02 01 01 00 |...+......-.....| +000000c0 33 00 26 00 24 00 1d 00 20 23 61 a3 8f f6 41 bc |3.&.$... #a...A.| +000000d0 08 52 ef 97 01 0e ba 95 f4 33 b6 8d 15 d0 ff ed |.R.......3......| +000000e0 a4 d1 84 23 3b f3 ef 3a 2d |...#;..:-| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 a3 63 23 52 |........... .c#R| +00000030 d8 c8 f6 79 20 04 8d 07 eb 2f 78 a3 1a 0d 58 af |...y ..../x...X.| +00000040 70 3c ef 4b 90 43 42 67 57 39 bf fa 13 02 00 00 |p<.K.CBgW9......| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 80 72 6f c7 2d 22 |...........ro.-"| +00000090 40 51 35 22 9b 97 51 33 60 fa c1 2c d3 0f 25 6a |@Q5"..Q3`..,..%j| +000000a0 4d 17 03 03 02 6d f3 3a 89 a6 9a 1f 2b f4 1a 48 |M....m.:....+..H| +000000b0 e9 bd ef da 9d 7b f0 6c 61 ca 21 82 1b 30 6f 60 |.....{.la.!..0o`| +000000c0 01 72 24 4f ea 66 ef 3b 35 b7 ae d9 45 c9 2a 00 |.r$O.f.;5...E.*.| +000000d0 99 da 50 ae ac 8f 77 a4 e7 b4 de f6 c8 dd b8 f3 |..P...w.........| +000000e0 bc cb 7c c8 cf 2f 63 61 66 16 7f 7f 61 2c 52 c9 |..|../caf...a,R.| +000000f0 8f af 0d e2 55 d7 a4 ed 7e 12 b0 0d ec e9 a4 47 |....U...~......G| +00000100 03 e6 fa d1 6b 2f e3 22 a8 f5 c5 e6 e6 78 63 a1 |....k/.".....xc.| +00000110 b7 00 98 04 e8 fd ff 67 62 dc 89 f4 0d 97 93 4e |.......gb......N| +00000120 85 ec e0 68 f0 04 94 02 49 95 f9 08 99 30 37 d8 |...h....I....07.| +00000130 ad 31 52 1d 1d 23 09 9e 7a 97 45 d3 95 2f 03 2d |.1R..#..z.E../.-| +00000140 64 f7 5b cb 53 f5 89 ef 45 90 72 38 33 aa 62 1e |d.[.S...E.r83.b.| +00000150 b8 3e 00 b2 7f 89 0b 3a e6 17 93 ac 19 7d 09 bd |.>.....:.....}..| +00000160 ca ca 83 87 33 f9 f0 63 f3 4e 7b 47 56 0d cb b5 |....3..c.N{GV...| +00000170 90 81 88 cd 02 78 bf 96 64 c0 ba 58 b5 06 18 04 |.....x..d..X....| +00000180 d9 14 8b 92 74 81 76 b3 23 d9 ad 4c 8b 73 61 36 |....t.v.#..L.sa6| +00000190 64 d9 b6 2e 98 7e 7f d4 14 6e 4c a4 b4 71 35 5b |d....~...nL..q5[| +000001a0 4d e7 10 a8 b3 bb 40 5d 9f de 67 bb ae 0c 97 8b |M.....@]..g.....| +000001b0 25 cf cb aa 13 44 9f cb ff 2e 1c 54 ca de cb 13 |%....D.....T....| +000001c0 f9 c7 0e 49 9d d0 b3 d5 0e 29 3c 50 b9 2b 56 1f |...I.....).1{........| +00000430 06 d6 19 09 44 c2 8f 7c ef bd ea 06 a6 8f 38 42 |....D..|......8B| +00000440 1b a1 be 12 1f 72 38 49 96 e4 74 2f 42 19 2c 55 |.....r8I..t/B.,U| +00000450 16 45 a9 e0 a8 76 6d 36 68 84 fd 0e 40 44 df 93 |.E...vm6h...@D..| +00000460 ae 12 79 78 4c ec 72 16 fe 54 c0 14 ac 47 ed 88 |..yxL.r..T...G..| +00000470 78 98 c8 cb ca 49 de fd 12 e1 96 d0 c7 89 ee 89 |x....I..........| +00000480 df d5 71 98 8a 42 7e 3e 24 5a 64 44 19 96 cc e4 |..q..B~>$ZdD....| +00000490 9c f2 8e 52 8b 1d 39 15 af c7 cd 54 d9 84 01 ef |...R..9....T....| +000004a0 fc ac 54 |..T| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 45 a6 fe 34 ee 91 |..........E..4..| +00000010 b0 c5 35 55 cf 70 3f d4 5d 06 76 28 c3 b5 a9 26 |..5U.p?.].v(...&| +00000020 38 18 ed bb bb bb be e7 4b 6d 61 3e 8f 65 e9 e3 |8.......Kma>.e..| +00000030 b6 4f 5d 50 46 2c 81 a8 fd 47 aa c8 c4 e8 f9 a4 |.O]PF,...G......| +00000040 e7 c7 f0 c5 fa e3 9c b7 be 09 c9 37 c1 7f 1c ff |...........7....| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e 1b 5e f2 20 7a 1c 27 36 12 e7 9a |......^. z.'6...| +00000010 05 9f fb 12 38 df 1d a0 3e 90 9a 42 4d ca 3a 54 |....8...>..BM.:T| +00000020 db 2c f0 17 03 03 00 13 b1 e4 a6 eb ad 47 ba 4c |.,...........G.L| +00000030 38 2c ee ee f9 a5 8a 41 2f ce 3d |8,.....A/.=| diff --git a/testdata/Server-TLSv13-P256 b/testdata/Server-TLSv13-P256 index 1143e9f..86085b0 100644 --- a/testdata/Server-TLSv13-P256 +++ b/testdata/Server-TLSv13-P256 @@ -1,95 +1,106 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 f9 01 00 00 f5 03 03 3c c9 61 89 62 |...........<.a.b| -00000010 10 c6 ba 45 a5 af c4 8a 02 27 58 b8 74 de 6f 8b |...E.....'X.t.o.| -00000020 62 27 b1 71 54 09 c4 48 e4 e6 33 20 dd 11 6b b4 |b'.qT..H..3 ..k.| -00000030 59 b7 e2 d9 b3 91 01 ab 11 68 65 2e 1d 60 2f 58 |Y........he..`/X| -00000040 41 a6 7a 94 bc ad fd ff 05 a5 56 cb 00 08 13 02 |A.z.......V.....| +00000000 16 03 01 00 f9 01 00 00 f5 03 03 3f 2f 76 da 5e |...........?/v.^| +00000010 bc ca 96 5b e3 c5 ff 45 18 e9 dc 7e b3 e8 97 f5 |...[...E...~....| +00000020 d1 d5 19 c0 4d a4 5d ce 34 1b e4 20 5f fe 5f 0c |....M.].4.. _._.| +00000030 88 92 65 b9 c6 ac 7f 3e dc a3 f7 ad e2 21 08 41 |..e....>.....!.A| +00000040 f8 36 e4 61 67 71 69 56 7f 6b d1 fc 00 08 13 02 |.6.agqiV.k......| 00000050 13 03 13 01 00 ff 01 00 00 a4 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 04 00 02 00 17 00 16 00 00 |................| 00000080 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| 00000090 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| 000000a0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| -000000b0 02 01 01 00 33 00 47 00 45 00 17 00 41 04 50 4f |....3.G.E...A.PO| -000000c0 1c 9c 0f 11 5a f0 a0 54 82 44 5b 82 95 e1 0a 1d |....Z..T.D[.....| -000000d0 56 23 a1 7a ee e8 ee ef 8d 28 be 21 c2 dd c9 05 |V#.z.....(.!....| -000000e0 13 bc 6b 0a 69 15 95 4e e3 f9 6a 75 ef 4d 96 12 |..k.i..N..ju.M..| -000000f0 d0 c9 46 78 d7 9d a2 80 0a b7 c8 3f bd c2 |..Fx.......?..| +000000b0 02 01 01 00 33 00 47 00 45 00 17 00 41 04 d3 57 |....3.G.E...A..W| +000000c0 de 53 6a 81 d5 e8 c2 68 cd 05 90 9b 0e b2 7e 5d |.Sj....h......~]| +000000d0 43 4c 66 f1 28 53 53 00 1a a5 9b b3 ae e0 3e b7 |CLf.(SS.......>.| +000000e0 72 4b 29 c6 2d 96 39 3a 1c a2 ef 04 96 22 df ea |rK).-.9:....."..| +000000f0 15 f5 ff bb 36 ed 3a 3f 67 55 ba 48 10 45 |....6.:?gU.H.E| >>> Flow 2 (server to client) 00000000 16 03 03 00 9b 02 00 00 97 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 20 dd 11 6b b4 |........... ..k.| -00000030 59 b7 e2 d9 b3 91 01 ab 11 68 65 2e 1d 60 2f 58 |Y........he..`/X| -00000040 41 a6 7a 94 bc ad fd ff 05 a5 56 cb 13 02 00 00 |A.z.......V.....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 5f fe 5f 0c |........... _._.| +00000030 88 92 65 b9 c6 ac 7f 3e dc a3 f7 ad e2 21 08 41 |..e....>.....!.A| +00000040 f8 36 e4 61 67 71 69 56 7f 6b d1 fc 13 02 00 00 |.6.agqiV.k......| 00000050 4f 00 2b 00 02 03 04 00 33 00 45 00 17 00 41 04 |O.+.....3.E...A.| 00000060 1e 18 37 ef 0d 19 51 88 35 75 71 b5 e5 54 5b 12 |..7...Q.5uq..T[.| 00000070 2e 8f 09 67 fd a7 24 20 3e b2 56 1c ce 97 28 5e |...g..$ >.V...(^| 00000080 f8 2b 2d 4f 9e f1 07 9f 6c 4b 5b 83 56 e2 32 42 |.+-O....lK[.V.2B| 00000090 e9 58 b6 d7 49 a6 b5 68 1a 41 03 56 6b dc 5a 89 |.X..I..h.A.Vk.Z.| -000000a0 14 03 03 00 01 01 17 03 03 00 17 de 95 cd 3c b2 |..............<.| -000000b0 4b 8b c7 43 28 60 d9 2b 83 21 fb 51 a7 ec 71 d6 |K..C(`.+.!.Q..q.| -000000c0 de 03 17 03 03 02 6d bf 85 6f 36 00 4d 35 bd 40 |......m..o6.M5.@| -000000d0 23 73 df 49 94 c8 92 6f 6a 71 3b 4f 82 54 74 60 |#s.I...ojq;O.Tt`| -000000e0 d3 02 7e 99 85 f1 80 f4 cd fb a7 e4 9e 05 91 ef |..~.............| -000000f0 25 e9 23 fc db 3e b0 1f 4a d0 0b 1f 46 da 6b bc |%.#..>..J...F.k.| -00000100 6a e0 53 65 60 1e f5 cc 8b 01 be 1c 3b d9 a9 41 |j.Se`.......;..A| -00000110 ef de eb 8b 73 f6 6d e4 ee 5d 97 c6 b7 2f 50 99 |....s.m..].../P.| -00000120 c7 84 05 f1 80 13 d7 00 c6 05 d7 16 d0 bf 26 44 |..............&D| -00000130 ad 94 47 f2 48 12 86 54 07 25 01 5f 97 b2 5e 11 |..G.H..T.%._..^.| -00000140 6d cf 90 cb 91 f1 1e 9f 50 df 8d 2e 67 4c 12 08 |m.......P...gL..| -00000150 2d 36 e6 b1 15 e4 b5 55 32 df ab 3a ec ae 2e ee |-6.....U2..:....| -00000160 98 31 32 38 73 fc 6c 65 a8 05 ef 91 4a 3a 90 22 |.128s.le....J:."| -00000170 1b 92 df 65 b3 ce 94 b8 18 f5 25 a1 a3 bd a8 c6 |...e......%.....| -00000180 33 ec ad 61 b9 0e 31 49 7d 43 cc 52 2e da 63 7b |3..a..1I}C.R..c{| -00000190 40 b2 40 6d 64 c5 f4 9c 96 7e 82 22 56 bc f1 57 |@.@md....~."V..W| -000001a0 2f 10 f9 b2 b0 19 18 de 03 b7 29 1d 6e 6a df 1c |/.........).nj..| -000001b0 c9 78 02 4b 67 d5 c5 98 32 3f 6c a9 d5 50 3c e3 |.x.Kg...2?l..P<.| -000001c0 4f 8e 75 84 e5 91 da 27 a0 0a d5 93 69 c7 2a 81 |O.u....'....i.*.| -000001d0 85 10 d3 60 f8 51 83 02 fe fc da 00 60 47 be 67 |...`.Q......`G.g| -000001e0 b3 61 c8 41 84 d1 45 cf 2f fa a6 01 e6 33 09 0d |.a.A..E./....3..| -000001f0 d9 a7 61 e0 44 cb e1 16 ad ec f0 65 9f bb 97 95 |..a.D......e....| -00000200 76 ce 01 27 ae f0 c1 20 9c 2a 73 45 2c 06 33 59 |v..'... .*sE,.3Y| -00000210 a6 d6 14 da 37 70 33 a7 9a 8e de 31 ff ce 4c 33 |....7p3....1..L3| -00000220 5f 0e 4a 29 a0 ee 3a 06 cd f6 ae 03 74 e1 0a 95 |_.J)..:.....t...| -00000230 22 68 0d c2 af 1b 40 ab 7c e2 8a 3a a1 36 ae 99 |"h....@.|..:.6..| -00000240 79 ba 41 0a d6 91 04 dd 76 47 c7 a7 75 75 ab 24 |y.A.....vG..uu.$| -00000250 c7 c4 c0 cd 5e ca 8f ae 9c cd 0a dd e1 8e 47 46 |....^.........GF| -00000260 9e bd 48 aa 1e 10 d0 d0 e9 ee dd 10 52 c5 66 ad |..H.........R.f.| -00000270 9a 16 e4 af 96 13 3f b0 b3 75 6e b0 08 05 29 52 |......?..un...)R| -00000280 c1 a7 60 f8 c3 08 fb 04 02 25 17 82 61 31 7a 5f |..`......%..a1z_| -00000290 39 bb de e7 59 d1 14 a7 40 65 24 6f 23 5b 10 81 |9...Y...@e$o#[..| -000002a0 2c 02 b0 90 49 ef 12 1e cd 97 0a bc 30 45 37 06 |,...I.......0E7.| -000002b0 08 e0 47 0c b5 d1 39 6f de e2 8a 00 75 ae 0b 66 |..G...9o....u..f| -000002c0 f0 c7 7b a0 e1 9e 76 7b eb 54 e2 04 cb 8f 76 77 |..{...v{.T....vw| -000002d0 30 8e e6 ec 02 8c 86 00 cb c5 47 69 66 77 cd d9 |0.........Gifw..| -000002e0 25 d6 30 f3 2e de f9 70 ee 52 20 0c 2f 85 87 42 |%.0....p.R ./..B| -000002f0 5e 8b ee 63 b9 15 0a 09 b9 2d 11 c3 5f ab 9e b7 |^..c.....-.._...| -00000300 33 a8 96 4a 11 9d e3 d3 c3 18 5e 35 b3 dd 88 21 |3..J......^5...!| -00000310 c2 4d 93 07 75 66 b2 d8 2a 6e 1e 27 7a 37 2f 10 |.M..uf..*n.'z7/.| -00000320 b4 3b 10 d7 4a 35 6d 16 ae 87 2e cc 07 e5 37 76 |.;..J5m.......7v| -00000330 8e 27 00 f3 17 03 03 00 99 9a b6 00 63 9d fb b6 |.'..........c...| -00000340 81 3f ab ed e9 74 6d 58 33 10 f0 fb 2c ef 95 ed |.?...tmX3...,...| -00000350 92 9e e2 7d 86 e0 9d 98 49 29 ee 90 0c 47 2d 0d |...}....I)...G-.| -00000360 d0 b9 5b 39 ce 3b 84 b4 e5 1c 8a 0b 7c a7 a6 ab |..[9.;......|...| -00000370 cf 26 d4 07 a3 94 b8 06 65 e1 63 fe 23 67 a0 60 |.&......e.c.#g.`| -00000380 4f d8 81 33 7e 98 d0 0a ec b4 36 2f e7 00 bf e3 |O..3~.....6/....| -00000390 5e 83 d2 84 11 b5 8a c9 74 9c 7a 02 0a 26 28 cb |^.......t.z..&(.| -000003a0 d1 2d 76 8c 9c 23 55 a6 1a e9 55 6a e2 15 33 50 |.-v..#U...Uj..3P| -000003b0 d0 f1 0f 45 7b bc 8b a8 1e 70 a3 9b d3 d0 a1 69 |...E{....p.....i| -000003c0 3b 02 3d 59 f6 fa c5 5f 2f 75 b8 b5 cc d5 65 2e |;.=Y..._/u....e.| -000003d0 d1 0e 17 03 03 00 45 db a5 de 00 16 ca e3 c9 93 |......E.........| -000003e0 8e 2d 23 9b f4 ba 46 69 bb cb 40 6d 0f ef bf 2f |.-#...Fi..@m.../| -000003f0 ff ec 58 e7 3a 36 13 1c dd ae 1e 1c 3b ca c4 1c |..X.:6......;...| -00000400 fd 2a f7 9d 00 eb 9f 76 1d ec 9a 61 ef 57 2e d0 |.*.....v...a.W..| -00000410 ec 29 c6 35 e0 72 c5 fc 5c ae fa 55 |.).5.r..\..U| +000000a0 14 03 03 00 01 01 17 03 03 00 17 e2 0e 2c fc 9b |.............,..| +000000b0 61 70 e2 5f b9 e5 a5 ad ce fb df fa be ae 9a 5b |ap._...........[| +000000c0 cc 99 17 03 03 02 6d 87 74 85 83 f2 51 98 a5 75 |......m.t...Q..u| +000000d0 09 f0 6d 0f dd 16 a7 12 12 fb ec 98 6e 56 a4 ed |..m.........nV..| +000000e0 94 18 6b 28 6b ef 80 bd 28 3b f4 ee 05 80 d2 ff |..k(k...(;......| +000000f0 2f d4 6b b5 d3 b6 91 61 b7 8e 1b db 60 cf f5 4b |/.k....a....`..K| +00000100 3b 68 78 4a 09 2d a3 49 c0 8a 06 e5 2c 62 08 5d |;hxJ.-.I....,b.]| +00000110 c4 5d 03 04 5e 3e 25 9d 30 24 af b0 a3 2e 8c 65 |.]..^>%.0$.....e| +00000120 fb 6f 34 94 e9 d9 d6 34 0e a9 44 8a 9e b7 1a 13 |.o4....4..D.....| +00000130 26 b7 b2 16 c2 79 05 e8 0e 99 bd 7a cc c8 83 a4 |&....y.....z....| +00000140 60 1d cb 5c 02 8a 1f b7 4f c4 2d cd 96 e4 7b 39 |`..\....O.-...{9| +00000150 5a 45 60 30 82 9f 8f 30 56 11 7b 0d 6e 7e 95 54 |ZE`0...0V.{.n~.T| +00000160 d0 ac 09 8e 3b 49 14 de d3 8b a1 e4 4d f7 65 8d |....;I......M.e.| +00000170 88 46 71 7a 29 ea 05 b4 66 e6 76 db b7 7d 56 ce |.Fqz)...f.v..}V.| +00000180 e0 ba 47 b5 75 c1 14 42 7e af 87 f3 94 bf 75 e3 |..G.u..B~.....u.| +00000190 ee 54 ea 4c 8c 69 fd 63 01 1c 0e 38 84 e6 04 c3 |.T.L.i.c...8....| +000001a0 a8 3d 42 18 87 a2 f0 b4 4d ef 29 8d 48 01 b9 f4 |.=B.....M.).H...| +000001b0 8b 1e b1 72 bf e4 9a 6d 80 d7 c2 e0 a7 a7 0a 3f |...r...m.......?| +000001c0 45 f4 72 94 56 19 6b f3 4c 3e a6 1e 87 cd d3 a2 |E.r.V.k.L>......| +000001d0 49 b6 e7 56 b9 dd 2b f6 66 0a 6a 55 75 63 f9 c3 |I..V..+.f.jUuc..| +000001e0 d2 a6 ea a0 04 09 6b 75 eb 77 6b 9e 4b a4 6d f5 |......ku.wk.K.m.| +000001f0 44 01 37 ee 21 15 f7 3e 6e 6f fc dc be 44 43 26 |D.7.!..>no...DC&| +00000200 dd 7a ab 13 67 58 8d cb 02 78 b9 71 07 22 12 d2 |.z..gX...x.q."..| +00000210 cf 87 50 ff 04 d9 7a f2 73 8c 77 9e 5b 17 b2 aa |..P...z.s.w.[...| +00000220 2a db b2 a2 f4 5b c4 0d e2 84 a3 fe 4d b1 02 26 |*....[......M..&| +00000230 7d ba 76 2a 0e d1 87 52 c7 5f 97 07 fd b7 25 1b |}.v*...R._....%.| +00000240 2a 52 0d 30 59 84 73 a0 d7 db 75 6d 74 05 a2 3b |*R.0Y.s...umt..;| +00000250 91 69 f3 a3 43 bc 44 f9 ce f4 85 a1 38 5a e2 55 |.i..C.D.....8Z.U| +00000260 f6 e8 e2 ca 3b c2 fd 39 0f f4 ae 86 08 24 d4 c7 |....;..9.....$..| +00000270 10 44 c0 bf 9b 47 d9 da 07 52 4d 88 71 d4 14 69 |.D...G...RM.q..i| +00000280 66 8b cc 44 09 1b 90 b0 a5 7c 96 3c 94 99 cd c2 |f..D.....|.<....| +00000290 ca 0b af 53 c0 31 a2 5a df 54 76 e4 af 66 5d ff |...S.1.Z.Tv..f].| +000002a0 7c 21 c9 06 b8 d9 7e 1f 46 97 c8 ea e0 90 f2 db ||!....~.F.......| +000002b0 9b 52 04 a8 91 20 15 c8 fc 24 09 d7 f9 48 20 dc |.R... ...$...H .| +000002c0 18 22 d1 e2 19 3d 53 dd e4 21 db 8c 87 7d d7 bf |."...=S..!...}..| +000002d0 f7 93 a6 a5 81 b5 53 59 15 a8 80 2e 3b 4f b0 d4 |......SY....;O..| +000002e0 f3 66 56 14 6e a1 6b 3e 75 b1 8e fa 0d 52 96 b1 |.fV.n.k>u....R..| +000002f0 08 b1 b0 ce 0c c6 0a 5e 54 0f a3 5a cd 6c db 6a |.......^T..Z.l.j| +00000300 0a 6a 52 11 b5 97 7b 67 e3 3e 84 22 76 3a f1 96 |.jR...{g.>."v:..| +00000310 70 bf 9c a6 62 03 30 a7 69 46 ec 9a 61 1e 37 6f |p...b.0.iF..a.7o| +00000320 7d 24 d6 6c 8a e5 72 3a 0a ef e8 d3 d6 fe 28 c8 |}$.l..r:......(.| +00000330 60 ff d7 2e 17 03 03 00 99 ca f3 5e cb 8c b2 0b |`..........^....| +00000340 87 4e 59 89 38 f5 f1 3c c4 e1 6a 11 2d f3 ef 7d |.NY.8..<..j.-..}| +00000350 b6 85 ff bb 84 8f cb db 7f 02 50 23 93 db b3 0a |..........P#....| +00000360 2c 32 cb ed 08 ae 6a 3e 30 b8 a5 c2 9c 85 0c 87 |,2....j>0.......| +00000370 44 68 8b 47 31 75 a0 c3 2c 32 2e 61 40 da 4b 0a |Dh.G1u..,2.a@.K.| +00000380 07 ef 2b 6b fa 2f 66 87 ff f1 0e 5e b0 db 44 3d |..+k./f....^..D=| +00000390 3c fc a7 94 17 f3 0b a5 50 68 7b 65 48 8e 78 ce |<.......Ph{eH.x.| +000003a0 d7 71 fa ae 58 50 62 33 98 b2 a2 27 b1 e0 66 fb |.q..XPb3...'..f.| +000003b0 65 6a 94 21 38 e8 40 aa 4f d7 02 31 45 e8 d3 e0 |ej.!8.@.O..1E...| +000003c0 5f 66 d4 2f 26 9f b2 72 b7 bc 43 ce f1 2a 0e 61 |_f./&..r..C..*.a| +000003d0 f1 91 17 03 03 00 45 c0 25 ac 1e 0b 4e 2c 61 9c |......E.%...N,a.| +000003e0 c7 80 f1 f7 bf d4 c6 a9 29 3f 0c 08 8d f0 70 7c |........)?....p|| +000003f0 6f 96 2c 3e 32 7f a6 10 17 19 81 49 2d a7 f7 3f |o.,>2......I-..?| +00000400 04 20 7d 52 c2 e8 cc 61 b2 16 5b 8b 3e 1a a9 2f |. }R...a..[.>../| +00000410 9c 5e a7 74 88 3d 8a c8 90 df 9a 17 17 03 03 00 |.^.t.=..........| +00000420 a3 cf b5 d2 52 49 27 95 5f dd 9b 37 ed 74 7b 17 |....RI'._..7.t{.| +00000430 8b 7f f3 67 3c 91 2f 1e b6 17 4f ba a7 b1 92 99 |...g<./...O.....| +00000440 32 32 7e 72 95 90 a0 92 08 c3 da 30 31 85 ee bb |22~r.......01...| +00000450 8f 8d d4 d8 c5 28 19 10 71 f0 b3 15 45 86 e0 09 |.....(..q...E...| +00000460 ee e4 96 a0 90 c5 df 81 8f d1 38 b2 e0 33 95 3b |..........8..3.;| +00000470 33 9d e0 3e 93 3d 6a 12 60 44 43 9e b0 5c 16 82 |3..>.=j.`DC..\..| +00000480 92 b8 84 0e 56 19 b9 b6 eb 3c 37 3e 9b ee 2a 6a |....V....<7>..*j| +00000490 13 4a bb 3d 78 21 79 0e 6f cc 34 89 91 95 03 a6 |.J.=x!y.o.4.....| +000004a0 19 e2 81 37 a6 9d 30 28 42 da f4 69 4e 42 4b e4 |...7..0(B..iNBK.| +000004b0 ca 23 c5 1e 56 24 cc ba b0 85 21 ef 44 04 cb d8 |.#..V$....!.D...| +000004c0 aa cd 5d 55 |..]U| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 b5 0b 9f e1 e1 |..........E.....| -00000010 0e a8 3c 22 83 fb 13 2a d9 cc 96 32 15 d8 fb 1a |..<"...*...2....| -00000020 0b b2 ee 87 2b 50 a6 76 0a 07 a1 41 8b 8f f1 bb |....+P.v...A....| -00000030 b8 03 eb 77 c0 96 b9 5e 4c 2e 6b 9a 2f 7e 3e 8d |...w...^L.k./~>.| -00000040 aa 10 a4 ce 0f 83 d1 25 52 8e 91 98 bc 09 a3 a5 |.......%R.......| +00000000 14 03 03 00 01 01 17 03 03 00 45 43 65 76 31 fa |..........ECev1.| +00000010 2c a7 2e 96 92 82 cf eb 91 3d 8b eb 01 d3 af da |,........=......| +00000020 67 ea 4d 75 47 8f 42 34 7a 2d 0a b0 d1 4c 08 c0 |g.MuG.B4z-...L..| +00000030 c7 76 7e 99 93 4a 06 b2 d9 95 df f9 c1 29 25 e6 |.v~..J.......)%.| +00000040 24 6d ea 73 00 24 36 a9 62 30 9d a4 aa 6c 2f c8 |$m.s.$6.b0...l/.| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e 59 88 46 14 c1 2e 42 5d 1c 37 37 |.....Y.F...B].77| -00000010 d7 83 5f 82 39 bf 29 6d 21 0a 4c 4f 19 91 b1 4f |.._.9.)m!.LO...O| -00000020 60 f6 97 17 03 03 00 13 a0 ca 1d 58 c1 29 96 42 |`..........X.).B| -00000030 48 31 2d 9b 77 77 f8 f1 14 7b b2 |H1-.ww...{.| +00000000 17 03 03 00 1e 6e bb 52 84 cf a6 71 d5 b9 ac c2 |.....n.R...q....| +00000010 29 1a 0b db be a4 bb bd 6c f4 2e c8 eb f0 bb eb |).......l.......| +00000020 d3 f8 69 17 03 03 00 13 19 ad 85 21 63 f6 38 df |..i........!c.8.| +00000030 35 41 af 12 75 63 e8 fa 38 5e 50 |5A..uc..8^P| diff --git a/testdata/Server-TLSv13-RSA-RSAPSS b/testdata/Server-TLSv13-RSA-RSAPSS index b3ff6f2..21f57b7 100644 --- a/testdata/Server-TLSv13-RSA-RSAPSS +++ b/testdata/Server-TLSv13-RSA-RSAPSS @@ -1,90 +1,101 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 c6 01 00 00 c2 03 03 e9 1f 49 f4 6e |.............I.n| -00000010 6a 47 e9 46 ae 43 1b b4 00 98 20 27 a7 a6 21 76 |jG.F.C.... '..!v| -00000020 fc 6b 35 d7 12 33 28 fb 2d 00 69 20 c9 28 5e 43 |.k5..3(.-.i .(^C| -00000030 c9 36 a0 b9 c4 68 0f fd d3 ce c6 39 3c 17 26 b1 |.6...h.....9<.&.| -00000040 4c d5 36 50 59 fd cd 47 8f 43 eb 33 00 08 13 02 |L.6PY..G.C.3....| +00000000 16 03 01 00 c6 01 00 00 c2 03 03 39 95 ab cc 1c |...........9....| +00000010 64 13 9d 19 2e 3e 73 33 48 b1 a9 f7 88 14 5a 83 |d....>s3H.....Z.| +00000020 19 f7 b5 08 8d e4 80 09 72 21 99 20 23 ad 4c 2c |........r!. #.L,| +00000030 66 84 1e e8 c3 0c 9f 66 19 76 df a3 e0 62 cd 7d |f......f.v...b.}| +00000040 95 85 70 4f 37 fb 39 58 50 b1 d5 7b 00 08 13 02 |..pO7.9XP..{....| 00000050 13 03 13 01 00 ff 01 00 00 71 00 00 00 0e 00 0c |.........q......| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| 00000080 00 19 00 18 00 16 00 00 00 17 00 00 00 0d 00 04 |................| 00000090 00 02 08 04 00 2b 00 03 02 03 04 00 2d 00 02 01 |.....+......-...| -000000a0 01 00 33 00 26 00 24 00 1d 00 20 a4 ab a1 75 b6 |..3.&.$... ...u.| -000000b0 95 db 0e d6 fd 95 57 3b 3f 08 5e cd cc 19 d0 7b |......W;?.^....{| -000000c0 7b cd 67 34 d3 da 65 e5 e6 8d 0c |{.g4..e....| +000000a0 01 00 33 00 26 00 24 00 1d 00 20 be 29 89 8d 44 |..3.&.$... .)..D| +000000b0 4d e5 51 88 7a 1a 56 52 a8 86 74 13 0e e9 a5 a7 |M.Q.z.VR..t.....| +000000c0 b6 7f 38 b3 ef 62 e6 b0 c5 2a 0a |..8..b...*.| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 c9 28 5e 43 |........... .(^C| -00000030 c9 36 a0 b9 c4 68 0f fd d3 ce c6 39 3c 17 26 b1 |.6...h.....9<.&.| -00000040 4c d5 36 50 59 fd cd 47 8f 43 eb 33 13 02 00 00 |L.6PY..G.C.3....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 23 ad 4c 2c |........... #.L,| +00000030 66 84 1e e8 c3 0c 9f 66 19 76 df a3 e0 62 cd 7d |f......f.v...b.}| +00000040 95 85 70 4f 37 fb 39 58 50 b1 d5 7b 13 02 00 00 |..pO7.9XP..{....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| 00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| -00000080 03 03 00 01 01 17 03 03 00 17 24 64 74 26 90 fe |..........$dt&..| -00000090 68 e7 db 87 79 32 3b 7c 2c e8 2e 2d d0 d1 d2 97 |h...y2;|,..-....| -000000a0 62 17 03 03 02 6d 41 22 d8 7d 6c 44 d0 6e 2b 79 |b....mA".}lD.n+y| -000000b0 bd d5 56 10 2a a6 41 c4 7f 2c 1f 01 b5 3a b2 e7 |..V.*.A..,...:..| -000000c0 44 6f c2 d2 2b 83 74 80 46 8e 7e 24 81 b0 8e c4 |Do..+.t.F.~$....| -000000d0 f0 90 03 89 03 b1 89 c5 28 b4 cc bc 3d df a9 25 |........(...=..%| -000000e0 db f5 f1 1c f2 f3 04 15 d6 f7 f7 c3 03 24 dd e0 |.............$..| -000000f0 19 22 62 67 3a 80 f8 f7 83 ca 5c 3f eb 9b 6e 98 |."bg:.....\?..n.| -00000100 8a 2f ba c2 ed bc dd 28 75 1f a2 27 42 89 39 3e |./.....(u..'B.9>| -00000110 01 e0 88 73 0f bb f4 cc 7c 75 3a 3f b4 68 04 be |...s....|u:?.h..| -00000120 4e d7 c2 2c 8d 41 df 6c 44 b3 1b 35 dc 46 36 3f |N..,.A.lD..5.F6?| -00000130 f0 dc e4 cc c3 ca 3b bf 3f fa bf 87 7c 2e 65 e1 |......;.?...|.e.| -00000140 d3 4b 2c 2a 6b 1a 57 8c 76 06 53 02 ef 79 d4 6f |.K,*k.W.v.S..y.o| -00000150 93 f0 36 f9 cb 13 05 b3 8c 22 16 fd 0a c2 e8 45 |..6......".....E| -00000160 fa 46 e7 ce f2 35 9f 32 88 97 67 46 e9 0c 13 77 |.F...5.2..gF...w| -00000170 30 b8 f3 59 71 e6 65 4f f5 5b 06 6e 9a 7f 7a 24 |0..Yq.eO.[.n..z$| -00000180 c5 e6 05 eb 8a ec 4d 0f 73 2c 6d aa 54 3d 5c 40 |......M.s,m.T=\@| -00000190 44 68 7f e6 52 b1 02 37 8c a0 be c8 3a f0 74 85 |Dh..R..7....:.t.| -000001a0 4e 0a 20 46 6c 3c 42 e7 94 18 02 30 a7 43 e7 c9 |N. Fl.*.....| -000001c0 3d 77 1e 4e 13 51 7e 38 ba 06 b1 62 99 6c 98 8d |=w.N.Q~8...b.l..| -000001d0 87 b4 59 01 93 d3 84 80 6f e6 07 18 e0 a3 07 5d |..Y.....o......]| -000001e0 b7 97 1a 8b ed 78 20 d1 28 0e 60 dc 51 37 b1 07 |.....x .(.`.Q7..| -000001f0 81 b1 0b d8 81 f4 79 bf 3d ae 60 32 22 2b c5 9c |......y.=.`2"+..| -00000200 d1 37 3a f8 71 22 49 c2 a7 1e 5a 56 c1 c4 b4 5d |.7:.q"I...ZV...]| -00000210 2a 08 60 c6 75 2a 10 3e c0 84 77 dd 1d a6 be 8c |*.`.u*.>..w.....| -00000220 a7 2a 20 6b e1 20 bb bd 03 fb c1 2c 33 fb 97 64 |.* k. .....,3..d| -00000230 88 31 75 df 6e b3 49 dd e8 f2 b8 13 ca d5 24 40 |.1u.n.I.......$@| -00000240 e6 0b e5 7e 12 cb 20 60 b0 0a 72 b6 a5 93 2d ea |...~.. `..r...-.| -00000250 74 22 48 b7 7e 10 bf 81 55 eb 3d 0c 33 f6 37 66 |t"H.~...U.=.3.7f| -00000260 04 2a 1b 9c 3e 0a 06 0d 53 88 f0 cf 4f 52 c4 a1 |.*..>...S...OR..| -00000270 31 ff b0 8e 5c 8e c3 cc 0d a1 68 cb f6 2e 0f 57 |1...\.....h....W| -00000280 06 f9 d6 80 e5 ac b8 24 1f ef 6e b9 5c 32 a4 e1 |.......$..n.\2..| -00000290 44 14 99 75 6e 57 d6 6b 51 5f 16 ee 65 c6 fc 96 |D..unW.kQ_..e...| -000002a0 4e ea 83 85 3f c9 f6 5b b8 14 5e 6a 41 2b 0f 91 |N...?..[..^jA+..| -000002b0 ab 79 f4 3d 0e 63 2a 99 eb 4a e9 07 b8 cd fb d2 |.y.=.c*..J......| -000002c0 ad 33 e6 48 25 b2 b3 29 a6 fc 14 84 a5 ee 53 44 |.3.H%..)......SD| -000002d0 d4 b2 93 db 86 a6 b2 b3 ea 22 3d a7 52 db 53 56 |........."=.R.SV| -000002e0 96 20 24 59 6c b6 10 c2 f4 88 9a ff 69 d3 92 0c |. $Yl.......i...| -000002f0 da e7 67 63 af 3f 94 c2 06 9f da 8a 78 f5 6d 4d |..gc.?......x.mM| -00000300 3d 7b fe 43 6c 71 82 ce 34 07 4b e2 57 05 f8 5c |={.Clq..4.K.W..\| -00000310 dc 17 03 17 03 03 00 99 97 2b be f7 da 39 40 7e |.........+...9@~| -00000320 9f bd 0a 93 db c8 0d 89 e9 b8 52 5c f6 83 6d 6c |..........R\..ml| -00000330 d9 44 1a 3a fe 39 05 f5 c3 25 5e 5e 92 4d 84 d9 |.D.:.9...%^^.M..| -00000340 0e bc f2 27 09 e0 ba 70 f1 0a 9d 6a af b5 e7 90 |...'...p...j....| -00000350 8c 91 c7 82 9b d4 8b 88 dc 16 ec 33 2c 81 e7 4f |...........3,..O| -00000360 ad dd c1 c5 c6 59 36 d4 aa 39 f1 6f de 93 a7 0e |.....Y6..9.o....| -00000370 39 e4 f3 cf 01 b3 ed ad 10 01 70 20 60 ac 6a c5 |9.........p `.j.| -00000380 ec ec f9 fb 7c 40 72 10 c4 99 8f 10 eb b0 08 4e |....|@r........N| -00000390 dd 3f 65 a4 34 c0 69 94 2a 7c 2d cb 33 3b d5 b9 |.?e.4.i.*|-.3;..| -000003a0 03 e0 e9 63 37 54 73 6a 34 ad c9 65 d1 d4 d7 6b |...c7Tsj4..e...k| -000003b0 38 17 03 03 00 45 1c f4 15 86 6e b6 2d cd 84 30 |8....E....n.-..0| -000003c0 55 82 13 52 d9 c9 3f 01 27 ee 01 9c d4 da be ab |U..R..?.'.......| -000003d0 be 10 4d 82 55 32 86 a0 7b 74 bc 15 aa 68 3a e4 |..M.U2..{t...h:.| -000003e0 a1 3a d9 0e b6 c3 60 48 b4 7d e1 77 9d ce f9 41 |.:....`H.}.w...A| -000003f0 5f f7 d5 db ea 1f 6e b1 11 cd ca |_.....n....| +00000080 03 03 00 01 01 17 03 03 00 17 49 c6 88 9c 3b 2f |..........I...;/| +00000090 3a 0a e6 8e 75 d0 39 11 ad 08 87 17 2c 14 96 28 |:...u.9.....,..(| +000000a0 85 17 03 03 02 6d 2a d6 89 4d 5d f3 6c 28 97 dd |.....m*..M].l(..| +000000b0 4e 45 88 e8 90 a4 f3 45 86 cf 59 d6 61 6e 1a a7 |NE.....E..Y.an..| +000000c0 b7 35 7e 9c 6e 11 19 c4 1b 89 b9 5a 7c aa 1f 96 |.5~.n......Z|...| +000000d0 e2 36 6d 54 09 12 2f 28 12 20 a3 41 06 bd 44 3c |.6mT../(. .A..D<| +000000e0 73 be d3 8c 78 18 a1 63 ad f9 9d 41 20 5e 32 55 |s...x..c...A ^2U| +000000f0 8e 18 c1 d8 b0 93 13 7e 88 a0 af 8a 59 e2 af 43 |.......~....Y..C| +00000100 d2 82 66 ba c5 a1 97 94 e8 63 40 1b 8f c4 eb 49 |..f......c@....I| +00000110 19 91 65 e9 54 d3 90 76 d6 f8 ff 15 20 31 3c 86 |..e.T..v.... 1<.| +00000120 88 8a 43 be 77 a0 28 de fa 9f d5 30 14 a8 35 2f |..C.w.(....0..5/| +00000130 5e ee 9d cf b5 69 d1 f5 f6 55 d1 1a 61 3f 4c a1 |^....i...U..a?L.| +00000140 97 38 5b 87 7e ce 88 23 8a d0 bd fc 4b c5 da f7 |.8[.~..#....K...| +00000150 25 6c 6c 0b ec 61 50 72 97 6b f7 fe 9b 5b 5a f9 |%ll..aPr.k...[Z.| +00000160 59 19 71 10 74 2d 14 8c 1b 52 8b 39 1c 56 ea 7e |Y.q.t-...R.9.V.~| +00000170 7a c9 8f 7c bd db 1e c5 02 9f 42 8b 63 ee 13 52 |z..|......B.c..R| +00000180 fe 46 40 de 7b 97 27 b0 16 87 75 96 c7 1c 88 5d |.F@.{.'...u....]| +00000190 2e 64 7f a8 df e0 16 b9 ee 27 7e b3 98 99 f7 4a |.d.......'~....J| +000001a0 83 05 78 bb 59 07 8e 1a 46 1d 0f 45 87 ae d9 ae |..x.Y...F..E....| +000001b0 6f 42 ed b1 72 14 8c 9d 33 72 95 ac 12 bb a0 20 |oB..r...3r..... | +000001c0 56 a8 8a 23 e4 51 6a 89 f5 8e bc 55 5a e2 8d 78 |V..#.Qj....UZ..x| +000001d0 84 24 55 99 cf 37 61 8c 7e 46 17 f3 26 ca 27 ec |.$U..7a.~F..&.'.| +000001e0 f4 04 f6 76 1d cf 82 0c bd 85 82 81 06 f1 96 ce |...v............| +000001f0 78 54 6c eb a0 f8 cf 30 6a 10 17 08 e6 94 83 4f |xTl....0j......O| +00000200 56 34 80 ef ac fa ab e7 59 9e 6b f9 f8 38 76 cc |V4......Y.k..8v.| +00000210 3b 09 b0 16 3f 3f 5c d3 6a ad d9 2c 65 d8 ce b4 |;...??\.j..,e...| +00000220 19 53 c4 c9 d1 82 e8 19 72 ec bc 85 ef 3a 6e e5 |.S......r....:n.| +00000230 ba 3c f8 37 98 98 80 47 5f 47 4f cd ed f5 0e bc |.<.7...G_GO.....| +00000240 4e 14 a2 7d 8d 43 0b 18 ba 3b 10 50 e4 18 fc ac |N..}.C...;.P....| +00000250 0e 01 21 73 68 da 50 51 8a 64 b6 18 28 ca e3 a4 |..!sh.PQ.d..(...| +00000260 aa d2 5c 28 ff 64 fd cb 28 00 db b1 5c bf 75 81 |..\(.d..(...\.u.| +00000270 bb d2 8c df 5c 26 70 1d d6 fe 7a 94 65 27 93 72 |....\&p...z.e'.r| +00000280 bc ba 17 92 8f be 61 ec f5 88 04 ed fb cc f3 5c |......a........\| +00000290 71 d0 a4 5d 13 a6 a3 82 89 e8 9e 1a 8e 31 fd 2f |q..].........1./| +000002a0 57 53 98 d5 1f c4 3f 8e 92 7f 1b 90 a3 ad 6c 96 |WS....?.......l.| +000002b0 42 cc f2 f0 1c 8d 3f 31 fd b2 53 29 79 16 9a 96 |B.....?1..S)y...| +000002c0 fd d6 fe d4 3f 13 aa 39 73 d4 73 6d 9a ff f6 db |....?..9s.sm....| +000002d0 52 0a 1e 76 71 0f d3 ee de a8 b3 05 3b 24 c4 72 |R..vq.......;$.r| +000002e0 67 78 f1 be df c5 c0 87 32 60 28 96 8e b2 2e 3f |gx......2`(....?| +000002f0 7d e9 aa b7 66 57 ee 67 e6 ac 70 da 60 ce c2 00 |}...fW.g..p.`...| +00000300 55 2f 20 25 39 a5 5e b9 65 c3 00 63 c7 5a a9 31 |U/ %9.^.e..c.Z.1| +00000310 de fe 65 17 03 03 00 99 95 83 6d be 56 ef 4f a3 |..e.......m.V.O.| +00000320 96 5f a8 3d d5 a1 f3 8e 9a 8c 40 35 f4 12 2c 0a |._.=......@5..,.| +00000330 b3 02 3b d2 14 d8 a4 f1 12 01 be e1 8a 6b 5f 01 |..;..........k_.| +00000340 71 de ac 70 e9 7a 90 78 2e 2a a8 29 64 20 85 dd |q..p.z.x.*.)d ..| +00000350 57 09 cf 48 29 d0 63 42 bc 9b ec 0c e2 2d 41 d0 |W..H).cB.....-A.| +00000360 cb d8 68 46 b7 17 fc 1d 95 12 5a 4c c3 10 67 32 |..hF......ZL..g2| +00000370 f7 7a 14 55 63 fb 57 6e 59 ee b6 66 b8 65 e1 37 |.z.Uc.WnY..f.e.7| +00000380 e6 7c 6c 07 8b d1 84 80 01 11 ce 7f 20 f0 4d 42 |.|l......... .MB| +00000390 a7 67 01 12 e6 b5 9b d4 6a fe 38 37 71 ca 60 d6 |.g......j.87q.`.| +000003a0 12 d7 00 b5 26 c3 97 1d 9f 37 6a 82 31 ef c3 12 |....&....7j.1...| +000003b0 bc 17 03 03 00 45 65 1e cf 1f 1e 73 93 8d 66 54 |.....Ee....s..fT| +000003c0 47 b0 73 9f d1 a4 9d 3b b0 72 b4 f2 5f 06 e1 d2 |G.s....;.r.._...| +000003d0 1f bb 3d 13 48 7c 7a e0 19 15 9f aa a5 ed 09 18 |..=.H|z.........| +000003e0 2e 4e 8a cd 66 2b 9c b3 fe 99 b0 57 06 2e b3 a0 |.N..f+.....W....| +000003f0 79 92 c1 bb 0e 29 44 02 f1 b0 43 17 03 03 00 a3 |y....)D...C.....| +00000400 52 cd d9 d7 60 1c f5 06 83 aa 2f e0 0c 0f 5e 6d |R...`...../...^m| +00000410 0f 29 93 b9 ae 50 04 c6 f7 d3 ff c7 d1 ac 9d 43 |.)...P.........C| +00000420 d7 b5 76 7a 16 b7 2c b7 79 48 a4 c3 28 2a 86 10 |..vz..,.yH..(*..| +00000430 d1 24 7c 04 ed af 1f 8a 0b 18 29 97 7a 7a 47 3f |.$|.......).zzG?| +00000440 1f fe ba 9c 72 d9 9b ae 9b 83 5f f4 5a 4f 10 b8 |....r....._.ZO..| +00000450 e5 45 35 76 77 a2 ac 99 1c bc 78 cf 6f 62 ef ef |.E5vw.....x.ob..| +00000460 9b 1b 90 eb 95 6b a1 25 82 b7 c1 1b 6f da 10 4c |.....k.%....o..L| +00000470 aa 3e a8 ba dd 77 b1 39 a0 b2 6a 11 18 44 2a 8d |.>...w.9..j..D*.| +00000480 58 9a 53 31 e1 d1 ec 8b 47 95 63 67 44 67 8d 09 |X.S1....G.cgDg..| +00000490 2f 16 f5 19 cd 65 1d 52 d7 bd 19 f0 bb ec 7b 55 |/....e.R......{U| +000004a0 33 4f 84 |3O.| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 e9 b8 73 86 f8 |..........E..s..| -00000010 0c ba 6d ee 91 c4 70 d6 06 df 59 f8 28 21 92 3d |..m...p...Y.(!.=| -00000020 a5 ad 7c d3 08 ad ea f6 9f c8 d6 8a b1 f0 fc d2 |..|.............| -00000030 52 91 e8 1b b4 0b b9 a0 6e 48 18 d8 fb fe 3e d1 |R.......nH....>.| -00000040 d9 81 d5 9f 6a bd 83 74 c5 2d fb 42 95 57 5b 23 |....j..t.-.B.W[#| +00000000 14 03 03 00 01 01 17 03 03 00 45 07 3f db d9 c7 |..........E.?...| +00000010 05 fd c4 0c 2d ae ee d8 d7 e7 ac 46 19 a2 17 e5 |....-......F....| +00000020 5e 10 30 65 05 be e0 c7 1e b3 e2 16 a4 d6 69 e1 |^.0e..........i.| +00000030 2c ff 18 ba e4 8f d0 3d 12 45 df c3 d4 08 0d e6 |,......=.E......| +00000040 94 6e 83 6d 99 9d f3 f1 02 48 6b 6f d1 2d f0 c6 |.n.m.....Hko.-..| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e 64 cd 12 df 96 8c 5d a7 8f 92 98 |.....d.....]....| -00000010 c9 f7 16 11 4e 37 48 dd 55 b2 c6 4c 91 82 8d a8 |....N7H.U..L....| -00000020 01 8b a3 17 03 03 00 13 68 92 77 f7 88 86 d9 3c |........h.w....<| -00000030 4a 52 35 b2 2c b7 24 03 3c db 6c |JR5.,.$.<.l| +00000000 17 03 03 00 1e 2a 3d 96 b4 6a 9e 7f 7f ca e0 8e |.....*=..j......| +00000010 41 4e bd 82 86 61 b8 59 19 e4 97 02 c2 00 7e 69 |AN...a.Y......~i| +00000020 81 b0 64 17 03 03 00 13 63 91 94 1a a3 51 bf 95 |..d.....c....Q..| +00000030 9e 09 a2 a1 f0 01 57 93 00 71 49 |......W..qI| diff --git a/testdata/Server-TLSv13-Resume b/testdata/Server-TLSv13-Resume new file mode 100644 index 0000000..fa10f3e --- /dev/null +++ b/testdata/Server-TLSv13-Resume @@ -0,0 +1,66 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 01 a4 01 00 01 a0 03 03 92 e8 fa 14 82 |................| +00000010 03 7c cd fe 01 82 55 99 8b fd 04 ff 88 82 98 c9 |.|....U.........| +00000020 72 18 3b 2e 0a de fc a4 44 9f 1d 20 c0 df df c9 |r.;.....D.. ....| +00000030 1d ed 19 9e 2d ce 57 f6 95 54 67 76 77 64 c7 f4 |....-.W..Tgvwd..| +00000040 ad 18 7d d8 58 6f 08 30 a5 a4 50 cd 00 08 13 02 |..}.Xo.0..P.....| +00000050 13 03 13 01 00 ff 01 00 01 4f 00 00 00 0e 00 0c |.........O......| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| +00000080 00 19 00 18 00 23 00 00 00 16 00 00 00 17 00 00 |.....#..........| +00000090 00 0d 00 1e 00 1c 04 03 05 03 06 03 08 07 08 08 |................| +000000a0 08 09 08 0a 08 0b 08 04 08 05 08 06 04 01 05 01 |................| +000000b0 06 01 00 2b 00 03 02 03 04 00 2d 00 02 01 01 00 |...+......-.....| +000000c0 33 00 26 00 24 00 1d 00 20 94 44 cd ce 27 a8 43 |3.&.$... .D..'.C| +000000d0 8a ef cd ef d4 74 d4 e4 62 82 00 e6 46 96 e5 aa |.....t..b...F...| +000000e0 d1 44 8a 55 6b d7 25 06 6f 00 29 00 bc 00 87 00 |.D.Uk.%.o.).....| +000000f0 81 50 46 ad c1 db a8 38 86 7b 2b bb fd d0 c3 42 |.PF....8.{+....B| +00000100 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |>...............| +00000110 00 94 68 2c a3 81 51 ed 14 ef 68 ca 42 c5 4c 1f |..h,..Q...h.B.L.| +00000120 90 bf 3c 07 2b e5 52 22 a0 c0 46 db cb f6 b9 a0 |..<.+.R"..F.....| +00000130 b5 56 b0 d6 7f 03 b7 2d 9f a5 2a 25 8e 65 d2 b9 |.V.....-..*%.e..| +00000140 6a f3 e4 7e 79 d7 3d cc b2 3d b6 24 a9 31 82 49 |j..~y.=..=.$.1.I| +00000150 38 16 92 f0 49 97 e2 07 e2 cd 1c 77 d3 e0 00 de |8...I......w....| +00000160 56 11 17 40 00 63 13 00 48 39 8e fd 09 96 08 f3 |V..@.c..H9......| +00000170 81 7c 00 00 00 00 00 31 30 a4 22 35 6e 4a 09 af |.|.....10."5nJ..| +00000180 08 22 97 92 e0 8a eb c0 e0 28 32 f4 8f ed 1e 02 |.".......(2.....| +00000190 a9 b3 43 de f3 04 cb 7b db 01 51 88 46 02 c1 4b |..C....{..Q.F..K| +000001a0 ec fa a8 05 42 a4 00 ae ed |....B....| +>>> Flow 2 (server to client) +00000000 16 03 03 00 80 02 00 00 7c 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 20 c0 df df c9 |........... ....| +00000030 1d ed 19 9e 2d ce 57 f6 95 54 67 76 77 64 c7 f4 |....-.W..Tgvwd..| +00000040 ad 18 7d d8 58 6f 08 30 a5 a4 50 cd 13 02 00 00 |..}.Xo.0..P.....| +00000050 34 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |4.+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 00 |.........._X.;t.| +00000080 29 00 02 00 00 14 03 03 00 01 01 17 03 03 00 17 |)...............| +00000090 cc 35 3b 89 bc fe dc df 02 d3 00 f8 ef 56 74 6a |.5;..........Vtj| +000000a0 ee af 35 9e d6 91 e1 17 03 03 00 45 07 24 33 da |..5........E.$3.| +000000b0 63 9a eb 15 28 dc e8 60 dc 36 97 12 5e 54 a5 48 |c...(..`.6..^T.H| +000000c0 aa e3 07 35 e7 f0 7c 60 93 d4 4c 24 d7 0d 01 66 |...5..|`..L$...f| +000000d0 d9 b6 e3 c5 ab 9d cf 47 49 f6 4f 87 7a c4 ab 34 |.......GI.O.z..4| +000000e0 df 37 19 a6 f9 36 c8 ea 04 af 9a d7 21 dd 89 e2 |.7...6......!...| +000000f0 79 17 03 03 00 a3 60 8e 39 7e 5d 21 e2 e4 8a 0e |y.....`.9~]!....| +00000100 73 4a 96 09 49 fb 55 b4 68 60 88 0d 01 73 5b d0 |sJ..I.U.h`...s[.| +00000110 42 4d 9a af 22 ae 33 83 16 60 3e 25 e2 fd 76 10 |BM..".3..`>%..v.| +00000120 6e 92 0d 6b 88 c7 54 46 51 bf 86 a4 f4 11 d3 e8 |n..k..TFQ.......| +00000130 29 54 16 31 b2 44 4b 45 5d 3f 97 d9 33 10 ef 92 |)T.1.DKE]?..3...| +00000140 e5 aa 3b 2d 3d 36 ef 85 04 2d 17 66 2a 00 ea 87 |..;-=6...-.f*...| +00000150 9a 95 5e 54 1b 01 f8 5d 34 96 83 cf 28 d4 24 ed |..^T...]4...(.$.| +00000160 c6 9b da 7a 1c d4 a3 5a 53 bb 2f cf 56 f3 ef 99 |...z...ZS./.V...| +00000170 40 e2 34 31 ca 55 c9 7a 02 47 14 8b 7e 04 5a ff |@.41.U.z.G..~.Z.| +00000180 17 f7 95 f0 46 e0 ce cf 8f b0 9f 6b 51 96 d5 f7 |....F......kQ...| +00000190 0b 33 e2 0a 62 4e 05 28 66 |.3..bN.(f| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 45 66 00 e2 3f 07 |..........Ef..?.| +00000010 02 a4 1d 71 27 2a fe c7 00 1e 2d bc 50 b6 bc 35 |...q'*....-.P..5| +00000020 22 c4 a4 d8 a1 5f fa 10 d7 48 c8 20 94 50 b1 ae |"...._...H. .P..| +00000030 47 8c 62 26 15 79 33 6b 06 0d 19 67 7e 22 7c a5 |G.b&.y3k...g~"|.| +00000040 ca 05 c9 ae c8 66 6b ca 8e f7 7c 35 de 5e c3 25 |.....fk...|5.^.%| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e 6a 89 ce e3 1d 13 60 f3 8b 26 97 |.....j.....`..&.| +00000010 3e 5d 9f a8 47 c9 74 f5 66 ad 75 87 57 ec ef b1 |>]..G.t.f.u.W...| +00000020 66 da f0 17 03 03 00 13 95 bd 2d ef d5 30 c1 1b |f.........-..0..| +00000030 bd 54 3d f6 16 02 28 78 a4 4a 24 |.T=...(x.J$| diff --git a/testdata/Server-TLSv13-Resume-HelloRetryRequest b/testdata/Server-TLSv13-Resume-HelloRetryRequest new file mode 100644 index 0000000..2e1cbaf --- /dev/null +++ b/testdata/Server-TLSv13-Resume-HelloRetryRequest @@ -0,0 +1,106 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 01 9e 01 00 01 9a 03 03 75 28 78 ec 6f |...........u(x.o| +00000010 3d d0 60 09 8e 23 dd 91 67 4b e4 2f b0 b7 93 60 |=.`..#..gK./...`| +00000020 3a 4f 92 38 6b 5e 67 ab 49 f4 b8 20 46 e8 0a c4 |:O.8k^g.I.. F...| +00000030 bd 13 ce 09 13 27 a4 5d a4 3b e2 9b 9d ff 17 30 |.....'.].;.....0| +00000040 96 e3 06 1a d6 c6 04 9c f3 9a 15 76 00 08 13 02 |...........v....| +00000050 13 03 13 01 00 ff 01 00 01 49 00 00 00 0e 00 0c |.........I......| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 06 00 04 00 1d 00 17 00 23 |...............#| +00000080 00 00 00 16 00 00 00 17 00 00 00 0d 00 1e 00 1c |................| +00000090 04 03 05 03 06 03 08 07 08 08 08 09 08 0a 08 0b |................| +000000a0 08 04 08 05 08 06 04 01 05 01 06 01 00 2b 00 03 |.............+..| +000000b0 02 03 04 00 2d 00 02 01 01 00 33 00 26 00 24 00 |....-.....3.&.$.| +000000c0 1d 00 20 a0 26 2f f2 a2 ca d0 ff 0d 5d 9e cc 84 |.. .&/......]...| +000000d0 52 51 07 86 4c 28 44 4e 65 7e 0c a1 9d 50 9c 77 |RQ..L(DNe~...P.w| +000000e0 8a 54 48 00 29 00 bc 00 87 00 81 50 46 ad c1 db |.TH.)......PF...| +000000f0 a8 38 86 7b 2b bb fd d0 c3 42 3e 00 00 00 00 00 |.8.{+....B>.....| +00000100 00 00 00 00 00 00 00 00 00 00 00 94 68 2c a3 81 |............h,..| +00000110 51 ed 14 ef 68 ca 42 c5 4c 1f 90 bf 3c 07 2b e5 |Q...h.B.L...<.+.| +00000120 52 22 a0 c0 46 db cb f6 b9 a0 b5 56 b0 d6 7f 03 |R"..F......V....| +00000130 b7 2d 9f a5 2a 25 8e 65 d2 b9 6a f3 e4 7e 79 d7 |.-..*%.e..j..~y.| +00000140 3d cc b2 3d b6 24 a9 31 82 49 38 16 92 f0 49 97 |=..=.$.1.I8...I.| +00000150 e2 07 e2 cd 1c 77 d3 e0 00 de 56 11 17 40 00 63 |.....w....V..@.c| +00000160 13 00 48 39 8e fd 09 96 08 f3 81 7c 00 00 00 00 |..H9.......|....| +00000170 00 31 30 da 3c 92 3d 0f 55 c9 9e bb 99 c6 e0 ac |.10.<.=.U.......| +00000180 fe 5a 3a 94 7e d6 2a 0a 81 c0 be 8a 4e 1d da 5e |.Z:.~.*.....N..^| +00000190 31 80 97 2d 2a 6a fc 96 03 d2 aa 07 45 f1 78 33 |1..-*j......E.x3| +000001a0 c4 1d 1c |...| +>>> Flow 2 (server to client) +00000000 16 03 03 00 58 02 00 00 54 03 03 cf 21 ad 74 e5 |....X...T...!.t.| +00000010 9a 61 11 be 1d 8c 02 1e 65 b8 91 c2 a2 11 16 7a |.a......e......z| +00000020 bb 8c 5e 07 9e 09 e2 c8 a8 33 9c 20 46 e8 0a c4 |..^......3. F...| +00000030 bd 13 ce 09 13 27 a4 5d a4 3b e2 9b 9d ff 17 30 |.....'.].;.....0| +00000040 96 e3 06 1a d6 c6 04 9c f3 9a 15 76 13 02 00 00 |...........v....| +00000050 0c 00 2b 00 02 03 04 00 33 00 02 00 17 14 03 03 |..+.....3.......| +00000060 00 01 01 |...| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 16 03 03 01 bf 01 00 01 bb 03 |................| +00000010 03 75 28 78 ec 6f 3d d0 60 09 8e 23 dd 91 67 4b |.u(x.o=.`..#..gK| +00000020 e4 2f b0 b7 93 60 3a 4f 92 38 6b 5e 67 ab 49 f4 |./...`:O.8k^g.I.| +00000030 b8 20 46 e8 0a c4 bd 13 ce 09 13 27 a4 5d a4 3b |. F........'.].;| +00000040 e2 9b 9d ff 17 30 96 e3 06 1a d6 c6 04 9c f3 9a |.....0..........| +00000050 15 76 00 08 13 02 13 03 13 01 00 ff 01 00 01 6a |.v.............j| +00000060 00 00 00 0e 00 0c 00 00 09 31 32 37 2e 30 2e 30 |.........127.0.0| +00000070 2e 31 00 0b 00 04 03 00 01 02 00 0a 00 06 00 04 |.1..............| +00000080 00 1d 00 17 00 23 00 00 00 16 00 00 00 17 00 00 |.....#..........| +00000090 00 0d 00 1e 00 1c 04 03 05 03 06 03 08 07 08 08 |................| +000000a0 08 09 08 0a 08 0b 08 04 08 05 08 06 04 01 05 01 |................| +000000b0 06 01 00 2b 00 03 02 03 04 00 2d 00 02 01 01 00 |...+......-.....| +000000c0 33 00 47 00 45 00 17 00 41 04 79 db 79 c8 0b 77 |3.G.E...A.y.y..w| +000000d0 8b 37 30 65 85 ce 72 49 ab a1 cb 6a 06 00 a6 65 |.70e..rI...j...e| +000000e0 22 51 63 63 16 45 7b 85 ee c3 2e 09 25 d9 a3 49 |"Qcc.E{.....%..I| +000000f0 91 07 35 c4 b6 61 23 9c 91 c1 03 07 ad a2 77 02 |..5..a#.......w.| +00000100 61 93 05 cf 74 36 7a 66 ad 24 00 29 00 bc 00 87 |a...t6zf.$.)....| +00000110 00 81 50 46 ad c1 db a8 38 86 7b 2b bb fd d0 c3 |..PF....8.{+....| +00000120 42 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |B>..............| +00000130 00 00 94 68 2c a3 81 51 ed 14 ef 68 ca 42 c5 4c |...h,..Q...h.B.L| +00000140 1f 90 bf 3c 07 2b e5 52 22 a0 c0 46 db cb f6 b9 |...<.+.R"..F....| +00000150 a0 b5 56 b0 d6 7f 03 b7 2d 9f a5 2a 25 8e 65 d2 |..V.....-..*%.e.| +00000160 b9 6a f3 e4 7e 79 d7 3d cc b2 3d b6 24 a9 31 82 |.j..~y.=..=.$.1.| +00000170 49 38 16 92 f0 49 97 e2 07 e2 cd 1c 77 d3 e0 00 |I8...I......w...| +00000180 de 56 11 17 40 00 63 13 00 48 39 8e fd 09 96 08 |.V..@.c..H9.....| +00000190 f3 81 7c 00 00 00 00 00 31 30 e0 ac 7a 74 d9 50 |..|.....10..zt.P| +000001a0 c1 3b 1b 67 7b 5a 74 b0 39 db dd 92 6f 75 38 31 |.;.g{Zt.9...ou81| +000001b0 10 f4 98 dc ad af eb ac ef 11 0d 96 48 01 f8 10 |............H...| +000001c0 d6 e1 68 bf 88 a3 33 b9 9a b9 |..h...3...| +>>> Flow 4 (server to client) +00000000 16 03 03 00 a1 02 00 00 9d 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 20 46 e8 0a c4 |........... F...| +00000030 bd 13 ce 09 13 27 a4 5d a4 3b e2 9b 9d ff 17 30 |.....'.].;.....0| +00000040 96 e3 06 1a d6 c6 04 9c f3 9a 15 76 13 02 00 00 |...........v....| +00000050 55 00 2b 00 02 03 04 00 33 00 45 00 17 00 41 04 |U.+.....3.E...A.| +00000060 1e 18 37 ef 0d 19 51 88 35 75 71 b5 e5 54 5b 12 |..7...Q.5uq..T[.| +00000070 2e 8f 09 67 fd a7 24 20 3e b2 56 1c ce 97 28 5e |...g..$ >.V...(^| +00000080 f8 2b 2d 4f 9e f1 07 9f 6c 4b 5b 83 56 e2 32 42 |.+-O....lK[.V.2B| +00000090 e9 58 b6 d7 49 a6 b5 68 1a 41 03 56 6b dc 5a 89 |.X..I..h.A.Vk.Z.| +000000a0 00 29 00 02 00 00 17 03 03 00 17 48 f2 b1 a7 11 |.).........H....| +000000b0 68 36 e4 67 b8 e8 d0 6d b8 76 fa 4b 7e bc d0 63 |h6.g...m.v.K~..c| +000000c0 6a 8c 17 03 03 00 45 49 37 80 89 e3 4d b5 60 4a |j.....EI7...M.`J| +000000d0 7c 52 a0 f5 e9 32 85 ad 8a 59 0b 27 66 c7 2f ec ||R...2...Y.'f./.| +000000e0 55 7f 2c 9b 1e ef 0a 11 e1 72 1f 72 b2 10 9f 3f |U.,......r.r...?| +000000f0 bb 51 8f d0 fe e8 62 fd 93 e4 0d e1 57 7f 3a 3c |.Q....b.....W.:<| +00000100 22 b4 ca 20 04 cd 65 94 44 df 1a 1c 17 03 03 00 |".. ..e.D.......| +00000110 a3 38 02 96 5e c2 6d ad 2d 17 79 63 15 bd 06 af |.8..^.m.-.yc....| +00000120 e3 ae 5a 94 66 b5 2d 12 d1 bc 9c 16 56 ac 71 fe |..Z.f.-.....V.q.| +00000130 d7 af 1f 27 9a 22 1a d2 de da 90 ca d5 7f 79 d1 |...'."........y.| +00000140 8a 6e c6 76 e7 76 b4 cc 9b d5 b5 ed b5 b2 9d 4e |.n.v.v.........N| +00000150 f8 88 a0 b1 14 91 8b 6b d9 b8 5d 34 61 8a a3 b3 |.......k..]4a...| +00000160 c8 db e9 c9 8d a7 53 d8 46 f0 bd 4b 30 bf 49 3d |......S.F..K0.I=| +00000170 cc 42 d3 fb b7 f3 ad 78 5b 01 38 5d c3 22 d0 51 |.B.....x[.8].".Q| +00000180 cb a3 d9 fe 61 f9 4a ee 7d 89 8b 88 22 2b 9b fe |....a.J.}..."+..| +00000190 19 cd 17 b7 9e 81 57 f6 cb 14 29 cb 3b 87 0e 83 |......W...).;...| +000001a0 5a 84 7c 13 2d c8 d4 a7 6a db 1d 10 c6 04 ed 0d |Z.|.-...j.......| +000001b0 1d d7 06 bb |....| +>>> Flow 5 (client to server) +00000000 17 03 03 00 45 44 0b 11 40 bf 4b b4 2b 12 76 b3 |....ED..@.K.+.v.| +00000010 e4 59 b3 91 bb 45 21 b3 78 aa dc 76 66 dd d6 3c |.Y...E!.x..vf..<| +00000020 21 cf 32 5c 37 85 ef fb c7 53 cb 55 9c a5 40 0a |!.2\7....S.U..@.| +00000030 9d f8 aa b4 e3 e4 51 bf d8 cb 15 44 f0 02 19 52 |......Q....D...R| +00000040 62 73 82 f2 c2 ae d2 03 0e dc |bs........| +>>> Flow 6 (server to client) +00000000 17 03 03 00 1e fe e8 25 be 32 b9 ce db 3d 36 54 |.......%.2...=6T| +00000010 78 7c 70 50 0e 8e f4 04 ec a9 2e 88 7b e5 23 23 |x|pP........{.##| +00000020 72 f4 04 17 03 03 00 13 cc 7c 8e 1b 85 30 16 57 |r........|...0.W| +00000030 b0 39 6a 3a b3 ee 57 82 17 03 c9 |.9j:..W....| diff --git a/testdata/Server-TLSv13-ResumeDisabled b/testdata/Server-TLSv13-ResumeDisabled new file mode 100644 index 0000000..1ba7ca1 --- /dev/null +++ b/testdata/Server-TLSv13-ResumeDisabled @@ -0,0 +1,104 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 01 a4 01 00 01 a0 03 03 96 06 be 39 9a |..............9.| +00000010 6b 71 35 ab f4 2a d2 66 4d 8f 2c 86 c9 b6 7b e1 |kq5..*.fM.,...{.| +00000020 85 55 81 f5 90 49 20 c9 d7 5d ea 20 a2 da 4f 31 |.U...I ..]. ..O1| +00000030 a6 7a bd 07 5d 24 2e 88 1c 88 0e 19 1e 33 51 51 |.z..]$.......3QQ| +00000040 a1 14 df d7 70 b5 62 6d 28 a8 5f 0e 00 08 13 02 |....p.bm(._.....| +00000050 13 03 13 01 00 ff 01 00 01 4f 00 00 00 0e 00 0c |.........O......| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| +00000080 00 19 00 18 00 23 00 00 00 16 00 00 00 17 00 00 |.....#..........| +00000090 00 0d 00 1e 00 1c 04 03 05 03 06 03 08 07 08 08 |................| +000000a0 08 09 08 0a 08 0b 08 04 08 05 08 06 04 01 05 01 |................| +000000b0 06 01 00 2b 00 03 02 03 04 00 2d 00 02 01 01 00 |...+......-.....| +000000c0 33 00 26 00 24 00 1d 00 20 6d b7 14 7e 1b 7e c5 |3.&.$... m..~.~.| +000000d0 2b 54 1e 88 bd 64 23 49 84 31 73 f0 b8 55 6c 23 |+T...d#I.1s..Ul#| +000000e0 9e 77 b9 c5 53 a5 7f 1d 15 00 29 00 bc 00 87 00 |.w..S.....).....| +000000f0 81 50 46 ad c1 db a8 38 86 7b 2b bb fd d0 c3 42 |.PF....8.{+....B| +00000100 3e 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |>...............| +00000110 00 94 68 2c a3 81 51 ed 14 ef 68 ca 42 c5 4c e2 |..h,..Q...h.B.L.| +00000120 e9 ab 5a 10 63 08 88 5d 47 1a 77 c1 7c 72 14 12 |..Z.c..]G.w.|r..| +00000130 24 5f 79 c4 ce 1a 7c 08 bf 81 6d 0e 55 e6 2d 0d |$_y...|...m.U.-.| +00000140 00 68 79 bc 2d ea f4 19 fd 43 ef 51 3f b5 5f 49 |.hy.-....C.Q?._I| +00000150 38 16 e0 74 43 a4 e9 95 f6 6d eb bf 6d e2 57 79 |8..tC....m..m.Wy| +00000160 7a 6e 53 12 bd a2 e0 32 98 1d 4e cb ae 72 1f 4c |znS....2..N..r.L| +00000170 38 4c 00 00 00 00 00 31 30 b6 c5 6e 26 02 64 56 |8L.....10..n&.dV| +00000180 65 ab 95 9c 16 62 d0 c5 57 41 c7 4c 78 72 44 c7 |e....b..WA.LxrD.| +00000190 4f a4 dc e1 d3 ef 49 af 7d a1 e5 ce 6f 22 f9 ec |O.....I.}...o"..| +000001a0 f4 b3 e4 32 e3 99 b0 85 39 |...2....9| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 a2 da 4f 31 |........... ..O1| +00000030 a6 7a bd 07 5d 24 2e 88 1c 88 0e 19 1e 33 51 51 |.z..]$.......3QQ| +00000040 a1 14 df d7 70 b5 62 6d 28 a8 5f 0e 13 02 00 00 |....p.bm(._.....| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 5a 35 3d 19 9b a7 |..........Z5=...| +00000090 a4 45 2c c3 09 ae 85 be 08 fe 1d e2 9a 5d 7a 4b |.E,..........]zK| +000000a0 8e 17 03 03 02 6d 87 db fb 18 21 96 c7 2b fb ff |.....m....!..+..| +000000b0 89 b9 25 f6 0d 89 0f b4 17 bb 17 e1 ba 95 b7 cd |..%.............| +000000c0 c2 75 b5 8b d8 64 ff 7c dc e2 97 32 0c 2f e0 9f |.u...d.|...2./..| +000000d0 db b9 ef 14 9d cc e4 68 44 f7 0a 55 d2 b1 a0 f7 |.......hD..U....| +000000e0 fc de a5 99 f0 5d 0c 60 7b c3 25 85 f6 79 8f e6 |.....].`{.%..y..| +000000f0 cd 43 1c 43 d9 cd 28 ea ce 10 1c 16 68 b8 d7 3d |.C.C..(.....h..=| +00000100 b4 d4 db b4 bf 76 f8 45 23 d8 9f d1 be d1 bd db |.....v.E#.......| +00000110 9c 45 dd 28 3b 68 22 57 6c b7 65 fc 5e 66 f6 cb |.E.(;h"Wl.e.^f..| +00000120 a2 88 bd 96 e4 00 b5 85 ae 00 95 b9 da 42 16 c9 |.............B..| +00000130 c9 63 c2 67 ec 22 65 6e 66 0e cf de 68 ad e7 87 |.c.g."enf...h...| +00000140 ae 63 b4 e9 1c c0 2f 1e 79 7e a3 3f 6d 2b 68 c1 |.c..../.y~.?m+h.| +00000150 e8 60 cd 26 e0 05 de fa 7b 77 45 71 d8 f9 03 d7 |.`.&....{wEq....| +00000160 d3 50 51 15 cf fc 39 fa 07 19 28 5e e8 2d 31 00 |.PQ...9...(^.-1.| +00000170 2a e1 a4 21 31 83 4e 7d 51 e7 53 eb 33 22 51 fe |*..!1.N}Q.S.3"Q.| +00000180 15 04 e9 3d 73 89 3b 56 3f c6 ec 6e 0a 71 68 a6 |...=s.;V?..n.qh.| +00000190 76 f3 f1 aa 4e d0 9f 85 45 3f 7b aa ae ad 42 b9 |v...N...E?{...B.| +000001a0 07 64 ab ad 03 b1 33 78 93 f0 49 95 65 fb 81 8c |.d....3x..I.e...| +000001b0 04 ee e7 f3 2c 0a 99 51 e5 ef 05 14 d3 93 37 2b |....,..Q......7+| +000001c0 73 96 81 6f f5 9b a3 9a 20 95 5c 13 fc 97 3e c0 |s..o.... .\...>.| +000001d0 87 e4 ec 00 84 0b f2 09 29 63 dd 54 03 ce e0 43 |........)c.T...C| +000001e0 e9 16 a0 98 32 3e fa 58 1d 81 1e 56 ef 64 ff f7 |....2>.X...V.d..| +000001f0 b0 aa fc 5f 8c 89 48 76 ef d2 f1 d0 9c 16 f9 57 |..._..Hv.......W| +00000200 ac a6 4a a4 a8 75 ae fc 4b 9f ef 3c 28 a5 0c c1 |..J..u..K..<(...| +00000210 c8 72 82 bf e9 93 f2 42 00 0a 49 5d be c7 09 91 |.r.....B..I]....| +00000220 29 40 5e a6 ad ae 9c 69 6f d8 33 53 0a 50 5b 48 |)@^....io.3S.P[H| +00000230 7d d7 7e 1e 3b d3 ec e6 cf fe 1e 6a 27 a2 83 35 |}.~.;......j'..5| +00000240 28 13 2f 00 e5 29 c3 10 46 53 a1 17 15 59 5d 74 |(./..)..FS...Y]t| +00000250 f5 7c fa a5 71 34 32 75 48 e6 2c 1d 90 e8 c1 87 |.|..q42uH.,.....| +00000260 50 ac 17 27 b8 f7 a9 8e 59 58 d6 b8 d9 ef b6 57 |P..'....YX.....W| +00000270 b8 13 41 d0 eb 80 1c 48 66 1d 41 a5 b5 0d 12 17 |..A....Hf.A.....| +00000280 52 96 62 29 0e 4a 09 b4 50 b8 37 c3 8f 85 67 27 |R.b).J..P.7...g'| +00000290 d9 6f 33 11 95 ca 0a 36 75 ef 15 45 81 d3 ad 7d |.o3....6u..E...}| +000002a0 1a ff a7 0c 47 21 37 24 27 ce 42 68 5f 5d 7c fe |....G!7$'.Bh_]|.| +000002b0 0c f2 0b 81 ea f9 25 c9 99 c2 56 72 54 bd 2f 4c |......%...VrT./L| +000002c0 40 17 f0 54 a0 6e 1d 14 80 9c 3c d3 f9 81 0d 9d |@..T.n....<.....| +000002d0 e1 47 55 24 e4 62 0e 14 0d 46 3f 52 1b ef ab 45 |.GU$.b...F?R...E| +000002e0 d8 86 c7 ef aa e2 ea e6 5e 2e d8 89 33 46 a0 d0 |........^...3F..| +000002f0 39 e2 cc 13 1d 62 11 ae c0 73 71 b8 ef 4b 43 71 |9....b...sq..KCq| +00000300 dd 14 42 09 c9 10 4e bc b9 93 78 d6 83 02 40 c0 |..B...N...x...@.| +00000310 62 56 40 17 03 03 00 99 6e 03 4b 38 20 98 d7 3e |bV@.....n.K8 ..>| +00000320 52 33 e0 be 26 9b 38 4c 7f 2b c1 cc 84 22 7e 86 |R3..&.8L.+..."~.| +00000330 1d 39 f6 0a c0 ff e9 d9 4d 81 24 26 8d e1 c5 c0 |.9......M.$&....| +00000340 78 18 59 e0 6a ac 35 ad a0 6d 32 09 63 75 88 10 |x.Y.j.5..m2.cu..| +00000350 2b 6b d1 36 ea f9 03 41 a9 a7 26 82 38 37 aa 81 |+k.6...A..&.87..| +00000360 a1 7a 81 5c 0b db 63 32 06 e7 cb a8 1c 0a ff be |.z.\..c2........| +00000370 a2 e5 00 42 59 61 78 40 2e e2 85 0a ad 6b ea ae |...BYax@.....k..| +00000380 17 5a 92 f6 d3 8e 97 a2 18 a5 28 8a 41 1d 70 26 |.Z........(.A.p&| +00000390 bc d8 e7 38 ba c5 68 b9 ae f9 c6 27 bc 5b 3b 9f |...8..h....'.[;.| +000003a0 db ae 38 84 6f 18 3c e6 1d 30 cb 57 b1 95 63 1d |..8.o.<..0.W..c.| +000003b0 ef 17 03 03 00 45 40 43 00 0c 81 0a ed cf 35 9d |.....E@C......5.| +000003c0 45 0f 2b 66 ad b6 bd f9 72 9f 77 aa 87 9a 4f 9a |E.+f....r.w...O.| +000003d0 f4 1b 08 bd 33 aa f7 dc f1 78 58 d7 53 aa 82 12 |....3....xX.S...| +000003e0 b1 f7 c2 dd 8b 0d 90 81 e9 a9 7b 7c 17 52 fe ab |..........{|.R..| +000003f0 e4 94 06 d4 44 b4 7d 81 61 97 6b |....D.}.a.k| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 45 0e e9 bb 83 d4 |..........E.....| +00000010 41 da c6 75 69 c2 5c 74 0c 86 c7 b9 08 2f 35 da |A..ui.\t...../5.| +00000020 19 6f cf 43 a4 23 2f fe 59 5d 0f 1f 1e 0f ca e4 |.o.C.#/.Y]......| +00000030 7f 4e 7d bc ce 77 76 f2 ce 1c c4 e8 4e a9 80 a8 |.N}..wv.....N...| +00000040 72 16 5b 3c 97 8f 55 cb 76 cf fa 02 29 41 af 6d |r.[<..U.v...)A.m| +>>> Flow 4 (server to client) +00000000 17 03 03 00 1e f2 5e b6 bd bc c3 c2 58 fe 90 e9 |......^.....X...| +00000010 07 07 a2 ab 66 41 f7 c4 1f 48 48 01 c9 38 d2 c7 |....fA...HH..8..| +00000020 c0 ab b5 17 03 03 00 13 db 6e 0e f9 4a 94 12 a3 |.........n..J...| +00000030 2a 86 3f d1 a7 ac c3 58 20 0d 09 |*.?....X ..| diff --git a/testdata/Server-TLSv13-X25519 b/testdata/Server-TLSv13-X25519 index 57a13f3..2446512 100644 --- a/testdata/Server-TLSv13-X25519 +++ b/testdata/Server-TLSv13-X25519 @@ -1,91 +1,102 @@ >>> Flow 1 (client to server) -00000000 16 03 01 00 d8 01 00 00 d4 03 03 3a 50 25 cb 97 |...........:P%..| -00000010 ed a7 58 c6 58 64 62 03 f6 ae 8c 70 72 98 55 c0 |..X.Xdb....pr.U.| -00000020 65 8c f5 64 bc 41 29 7f df ce 7b 20 99 ce de a1 |e..d.A)...{ ....| -00000030 6c 2c 3a e0 cd b4 7b 97 ca 00 e0 ee 12 43 a4 0d |l,:...{......C..| -00000040 d0 c7 0d 17 21 d4 03 d2 56 56 f7 32 00 08 13 02 |....!...VV.2....| +00000000 16 03 01 00 d8 01 00 00 d4 03 03 3d 42 5b bc 55 |...........=B[.U| +00000010 6c e3 e9 9a db 07 85 ca 18 fb f3 e0 56 18 b5 39 |l...........V..9| +00000020 9d 43 91 41 38 a0 ea c1 eb db ec 20 ca b8 c3 6e |.C.A8...... ...n| +00000030 c8 78 18 88 ab cf c3 cb 7e ff 7d e5 7e d5 55 94 |.x......~.}.~.U.| +00000040 f8 b2 01 ad 8c 95 82 f0 8e d8 61 8e 00 08 13 02 |..........a.....| 00000050 13 03 13 01 00 ff 01 00 00 83 00 00 00 0e 00 0c |................| 00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| 00000070 03 00 01 02 00 0a 00 04 00 02 00 1d 00 16 00 00 |................| 00000080 00 17 00 00 00 0d 00 1e 00 1c 04 03 05 03 06 03 |................| 00000090 08 07 08 08 08 09 08 0a 08 0b 08 04 08 05 08 06 |................| 000000a0 04 01 05 01 06 01 00 2b 00 03 02 03 04 00 2d 00 |.......+......-.| -000000b0 02 01 01 00 33 00 26 00 24 00 1d 00 20 30 ac 6d |....3.&.$... 0.m| -000000c0 11 29 bd 1b 06 04 94 10 9a e4 25 1a fa f5 47 ff |.)........%...G.| -000000d0 fc 66 4d 8c d7 79 ed f7 52 c9 d1 3c 3e |.fM..y..R..<>| +000000b0 02 01 01 00 33 00 26 00 24 00 1d 00 20 e8 82 c0 |....3.&.$... ...| +000000c0 e9 dc b5 e1 3f 74 c9 42 e9 98 d1 1b fb 68 52 5d |....?t.B.....hR]| +000000d0 3e c1 65 56 6c 12 2b 3b ad 02 7c 80 42 |>.eVl.+;..|.B| >>> Flow 2 (server to client) 00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| 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 20 99 ce de a1 |........... ....| -00000030 6c 2c 3a e0 cd b4 7b 97 ca 00 e0 ee 12 43 a4 0d |l,:...{......C..| -00000040 d0 c7 0d 17 21 d4 03 d2 56 56 f7 32 13 02 00 00 |....!...VV.2....| +00000020 00 00 00 00 00 00 00 00 00 00 00 20 ca b8 c3 6e |........... ...n| +00000030 c8 78 18 88 ab cf c3 cb 7e ff 7d e5 7e d5 55 94 |.x......~.}.~.U.| +00000040 f8 b2 01 ad 8c 95 82 f0 8e d8 61 8e 13 02 00 00 |..........a.....| 00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| 00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| 00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| -00000080 03 03 00 01 01 17 03 03 00 17 17 ae 18 e7 86 a2 |................| -00000090 cb 27 29 d1 e5 e7 3a 73 d8 fd 98 ec 43 74 47 a2 |.')...:s....CtG.| -000000a0 a6 17 03 03 02 6d d2 f0 a6 3e 2e 8d 47 3e b4 03 |.....m...>..G>..| -000000b0 cd c7 96 a2 f0 1f 99 f0 58 b0 4d 81 4c e7 93 ae |........X.M.L...| -000000c0 a5 e9 0a 07 7f e3 6f 82 c5 2f 4f cb 78 1b a3 44 |......o../O.x..D| -000000d0 72 63 75 bc a8 6e cd 21 a9 5b b1 4d 1d cb f4 3c |rcu..n.!.[.M...<| -000000e0 2f 69 f1 92 76 9b 60 b2 27 ff e9 88 3d 06 d1 ac |/i..v.`.'...=...| -000000f0 66 e8 80 a0 92 3d 1c aa bd 81 5d 5b 64 7a b1 9a |f....=....][dz..| -00000100 04 7b 63 38 fa f6 df 56 bf 84 86 8b 05 c9 e5 da |.{c8...V........| -00000110 b0 83 7c 47 e2 39 50 df e2 1b 4f 47 24 31 8d 7d |..|G.9P...OG$1.}| -00000120 80 9f 6d 3b 7e e9 d1 65 96 f5 fc 12 2c e9 d8 08 |..m;~..e....,...| -00000130 f1 0b 4c dd ee c6 77 a1 83 f9 70 b0 48 72 d7 d0 |..L...w...p.Hr..| -00000140 48 0a 58 6c f9 e6 04 37 31 bd ba c5 6a 31 66 6b |H.Xl...71...j1fk| -00000150 cc f5 70 db a3 0e 53 a8 7c ce c2 24 c0 21 c3 6e |..p...S.|..$.!.n| -00000160 bb dd 62 3d fc e6 71 0e 28 b5 76 1b 1c 06 bd c7 |..b=..q.(.v.....| -00000170 4e 72 dd 54 9d 93 a3 8f 0d cb ec e4 f1 0f c1 b9 |Nr.T............| -00000180 ce d4 50 44 61 46 de 1a 6a f4 19 61 bd 56 f2 06 |..PDaF..j..a.V..| -00000190 bb 9f 9e d2 9a b2 7d bd 56 5f cc 6c aa f3 60 15 |......}.V_.l..`.| -000001a0 93 41 05 97 8b 9d 7a 89 5c 1d 66 10 03 cc 7a da |.A....z.\.f...z.| -000001b0 41 5e 32 45 76 21 10 e2 49 a3 df 05 81 a0 4b 9d |A^2Ev!..I.....K.| -000001c0 b7 e5 43 93 c0 a4 33 48 11 81 bd 74 86 45 a4 0b |..C...3H...t.E..| -000001d0 a0 57 33 ea 02 c2 32 22 62 1f a7 85 06 27 bd 2a |.W3...2"b....'.*| -000001e0 4e a6 52 a9 81 76 d3 65 28 58 f9 d3 20 7a 6d a3 |N.R..v.e(X.. zm.| -000001f0 a7 cd b1 5d e6 89 70 88 09 4e 54 bd d9 f1 91 5f |...]..p..NT...._| -00000200 e6 91 32 3e ef 09 40 f9 be 10 bd 46 40 9c 0d 8f |..2>..@....F@...| -00000210 e3 39 0c b6 dc ce dc 29 77 3c 14 dd 53 92 9d 24 |.9.....)w<..S..$| -00000220 62 bb 5b 6e bf 08 ac 66 be bf 06 4d da 79 8a 3f |b.[n...f...M.y.?| -00000230 d6 07 15 2c 0b ed 9b 62 a3 30 2a 7e 73 c7 bc 16 |...,...b.0*~s...| -00000240 35 24 56 67 86 68 72 1a 31 d2 4b 9d 33 51 82 30 |5$Vg.hr.1.K.3Q.0| -00000250 09 8f 3f 71 dc 8f 96 ad e2 9c 0e 9d a1 1b 52 1c |..?q..........R.| -00000260 03 b7 e2 8e 9e fc 7f e0 5c 13 3e 9c 5b e0 28 0c |........\.>.[.(.| -00000270 b1 e9 1f 5b 93 13 07 6d 19 11 43 94 df 27 3e 31 |...[...m..C..'>1| -00000280 e9 ca 57 5a da 3f 69 c5 ef 5a 4b 54 88 b6 78 d3 |..WZ.?i..ZKT..x.| -00000290 c0 17 d4 e8 73 6d d2 ac 4f 82 3c d5 39 dd 33 0d |....sm..O.<.9.3.| -000002a0 d0 65 a4 f4 b4 97 a3 76 cc ae a1 50 72 ae 8a 62 |.e.....v...Pr..b| -000002b0 ba a3 5c ed df a9 d1 16 0e 57 0e c7 7f e2 07 d0 |..\......W......| -000002c0 d1 c4 f3 f6 7b 53 2d 21 c5 92 76 24 22 77 01 ad |....{S-!..v$"w..| -000002d0 de 4b 44 3e 75 80 c3 b5 e0 ab e3 f4 ad d1 23 fd |.KD>u.........#.| -000002e0 e9 ef bf 91 ca b1 fd bd 3d d0 f6 2b 01 10 f2 be |........=..+....| -000002f0 e5 4f 6d cd 42 7d ec 0c 62 0b ec 3e b2 80 02 bb |.Om.B}..b..>....| -00000300 b2 29 49 58 3e d3 72 bb 17 1d d7 c5 3b 69 90 3b |.)IX>.r.....;i.;| -00000310 af 3a 4e 17 03 03 00 99 a4 24 43 f4 e8 d4 49 d9 |.:N......$C...I.| -00000320 4f cf 34 47 cb f4 20 4d d5 ec 13 cf f5 37 5a 5d |O.4G.. M.....7Z]| -00000330 0f 3f b6 47 aa 6c f7 70 85 cb ee 23 d2 a9 c3 26 |.?.G.l.p...#...&| -00000340 bf 19 46 74 13 c6 0e 83 52 a6 41 9b e1 b9 91 3a |..Ft....R.A....:| -00000350 6f d2 ee bd 0b 9a ef 94 45 23 22 b6 19 55 04 a6 |o.......E#"..U..| -00000360 c2 d7 e1 0b e4 ee 05 fc 83 c5 60 55 b6 4a 36 5f |..........`U.J6_| -00000370 04 5e fc cf c2 56 0c 61 39 c8 1d a7 e4 a0 08 4a |.^...V.a9......J| -00000380 75 29 d0 81 a4 8f f7 35 c7 b8 8c 0e d8 76 0a 6e |u).....5.....v.n| -00000390 5c ca 72 58 9a 61 3e 24 a7 2e 1c d5 6a f5 4b 6b |\.rX.a>$....j.Kk| -000003a0 15 86 09 fa 55 78 c3 96 ae 09 63 25 64 3c 7e 1b |....Ux....c%d<~.| -000003b0 aa 17 03 03 00 45 6f cf 21 85 b9 01 82 44 b1 f5 |.....Eo.!....D..| -000003c0 26 f7 1f 20 59 db ca 41 50 6c da cf cd 8b 8e 7e |&.. Y..APl.....~| -000003d0 6d a6 a6 8d 56 d9 cb 00 25 71 69 75 af 26 02 cc |m...V...%qiu.&..| -000003e0 b5 de e3 06 bc d4 f5 10 93 f1 46 17 88 41 52 4f |..........F..ARO| -000003f0 8a 0f c4 08 e0 af 8e f1 5d 24 d1 |........]$.| +00000080 03 03 00 01 01 17 03 03 00 17 09 03 3f 82 c1 8c |............?...| +00000090 42 42 8d be 40 51 f5 ba 5d b8 60 d9 87 0f d5 ca |BB..@Q..].`.....| +000000a0 3d 17 03 03 02 6d 95 e6 a7 87 7a 4a fb 68 16 3b |=....m....zJ.h.;| +000000b0 38 cb b0 7c 97 39 1e 00 46 7b 2c 32 00 02 6c 34 |8..|.9..F{,2..l4| +000000c0 de df 5a 3d 11 1b bc 28 d4 c1 05 fc 0c ca 28 e3 |..Z=...(......(.| +000000d0 90 c7 ad 88 43 45 12 fd 43 f5 be 7d 46 f8 d2 ec |....CE..C..}F...| +000000e0 00 8e 06 6f 09 0d ce 84 15 5a e7 59 1c f7 10 d4 |...o.....Z.Y....| +000000f0 2d 37 f2 71 a7 11 7e cb 3b 75 ec 8f d1 7a 8c d0 |-7.q..~.;u...z..| +00000100 f0 b1 18 aa 2f 3b e8 18 ff ae 0f 63 6b 41 3e 4a |..../;.....ckA>J| +00000110 04 56 72 1b e0 60 74 a2 ef 1d 81 61 eb 94 56 25 |.Vr..`t....a..V%| +00000120 e6 46 03 9a 2f 57 85 ca 3a f4 17 81 e3 cf 6c 2e |.F../W..:.....l.| +00000130 63 66 48 0f 5f f7 7b 5a 55 25 4b cc 24 c9 71 dd |cfH._.{ZU%K.$.q.| +00000140 42 32 d8 77 6f c5 69 bb 6b c5 c9 51 cb 37 97 ae |B2.wo.i.k..Q.7..| +00000150 c3 a3 87 5c 50 e1 f3 19 84 d6 9a 7c 56 0d 63 cc |...\P......|V.c.| +00000160 57 66 17 c8 a6 e2 f0 31 bb 20 3b 7e 9e 4e 30 fe |Wf.....1. ;~.N0.| +00000170 1e 22 07 71 29 76 c0 a2 7e da 3c 1d 04 31 f8 54 |.".q)v..~.<..1.T| +00000180 95 3a 84 71 d8 6b ed 43 e9 ad e9 45 c9 72 ad 0e |.:.q.k.C...E.r..| +00000190 8d 02 21 a6 89 6f 4b 83 5f fd 7f ff 3e cb d0 f7 |..!..oK._...>...| +000001a0 d3 94 54 7a 82 47 d3 8f 21 2f 1b f8 bf 95 e9 34 |..Tz.G..!/.....4| +000001b0 cd 06 d6 77 04 c8 57 49 df 0a c0 84 c7 ec 86 ed |...w..WI........| +000001c0 75 ca 33 56 b4 e8 d3 7c 45 e7 b4 c8 92 9a 73 c8 |u.3V...|E.....s.| +000001d0 eb 30 df 76 d2 61 70 9a 31 c5 a1 d8 4f 3a 1f dc |.0.v.ap.1...O:..| +000001e0 df 3d 85 9f b8 48 ed 78 aa 9e c1 ba 07 84 30 ec |.=...H.x......0.| +000001f0 e5 83 1c 63 47 53 2c 06 85 40 a9 78 ea 4e a0 e3 |...cGS,..@.x.N..| +00000200 2f 7d 67 39 38 c2 80 66 ff 62 8e 68 1f 67 17 b8 |/}g98..f.b.h.g..| +00000210 6b af 3c cc 81 46 5a 83 bf 1e ed 65 0e 81 05 fa |k.<..FZ....e....| +00000220 ac 06 df 63 4e af 9e 02 7f 16 2b 5f b4 0a 5e d9 |...cN.....+_..^.| +00000230 e5 d1 39 4a 42 d5 34 43 9b 32 ba d8 b7 ad c8 b0 |..9JB.4C.2......| +00000240 38 81 6f 93 8e 5e ee b7 86 75 d8 f4 bb 15 33 5e |8.o..^...u....3^| +00000250 a8 39 e4 ee 7f ef 15 7b ec e1 d7 95 31 e1 83 db |.9.....{....1...| +00000260 00 34 2e 22 02 59 33 2a a6 b5 73 f7 04 4d f5 40 |.4.".Y3*..s..M.@| +00000270 b7 97 97 33 a0 e2 c3 cf 4b 0a bd 27 84 a1 bb 0b |...3....K..'....| +00000280 2c 59 bd 3e 2c 82 48 b6 a5 b8 a9 20 00 37 8a 8e |,Y.>,.H.... .7..| +00000290 f8 f2 4e e2 16 5c fb bf 92 94 37 6a 82 b8 b1 35 |..N..\....7j...5| +000002a0 4f 77 9e dd 78 1a 07 85 42 3d de fc dc 7f 8c f4 |Ow..x...B=......| +000002b0 fa 30 de 15 a4 dd c2 08 d5 3d 08 f4 a8 0f f0 df |.0.......=......| +000002c0 6c 18 40 65 49 ce ce 78 99 5c bc 96 f2 02 2a 1b |l.@eI..x.\....*.| +000002d0 5f e7 3d 50 ea 9c b4 39 84 33 05 df 3d 1c 3c f7 |_.=P...9.3..=.<.| +000002e0 3e 55 b6 08 1b 51 b2 87 2b bb 0e 78 1d 7c 19 16 |>U...Q..+..x.|..| +000002f0 1f 8c ab 6c 56 2b 08 8b 57 2e f9 90 d9 50 a1 30 |...lV+..W....P.0| +00000300 14 05 54 26 3b 03 0c 46 ec b3 bd c7 eb ce b7 d7 |..T&;..F........| +00000310 31 64 40 17 03 03 00 99 d5 7d 3d d2 c0 c4 23 6b |1d@......}=...#k| +00000320 2c 1b 87 70 62 8c c5 63 6b 34 5b 69 e6 2d 61 7a |,..pb..ck4[i.-az| +00000330 7f 8d 36 96 68 30 71 4b 5c 60 3a dc 28 58 80 ef |..6.h0qK\`:.(X..| +00000340 09 60 e0 fd 64 d4 fb e5 d3 2f 0a 03 52 78 e4 0b |.`..d..../..Rx..| +00000350 c8 03 d2 0d 13 36 19 46 50 41 ee 07 44 f8 cc 0b |.....6.FPA..D...| +00000360 53 f9 42 0d 75 88 6f d0 52 02 67 22 bf df 4b a3 |S.B.u.o.R.g"..K.| +00000370 0a 43 10 54 27 53 49 5d b3 41 37 df 5b 22 7b b4 |.C.T'SI].A7.["{.| +00000380 52 21 c7 55 bd 99 a9 0a 0e 46 07 99 b0 38 dc 53 |R!.U.....F...8.S| +00000390 0e f2 76 82 d9 15 35 62 bb 6d 87 10 a9 91 74 ad |..v...5b.m....t.| +000003a0 b6 8e 4f 22 b8 72 05 5e de 06 e4 de 70 b3 7b 72 |..O".r.^....p.{r| +000003b0 3e 17 03 03 00 45 ae 7c de bb a6 79 ca fd 6c fa |>....E.|...y..l.| +000003c0 26 8b b2 6a eb 40 c0 b0 a7 98 e8 7a 0c e9 ea b3 |&..j.@.....z....| +000003d0 30 5f b7 fd 52 85 c8 56 93 dc 3a b0 e8 bd 5a d1 |0_..R..V..:...Z.| +000003e0 2d 94 87 27 c9 4c 57 66 35 bb e7 a5 d2 bf fd 27 |-..'.LWf5......'| +000003f0 f7 bd e1 8c a7 50 35 64 cc d5 26 17 03 03 00 a3 |.....P5d..&.....| +00000400 0d a3 74 9e 7e 5c bf d9 cb 27 e0 d2 c6 25 bd 29 |..t.~\...'...%.)| +00000410 49 23 76 24 91 a8 d0 58 28 60 1d 68 75 ec f8 05 |I#v$...X(`.hu...| +00000420 18 dd 0d b3 a8 27 98 82 78 81 e1 ee 03 69 8f 26 |.....'..x....i.&| +00000430 00 94 59 63 ef 9b c9 24 0f c8 99 97 64 4c a3 41 |..Yc...$....dL.A| +00000440 71 71 88 55 cd a2 61 e9 47 ed 9b e0 5b a8 f9 dc |qq.U..a.G...[...| +00000450 e6 25 8a 1d e8 18 12 1a 3c b7 d6 86 cc 4b 9f 70 |.%......<....K.p| +00000460 93 53 cf 8e d2 98 99 74 2a 37 96 07 a9 d5 bd 8e |.S.....t*7......| +00000470 eb 09 01 a4 4d 46 c8 7b ab 2c 2d 25 7c fc 89 e6 |....MF.{.,-%|...| +00000480 ac 23 92 98 de 38 1b e4 70 b3 ee 95 9b 83 03 ce |.#...8..p.......| +00000490 bb 17 df 13 1d 5a 9f be 55 3f dc 28 4b 43 4e fd |.....Z..U?.(KCN.| +000004a0 74 00 19 |t..| >>> Flow 3 (client to server) -00000000 14 03 03 00 01 01 17 03 03 00 45 58 42 c4 20 5f |..........EXB. _| -00000010 a3 5f 66 35 f3 c4 a1 fd 91 b4 f8 ef 21 c1 63 5b |._f5........!.c[| -00000020 d9 d9 3d f4 e5 e2 5b 85 66 63 be 1b 16 30 fd 4b |..=...[.fc...0.K| -00000030 92 86 75 d6 54 f0 44 93 ef f7 04 3d 84 35 5c 13 |..u.T.D....=.5\.| -00000040 fd 31 1e 6f 5b 76 74 f6 43 89 2e b2 1c eb ad 88 |.1.o[vt.C.......| +00000000 14 03 03 00 01 01 17 03 03 00 45 b0 11 eb 24 17 |..........E...$.| +00000010 1c a4 d5 68 80 b2 21 4b 6d 12 fd 67 c9 8a a8 87 |...h..!Km..g....| +00000020 27 e9 39 fd 9f 5f e4 ce 82 4f 9f 8d 2f d3 b9 04 |'.9.._...O../...| +00000030 d0 a8 00 33 5c 58 3f 75 be d5 8b ff 9a e4 30 cb |...3\X?u......0.| +00000040 4b e2 4d d3 0a e8 3f bb 89 98 1e 87 25 0f 4e 67 |K.M...?.....%.Ng| >>> Flow 4 (server to client) -00000000 17 03 03 00 1e d5 f8 ad 21 c7 c8 98 99 57 b0 48 |........!....W.H| -00000010 af 22 32 d7 dc 75 de 5c eb cf bd 91 89 b5 23 31 |."2..u.\......#1| -00000020 e4 b5 69 17 03 03 00 13 42 a1 ec 2a 8b 8a 05 e4 |..i.....B..*....| -00000030 33 62 eb 3e 18 e8 25 3c 6c 88 ea |3b.>..%; + certificate Certificate // CertificateEntry certificate_list<0..2^24-1>; +} + +func (m *sessionStateTLS13) marshal() []byte { + var b cryptobyte.Builder + b.AddUint16(VersionTLS13) + b.AddUint8(0) // revision + b.AddUint16(m.cipherSuite) + addUint64(&b, m.createdAt) + b.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(m.resumptionSecret) + }) + marshalCertificate(&b, m.certificate) + return b.BytesOrPanic() +} + +func (m *sessionStateTLS13) unmarshal(data []byte) bool { + *m = sessionStateTLS13{} + s := cryptobyte.String(data) + var version uint16 + var revision uint8 + return s.ReadUint16(&version) && + version == VersionTLS13 && + s.ReadUint8(&revision) && + revision == 0 && + s.ReadUint16(&m.cipherSuite) && + readUint64(&s, &m.createdAt) && + readUint8LengthPrefixed(&s, &m.resumptionSecret) && + len(m.resumptionSecret) != 0 && + unmarshalCertificate(&s, &m.certificate) && + s.Empty() +} + +func (c *Conn) encryptTicket(state []byte) ([]byte, error) { + encrypted := make([]byte, ticketKeyNameLen+aes.BlockSize+len(state)+sha256.Size) keyName := encrypted[:ticketKeyNameLen] iv := encrypted[ticketKeyNameLen : ticketKeyNameLen+aes.BlockSize] macBytes := encrypted[len(encrypted)-sha256.Size:] @@ -120,7 +162,7 @@ func (c *Conn) encryptTicket(state *sessionState) ([]byte, error) { if err != nil { return nil, errors.New("tls: failed to create cipher while encrypting ticket: " + err.Error()) } - cipher.NewCTR(block, iv).XORKeyStream(encrypted[ticketKeyNameLen+aes.BlockSize:], serialized) + cipher.NewCTR(block, iv).XORKeyStream(encrypted[ticketKeyNameLen+aes.BlockSize:], state) mac := hmac.New(sha256.New, key.hmacKey[:]) mac.Write(encrypted[:len(encrypted)-sha256.Size]) @@ -129,15 +171,15 @@ func (c *Conn) encryptTicket(state *sessionState) ([]byte, error) { return encrypted, nil } -func (c *Conn) decryptTicket(encrypted []byte) (*sessionState, bool) { - if c.config.SessionTicketsDisabled || - len(encrypted) < ticketKeyNameLen+aes.BlockSize+sha256.Size { +func (c *Conn) decryptTicket(encrypted []byte) (plaintext []byte, usedOldKey bool) { + if len(encrypted) < ticketKeyNameLen+aes.BlockSize+sha256.Size { return nil, false } keyName := encrypted[:ticketKeyNameLen] iv := encrypted[ticketKeyNameLen : ticketKeyNameLen+aes.BlockSize] macBytes := encrypted[len(encrypted)-sha256.Size:] + ciphertext := encrypted[ticketKeyNameLen+aes.BlockSize : len(encrypted)-sha256.Size] keys := c.config.ticketKeys() keyIndex := -1 @@ -165,11 +207,8 @@ func (c *Conn) decryptTicket(encrypted []byte) (*sessionState, bool) { if err != nil { return nil, false } - ciphertext := encrypted[ticketKeyNameLen+aes.BlockSize : len(encrypted)-sha256.Size] - plaintext := ciphertext + plaintext = make([]byte, len(ciphertext)) cipher.NewCTR(block, iv).XORKeyStream(plaintext, ciphertext) - state := &sessionState{usedOldKey: keyIndex > 0} - ok := state.unmarshal(plaintext) - return state, ok + return plaintext, keyIndex > 0 } From b523d280e4eed2ff6639cec4aeccf63c71d70e2b Mon Sep 17 00:00:00 2001 From: Filippo Valsorda Date: Mon, 5 Nov 2018 19:23:25 -0500 Subject: [PATCH 8/8] crypto/tls: implement TLS 1.3 client authentication Note that the SignatureSchemes passed to GetClientCertificate in TLS 1.2 are now filtered by the requested certificate type. This feels like an improvement anyway, and the full list can be surfaced as well when support for signature_algorithms_cert is added, which actually matches the semantics of the CertificateRequest signature_algorithms in TLS 1.2. Also, note a subtle behavior change in server side resumption: if a certificate is requested but not required, and the resumed session did not include one, it used not to invoke VerifyPeerCertificate. However, if the resumed session did include a certificate, it would. (If a certificate was required but not in the session, the session is rejected in checkForResumption.) This inconsistency could be unexpected, even dangerous, so now VerifyPeerCertificate is always invoked. Still not consistent with the client behavior, which does not ever invoke VerifyPeerCertificate on resumption, but it felt too surprising to entirely change either. Updates #9671 Change-Id: Ib2b0dbc30e659208dca3ac07d6c687a407d7aaaf Reviewed-on: https://go-review.googlesource.com/c/147599 Reviewed-by: Adam Langley --- common.go | 1 + conn.go | 4 +- handshake_client.go | 135 +++++----- handshake_client_test.go | 50 ++-- handshake_client_tls13.go | 76 +++++- handshake_messages.go | 25 ++ handshake_messages_test.go | 6 + handshake_server.go | 92 +++---- handshake_server_test.go | 3 + handshake_server_tls13.go | 197 ++++++++++++--- testdata/Client-TLSv13-ClientCert-ECDSA-RSA | 236 ++++++++++++++++++ testdata/Client-TLSv13-ClientCert-RSA-ECDSA | 228 +++++++++++++++++ testdata/Client-TLSv13-ClientCert-RSA-RSAPSS | 230 +++++++++++++++++ ...er-TLSv13-ClientAuthRequestedAndECDSAGiven | 184 ++++++++++++++ .../Server-TLSv13-ClientAuthRequestedAndGiven | 180 +++++++++++++ .../Server-TLSv13-ClientAuthRequestedNotGiven | 109 ++++++++ 16 files changed, 1583 insertions(+), 173 deletions(-) create mode 100644 testdata/Client-TLSv13-ClientCert-ECDSA-RSA create mode 100644 testdata/Client-TLSv13-ClientCert-RSA-ECDSA create mode 100644 testdata/Client-TLSv13-ClientCert-RSA-RSAPSS create mode 100644 testdata/Server-TLSv13-ClientAuthRequestedAndECDSAGiven create mode 100644 testdata/Server-TLSv13-ClientAuthRequestedAndGiven create mode 100644 testdata/Server-TLSv13-ClientAuthRequestedNotGiven diff --git a/common.go b/common.go index 3f7d5fc..ad7793b 100644 --- a/common.go +++ b/common.go @@ -92,6 +92,7 @@ const ( extensionSupportedVersions uint16 = 43 extensionCookie uint16 = 44 extensionPSKModes uint16 = 45 + extensionCertificateAuthorities uint16 = 47 extensionSignatureAlgorithmsCert uint16 = 50 extensionKeyShare uint16 = 51 extensionNextProtoNeg uint16 = 13172 // not IANA assigned diff --git a/conn.go b/conn.go index fa366eb..6786d19 100644 --- a/conn.go +++ b/conn.go @@ -57,8 +57,8 @@ type Conn struct { secureRenegotiation bool // ekm is a closure for exporting keying material. ekm func(label string, context []byte, length int) ([]byte, error) - // resumptionSecret is the resumption_master_secret for generating or - // handling NewSessionTicket messages. nil if config.SessionTicketsDisabled. + // resumptionSecret is the resumption_master_secret for handling + // NewSessionTicket messages. nil if config.SessionTicketsDisabled. resumptionSecret []byte // clientFinishedIsFirst is true if the client sent the first Finished diff --git a/handshake_client.go b/handshake_client.go index 8a3d3d9..d556e65 100644 --- a/handshake_client.go +++ b/handshake_client.go @@ -519,7 +519,8 @@ func (hs *clientHandshakeState) doFullHandshake() error { certRequested = true hs.finishedHash.Write(certReq.marshal()) - if chainToSend, err = hs.getCertificate(certReq); err != nil { + cri := certificateRequestInfoFromMsg(certReq) + if chainToSend, err = c.getClientCertificate(cri); err != nil { c.sendAlert(alertInternalError) return err } @@ -863,20 +864,15 @@ func (c *Conn) verifyServerCertificate(certificates [][]byte) error { // tls11SignatureSchemes contains the signature schemes that we synthesise for // a TLS <= 1.1 connection, based on the supported certificate types. -var tls11SignatureSchemes = []SignatureScheme{ECDSAWithP256AndSHA256, ECDSAWithP384AndSHA384, ECDSAWithP521AndSHA512, PKCS1WithSHA256, PKCS1WithSHA384, PKCS1WithSHA512, PKCS1WithSHA1} - -const ( - // tls11SignatureSchemesNumECDSA is the number of initial elements of - // tls11SignatureSchemes that use ECDSA. - tls11SignatureSchemesNumECDSA = 3 - // tls11SignatureSchemesNumRSA is the number of trailing elements of - // tls11SignatureSchemes that use RSA. - tls11SignatureSchemesNumRSA = 4 +var ( + tls11SignatureSchemes = []SignatureScheme{ECDSAWithP256AndSHA256, ECDSAWithP384AndSHA384, ECDSAWithP521AndSHA512, PKCS1WithSHA256, PKCS1WithSHA384, PKCS1WithSHA512, PKCS1WithSHA1} + tls11SignatureSchemesECDSA = tls11SignatureSchemes[:3] + tls11SignatureSchemesRSA = tls11SignatureSchemes[3:] ) -func (hs *clientHandshakeState) getCertificate(certReq *certificateRequestMsg) (*Certificate, error) { - c := hs.c - +// certificateRequestInfoFromMsg generates a CertificateRequestInfo from a TLS +// <= 1.2 CertificateRequest, making an effort to fill in missing information. +func certificateRequestInfoFromMsg(certReq *certificateRequestMsg) *CertificateRequestInfo { var rsaAvail, ecdsaAvail bool for _, certType := range certReq.certificateTypes { switch certType { @@ -887,77 +883,84 @@ func (hs *clientHandshakeState) getCertificate(certReq *certificateRequestMsg) ( } } - if c.config.GetClientCertificate != nil { - var signatureSchemes []SignatureScheme - - if !certReq.hasSignatureAlgorithm { - // Prior to TLS 1.2, the signature schemes were not - // included in the certificate request message. In this - // case we use a plausible list based on the acceptable - // certificate types. - signatureSchemes = tls11SignatureSchemes - if !ecdsaAvail { - signatureSchemes = signatureSchemes[tls11SignatureSchemesNumECDSA:] - } - if !rsaAvail { - signatureSchemes = signatureSchemes[:len(signatureSchemes)-tls11SignatureSchemesNumRSA] - } - } else { - signatureSchemes = certReq.supportedSignatureAlgorithms - } - - return c.config.GetClientCertificate(&CertificateRequestInfo{ - AcceptableCAs: certReq.certificateAuthorities, - SignatureSchemes: signatureSchemes, - }) + cri := &CertificateRequestInfo{ + AcceptableCAs: certReq.certificateAuthorities, } - // RFC 4346 on the certificateAuthorities field: A list of the - // distinguished names of acceptable certificate authorities. - // These distinguished names may specify a desired - // distinguished name for a root CA or for a subordinate CA; - // thus, this message can be used to describe both known roots - // and a desired authorization space. If the - // certificate_authorities list is empty then the client MAY - // send any certificate of the appropriate - // ClientCertificateType, unless there is some external - // arrangement to the contrary. + if !certReq.hasSignatureAlgorithm { + // Prior to TLS 1.2, the signature schemes were not + // included in the certificate request message. In this + // case we use a plausible list based on the acceptable + // certificate types. + switch { + case rsaAvail && ecdsaAvail: + cri.SignatureSchemes = tls11SignatureSchemes + case rsaAvail: + cri.SignatureSchemes = tls11SignatureSchemesRSA + case ecdsaAvail: + cri.SignatureSchemes = tls11SignatureSchemesECDSA + } + return cri + } + + // In TLS 1.2, the signature schemes apply to both the certificate chain and + // the leaf key, while the certificate types only apply to the leaf key. + // See RFC 5246, Section 7.4.4 (where it calls this "somewhat complicated"). + // Filter the signature schemes based on the certificate type. + cri.SignatureSchemes = make([]SignatureScheme, 0, len(certReq.supportedSignatureAlgorithms)) + for _, sigScheme := range certReq.supportedSignatureAlgorithms { + switch signatureFromSignatureScheme(sigScheme) { + case signatureECDSA: + if ecdsaAvail { + cri.SignatureSchemes = append(cri.SignatureSchemes, sigScheme) + } + case signatureRSAPSS, signaturePKCS1v15: + if rsaAvail { + cri.SignatureSchemes = append(cri.SignatureSchemes, sigScheme) + } + } + } + + return cri +} + +func (c *Conn) getClientCertificate(cri *CertificateRequestInfo) (*Certificate, error) { + if c.config.GetClientCertificate != nil { + return c.config.GetClientCertificate(cri) + } // We need to search our list of client certs for one // where SignatureAlgorithm is acceptable to the server and the - // Issuer is in certReq.certificateAuthorities -findCert: + // Issuer is in AcceptableCAs. for i, chain := range c.config.Certificates { - if !rsaAvail && !ecdsaAvail { + sigOK := false + for _, alg := range signatureSchemesForCertificate(&chain) { + if isSupportedSignatureAlgorithm(alg, cri.SignatureSchemes) { + sigOK = true + break + } + } + if !sigOK { continue } + if len(cri.AcceptableCAs) == 0 { + return &chain, nil + } + for j, cert := range chain.Certificate { x509Cert := chain.Leaf - // parse the certificate if this isn't the leaf - // node, or if chain.Leaf was nil + // Parse the certificate if this isn't the leaf node, or if + // chain.Leaf was nil. if j != 0 || x509Cert == nil { var err error if x509Cert, err = x509.ParseCertificate(cert); err != nil { c.sendAlert(alertInternalError) - return nil, errors.New("tls: failed to parse client certificate #" + strconv.Itoa(i) + ": " + err.Error()) + return nil, errors.New("tls: failed to parse configured certificate chain #" + strconv.Itoa(i) + ": " + err.Error()) } } - switch { - case rsaAvail && x509Cert.PublicKeyAlgorithm == x509.RSA: - case ecdsaAvail && x509Cert.PublicKeyAlgorithm == x509.ECDSA: - default: - continue findCert - } - - if len(certReq.certificateAuthorities) == 0 { - // they gave us an empty list, so just take the - // first cert from c.config.Certificates - return &chain, nil - } - - for _, ca := range certReq.certificateAuthorities { + for _, ca := range cri.AcceptableCAs { if bytes.Equal(x509Cert.RawIssuer, ca) { return &chain, nil } diff --git a/handshake_client_test.go b/handshake_client_test.go index 29b6386..17e558c 100644 --- a/handshake_client_test.go +++ b/handshake_client_test.go @@ -777,6 +777,7 @@ func TestHandshakeClientCertRSA(t *testing.T) { runClientTestTLS10(t, test) runClientTestTLS12(t, test) + runClientTestTLS13(t, test) test = &clientTest{ name: "ClientCert-RSA-AES256-GCM-SHA384", @@ -802,6 +803,7 @@ func TestHandshakeClientCertECDSA(t *testing.T) { runClientTestTLS10(t, test) runClientTestTLS12(t, test) + runClientTestTLS13(t, test) test = &clientTest{ name: "ClientCert-ECDSA-ECDSA", @@ -843,6 +845,7 @@ func TestHandshakeClientCertRSAPSS(t *testing.T) { } runClientTestTLS12(t, test) + runClientTestTLS13(t, test) } func TestHandshakeClientCertRSAPKCS1v15(t *testing.T) { @@ -917,6 +920,9 @@ func testResumption(t *testing.T, version uint16) { ticketKey := clientConfig.ClientSessionCache.(*lruSessionCache).q.Front().Value.(*lruSessionCacheEntry).sessionKey clientConfig.ClientSessionCache.Put(ticketKey, nil) } + corruptTicket := func() { + clientConfig.ClientSessionCache.(*lruSessionCache).q.Front().Value.(*lruSessionCacheEntry).state.masterSecret[0] ^= 0xff + } randomKey := func() [32]byte { var k [32]byte if _, err := io.ReadFull(serverConfig.rand(), k[:]); err != nil { @@ -978,21 +984,18 @@ func testResumption(t *testing.T, version uint16) { serverConfig.ClientAuth = RequireAndVerifyClientCert clientConfig.Certificates = serverConfig.Certificates testResumeState("InitialHandshake", false) - if version != VersionTLS13 { - // TODO(filippo): reenable when client authentication is implemented - testResumeState("WithClientCertificates", true) + testResumeState("WithClientCertificates", true) + serverConfig.ClientAuth = NoClientCert - // Tickets should be removed from the session cache on TLS handshake failure - farFuture := func() time.Time { return time.Unix(16725225600, 0) } - serverConfig.Time = farFuture - _, _, err = testHandshake(t, clientConfig, serverConfig) - if err == nil { - t.Fatalf("handshake did not fail after client certificate expiry") - } - serverConfig.Time = nil - testResumeState("AfterHandshakeFailure", false) - serverConfig.ClientAuth = NoClientCert + // Tickets should be removed from the session cache on TLS handshake + // failure, and the client should recover from a corrupted PSK + testResumeState("FetchTicketToCorrupt", false) + corruptTicket() + _, _, err = testHandshake(t, clientConfig, serverConfig) + if err == nil { + t.Fatalf("handshake did not fail with a corrupted client secret") } + testResumeState("AfterHandshakeFailure", false) clientConfig.ClientSessionCache = nil testResumeState("WithoutSessionCache", false) @@ -1415,6 +1418,11 @@ func TestServerSelectingUnconfiguredCipherSuite(t *testing.T) { } func TestVerifyPeerCertificate(t *testing.T) { + t.Run("TLSv12", func(t *testing.T) { testVerifyPeerCertificate(t, VersionTLS12) }) + t.Run("TLSv13", func(t *testing.T) { testVerifyPeerCertificate(t, VersionTLS13) }) +} + +func testVerifyPeerCertificate(t *testing.T, version uint16) { issuer, err := x509.ParseCertificate(testRSACertificateIssuer) if err != nil { panic(err) @@ -1548,6 +1556,7 @@ func TestVerifyPeerCertificate(t *testing.T) { config.ClientAuth = RequireAndVerifyClientCert config.ClientCAs = rootCAs config.Time = now + config.MaxVersion = version test.configureServer(config, &serverCalled) err = Server(s, config).Handshake() @@ -1559,6 +1568,7 @@ func TestVerifyPeerCertificate(t *testing.T) { config.ServerName = "example.golang" config.RootCAs = rootCAs config.Time = now + config.MaxVersion = version test.configureClient(config, &clientCalled) clientErr := Client(c, config).Handshake() c.Close() @@ -1757,13 +1767,6 @@ func TestHandshakeRace(t *testing.T) { } } -func TestTLS11SignatureSchemes(t *testing.T) { - expected := tls11SignatureSchemesNumECDSA + tls11SignatureSchemesNumRSA - if expected != len(tls11SignatureSchemes) { - t.Errorf("expected to find %d TLS 1.1 signature schemes, but found %d", expected, len(tls11SignatureSchemes)) - } -} - var getClientCertificateTests = []struct { setup func(*Config, *Config) expectedClientError string @@ -1846,6 +1849,11 @@ var getClientCertificateTests = []struct { } func TestGetClientCertificate(t *testing.T) { + t.Run("TLSv12", func(t *testing.T) { testGetClientCertificate(t, VersionTLS12) }) + t.Run("TLSv13", func(t *testing.T) { testGetClientCertificate(t, VersionTLS13) }) +} + +func testGetClientCertificate(t *testing.T, version uint16) { issuer, err := x509.ParseCertificate(testRSACertificateIssuer) if err != nil { panic(err) @@ -1858,8 +1866,10 @@ func TestGetClientCertificate(t *testing.T) { serverConfig.RootCAs.AddCert(issuer) serverConfig.ClientCAs = serverConfig.RootCAs serverConfig.Time = func() time.Time { return time.Unix(1476984729, 0) } + serverConfig.MaxVersion = version clientConfig := testConfig.Clone() + clientConfig.MaxVersion = version test.setup(clientConfig, serverConfig) diff --git a/handshake_client_tls13.go b/handshake_client_tls13.go index 8c38612..1a819cc 100644 --- a/handshake_client_tls13.go +++ b/handshake_client_tls13.go @@ -8,7 +8,9 @@ import ( "bytes" "crypto" "crypto/hmac" + "crypto/rsa" "errors" + "fmt" "hash" "sync/atomic" "time" @@ -447,7 +449,7 @@ func (hs *clientHandshakeStateTLS13) readServerCertificate() error { } // See RFC 8446, Section 4.4.3. - if !isSupportedSignatureAlgorithm(certVerify.signatureAlgorithm, hs.hello.supportedSignatureAlgorithms) { + if !isSupportedSignatureAlgorithm(certVerify.signatureAlgorithm, supportedSignatureAlgorithms) { c.sendAlert(alertIllegalParameter) return errors.New("tls: invalid certificate signature algorithm") } @@ -521,11 +523,81 @@ func (hs *clientHandshakeStateTLS13) readServerFinished() error { } func (hs *clientHandshakeStateTLS13) sendClientCertificate() error { + c := hs.c + if hs.certReq == nil { return nil } - return errors.New("tls: TLS 1.3 client authentication unimplemented") // TODO(filippo) + cert, err := c.getClientCertificate(&CertificateRequestInfo{ + AcceptableCAs: hs.certReq.certificateAuthorities, + SignatureSchemes: hs.certReq.supportedSignatureAlgorithms, + }) + if err != nil { + return err + } + + certMsg := new(certificateMsgTLS13) + + certMsg.certificate = *cert + certMsg.scts = hs.certReq.scts && len(cert.SignedCertificateTimestamps) > 0 + certMsg.ocspStapling = hs.certReq.ocspStapling && len(cert.OCSPStaple) > 0 + + hs.transcript.Write(certMsg.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certMsg.marshal()); err != nil { + return err + } + + // If the client is sending an empty certificate message, skip the CertificateVerify. + if len(cert.Certificate) == 0 { + return nil + } + + certVerifyMsg := new(certificateVerifyMsg) + certVerifyMsg.hasSignatureAlgorithm = true + + supportedAlgs := signatureSchemesForCertificate(cert) + if supportedAlgs == nil { + c.sendAlert(alertInternalError) + return fmt.Errorf("tls: unsupported certificate key (%T)", cert.PrivateKey) + } + // Pick signature scheme in server preference order, as the client + // preference order is not configurable. + for _, preferredAlg := range hs.certReq.supportedSignatureAlgorithms { + if isSupportedSignatureAlgorithm(preferredAlg, supportedAlgs) { + certVerifyMsg.signatureAlgorithm = preferredAlg + break + } + } + + sigType := signatureFromSignatureScheme(certVerifyMsg.signatureAlgorithm) + sigHash, err := hashFromSignatureScheme(certVerifyMsg.signatureAlgorithm) + if sigType == 0 || err != nil { + // getClientCertificate returned a certificate incompatible with the + // CertificateRequestInfo supported signature algorithms. + c.sendAlert(alertInternalError) + return err + } + h := sigHash.New() + writeSignedMessage(h, clientSignatureContext, hs.transcript) + + signOpts := crypto.SignerOpts(sigHash) + if sigType == signatureRSAPSS { + signOpts = &rsa.PSSOptions{SaltLength: rsa.PSSSaltLengthEqualsHash, Hash: sigHash} + } + sig, err := cert.PrivateKey.(crypto.Signer).Sign(c.config.rand(), h.Sum(nil), signOpts) + if err != nil { + c.sendAlert(alertInternalError) + return errors.New("tls: failed to sign handshake: " + err.Error()) + } + certVerifyMsg.signature = sig + + hs.transcript.Write(certVerifyMsg.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certVerifyMsg.marshal()); err != nil { + return err + } + + return nil } func (hs *clientHandshakeStateTLS13) sendClientFinished() error { diff --git a/handshake_messages.go b/handshake_messages.go index b6001e3..f86cc4b 100644 --- a/handshake_messages.go +++ b/handshake_messages.go @@ -1071,6 +1071,7 @@ type certificateRequestMsgTLS13 struct { scts bool supportedSignatureAlgorithms []SignatureScheme supportedSignatureAlgorithmsCert []SignatureScheme + certificateAuthorities [][]byte } func (m *certificateRequestMsgTLS13) marshal() []byte { @@ -1119,6 +1120,18 @@ func (m *certificateRequestMsgTLS13) marshal() []byte { }) }) } + if len(m.certificateAuthorities) > 0 { + b.AddUint16(extensionCertificateAuthorities) + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + for _, ca := range m.certificateAuthorities { + b.AddUint16LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(ca) + }) + } + }) + }) + } }) }) @@ -1177,6 +1190,18 @@ func (m *certificateRequestMsgTLS13) unmarshal(data []byte) bool { m.supportedSignatureAlgorithmsCert = append( m.supportedSignatureAlgorithmsCert, SignatureScheme(sigAndAlg)) } + case extensionCertificateAuthorities: + var auths cryptobyte.String + if !extData.ReadUint16LengthPrefixed(&auths) || auths.Empty() { + return false + } + for !auths.Empty() { + var ca []byte + if !readUint16LengthPrefixed(&auths, &ca) || len(ca) == 0 { + return false + } + m.certificateAuthorities = append(m.certificateAuthorities, ca) + } default: // Ignore unknown extensions. continue diff --git a/handshake_messages_test.go b/handshake_messages_test.go index 8a73523..21beb8e 100644 --- a/handshake_messages_test.go +++ b/handshake_messages_test.go @@ -391,6 +391,12 @@ func (*certificateRequestMsgTLS13) Generate(rand *rand.Rand, size int) reflect.V if rand.Intn(10) > 5 { m.supportedSignatureAlgorithmsCert = supportedSignatureAlgorithms } + if rand.Intn(10) > 5 { + m.certificateAuthorities = make([][]byte, 3) + for i := 0; i < 3; i++ { + m.certificateAuthorities[i] = randomBytes(rand.Intn(10)+1, rand) + } + } return reflect.ValueOf(m) } diff --git a/handshake_server.go b/handshake_server.go index 56ec3b6..c3ab276 100644 --- a/handshake_server.go +++ b/handshake_server.go @@ -19,19 +19,18 @@ import ( // serverHandshakeState contains details of a server handshake in progress. // It's discarded once the handshake has completed. type serverHandshakeState struct { - c *Conn - clientHello *clientHelloMsg - hello *serverHelloMsg - suite *cipherSuite - ellipticOk bool - ecdsaOk bool - rsaDecryptOk bool - rsaSignOk bool - sessionState *sessionState - finishedHash finishedHash - masterSecret []byte - certsFromClient [][]byte - cert *Certificate + c *Conn + clientHello *clientHelloMsg + hello *serverHelloMsg + suite *cipherSuite + ellipticOk bool + ecdsaOk bool + rsaDecryptOk bool + rsaSignOk bool + sessionState *sessionState + finishedHash finishedHash + masterSecret []byte + cert *Certificate } // serverHandshake performs a TLS handshake as a server. @@ -383,10 +382,10 @@ func (hs *serverHandshakeState) doResumeHandshake() error { return err } - if len(hs.sessionState.certificates) > 0 { - if _, err := hs.processCertsFromClient(hs.sessionState.certificates); err != nil { - return err - } + if err := c.processCertsFromClient(Certificate{ + Certificate: hs.sessionState.certificates, + }); err != nil { + return err } hs.masterSecret = hs.sessionState.masterSecret @@ -488,29 +487,24 @@ func (hs *serverHandshakeState) doFullHandshake() error { return err } - var ok bool // If we requested a client certificate, then the client must send a // certificate message, even if it's empty. if c.config.ClientAuth >= RequestClientCert { - if certMsg, ok = msg.(*certificateMsg); !ok { + certMsg, ok := msg.(*certificateMsg) + if !ok { c.sendAlert(alertUnexpectedMessage) return unexpectedMessageError(certMsg, msg) } hs.finishedHash.Write(certMsg.marshal()) - if len(certMsg.certificates) == 0 { - // The client didn't actually send a certificate - switch c.config.ClientAuth { - case RequireAnyClientCert, RequireAndVerifyClientCert: - c.sendAlert(alertBadCertificate) - return errors.New("tls: client didn't provide a certificate") - } - } - - pub, err = hs.processCertsFromClient(certMsg.certificates) - if err != nil { + if err := c.processCertsFromClient(Certificate{ + Certificate: certMsg.certificates, + }); err != nil { return err } + if len(certMsg.certificates) != 0 { + pub = c.peerCertificates[0].PublicKey + } msg, err = c.readHandshake() if err != nil { @@ -654,13 +648,17 @@ func (hs *serverHandshakeState) sendSessionTicket() error { c := hs.c m := new(newSessionTicketMsg) - var err error + var certsFromClient [][]byte + for _, cert := range c.peerCertificates { + certsFromClient = append(certsFromClient, cert.Raw) + } state := sessionState{ vers: c.vers, cipherSuite: hs.suite.id, masterSecret: hs.masterSecret, - certificates: hs.certsFromClient, + certificates: certsFromClient, } + var err error m.ticket, err = c.encryptTicket(state.marshal()) if err != nil { return err @@ -697,19 +695,22 @@ func (hs *serverHandshakeState) sendFinished(out []byte) error { // processCertsFromClient takes a chain of client certificates either from a // Certificates message or from a sessionState and verifies them. It returns // the public key of the leaf certificate. -func (hs *serverHandshakeState) processCertsFromClient(certificates [][]byte) (crypto.PublicKey, error) { - c := hs.c - - hs.certsFromClient = certificates +func (c *Conn) processCertsFromClient(certificate Certificate) error { + certificates := certificate.Certificate certs := make([]*x509.Certificate, len(certificates)) var err error for i, asn1Data := range certificates { if certs[i], err = x509.ParseCertificate(asn1Data); err != nil { c.sendAlert(alertBadCertificate) - return nil, errors.New("tls: failed to parse client certificate: " + err.Error()) + return errors.New("tls: failed to parse client certificate: " + err.Error()) } } + if len(certs) == 0 && requiresClientCert(c.config.ClientAuth) { + c.sendAlert(alertBadCertificate) + return errors.New("tls: client didn't provide a certificate") + } + if c.config.ClientAuth >= VerifyClientCertIfGiven && len(certs) > 0 { opts := x509.VerifyOptions{ Roots: c.config.ClientCAs, @@ -725,7 +726,7 @@ func (hs *serverHandshakeState) processCertsFromClient(certificates [][]byte) (c chains, err := certs[0].Verify(opts) if err != nil { c.sendAlert(alertBadCertificate) - return nil, errors.New("tls: failed to verify client's certificate: " + err.Error()) + return errors.New("tls: failed to verify client's certificate: " + err.Error()) } c.verifiedChains = chains @@ -734,24 +735,25 @@ func (hs *serverHandshakeState) processCertsFromClient(certificates [][]byte) (c if c.config.VerifyPeerCertificate != nil { if err := c.config.VerifyPeerCertificate(certificates, c.verifiedChains); err != nil { c.sendAlert(alertBadCertificate) - return nil, err + return err } } if len(certs) == 0 { - return nil, nil + return nil } - var pub crypto.PublicKey - switch key := certs[0].PublicKey.(type) { + switch certs[0].PublicKey.(type) { case *ecdsa.PublicKey, *rsa.PublicKey: - pub = key default: c.sendAlert(alertUnsupportedCertificate) - return nil, fmt.Errorf("tls: client's certificate contains an unsupported public key of type %T", certs[0].PublicKey) + return fmt.Errorf("tls: client's certificate contains an unsupported public key of type %T", certs[0].PublicKey) } + c.peerCertificates = certs - return pub, nil + c.ocspResponse = certificate.OCSPStaple + c.scts = certificate.SignedCertificateTimestamps + return nil } // setCipherSuite sets a cipherSuite with the given id as the serverHandshakeState diff --git a/handshake_server_test.go b/handshake_server_test.go index c8e6adc..ef7f30d 100644 --- a/handshake_server_test.go +++ b/handshake_server_test.go @@ -1368,6 +1368,7 @@ func TestClientAuth(t *testing.T) { config: config, } runServerTestTLS12(t, test) + runServerTestTLS13(t, test) test = &serverTest{ name: "ClientAuthRequestedAndGiven", @@ -1377,6 +1378,7 @@ func TestClientAuth(t *testing.T) { expectedPeerCerts: []string{clientCertificatePEM}, } runServerTestTLS12(t, test) + runServerTestTLS13(t, test) test = &serverTest{ name: "ClientAuthRequestedAndECDSAGiven", @@ -1386,6 +1388,7 @@ func TestClientAuth(t *testing.T) { expectedPeerCerts: []string{clientECDSACertificatePEM}, } runServerTestTLS12(t, test) + runServerTestTLS13(t, test) test = &serverTest{ name: "ClientAuthRequestedAndPKCS1v15Given", diff --git a/handshake_server_tls13.go b/handshake_server_tls13.go index 512ca07..17bac61 100644 --- a/handshake_server_tls13.go +++ b/handshake_server_tls13.go @@ -27,12 +27,14 @@ type serverHandshakeStateTLS13 struct { clientHello *clientHelloMsg hello *serverHelloMsg sentDummyCCS bool + usingPSK bool suite *cipherSuiteTLS13 cert *Certificate sigAlg SignatureScheme earlySecret []byte sharedKey []byte handshakeSecret []byte + masterSecret []byte trafficSecret []byte // client_application_traffic_secret_0 transcript hash.Hash clientFinished []byte @@ -45,23 +47,18 @@ func (hs *serverHandshakeStateTLS13) handshake() error { if err := hs.processClientHello(); err != nil { return err } - usePSK, err := hs.checkForResumption() - if err != nil { + if err := hs.checkForResumption(); err != nil { return err } - if !usePSK { - if err := hs.pickCertificate(); err != nil { - return err - } + if err := hs.pickCertificate(); err != nil { + return err } c.buffering = true if err := hs.sendServerParameters(); err != nil { return err } - if !usePSK { - if err := hs.sendServerCertificate(); err != nil { - return err - } + if err := hs.sendServerCertificate(); err != nil { + return err } if err := hs.sendServerFinished(); err != nil { return err @@ -69,10 +66,10 @@ func (hs *serverHandshakeStateTLS13) handshake() error { // Note that at this point we could start sending application data without // waiting for the client's second flight, but the application might not // expect the lack of replay protection of the ClientHello parameters. - if err := hs.sendSessionTickets(); err != nil { + if _, err := c.flush(); err != nil { return err } - if _, err := c.flush(); err != nil { + if err := hs.readClientCertificate(); err != nil { return err } if err := hs.readClientFinished(); err != nil { @@ -198,11 +195,11 @@ GroupSelection: return nil } -func (hs *serverHandshakeStateTLS13) checkForResumption() (usePSK bool, err error) { +func (hs *serverHandshakeStateTLS13) checkForResumption() error { c := hs.c if c.config.SessionTicketsDisabled { - return false, nil + return nil } modeOK := false @@ -213,15 +210,15 @@ func (hs *serverHandshakeStateTLS13) checkForResumption() (usePSK bool, err erro } } if !modeOK { - return false, nil + return nil } if len(hs.clientHello.pskIdentities) != len(hs.clientHello.pskBinders) { c.sendAlert(alertIllegalParameter) - return false, errors.New("tls: invalid or missing PSK binders") + return errors.New("tls: invalid or missing PSK binders") } if len(hs.clientHello.pskIdentities) == 0 { - return false, nil + return nil } for i, identity := range hs.clientHello.pskIdentities { @@ -272,23 +269,27 @@ func (hs *serverHandshakeStateTLS13) checkForResumption() (usePSK bool, err erro transcript := cloneHash(hs.transcript, hs.suite.hash) if transcript == nil { c.sendAlert(alertInternalError) - return false, errors.New("tls: internal error: failed to clone hash") + return errors.New("tls: internal error: failed to clone hash") } transcript.Write(hs.clientHello.marshalWithoutBinders()) pskBinder := hs.suite.finishedHash(binderKey, transcript) if !hmac.Equal(hs.clientHello.pskBinders[i], pskBinder) { c.sendAlert(alertDecryptError) - return false, errors.New("tls: invalid PSK binder") + return errors.New("tls: invalid PSK binder") + } + + if err := c.processCertsFromClient(sessionState.certificate); err != nil { + return err } hs.hello.selectedIdentityPresent = true hs.hello.selectedIdentity = uint16(i) + hs.usingPSK = true c.didResume = true - // TODO(filippo): surface sessionState.certificate. - return true, nil + return nil } - return false, nil + return nil } // cloneHash uses the encoding.BinaryMarshaler and encoding.BinaryUnmarshaler @@ -322,6 +323,11 @@ func cloneHash(in hash.Hash, h crypto.Hash) hash.Hash { func (hs *serverHandshakeStateTLS13) pickCertificate() error { c := hs.c + // Only one of PSK and certificates are used at a time. + if hs.usingPSK { + return nil + } + // This implements a very simplistic certificate selection strategy for now: // getCertificate delegates to the application Config.GetCertificate, or // selects based on the server_name only. If the selected certificate's @@ -542,9 +548,34 @@ func (hs *serverHandshakeStateTLS13) sendServerParameters() error { return nil } +func (hs *serverHandshakeStateTLS13) requestClientCert() bool { + return hs.c.config.ClientAuth >= RequestClientCert && !hs.usingPSK +} + func (hs *serverHandshakeStateTLS13) sendServerCertificate() error { c := hs.c + // Only one of PSK and certificates are used at a time. + if hs.usingPSK { + return nil + } + + if hs.requestClientCert() { + // Request a client certificate + certReq := new(certificateRequestMsgTLS13) + certReq.ocspStapling = true + certReq.scts = true + certReq.supportedSignatureAlgorithms = supportedSignatureAlgorithms + if c.config.ClientCAs != nil { + certReq.certificateAuthorities = c.config.ClientCAs.Subjects() + } + + hs.transcript.Write(certReq.marshal()) + if _, err := c.writeRecord(recordTypeHandshake, certReq.marshal()); err != nil { + return err + } + } + certMsg := new(certificateMsgTLS13) certMsg.certificate = *hs.cert @@ -563,6 +594,8 @@ func (hs *serverHandshakeStateTLS13) sendServerCertificate() error { sigType := signatureFromSignatureScheme(hs.sigAlg) sigHash, err := hashFromSignatureScheme(hs.sigAlg) if sigType == 0 || err != nil { + // getCertificate returned a certificate incompatible with the + // ClientHello supported signature algorithms. c.sendAlert(alertInternalError) return err } @@ -602,12 +635,12 @@ func (hs *serverHandshakeStateTLS13) sendServerFinished() error { // Derive secrets that take context through the server Finished. - masterSecret := hs.suite.extract(nil, + hs.masterSecret = hs.suite.extract(nil, hs.suite.deriveSecret(hs.handshakeSecret, "derived", nil)) - hs.trafficSecret = hs.suite.deriveSecret(masterSecret, + hs.trafficSecret = hs.suite.deriveSecret(hs.masterSecret, clientApplicationTrafficLabel, hs.transcript) - serverSecret := hs.suite.deriveSecret(masterSecret, + serverSecret := hs.suite.deriveSecret(hs.masterSecret, serverApplicationTrafficLabel, hs.transcript) c.out.setTrafficSecret(hs.suite, serverSecret) @@ -622,18 +655,15 @@ func (hs *serverHandshakeStateTLS13) sendServerFinished() error { return err } - c.ekm = hs.suite.exportKeyingMaterial(masterSecret, hs.transcript) + c.ekm = hs.suite.exportKeyingMaterial(hs.masterSecret, hs.transcript) - // Precompute the expected client flight for the transcript. - hs.clientFinished = hs.suite.finishedHash(c.in.trafficSecret, hs.transcript) - finishedMsg := &finishedMsg{ - verifyData: hs.clientFinished, - } - hs.transcript.Write(finishedMsg.marshal()) - - if hs.shouldSendSessionTickets() { - c.resumptionSecret = hs.suite.deriveSecret(masterSecret, - resumptionLabel, hs.transcript) + // If we did not request client certificates, at this point we can + // precompute the client finished and roll the transcript forward to send + // session tickets in our first flight. + if !hs.requestClientCert() { + if err := hs.sendSessionTickets(); err != nil { + return err + } } return nil @@ -656,18 +686,36 @@ func (hs *serverHandshakeStateTLS13) shouldSendSessionTickets() bool { func (hs *serverHandshakeStateTLS13) sendSessionTickets() error { c := hs.c + hs.clientFinished = hs.suite.finishedHash(c.in.trafficSecret, hs.transcript) + finishedMsg := &finishedMsg{ + verifyData: hs.clientFinished, + } + hs.transcript.Write(finishedMsg.marshal()) + if !hs.shouldSendSessionTickets() { return nil } + resumptionSecret := hs.suite.deriveSecret(hs.masterSecret, + resumptionLabel, hs.transcript) + m := new(newSessionTicketMsgTLS13) - var err error + var certsFromClient [][]byte + for _, cert := range c.peerCertificates { + certsFromClient = append(certsFromClient, cert.Raw) + } state := sessionStateTLS13{ cipherSuite: hs.suite.id, createdAt: uint64(c.config.time().Unix()), - resumptionSecret: c.resumptionSecret, + resumptionSecret: resumptionSecret, + certificate: Certificate{ + Certificate: certsFromClient, + OCSPStaple: c.ocspResponse, + SignedCertificateTimestamps: c.scts, + }, } + var err error m.label, err = c.encryptTicket(state.marshal()) if err != nil { return err @@ -681,6 +729,79 @@ func (hs *serverHandshakeStateTLS13) sendSessionTickets() error { return nil } +func (hs *serverHandshakeStateTLS13) readClientCertificate() error { + c := hs.c + + if !hs.requestClientCert() { + return nil + } + + // If we requested a client certificate, then the client must send a + // certificate message. If it's empty, no CertificateVerify is sent. + + msg, err := c.readHandshake() + if err != nil { + return err + } + + certMsg, ok := msg.(*certificateMsgTLS13) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(certMsg, msg) + } + hs.transcript.Write(certMsg.marshal()) + + if err := c.processCertsFromClient(certMsg.certificate); err != nil { + return err + } + + if len(certMsg.certificate.Certificate) != 0 { + msg, err = c.readHandshake() + if err != nil { + return err + } + + certVerify, ok := msg.(*certificateVerifyMsg) + if !ok { + c.sendAlert(alertUnexpectedMessage) + return unexpectedMessageError(certVerify, msg) + } + + // See RFC 8446, Section 4.4.3. + if !isSupportedSignatureAlgorithm(certVerify.signatureAlgorithm, supportedSignatureAlgorithms) { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: invalid certificate signature algorithm") + } + sigType := signatureFromSignatureScheme(certVerify.signatureAlgorithm) + sigHash, err := hashFromSignatureScheme(certVerify.signatureAlgorithm) + if sigType == 0 || err != nil { + c.sendAlert(alertInternalError) + return err + } + if sigType == signaturePKCS1v15 || sigHash == crypto.SHA1 { + c.sendAlert(alertIllegalParameter) + return errors.New("tls: invalid certificate signature algorithm") + } + h := sigHash.New() + writeSignedMessage(h, clientSignatureContext, hs.transcript) + if err := verifyHandshakeSignature(sigType, c.peerCertificates[0].PublicKey, + sigHash, h.Sum(nil), certVerify.signature); err != nil { + c.sendAlert(alertDecryptError) + return errors.New("tls: invalid certificate signature") + } + + hs.transcript.Write(certVerify.marshal()) + } + + // If we waited until the client certificates to send session tickets, we + // are ready to do it now. + if err := hs.sendSessionTickets(); err != nil { + return err + } + + return nil +} + func (hs *serverHandshakeStateTLS13) readClientFinished() error { c := hs.c diff --git a/testdata/Client-TLSv13-ClientCert-ECDSA-RSA b/testdata/Client-TLSv13-ClientCert-ECDSA-RSA new file mode 100644 index 0000000..8b49c0f --- /dev/null +++ b/testdata/Client-TLSv13-ClientCert-ECDSA-RSA @@ -0,0 +1,236 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 f8 01 00 00 f4 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 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 32 cc a8 |.............2..| +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 13 01 13 03 13 02 |................| +00000080 01 00 00 79 00 05 00 05 01 00 00 00 00 00 0a 00 |...y............| +00000090 0a 00 08 00 1d 00 17 00 18 00 19 00 0b 00 02 01 |................| +000000a0 00 00 0d 00 18 00 16 08 04 08 05 08 06 04 01 04 |................| +000000b0 03 05 01 05 03 06 01 06 03 02 01 02 03 ff 01 00 |................| +000000c0 01 00 00 12 00 00 00 2b 00 09 08 03 04 03 03 03 |.......+........| +000000d0 02 03 01 00 33 00 26 00 24 00 1d 00 20 2f e5 7d |....3.&.$... /.}| +000000e0 a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 ff f6 |.G.bC.(.._.).0..| +000000f0 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 |........_X.;t| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 16 6b 5e d7 00 |....z...v...k^..| +00000010 ce 00 c1 8e 7d 12 51 a4 83 4b fd 6a 06 28 4b 1b |....}.Q..K.j.(K.| +00000020 00 fe 6e 45 a2 87 29 76 81 08 ba 20 00 00 00 00 |..nE..)v... ....| +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 13 01 00 00 |................| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 82 |..+.....3.$... .| +00000060 b2 b1 82 2f 3e e3 e5 d4 90 5e 44 a5 02 30 df 45 |.../>....^D..0.E| +00000070 f1 c6 07 0d d8 af 64 b9 e3 51 30 6a eb a7 0e 14 |......d..Q0j....| +00000080 03 03 00 01 01 17 03 03 00 17 a2 97 33 5b 62 2c |............3[b,| +00000090 69 6c 17 61 14 ba 66 9e 29 04 fa c8 3a a4 57 70 |il.a..f.)...:.Wp| +000000a0 7f 17 03 03 00 42 30 a3 06 4b b8 20 2d ec f6 dc |.....B0..K. -...| +000000b0 cb e6 9c fa b2 5b b0 cc 55 54 53 1b 69 96 e1 3e |.....[..UTS.i..>| +000000c0 9a 57 08 6e 7a 8c 47 26 18 b6 90 f3 1f 7c c3 fc |.W.nz.G&.....|..| +000000d0 9f f6 f6 8c 22 d9 d7 5f 74 0e 55 2a 7f df 3b 12 |....".._t.U*..;.| +000000e0 20 bd 07 96 77 f1 e8 ab 17 03 03 02 6d c4 d3 3b | ...w.......m..;| +000000f0 a3 2c 60 92 18 f1 b4 e4 10 2e 33 21 f0 43 d8 8a |.,`.......3!.C..| +00000100 ce 8a 60 2d 4a ff aa 91 68 7a 83 16 0b e1 30 e7 |..`-J...hz....0.| +00000110 61 0b c4 c6 ba 60 46 72 c4 58 21 fb 3e 51 21 cb |a....`Fr.X!.>Q!.| +00000120 c0 77 c1 3e 40 b5 fc f5 07 83 6a aa 57 1a 30 df |.w.>@.....j.W.0.| +00000130 71 d9 6c 57 da d2 8a c6 2e b1 e5 29 f1 96 c1 1c |q.lW.......)....| +00000140 a2 c8 fe 31 be 71 c7 7a 36 c3 41 c9 2a c6 7f fc |...1.q.z6.A.*...| +00000150 a5 3c 5d 53 bc 7b 29 fe 62 64 bc b4 1e 2f c8 eb |.<]S.{).bd.../..| +00000160 98 6c 47 88 55 da bb 24 de 2b 6b c9 de 17 a1 13 |.lG.U..$.+k.....| +00000170 70 47 7e 86 95 78 49 e7 9f 5b f9 4d d1 ea d5 60 |pG~..xI..[.M...`| +00000180 af 66 10 b4 f5 cc f1 6e 80 56 b0 75 b4 a1 7c 22 |.f.....n.V.u..|"| +00000190 f6 f9 b2 7d 43 24 4f c4 4a c1 f9 8b 03 b9 a5 7b |...}C$O.J......{| +000001a0 76 58 75 46 c4 6c cd d6 16 2f 3e ff 67 e2 31 21 |vXuF.l.../>.g.1!| +000001b0 2c c5 cc 6a 2f 15 5e da 4b 6b e5 af 88 2f 9e 27 |,..j/.^.Kk.../.'| +000001c0 d6 9a 5e 05 ea 20 e1 0d 03 2e b7 5a 9e f1 63 f1 |..^.. .....Z..c.| +000001d0 31 f8 d4 bd 5a 28 6a c2 51 27 e8 d7 3d 51 fa 77 |1...Z(j.Q'..=Q.w| +000001e0 70 1e 17 a4 7b de 3b a6 44 3c 2b 16 a8 85 28 32 |p...{.;.D<+...(2| +000001f0 35 ff ff 60 24 32 d6 11 cb cc 23 51 97 82 b4 ac |5..`$2....#Q....| +00000200 66 a5 33 29 b0 2a 6c 8d d3 69 75 3e ef bb a8 2a |f.3).*l..iu>...*| +00000210 a4 ed 92 1f ee 56 b6 c6 00 bd 80 ae c4 a6 ce 78 |.....V.........x| +00000220 45 6b fc fb 7e ad cc ea 22 dd 33 0e 79 27 93 60 |Ek..~...".3.y'.`| +00000230 a8 c0 c2 b0 2f 3b ba e9 f2 1b 2b ea f3 ff 45 9b |..../;....+...E.| +00000240 7b 28 aa 30 a1 14 8f a7 9c 74 53 fb 8c d6 41 d4 |{(.0.....tS...A.| +00000250 a9 61 7a 5c 4a 20 aa 70 7f 03 52 e8 83 32 57 95 |.az\J .p..R..2W.| +00000260 02 a7 34 37 04 9c 91 90 5f 8e 51 24 70 63 02 80 |..47...._.Q$pc..| +00000270 dc 9c 54 e7 c1 d9 5c 8a d8 b5 6d 8e 05 ef 2d a2 |..T...\...m...-.| +00000280 38 74 d4 b6 83 77 4a 96 22 4d fb 3c 56 2b 29 6e |8t...wJ."M...Cyd.| +000002a0 bb 94 e6 20 c4 11 94 73 48 e3 5f 7b 1f 66 5a f8 |... ...sH._{.fZ.| +000002b0 96 a3 9e 2e 61 4b 1c 86 80 86 26 f2 eb d6 f4 a1 |....aK....&.....| +000002c0 29 9d dc ae de 38 f9 98 27 2e 69 d5 4f f6 ca 32 |)....8..'.i.O..2| +000002d0 ca d4 79 90 98 2f 94 f7 0f 8f 77 9a 21 44 0a b6 |..y../....w.!D..| +000002e0 e8 8b c3 3d 1a bd 2f 45 91 10 44 e2 74 22 6e e1 |...=../E..D.t"n.| +000002f0 20 fc 32 d1 74 da 9d ac 0b b1 e1 d2 7b 65 96 c3 | .2.t.......{e..| +00000300 41 eb dd a2 9e bf 7f 22 20 06 91 be 7a 94 77 fb |A......" ...z.w.| +00000310 88 31 f3 f4 d3 38 bb a3 01 4f e4 ee 08 b4 bf 23 |.1...8...O.....#| +00000320 ad 46 22 28 f0 e9 4f bc 76 4d 53 7a eb 58 f3 0c |.F"(..O.vMSz.X..| +00000330 ae 6f 09 70 f2 96 b9 16 7a 24 4a 94 99 b3 a2 da |.o.p....z$J.....| +00000340 1a 61 ac 53 e0 2c ae c5 de 4b c5 e5 dd 54 e4 d5 |.a.S.,...K...T..| +00000350 75 ea d1 dc 5d 57 04 2c 87 41 17 03 03 00 99 28 |u...]W.,.A.....(| +00000360 54 65 ee 2f ba b3 bf 24 d6 d4 30 8a 7c ea e0 b2 |Te./...$..0.|...| +00000370 e7 9a 32 55 f5 92 d4 1d eb 73 fd db e3 f1 c9 83 |..2U.....s......| +00000380 f8 89 fc bb a3 2e cb 3a 4e a9 4e 21 7c 1f 42 ce |.......:N.N!|.B.| +00000390 34 a7 7c 61 71 ff 58 80 f0 d2 fa 8f 01 16 02 47 |4.|aq.X........G| +000003a0 f5 4c f4 92 7b 27 46 b7 c5 7f 11 b2 83 b5 56 c8 |.L..{'F.......V.| +000003b0 95 79 eb 7f 11 b6 58 e7 73 6e 75 97 e7 5a 64 7b |.y....X.snu..Zd{| +000003c0 33 09 da 6b 1e 10 99 94 01 1d 03 fe f5 bb 69 0c |3..k..........i.| +000003d0 02 4b 1d 69 5f bf db a7 07 50 f0 b0 b9 8b 21 5b |.K.i_....P....![| +000003e0 98 55 b7 58 67 1f c7 dc 56 1b b0 58 e9 49 9a c9 |.U.Xg...V..X.I..| +000003f0 28 d6 e6 e8 fc 7a ac c8 17 03 03 00 35 c9 67 6c |(....z......5.gl| +00000400 2f bd 89 41 ae c9 65 e2 be 94 a8 6d f2 d4 f2 15 |/..A..e....m....| +00000410 74 a3 86 ed 57 67 d4 5e 76 de e4 67 5e f6 91 49 |t...Wg.^v..g^..I| +00000420 f2 01 db af 07 ad 42 ff a3 a1 1d e5 11 89 89 52 |......B........R| +00000430 ee 29 |.)| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 02 1e 71 98 b6 4f fe |...........q..O.| +00000010 ff bc ca 28 6c 91 6d 31 2f e4 05 f3 00 3a 04 26 |...(l.m1/....:.&| +00000020 80 a4 bd 8a 92 8f 11 88 f1 30 46 c2 86 dc dc 32 |.........0F....2| +00000030 fa 95 8e 52 f0 88 55 1d c7 f6 9a 2c 64 ff c1 4b |...R..U....,d..K| +00000040 11 2e bc 41 83 3b ba 1b 7a de d4 99 f7 46 15 53 |...A.;..z....F.S| +00000050 04 66 f5 57 7d 45 14 d1 cd 95 4c 33 8a 34 b1 0d |.f.W}E....L3.4..| +00000060 d2 a4 b4 be 41 eb 96 ae c0 e6 55 9f ba d5 64 19 |....A.....U...d.| +00000070 dd 84 93 cf c1 99 d2 73 3b a2 b0 30 17 df 7e 5a |.......s;..0..~Z| +00000080 21 14 44 4e 52 9d de 9c 4b 44 bf 6e b8 1e fc 47 |!.DNR...KD.n...G| +00000090 cd 2b 51 8d be 96 28 7a b7 6a c9 88 55 76 f3 80 |.+Q...(z.j..Uv..| +000000a0 b5 2e 5e c1 53 7f 99 2e d7 39 31 bd 16 07 b3 13 |..^.S....91.....| +000000b0 6b d5 e6 b0 e5 79 42 36 3a 21 09 9c 8f f1 1f 09 |k....yB6:!......| +000000c0 a6 3a d5 0c 62 d9 56 42 91 fc ba e0 8e 16 31 5a |.:..b.VB......1Z| +000000d0 a5 11 45 56 f8 4a 52 2d b1 de ed 3b ac 08 dd 7a |..EV.JR-...;...z| +000000e0 b8 8a 7b ef e0 65 10 10 5e d5 99 ac db 95 f6 58 |..{..e..^......X| +000000f0 a6 d7 18 72 14 9b 91 03 09 28 49 f9 63 55 92 71 |...r.....(I.cU.q| +00000100 62 94 36 5a de 7a 1b a6 f2 b0 18 09 7f 0d 7d 68 |b.6Z.z........}h| +00000110 c7 24 7f e1 15 86 86 01 23 91 77 76 86 37 40 3a |.$......#.wv.7@:| +00000120 16 ac 2d d0 55 0b 82 ef c6 85 e7 17 27 ee c9 42 |..-.U.......'..B| +00000130 a8 15 9c 2d a9 d5 41 bf d8 eb 1d 03 45 51 65 66 |...-..A.....EQef| +00000140 81 08 8e bf 86 df 5f 68 f3 b1 be 86 34 22 42 8c |......_h....4"B.| +00000150 e8 02 63 e2 18 bd dd db 13 36 dc 9f 0d d5 a7 fa |..c......6......| +00000160 4a 97 db 37 21 5c c7 fb 0a 6a f4 09 c3 5c db c1 |J..7!\...j...\..| +00000170 49 14 eb 94 1a 3f 0b 7a d6 cb d8 0c d7 0f 64 74 |I....?.z......dt| +00000180 20 1b bf 68 d7 f2 91 aa 9d b0 46 47 1d 52 ad 91 | ..h......FG.R..| +00000190 62 ed 90 42 99 fd 9e cf 80 1f 17 43 28 f4 71 90 |b..B.......C(.q.| +000001a0 64 d0 64 ea f2 d0 a2 ba 96 36 4f 2c 53 9b ee 49 |d.d......6O,S..I| +000001b0 a2 84 1d f2 4a eb 58 98 52 52 d3 92 91 7b 38 6c |....J.X.RR...{8l| +000001c0 39 2d 22 d6 92 6c 76 31 5b c3 32 fa 96 33 7a 92 |9-"..lv1[.2..3z.| +000001d0 89 34 a0 95 66 23 0e ce 51 48 7d f1 9d b4 c9 79 |.4..f#..QH}....y| +000001e0 b0 69 6b 9a 7c f2 4c 9c e6 1b 39 20 9a 96 0c 0e |.ik.|.L...9 ....| +000001f0 5c 33 c7 05 10 aa a3 51 d4 a0 e4 e9 f2 e0 97 94 |\3.....Q........| +00000200 dd fa 38 20 57 19 7b e5 ba 99 a5 1b 06 85 20 6c |..8 W.{....... l| +00000210 69 a8 ee f8 b6 fe e6 c7 af ff a8 23 0b 29 05 db |i..........#.)..| +00000220 d2 0f 7b ee 28 0b aa ba 75 17 03 03 00 a3 43 e7 |..{.(...u.....C.| +00000230 59 40 d1 64 64 65 63 42 75 b3 5e 89 a2 73 3d 67 |Y@.ddecBu.^..s=g| +00000240 1c 1b 5f 9e df f9 56 77 02 72 e4 ef 91 ab 2d 1a |.._...Vw.r....-.| +00000250 c6 78 cb 6a 9b 08 bb d4 6b 3e 46 73 0e 14 ee d8 |.x.j....k>Fs....| +00000260 b6 0e 68 a2 34 da 55 61 c9 3a f3 dd de 37 eb 41 |..h.4.Ua.:...7.A| +00000270 8d 26 3a 5f 47 31 34 2b d2 c0 b8 cd 8d 24 d3 2a |.&:_G14+.....$.*| +00000280 34 64 29 c5 0a 5c 72 57 35 50 5b fb 9b 7b 7e c5 |4d)..\rW5P[..{~.| +00000290 1a f8 96 85 3a 32 be a2 ba a5 00 2b 8c 6a c5 aa |....:2.....+.j..| +000002a0 fd 65 e2 5a 8a 89 05 c3 1d e6 ad fd c3 c7 b3 3a |.e.Z...........:| +000002b0 57 f6 3a 08 00 b6 e6 f4 b8 a7 4e 5d 42 26 d7 2d |W.:.......N]B&.-| +000002c0 00 04 2c e3 ba 67 b9 f6 c2 cb cd 73 10 d9 fa 6c |..,..g.....s...l| +000002d0 ab 17 03 03 00 35 b6 49 bd 61 18 68 8b c8 be 43 |.....5.I.a.h...C| +000002e0 bf ea 1c 64 f7 81 b9 9d b7 5d 6f e7 4a 2d e8 ae |...d.....]o.J-..| +000002f0 37 a0 bd 3a b6 d5 da ad 77 dd 8d e8 c7 5c 35 ba |7..:....w....\5.| +00000300 b9 af 67 21 1c c3 bd 6a 6e 9d a2 17 03 03 00 17 |..g!...jn.......| +00000310 9c 58 47 b5 ba 24 69 1d c5 88 10 31 8f 35 2f 24 |.XG..$i....1.5/$| +00000320 37 d5 ae b7 70 5c 8e |7...p\.| +>>> Flow 4 (server to client) +00000000 17 03 03 02 ea 4d 07 a0 65 50 d9 de ab ad 80 30 |.....M..eP.....0| +00000010 4a 6e 26 79 32 0b 14 59 ad f4 41 98 4f 22 c0 6b |Jn&y2..Y..A.O".k| +00000020 e1 b6 c4 95 84 77 0a b2 08 33 b0 73 52 f6 65 ef |.....w...3.sR.e.| +00000030 27 e0 0f da a6 30 3c 87 d6 43 c9 79 d7 00 29 07 |'....0<..C.y..).| +00000040 ee 8f e4 b8 63 bc 59 98 07 2f ea b1 57 a8 cb 8c |....c.Y../..W...| +00000050 5a c7 bd 2f 6e b5 1a 83 b7 c4 c3 89 d3 ec ec d2 |Z../n...........| +00000060 71 b5 58 78 22 7e 89 ee f1 b3 9c 3d f2 44 69 9a |q.Xx"~.....=.Di.| +00000070 aa 5a 13 d2 ba 28 34 11 d7 2b 78 c3 85 44 07 3d |.Z...(4..+x..D.=| +00000080 83 e2 13 f5 6c 63 23 77 dd bc 38 06 6e bf 5d 64 |....lc#w..8.n.]d| +00000090 08 58 9e 49 a3 d1 53 ca 80 29 22 b5 84 96 86 3c |.X.I..S..)"....<| +000000a0 09 93 68 c8 c2 59 db 81 77 a1 a4 cc 13 cc 77 85 |..h..Y..w.....w.| +000000b0 a6 d4 87 93 19 45 92 a6 5f 0e 03 23 3d a5 d5 1f |.....E.._..#=...| +000000c0 1b eb bb 28 17 b5 b7 85 29 6c 04 8d f2 08 a7 32 |...(....)l.....2| +000000d0 1f 02 b9 f5 eb 28 8d 8c b1 22 b6 84 76 fd c3 89 |.....(..."..v...| +000000e0 92 f0 9c 9d 39 32 52 e9 57 46 ba 66 cc 3c fb 2a |....92R.WF.f.<.*| +000000f0 2f 8a 4f ce 7e 11 b3 42 39 33 50 5e 56 73 a4 fe |/.O.~..B93P^Vs..| +00000100 31 2b c6 6c be 62 d9 1c 0f 5a 88 8b 99 3b ad ec |1+.l.b...Z...;..| +00000110 78 e3 32 d5 ae 7d b3 0d a4 7f 5a 79 86 65 be ed |x.2..}....Zy.e..| +00000120 00 ea 62 1d a3 52 fc 36 76 52 05 4a 68 9d 07 11 |..b..R.6vR.Jh...| +00000130 d6 eb f5 c2 cd 7b ef b2 c9 20 a0 0e 78 a8 2f 2a |.....{... ..x./*| +00000140 e9 54 4c 92 90 a7 9e 7f bb 48 b8 b7 f9 28 c8 9b |.TL......H...(..| +00000150 97 0c a2 20 da 9f 0e c9 b6 e1 07 51 c9 f0 34 32 |... .......Q..42| +00000160 2d 6f b1 36 1a 20 c3 fb c0 d6 88 84 b3 d8 7b 22 |-o.6. ........{"| +00000170 89 6e cb 19 96 ad 05 6a 94 06 00 d8 71 e6 ad 78 |.n.....j....q..x| +00000180 4c b8 4a 6a 63 fd 7a 66 4f 51 08 d3 7b 46 5f ae |L.Jjc.zfOQ..{F_.| +00000190 e7 39 d7 e8 97 de 3b ec 6a e0 c7 74 cb 53 74 b3 |.9....;.j..t.St.| +000001a0 13 89 bd a4 0a b5 8b 0a 32 1a 97 5f 20 c5 b5 d0 |........2.._ ...| +000001b0 14 ec 2e f3 20 19 e9 4e 85 28 1a 22 bf 14 3c ec |.... ..N.(."..<.| +000001c0 6d 4a c8 0f 0d 69 94 c0 e3 b2 86 8e 5b ac a4 84 |mJ...i......[...| +000001d0 e3 da 21 1f 0a 17 ae 40 64 c6 db c1 1d 61 5d e9 |..!....@d....a].| +000001e0 13 85 43 0d 72 48 09 8a 81 5a 1f 15 54 6c 1d 04 |..C.rH...Z..Tl..| +000001f0 09 e4 c7 75 06 36 c6 5f a9 f5 70 2e a2 68 40 b1 |...u.6._..p..h@.| +00000200 df 50 c7 9a 81 d8 cd f9 19 2c 7c a3 aa 35 4f b5 |.P.......,|..5O.| +00000210 62 c4 00 92 b2 f1 91 60 ce 64 bc fe 25 fc 7e da |b......`.d..%.~.| +00000220 48 d6 34 e8 39 bb c6 93 51 06 d0 3b 9c 29 b9 83 |H.4.9...Q..;.)..| +00000230 05 b5 62 47 e0 1c 61 ce 8a a6 55 25 45 8b b3 29 |..bG..a...U%E..)| +00000240 62 ab 16 ee 72 11 b9 2d 9c 00 cb 78 65 f5 8b 60 |b...r..-...xe..`| +00000250 6d 78 a2 a4 41 9b 05 4a 79 39 03 a9 6f 77 78 a1 |mx..A..Jy9..owx.| +00000260 fc 4c d4 4e 5b 27 b3 da 31 5c 5c 3a 10 18 a7 75 |.L.N['..1\\:...u| +00000270 78 1a d3 f4 6c a1 22 03 55 a2 70 1d 48 ce e1 67 |x...l.".U.p.H..g| +00000280 fe 42 f9 5e 3c 1e f8 6c c0 8f da 67 8c fe 07 5a |.B.^<..l...g...Z| +00000290 53 2a c9 01 2d b4 ca cf ac 9b 7c 9a c2 8f 24 0a |S*..-.....|...$.| +000002a0 fb 4a 1b b1 c8 d5 0a 9a e1 e9 40 a5 4a c5 07 46 |.J........@.J..F| +000002b0 28 d0 db 2b dc 40 02 70 38 09 d5 bc 04 a1 81 02 |(..+.@.p8.......| +000002c0 6c 40 e1 79 ef 50 ae 2d 0c 82 c0 19 88 7d a0 07 |l@.y.P.-.....}..| +000002d0 0d 4a 40 87 c0 8a 06 a3 ea 3e 5e 3e b7 3d 9d 92 |.J@......>^>.=..| +000002e0 b3 ee bd 72 90 ea 35 81 c1 29 86 24 13 9d 2a 17 |...r..5..).$..*.| +000002f0 03 03 02 ea 7c 16 54 e4 e2 06 d8 a1 e4 27 1b a4 |....|.T......'..| +00000300 14 a8 b6 29 50 18 bf d3 59 5e bb 53 8e 7c 8f d3 |...)P...Y^.S.|..| +00000310 fb bd e8 06 f2 6e 82 23 07 a7 0f 91 f6 be 11 70 |.....n.#.......p| +00000320 89 6a c8 f1 26 1f e4 09 88 38 01 ba 81 dc 4d 2c |.j..&....8....M,| +00000330 13 05 3b 37 2e 95 4c 7f 8a c3 a3 5b 4d 43 5c ee |..;7..L....[MC\.| +00000340 11 92 c3 a7 93 5a e7 7b f8 ae 9f 83 ef 25 d4 af |.....Z.{.....%..| +00000350 a3 4b 04 7e 8f 54 3a 5b f6 61 75 61 80 e0 40 cb |.K.~.T:[.aua..@.| +00000360 1d 4c ab 55 e9 35 ea 91 af b7 10 e4 ac 9d d5 d0 |.L.U.5..........| +00000370 1c c6 3e 73 ea 15 08 bb 53 76 0b 44 64 64 5b 98 |..>s....Sv.Ddd[.| +00000380 e8 d8 b6 32 43 91 53 2d 3d f9 04 a9 03 d4 73 c8 |...2C.S-=.....s.| +00000390 49 fe a2 48 a0 09 31 d1 08 47 d1 7d 71 4b 2f 43 |I..H..1..G.}qK/C| +000003a0 e6 67 a9 4f 66 0c 01 8c 4c 5b 36 84 d0 bb df 4d |.g.Of...L[6....M| +000003b0 c5 d3 27 9c c0 48 d3 49 b3 73 ce 51 38 70 a3 d8 |..'..H.I.s.Q8p..| +000003c0 53 88 a9 f8 2d 68 21 fd 7c b8 68 84 f5 f6 fd d5 |S...-h!.|.h.....| +000003d0 62 77 af dc 28 8b 44 46 3b a7 12 fc 28 72 d3 b9 |bw..(.DF;...(r..| +000003e0 de e9 73 af 93 d3 37 ce 60 81 8d 62 02 ff 78 d3 |..s...7.`..b..x.| +000003f0 9a 60 68 f9 54 df b7 f0 7b cc 4a 92 9e 31 76 0d |.`h.T...{.J..1v.| +00000400 02 31 fe e2 c6 03 63 a6 b2 cf aa 00 f8 93 3f a4 |.1....c.......?.| +00000410 d1 45 9c 7d b6 06 11 30 c9 7a 12 16 6a 0a 8f 5c |.E.}...0.z..j..\| +00000420 a8 aa 5d 3f 8c d6 89 de 5c a5 d9 da b7 92 dd a6 |..]?....\.......| +00000430 d3 a0 7f 62 95 c5 12 54 6d a3 2a 38 99 b2 12 d6 |...b...Tm.*8....| +00000440 47 56 56 f6 3d cf 37 9c 31 bd 9c 32 ae 52 05 e9 |GVV.=.7.1..2.R..| +00000450 2e c7 3b 84 45 ef 1f 94 ff ee d8 47 88 ea 09 ae |..;.E......G....| +00000460 27 51 9c 59 bb ff 7a 75 f7 72 38 35 f6 3e cc 01 |'Q.Y..zu.r85.>..| +00000470 54 72 5f e6 2e 16 12 25 b4 9b 69 76 fa 2a 2d 76 |Tr_....%..iv.*-v| +00000480 d2 bb e0 cf d2 41 00 20 d9 0b 88 42 7f 7c f8 70 |.....A. ...B.|.p| +00000490 67 7f 06 d9 a6 17 79 6d 6d 53 87 9a 28 df 97 8f |g.....ymmS..(...| +000004a0 f3 35 4b 5a 43 43 9a 07 6d c3 00 5b 58 7a 7a 80 |.5KZCC..m..[Xzz.| +000004b0 5e 0e 9c 6a da 8d 0b 65 26 af e6 2f f4 a5 cf 6e |^..j...e&../...n| +000004c0 07 9b 24 2b 5b 36 fd 07 3b 46 f5 f4 15 cc ea 11 |..$+[6..;F......| +000004d0 f9 d0 97 ea 1d b7 3d db bf 7c e2 dd 68 1e 8b ea |......=..|..h...| +000004e0 90 cb 67 8a 2e 25 77 40 3b 76 c1 0f 4e b0 33 95 |..g..%w@;v..N.3.| +000004f0 d0 b1 39 44 d9 7c eb 34 98 8d 2c 54 5b a8 9a 22 |..9D.|.4..,T[.."| +00000500 68 a7 74 10 6f 69 f0 9c 07 11 0b 9b 81 da 3e 16 |h.t.oi........>.| +00000510 a9 b6 92 55 ce a0 15 25 5e 25 6e 41 5a d6 34 83 |...U...%^%nAZ.4.| +00000520 83 fa b3 53 0c b0 5c 60 83 1e 42 09 90 e0 5d 20 |...S..\`..B...] | +00000530 79 6c 34 ec a0 da fa 32 b6 6e d3 37 a5 ad 5a f6 |yl4....2.n.7..Z.| +00000540 b7 85 a3 e2 75 c7 b0 c8 1b bc 71 73 24 c4 4f 7f |....u.....qs$.O.| +00000550 34 d4 0f a0 c1 53 f9 35 b3 c1 5e e9 32 a8 2d f0 |4....S.5..^.2.-.| +00000560 9b 8e 24 82 93 92 85 e5 82 56 84 a8 f2 e5 6f 81 |..$......V....o.| +00000570 a8 cd e9 34 ce 24 48 0a c5 07 32 ec a1 ec 44 37 |...4.$H...2...D7| +00000580 42 af 4f ef 33 de fb 98 e6 95 59 63 bc e0 aa 0a |B.O.3.....Yc....| +00000590 62 dc c0 28 7f b2 53 62 fb d6 42 d7 cc 60 b6 5b |b..(..Sb..B..`.[| +000005a0 8d 30 a7 94 36 9d c2 d0 fe 38 aa 95 0a 3f 7f 6f |.0..6....8...?.o| +000005b0 5b a3 bb 25 d9 e7 a6 7b 46 e9 e0 42 c7 73 c9 a8 |[..%...{F..B.s..| +000005c0 01 ec 54 93 d4 28 f1 ba c9 26 04 22 02 88 04 4d |..T..(...&."...M| +000005d0 e3 c8 6f a8 de fb fd 48 76 41 cc e2 98 52 |..o....HvA...R| +>>> Flow 5 (client to server) +00000000 17 03 03 00 13 3b cc e0 8a fe cd f3 1f 2c 07 cc |.....;.......,..| +00000010 9d c3 62 ae 15 fe 68 64 |..b...hd| diff --git a/testdata/Client-TLSv13-ClientCert-RSA-ECDSA b/testdata/Client-TLSv13-ClientCert-RSA-ECDSA new file mode 100644 index 0000000..a482330 --- /dev/null +++ b/testdata/Client-TLSv13-ClientCert-RSA-ECDSA @@ -0,0 +1,228 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 f8 01 00 00 f4 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 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 32 cc a8 |.............2..| +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 13 01 13 03 13 02 |................| +00000080 01 00 00 79 00 05 00 05 01 00 00 00 00 00 0a 00 |...y............| +00000090 0a 00 08 00 1d 00 17 00 18 00 19 00 0b 00 02 01 |................| +000000a0 00 00 0d 00 18 00 16 08 04 08 05 08 06 04 01 04 |................| +000000b0 03 05 01 05 03 06 01 06 03 02 01 02 03 ff 01 00 |................| +000000c0 01 00 00 12 00 00 00 2b 00 09 08 03 04 03 03 03 |.......+........| +000000d0 02 03 01 00 33 00 26 00 24 00 1d 00 20 2f e5 7d |....3.&.$... /.}| +000000e0 a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 ff f6 |.G.bC.(.._.).0..| +000000f0 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 |........_X.;t| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 0d bc 10 4c a6 |....z...v.....L.| +00000010 07 5d ee 65 44 88 da cb ec 3e e7 9f e7 e4 12 01 |.].eD....>......| +00000020 bf 4c ca 2a 69 77 b7 ce 2e 4d b0 20 00 00 00 00 |.L.*iw...M. ....| +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 13 01 00 00 |................| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 fa |..+.....3.$... .| +00000060 d3 a7 66 61 08 f4 5e 78 2b 04 6b 67 f6 db 95 c2 |..fa..^x+.kg....| +00000070 2f bc 13 13 ec 29 ca e3 88 77 33 08 1b b5 6e 14 |/....)...w3...n.| +00000080 03 03 00 01 01 17 03 03 00 17 04 08 27 c4 db 89 |............'...| +00000090 a1 a7 75 ec 5e 05 07 9a 47 40 89 a5 7c e1 77 e2 |..u.^...G@..|.w.| +000000a0 a6 17 03 03 00 42 70 bc 31 0d 73 a8 b5 ec 55 a5 |.....Bp.1.s...U.| +000000b0 87 cd 02 f9 8f 5c 77 59 b7 62 a0 7c 9a 6e 70 ca |.....\wY.b.|.np.| +000000c0 41 68 b6 0e 41 ba 28 e6 4b cc 64 ea 8a 08 5c 79 |Ah..A.(.K.d...\y| +000000d0 6d e7 06 bf ee 94 c9 04 84 0d df 4a 69 05 1d 37 |m..........Ji..7| +000000e0 68 36 17 61 53 58 ac 87 17 03 03 02 22 e6 c6 58 |h6.aSX......"..X| +000000f0 9d ca d8 79 54 67 64 72 8d 9b 12 4a 93 55 b7 70 |...yTgdr...J.U.p| +00000100 e1 15 6f a0 d1 64 17 b5 2b ec 29 37 91 0c 21 ff |..o..d..+.)7..!.| +00000110 ba d9 e9 4b 5a af a3 4a 6d 07 64 02 b1 a4 54 19 |...KZ..Jm.d...T.| +00000120 44 b2 a0 e6 b4 28 75 f0 d8 7e 0d 20 f0 45 ba 93 |D....(u..~. .E..| +00000130 3a 55 d6 e2 17 d7 ad fe 54 ac fe a9 a1 01 2d 62 |:U......T.....-b| +00000140 61 7d 20 90 2f d5 f3 e8 46 6d 7c 54 37 25 da 49 |a} ./...Fm|T7%.I| +00000150 56 db 9d da a3 60 7c 31 cb 5e e7 89 6d 23 30 7e |V....`|1.^..m#0~| +00000160 83 96 11 f7 4a 62 b7 e7 96 e7 f8 c9 c2 c9 bd 12 |....Jb..........| +00000170 b3 fc b0 8d 17 35 99 c4 ef f7 e8 9f 4f ad a0 bf |.....5......O...| +00000180 ea 6c 55 cd 0f 2d e3 85 4a 74 e7 94 89 e3 6d 94 |.lU..-..Jt....m.| +00000190 d1 d6 d3 1a aa c2 2e 32 37 79 1a ee f0 44 14 3a |.......27y...D.:| +000001a0 a1 61 bb cb 95 ce f5 e4 fe c4 c2 8b 90 38 00 ce |.a...........8..| +000001b0 46 4a b0 83 e2 d9 ae 7f bf fe 72 65 4a 5f bb 07 |FJ........reJ_..| +000001c0 78 a9 90 c0 9e b3 5c 4d 79 e3 de a0 5c c3 1f f8 |x.....\My...\...| +000001d0 7f a0 db e7 88 8c 5b e1 f0 0e f5 00 80 0a 5f 3b |......[......._;| +000001e0 2a a3 a9 7f 73 9b b3 3e 91 e4 5c 96 74 fe e5 41 |*...s..>..\.t..A| +000001f0 99 cb 14 a7 28 b3 ca 47 ec 53 88 0e 71 1d 26 11 |....(..G.S..q.&.| +00000200 60 d8 b5 9c 5e 93 79 9d 9f 84 74 f4 f7 90 82 dd |`...^.y...t.....| +00000210 8e 0a 29 10 45 9c 05 60 82 52 29 88 c9 09 d6 9a |..).E..`.R).....| +00000220 57 ee 72 62 0c 57 80 ec 46 b8 b1 c9 83 8b e6 c6 |W.rb.W..F.......| +00000230 2b d9 cf 9d 3c e0 51 c1 2d 68 96 c4 70 c8 60 9a |+...<.Q.-h..p.`.| +00000240 b0 95 6b 81 70 8e bd 7d c7 91 f6 e2 e6 66 f6 a9 |..k.p..}.....f..| +00000250 6c db 9a c1 42 3f 90 93 2f 9b cd 39 95 95 89 4f |l...B?../..9...O| +00000260 b8 a6 2e 70 25 a7 37 d1 9f 97 16 2d 41 2b de 80 |...p%.7....-A+..| +00000270 33 c3 72 e4 ac 7d f9 ba 2f 30 ed 0e c8 7a ac d7 |3.r..}../0...z..| +00000280 34 c5 a9 a5 e3 18 71 63 d1 33 94 5a b5 39 eb d5 |4.....qc.3.Z.9..| +00000290 25 da d0 47 0e e2 48 5a af e5 6f a7 ed 18 44 ce |%..G..HZ..o...D.| +000002a0 6c 3a 17 de b9 00 f9 cb de d2 cb 3b 29 fc 5d 69 |l:.........;).]i| +000002b0 ed 8e 64 83 07 c1 3d fa 6e 98 d4 45 b2 5a ff ca |..d...=.n..E.Z..| +000002c0 85 13 73 d9 19 8c e7 60 fc 2a cc 2d d0 1a 0c e3 |..s....`.*.-....| +000002d0 22 ec d6 38 f4 47 d0 96 b6 f8 11 2b 43 da 2a f9 |"..8.G.....+C.*.| +000002e0 e8 80 c6 63 68 bf fe ae 05 08 c7 4e 52 2f 2e 08 |...ch......NR/..| +000002f0 62 2b 2a 06 f2 f0 e3 22 be c6 8f 72 82 fd 33 29 |b+*...."...r..3)| +00000300 58 c8 5f 6d 36 d6 4c 02 c5 c5 e6 f2 66 1a f3 17 |X._m6.L.....f...| +00000310 03 03 00 a3 4e ac b9 1a db ec b9 f6 82 f6 07 c7 |....N...........| +00000320 7c a3 cf 11 bc 18 c1 8e 5d bc c4 52 af ac 20 a3 ||.......]..R.. .| +00000330 a0 90 28 01 6f 81 18 7f 14 d4 fd 87 55 54 13 73 |..(.o.......UT.s| +00000340 95 49 1b ad a8 29 d9 8d 5e 6e 02 49 2f a8 e0 a6 |.I...)..^n.I/...| +00000350 48 dc e5 6d 8e d6 7f 8f fe 40 94 c9 5b 3d 63 c4 |H..m.....@..[=c.| +00000360 85 a5 97 27 db 31 64 67 ab 81 62 8a 2b 2a fd 61 |...'.1dg..b.+*.a| +00000370 b1 c8 c8 d3 c4 e0 ad 5d 7a 59 1a 62 0c 2b e9 7e |.......]zY.b.+.~| +00000380 bb 6b af 63 f0 32 f1 b8 72 13 ca 69 06 cf 82 67 |.k.c.2..r..i...g| +00000390 8e 76 7a c2 d4 96 c9 ab d4 dd a4 22 c3 e3 32 a4 |.vz........"..2.| +000003a0 e6 e1 fd 3a 56 95 2a 0e ef 5c 87 d3 b0 e3 27 04 |...:V.*..\....'.| +000003b0 61 1a 5e 1c 9a 77 09 17 03 03 00 35 29 50 c2 81 |a.^..w.....5)P..| +000003c0 02 68 53 fe ef 46 7c eb 0c 2f 00 c1 67 8f 25 b6 |.hS..F|../..g.%.| +000003d0 6a fd 51 3a db fc cb 50 c8 32 9b cf 5a ba be ab |j.Q:...P.2..Z...| +000003e0 c8 fb 58 d5 5c 77 66 65 70 a2 2c 65 d2 5c 22 51 |..X.\wfep.,e.\"Q| +000003f0 09 |.| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 02 11 77 e3 de 64 ac |...........w..d.| +00000010 38 0a da af 1f ce 7a 60 a6 34 74 5b 5f d5 c1 72 |8.....z`.4t[_..r| +00000020 7f b9 4f e8 19 26 35 c2 9a 0a d5 19 50 72 72 b3 |..O..&5.....Prr.| +00000030 de 05 ac 50 78 2a 69 8a 7f c2 5c d0 a5 58 70 b6 |...Px*i...\..Xp.| +00000040 18 86 f5 92 83 20 fc d5 fb fc 28 89 a0 5c 5e d3 |..... ....(..\^.| +00000050 d2 c8 d7 6e 31 47 a0 bc 9a f0 e6 75 be 55 a4 43 |...n1G.....u.U.C| +00000060 b0 e5 42 f6 66 f0 2c dd ce 9c 35 3d 93 a9 af 85 |..B.f.,...5=....| +00000070 1c df 81 5f a3 19 95 45 ec 18 ce 92 91 4e 7c 59 |..._...E.....N|Y| +00000080 12 dd b5 45 44 9d 1c b2 d3 53 a4 5b ce b6 49 c1 |...ED....S.[..I.| +00000090 1d 22 27 73 1f f3 46 ba 05 fd 2d ac d2 ae 9b 7a |."'s..F...-....z| +000000a0 33 d6 9d a9 fd 29 f7 d9 57 69 91 36 10 f7 93 50 |3....)..Wi.6...P| +000000b0 b1 c4 88 0b 55 de c4 8e 0f d3 60 9c cb 95 4a 2d |....U.....`...J-| +000000c0 35 37 29 03 4f a0 52 33 c9 98 60 88 33 0d f1 68 |57).O.R3..`.3..h| +000000d0 eb 02 f7 15 70 36 d7 86 38 18 ce 89 e5 39 2e c0 |....p6..8....9..| +000000e0 ca 23 07 2b f3 74 df 77 bc 48 5e db a4 c3 7e 68 |.#.+.t.w.H^...~h| +000000f0 8c b3 53 c4 69 b3 45 db be c5 04 b9 00 9e 3c 48 |..S.i.E.......| +00000170 2a be 2e 04 7a f5 ee d2 6b 55 f5 3c f8 46 1a 60 |*...z...kU.<.F.`| +00000180 a4 8d ef bb 3e 5c 35 44 73 4b d7 a9 22 ad 9e cb |....>\5DsK.."...| +00000190 95 01 14 2c a2 0f 72 2e 53 64 3f 11 44 9b da fb |...,..r.Sd?.D...| +000001a0 d5 be 42 f5 c1 c8 b2 12 6b 3c 00 27 8e 32 a3 2c |..B.....k<.'.2.,| +000001b0 7e d9 6f 03 2f 29 c3 84 3d 80 c3 cd a0 88 ef 7b |~.o./)..=......{| +000001c0 c7 52 14 2e f5 ba 12 05 1d 57 0d a9 57 7d 6b e8 |.R.......W..W}k.| +000001d0 07 09 8a 73 9e 17 30 3a 23 b5 2b 7c 20 f0 11 8b |...s..0:#.+| ...| +000001e0 50 0c 56 d3 35 9c d9 46 53 f2 dc 8a 76 41 7b d8 |P.V.5..FS...vA{.| +000001f0 d7 4b d7 c1 29 c8 41 46 a7 0a 30 85 a4 a8 d4 64 |.K..).AF..0....d| +00000200 93 13 fc 47 88 46 0d f7 fe ae cb 0a 55 89 64 c8 |...G.F......U.d.| +00000210 ab 0b 7f bb a1 d9 7c a4 56 fb ee 1f 17 03 03 00 |......|.V.......| +00000220 99 85 55 c5 ed 66 4f 93 f3 7a 7c 96 5e 75 1e 34 |..U..fO..z|.^u.4| +00000230 b1 3a ba b6 e7 2e de 4c b4 2f 06 ee fe a7 14 f8 |.:.....L./......| +00000240 32 3b 20 cf 9d 93 16 2a 80 e7 cc 46 de 13 f8 7e |2; ....*...F...~| +00000250 0b 83 69 de 4c 7d f2 cd 5e 23 30 8b 38 b9 68 cb |..i.L}..^#0.8.h.| +00000260 fe d9 dd ed e3 ad 59 50 71 6b f3 9c ce 6c 89 01 |......YPqk...l..| +00000270 cc 89 ed b0 71 87 10 c4 0b 47 45 c9 4f 16 b8 2d |....q....GE.O..-| +00000280 88 41 6e 5e 4e 26 fa 28 10 e5 f3 74 ed a1 ba 17 |.An^N&.(...t....| +00000290 cd 58 fa 60 26 f0 64 6f 61 51 0d 51 b3 32 bd 8e |.X.`&.doaQ.Q.2..| +000002a0 8a e7 8f b2 f6 c7 30 d3 22 a7 1e 0d 15 aa 64 db |......0.".....d.| +000002b0 26 11 e1 38 73 ee 29 b9 1f 34 17 03 03 00 35 cb |&..8s.)..4....5.| +000002c0 c3 5c e5 0f 1a 9b dd 44 04 89 12 b5 a2 7d 30 8f |.\.....D.....}0.| +000002d0 bd 67 6a 98 f0 f9 f9 7d 01 66 6e 28 05 45 56 89 |.gj....}.fn(.EV.| +000002e0 df 1f ba b8 1e 22 56 e1 e3 1c 1c dc dd 01 53 ed |....."V.......S.| +000002f0 50 39 3e c2 17 03 03 00 17 c2 af ed 30 35 b0 dd |P9>.........05..| +00000300 99 be 51 2a dd b8 68 2c 62 ac c2 a8 38 d0 a5 53 |..Q*..h,b...8..S| +>>> Flow 4 (server to client) +00000000 17 03 03 02 da 67 9d 9c f7 2d bf 7b bb 80 c0 6d |.....g...-.{...m| +00000010 d5 18 94 70 77 34 15 6e 81 08 7b db 88 77 80 ee |...pw4.n..{..w..| +00000020 d6 a6 ce 4e 7d 49 87 5e 05 b5 e5 9c cc 36 82 c2 |...N}I.^.....6..| +00000030 eb 9b 42 ed 9b 5d 6b ac 35 21 29 76 6c 84 a6 e2 |..B..]k.5!)vl...| +00000040 29 f8 74 3d b9 c3 0e 24 45 88 c5 19 19 e1 64 35 |).t=...$E.....d5| +00000050 a2 71 a5 42 c0 9c cc f3 51 93 f1 e5 c4 29 09 a6 |.q.B....Q....)..| +00000060 6f bc 47 e6 ba cf 5b 64 0e 18 e1 dd e8 4f d5 59 |o.G...[d.....O.Y| +00000070 b3 84 0d 70 12 51 9c fc f8 51 ff 53 30 e3 a7 0d |...p.Q...Q.S0...| +00000080 89 82 ce 0f ff 33 b8 e8 24 5b 35 fa 56 47 11 b3 |.....3..$[5.VG..| +00000090 77 10 c6 f6 3e a6 d0 e7 82 42 5e c0 5b 4a 1d 43 |w...>....B^.[J.C| +000000a0 0e 84 77 29 c0 69 fe 42 d5 e1 3d 86 f2 c9 1b fe |..w).i.B..=.....| +000000b0 f1 54 f6 0f 8a 48 04 c4 5b d6 11 30 68 ce e6 fd |.T...H..[..0h...| +000000c0 59 78 18 14 a4 ce 5a 12 ec a3 31 b6 6f de 42 07 |Yx....Z...1.o.B.| +000000d0 e1 e6 04 da d3 33 28 ef ab 21 f2 d1 5e e3 9e 91 |.....3(..!..^...| +000000e0 89 ad e4 12 b4 5b 11 2c 19 7e c7 d4 40 60 17 3a |.....[.,.~..@`.:| +000000f0 37 9a fa 62 44 fa 7e 36 1b bc 0c 55 dd f2 f3 d3 |7..bD.~6...U....| +00000100 94 9c 6b 63 36 06 e0 ae 48 41 1c b5 c5 b7 03 bd |..kc6...HA......| +00000110 6e da 0d 68 4d 22 e9 7c 29 ad eb 85 9d 0b 85 14 |n..hM".|).......| +00000120 2e 0d 3a 1f 23 08 cf e9 57 38 a8 ae 48 a0 3b af |..:.#...W8..H.;.| +00000130 e6 1f 83 6f d3 e1 d2 ae 42 14 af 50 1c 4a 51 fd |...o....B..P.JQ.| +00000140 68 1d ad d7 71 2a 0f 16 52 07 8b f9 d0 48 c0 33 |h...q*..R....H.3| +00000150 4e 24 85 e0 61 26 28 db 44 93 86 78 74 02 1c 48 |N$..a&(.D..xt..H| +00000160 1e cd 2a 7b 33 b3 08 f3 ba af 71 c7 f1 d8 af 46 |..*{3.....q....F| +00000170 d8 88 dd 22 cc d7 d8 96 98 ca 20 d1 5c 7a 59 ab |..."...... .\zY.| +00000180 df 66 0b 59 05 40 92 7b 8f 78 ac 67 90 d5 eb 24 |.f.Y.@.{.x.g...$| +00000190 4a 05 c3 5f cc 64 7d 26 30 2a 25 d8 8e b5 e6 a6 |J.._.d}&0*%.....| +000001a0 b2 85 a3 cf d4 04 1e d8 92 bc 8e 2b ad c0 ff 52 |...........+...R| +000001b0 79 8b 82 55 cd 39 7d 8e a5 4c dc bf 81 ac 1a e6 |y..U.9}..L......| +000001c0 ed df 61 c8 ad 70 dc 75 5b cc e9 a7 8d 96 74 a7 |..a..p.u[.....t.| +000001d0 7a 94 3c 60 65 1c 7f e1 89 2d c0 80 5f 2f fd 9c |z.<`e....-.._/..| +000001e0 66 2f ad 73 c3 96 8d 74 c6 cd 68 74 39 49 87 4c |f/.s...t..ht9I.L| +000001f0 2c 77 3c c4 c5 4e 9a 71 1e 69 86 3a fb a8 d2 e2 |,w<..N.q.i.:....| +00000200 9d 63 60 e5 f7 d2 63 a8 f2 5b f7 cb 57 32 00 be |.c`...c..[..W2..| +00000210 f2 f3 9c ae a5 f1 9d 05 be 8a c1 ed 8f f9 d0 51 |...............Q| +00000220 85 5e ca ce 92 45 ca b4 ce 6e 26 11 9d 94 38 22 |.^...E...n&...8"| +00000230 40 34 dc bc a0 34 f6 48 26 38 7a 59 f8 c8 d6 c4 |@4...4.H&8zY....| +00000240 35 24 82 96 19 49 bb 24 5f 25 fc c2 a0 b7 89 4f |5$...I.$_%.....O| +00000250 8f 71 e1 c6 da 4f 96 fa 3f 5c 73 96 41 86 1c 9d |.q...O..?\s.A...| +00000260 9a eb 7a fa bc 59 e9 4c 09 cf e5 95 33 27 7a a6 |..z..Y.L....3'z.| +00000270 61 fc ff 39 38 1e 65 79 75 48 b0 48 66 bd ad 77 |a..98.eyuH.Hf..w| +00000280 4a d3 ce 91 65 e4 72 51 87 88 8a 2a b7 55 c4 46 |J...e.rQ...*.U.F| +00000290 cc 35 ef d4 aa fc bb 70 36 10 7f f3 2e 8c a0 2f |.5.....p6....../| +000002a0 7e 14 f3 c0 5d 18 55 71 bd e9 36 dc 2f a6 9b c1 |~...].Uq..6./...| +000002b0 b5 c5 64 f7 6e a5 8e 93 71 c6 3e ef ef c1 34 2b |..d.n...q.>...4+| +000002c0 f6 9b e7 ad ff a0 ec 14 0d ce 6c c7 c5 b6 c2 c2 |..........l.....| +000002d0 a4 de d3 b9 1e d9 0c f4 67 9a 33 fe f7 35 84 17 |........g.3..5..| +000002e0 03 03 02 da 81 75 4f 5f 38 a9 da c7 88 88 09 ee |.....uO_8.......| +000002f0 fd fc 5b 2a de 6c a7 d4 59 20 69 0b 5f 77 e9 9c |..[*.l..Y i._w..| +00000300 59 bd ed 59 d6 f2 5a 43 49 1b 0c 9a 4a ca e8 bb |Y..Y..ZCI...J...| +00000310 d1 d7 65 55 98 ec 0b 6b 22 a3 3e f1 12 23 d3 f2 |..eU...k".>..#..| +00000320 cc e3 b9 cf 0f 4a 9b 16 a1 09 69 71 75 90 0d 85 |.....J....iqu...| +00000330 37 90 de c9 c1 0a b2 af aa 1c e9 96 17 49 11 01 |7............I..| +00000340 74 f1 23 39 ea cb 33 d1 45 af ae 2a 11 59 7f 4a |t.#9..3.E..*.Y.J| +00000350 fb 57 ba ef 32 13 a1 ca 9c 31 d1 a8 6a c8 67 de |.W..2....1..j.g.| +00000360 13 46 60 76 4c cf be 6c 45 ae e8 29 9f 34 e9 a6 |.F`vL..lE..).4..| +00000370 0a ed ff 8a 47 67 76 ac a0 6a 02 1f 77 28 a2 fd |....Ggv..j..w(..| +00000380 fa c1 ff 43 a6 23 54 0b c2 53 cb 1e f1 ba 4c a1 |...C.#T..S....L.| +00000390 55 ec af b6 b3 be 4a 2a 26 21 d1 68 b5 f5 cd da |U.....J*&!.h....| +000003a0 c4 14 8c 5c 5e 13 31 35 d5 e8 44 a8 ff 08 bc 79 |...\^.15..D....y| +000003b0 91 a0 42 21 67 09 fc d2 b9 95 d6 b1 da c8 75 9e |..B!g.........u.| +000003c0 d7 77 81 cb 35 34 29 c4 c8 62 c3 cd d4 9d 68 5f |.w..54)..b....h_| +000003d0 7e 14 7a 63 d9 84 22 6f 7e e8 5b f9 b5 94 ab 81 |~.zc.."o~.[.....| +000003e0 fc 02 0a 37 6b 71 28 25 fb f6 ab 62 a2 8d 09 73 |...7kq(%...b...s| +000003f0 74 84 39 dd 25 e8 a3 f7 bc dc 11 4a 51 41 31 05 |t.9.%......JQA1.| +00000400 63 8e 92 48 5a a4 81 63 4c 3a 59 96 9f 55 3f fd |c..HZ..cL:Y..U?.| +00000410 fb 68 6a dc 6c e2 69 79 20 b5 1e b7 08 a1 71 a9 |.hj.l.iy .....q.| +00000420 62 64 f3 5e ea dc 46 25 02 fe 3b ce b3 6e 81 de |bd.^..F%..;..n..| +00000430 31 e0 e3 d4 89 39 91 0b 60 dc b5 46 f6 e9 f8 92 |1....9..`..F....| +00000440 d7 f0 00 aa 2c 4a d8 fc fb 11 c5 cf 21 d9 0f 8e |....,J......!...| +00000450 49 92 57 53 9c 5a 0e 2a 05 e5 e3 88 6d dd 4f 84 |I.WS.Z.*....m.O.| +00000460 f7 45 d5 aa a0 ff a5 c7 fb f3 77 76 35 a8 01 b2 |.E........wv5...| +00000470 f6 95 2f e8 f7 b8 87 94 22 d6 ad 11 dc 73 47 b3 |../....."....sG.| +00000480 5f ac ac 6f 34 84 d9 ca 50 a9 de 06 49 c7 3a 41 |_..o4...P...I.:A| +00000490 d1 bc be c9 4f 7a 7d 6a 1e dc 51 ca f1 b9 20 f7 |....Oz}j..Q... .| +000004a0 f9 04 d3 d1 05 0a 36 cf 28 bd 6f 71 6e 9c fb a8 |......6.(.oqn...| +000004b0 7e 88 df 6e b3 e9 5f 7a 46 34 60 96 24 a3 f1 1d |~..n.._zF4`.$...| +000004c0 bd cb 34 fa 0d 54 91 03 01 9b 5d d5 95 e6 51 0d |..4..T....]...Q.| +000004d0 21 d0 99 c3 4f 3f bf 49 64 a8 5b 5d 46 e9 a4 ed |!...O?.Id.[]F...| +000004e0 09 c9 21 4f 13 60 34 51 db d8 44 d5 d3 84 59 6d |..!O.`4Q..D...Ym| +000004f0 8b 73 67 4e fc e3 8b 27 64 89 a3 12 6f fd 4b 27 |.sgN...'d...o.K'| +00000500 a0 80 a1 61 46 9c 16 2a 1f 22 31 a3 3c 9a 4b 7b |...aF..*."1.<.K{| +00000510 cc 25 9d 83 33 9f 62 0f 55 8a 7e 8a 2b 3b b8 7c |.%..3.b.U.~.+;.|| +00000520 3d 50 3d 85 ed 98 68 8d e9 7f 70 f9 2e 56 79 fa |=P=...h...p..Vy.| +00000530 39 53 59 74 f9 fb a2 47 fb 22 39 10 c7 03 6c 78 |9SYt...G."9...lx| +00000540 b5 7e b8 4e c2 3f 09 38 36 f9 b5 a6 2a 2a 33 aa |.~.N.?.86...**3.| +00000550 9b c6 29 db df 07 d7 f1 db 09 88 27 07 70 95 b2 |..)........'.p..| +00000560 a9 ce 9d 2d 25 23 cb 8f 67 6b 2f cc 3b 01 9c c3 |...-%#..gk/.;...| +00000570 04 7c ce ed 8b c0 e7 ed 4d 6f a9 1e 7e 87 26 e0 |.|......Mo..~.&.| +00000580 6c ed 02 93 5e 89 91 2b f8 5c ac 37 e3 6c 0d 71 |l...^..+.\.7.l.q| +00000590 2d 13 42 28 b2 db c5 75 9d 93 da 6e b2 11 89 f6 |-.B(...u...n....| +000005a0 c8 33 1a 22 92 fe 60 3f c0 d2 79 f1 ca 5f 7f 3c |.3."..`?..y.._.<| +000005b0 21 a6 21 b8 01 f3 d8 c9 5a 27 04 0b 7c 18 |!.!.....Z'..|.| +>>> Flow 5 (client to server) +00000000 17 03 03 00 13 27 46 19 d1 26 45 d8 b4 49 5c 53 |.....'F..&E..I\S| +00000010 7a 0c 87 9c 73 0d 3a af |z...s.:.| diff --git a/testdata/Client-TLSv13-ClientCert-RSA-RSAPSS b/testdata/Client-TLSv13-ClientCert-RSA-RSAPSS new file mode 100644 index 0000000..495f9ff --- /dev/null +++ b/testdata/Client-TLSv13-ClientCert-RSA-RSAPSS @@ -0,0 +1,230 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 f8 01 00 00 f4 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 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 32 cc a8 |.............2..| +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 13 01 13 03 13 02 |................| +00000080 01 00 00 79 00 05 00 05 01 00 00 00 00 00 0a 00 |...y............| +00000090 0a 00 08 00 1d 00 17 00 18 00 19 00 0b 00 02 01 |................| +000000a0 00 00 0d 00 18 00 16 08 04 08 05 08 06 04 01 04 |................| +000000b0 03 05 01 05 03 06 01 06 03 02 01 02 03 ff 01 00 |................| +000000c0 01 00 00 12 00 00 00 2b 00 09 08 03 04 03 03 03 |.......+........| +000000d0 02 03 01 00 33 00 26 00 24 00 1d 00 20 2f e5 7d |....3.&.$... /.}| +000000e0 a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 ff f6 |.G.bC.(.._.).0..| +000000f0 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 |........_X.;t| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 63 54 7d 13 b3 |....z...v..cT}..| +00000010 e2 34 2b ce 4b 8e 0a 74 db b8 ef cd f9 6e 3f cf |.4+.K..t.....n?.| +00000020 01 22 34 82 8a 44 42 65 2e 5f 3d 20 00 00 00 00 |."4..DBe._= ....| +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 13 01 00 00 |................| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 d6 |..+.....3.$... .| +00000060 4b 8a 50 d0 fb 13 86 36 0b a1 52 2a a3 e4 f9 4f |K.P....6..R*...O| +00000070 57 35 33 a7 d4 6d 4f 84 fc 83 58 78 d9 85 0c 14 |W53..mO...Xx....| +00000080 03 03 00 01 01 17 03 03 00 17 1f 19 9a c9 99 fd |................| +00000090 a7 26 d2 26 17 74 5a 9c 69 92 c5 d0 bc 40 6f f2 |.&.&.tZ.i....@o.| +000000a0 6d 17 03 03 00 20 f9 64 91 4c cd 2c 70 2e 09 4f |m.... .d.L.,p..O| +000000b0 89 52 61 ac 1c 1d a4 f6 45 30 c3 59 eb 6d ba 83 |.Ra.....E0.Y.m..| +000000c0 17 53 34 54 98 37 17 03 03 02 7a 9e 5b 62 72 9f |.S4T.7....z.[br.| +000000d0 4f 8c 72 a7 1a a7 b4 ac 72 36 b2 21 8c 91 a3 4b |O.r.....r6.!...K| +000000e0 a4 ed 5d f7 a7 0b 68 c1 db 68 40 04 6f 3e b6 3c |..]...h..h@.o>.<| +000000f0 4c 67 84 d1 b1 9b d8 84 e3 28 b8 09 6e 7a 6d 6a |Lg.......(..nzmj| +00000100 91 d3 80 af 4b 2d b5 4e 0c ed 81 90 75 2e f8 1c |....K-.N....u...| +00000110 7f d3 c9 99 6e ba ff 42 eb 05 fb c6 5a f7 7b 5a |....n..B....Z.{Z| +00000120 14 c9 52 21 a6 44 a5 0c 9f 37 bb 78 c1 d9 e8 7b |..R!.D...7.x...{| +00000130 f3 44 84 06 32 a0 67 af d1 5c 03 f8 2b e4 5a c5 |.D..2.g..\..+.Z.| +00000140 18 be 1e bd dd 0c c4 84 0d 23 5e fd 2f f8 c9 4d |.........#^./..M| +00000150 86 e0 eb 41 66 0d de dd ab 6f 6c 9c 4e ab b0 14 |...Af....ol.N...| +00000160 a8 7c 6a 95 c9 02 30 df 9f 5a 45 4a 66 1e b4 15 |.|j...0..ZEJf...| +00000170 c0 ba cb 47 7b a1 4f ab df 81 f5 9a 2a 42 3a 1b |...G{.O.....*B:.| +00000180 35 f7 5b b1 c7 43 c1 b8 5a 1e b6 74 43 d8 97 2c |5.[..C..Z..tC..,| +00000190 63 7e 7d dd 37 77 0e 36 3f 2e cf 84 12 20 a6 5c |c~}.7w.6?.... .\| +000001a0 34 eb 09 25 03 89 47 89 9e cb 46 74 b9 21 2a 5f |4..%..G...Ft.!*_| +000001b0 63 fc 8e 2d f4 9f a6 4a 41 bf b8 3a a6 a1 7c 33 |c..-...JA..:..|3| +000001c0 1c 86 52 b0 ff a0 66 3d 39 55 36 e5 89 21 2f c4 |..R...f=9U6..!/.| +000001d0 3a 07 81 75 6d 62 15 9a 94 2b 5a f5 01 43 c3 a8 |:..umb...+Z..C..| +000001e0 b6 7d 71 3c 4d 96 8d e3 3a 3f 6f 33 5f 63 01 7d |.}q....| +00000200 23 d7 d2 ca 3d 6e e5 71 34 14 02 71 b1 20 e9 05 |#...=n.q4..q. ..| +00000210 2a b6 cc 50 a5 9c b3 ca f7 f7 b4 fc ef 24 4d 47 |*..P.........$MG| +00000220 e7 8c 0f f7 36 90 4c b5 c5 70 07 f7 33 c8 0f 42 |....6.L..p..3..B| +00000230 f9 e1 00 11 d8 ba 71 31 44 a5 84 15 56 d3 0b ec |......q1D...V...| +00000240 78 38 f4 ed 74 df e4 67 33 7f e8 1a c5 70 af 1e |x8..t..g3....p..| +00000250 65 f6 26 f0 02 e0 71 c0 89 48 96 06 92 b7 12 21 |e.&...q..H.....!| +00000260 bd b5 e0 30 c0 bd 5f ed 55 6b fa 3f c3 b6 30 2e |...0.._.Uk.?..0.| +00000270 d2 71 4f a3 45 f8 f8 ec de 23 28 0a 43 ae 73 69 |.qO.E....#(.C.si| +00000280 4c a1 d7 02 12 e8 f4 b6 7d 6c 3b 0f 7f 31 a8 dd |L.......}l;..1..| +00000290 41 f0 06 29 19 de b3 56 61 b0 55 6a bc b3 71 e7 |A..)...Va.Uj..q.| +000002a0 13 02 d6 cc ae 60 c1 32 5d be 8f 32 c0 21 95 b9 |.....`.2]..2.!..| +000002b0 e6 c6 cb 97 d9 66 12 a2 03 fb 3d 9d 15 dd 19 ef |.....f....=.....| +000002c0 62 f5 80 4f b9 27 e8 73 a3 21 57 04 bd 61 4e c8 |b..O.'.s.!W..aN.| +000002d0 44 93 3b 8c a3 32 39 ac 73 98 36 ba da 64 f4 33 |D.;..29.s.6..d.3| +000002e0 54 e9 ba ec f0 1d 75 74 ab 9b 18 dd c9 96 c6 66 |T.....ut.......f| +000002f0 a5 e3 48 47 76 f9 24 1d f7 84 05 33 d7 d8 ac 02 |..HGv.$....3....| +00000300 02 a4 65 14 7f 63 46 aa cd 6f ce 1a ab 5a bc 48 |..e..cF..o...Z.H| +00000310 15 db 93 55 9b 1f a8 b0 d7 ab 51 ab 8f 0d 0e 04 |...U......Q.....| +00000320 f3 4e 73 92 76 89 1c e4 0f 9d 00 19 6a 2b a1 6c |.Ns.v.......j+.l| +00000330 aa d9 21 df e5 c8 9d 6c bc 93 f2 0c 0c f6 86 c3 |..!....l........| +00000340 26 37 53 af f0 17 03 03 00 99 cd cf 63 df fd 8b |&7S.........c...| +00000350 a7 90 61 f2 37 21 17 d4 a7 c4 20 7c e3 16 2d 9b |..a.7!.... |..-.| +00000360 c4 c1 6a 87 2d 63 55 7e 17 ef aa f1 6d fe d1 37 |..j.-cU~....m..7| +00000370 f8 90 0d 34 db 45 20 6e 73 0d f1 eb 2d d4 6b 4a |...4.E ns...-.kJ| +00000380 23 f9 d5 5f 49 75 4d 02 b0 39 fd ee ef f5 65 08 |#.._IuM..9....e.| +00000390 d8 f6 ce fa 2a 3c 20 41 1f 5d 38 cc b4 39 0b 52 |....*< A.]8..9.R| +000003a0 29 93 0b ce 4c c4 7a 7c 92 81 8b ca 0b 5e 31 8f |)...L.z|.....^1.| +000003b0 6d 06 03 6f 25 19 52 f3 8f 3a 47 33 9b 15 d5 4f |m..o%.R..:G3...O| +000003c0 c8 db 6a fe fb d1 9e 32 ab 2e b2 10 83 20 c3 34 |..j....2..... .4| +000003d0 f8 35 62 fc 30 99 9a 72 ff 57 33 fd 73 0c 08 bc |.5b.0..r.W3.s...| +000003e0 d4 da f0 17 03 03 00 35 27 67 18 21 60 ca 5f e5 |.......5'g.!`._.| +000003f0 33 00 27 83 87 7c df 42 12 ba 89 78 eb b8 fa 6e |3.'..|.B...x...n| +00000400 a1 65 f4 33 e8 e8 99 c6 4f 71 a0 ff b8 08 5b 02 |.e.3....Oq....[.| +00000410 1b 82 b6 58 e2 d7 d7 e5 72 1b 81 a4 93 |...X....r....| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 02 11 5e 13 11 0e f1 |...........^....| +00000010 96 10 11 c9 e7 a3 dc 79 80 fc 2a a9 60 55 07 b2 |.......y..*.`U..| +00000020 59 b3 69 97 2f ef 14 58 9b 64 a3 19 71 fa ce 8b |Y.i./..X.d..q...| +00000030 86 34 92 82 f4 cd 17 c1 45 2f 69 e9 e7 84 1d 4c |.4......E/i....L| +00000040 d0 62 6e 30 40 e6 a7 a6 f1 c6 b2 ce 88 ae 5a 05 |.bn0@.........Z.| +00000050 06 d2 ab 40 6b d4 17 fa 89 69 41 46 bf 96 23 37 |...@k....iAF..#7| +00000060 07 04 5d 62 32 98 da db a4 67 c8 7a 81 55 00 1d |..]b2....g.z.U..| +00000070 e2 ce c3 44 2a 24 23 c0 ef aa 8f c6 14 75 fb ad |...D*$#......u..| +00000080 bb 4a b5 7d c3 dd 69 29 9b 05 60 80 1c 66 c4 4a |.J.}..i)..`..f.J| +00000090 cc 63 fb 8a 8a cf 44 05 80 7f ed 0b c1 e0 8f 14 |.c....D.........| +000000a0 9b 4b f8 39 f8 03 c2 c5 97 62 61 f5 7b 38 ac 07 |.K.9.....ba.{8..| +000000b0 2b c5 c6 5a 10 fc 28 20 c7 56 2c c6 92 28 4c dd |+..Z..( .V,..(L.| +000000c0 a2 01 f5 90 e2 5b 9b a4 07 ef 28 27 c6 7c fb d1 |.....[....('.|..| +000000d0 84 2f d4 ab 5d dc 13 a3 49 9d ce c5 3f c6 a4 90 |./..]...I...?...| +000000e0 43 9c ba c8 96 c7 8b c3 a0 63 e9 99 4f d5 49 a2 |C........c..O.I.| +000000f0 c2 a8 cd ff 5b e0 fc 29 85 80 bd 62 c1 22 c0 b1 |....[..)...b."..| +00000100 b8 1d f0 ed d3 17 22 13 5f 06 5d a1 bd 04 ae 34 |......"._.]....4| +00000110 d1 60 70 ad 60 10 fa da 90 82 87 09 cd 0c f7 aa |.`p.`...........| +00000120 1f 10 90 a5 cc b1 44 11 f6 62 92 ed 23 7b 7d 1e |......D..b..#{}.| +00000130 90 a1 9c 7b 5a e7 d1 f4 41 8f 8e 1f ba 4e cd 51 |...{Z...A....N.Q| +00000140 fe 38 f2 f5 3d 6a b3 c9 9b 36 6e 58 ad c3 5c d5 |.8..=j...6nX..\.| +00000150 54 63 e3 c6 c2 14 96 ee 46 03 cc 14 b9 09 73 0e |Tc......F.....s.| +00000160 1c ad 32 12 ba 85 a9 8b b4 fe cb e9 98 f0 f9 fa |..2.............| +00000170 5a 8d 88 79 54 e7 8e e7 c2 ac d9 2a f1 1d b5 39 |Z..yT......*...9| +00000180 ba 3e f0 af 08 3f f8 50 1d 8c ca 9e b2 47 c3 68 |.>...?.P.....G.h| +00000190 12 3b 60 38 b0 d8 da b6 15 ff 0e b4 76 28 0f e9 |.;`8........v(..| +000001a0 56 b3 41 b3 55 68 88 f7 66 41 5c 98 90 5e 10 ad |V.A.Uh..fA\..^..| +000001b0 20 82 a3 09 77 fb 45 3d 2c 0e 2c 5b 25 02 94 87 | ...w.E=,.,[%...| +000001c0 e5 ee 1c a1 05 e3 70 33 7e 9a 16 55 92 35 c2 91 |......p3~..U.5..| +000001d0 f8 0a 3d 2d f0 af ba e4 93 b3 98 4b 04 6d 6b b3 |..=-.......K.mk.| +000001e0 ac 76 c8 48 74 84 99 d5 58 95 f1 c7 f6 2c 05 d1 |.v.Ht...X....,..| +000001f0 7c 47 55 be 90 27 17 df 02 49 a6 b1 4b 92 23 9a ||GU..'...I..K.#.| +00000200 12 8a 3a 56 51 e6 4a 92 1c ae 19 de 57 b2 df b0 |..:VQ.J.....W...| +00000210 df 07 94 a3 e0 ea 81 e3 fc d0 35 2d 17 03 03 00 |..........5-....| +00000220 99 47 fd c2 4d a0 5f b9 dc 3b 3c ae 1e d7 c5 d6 |.G..M._..;<.....| +00000230 94 05 6a 61 72 6e b9 29 b7 d4 e2 9b 26 6c 86 94 |..jarn.)....&l..| +00000240 e0 7f 1d 66 1d 90 bb 09 fd e8 83 32 51 6c a1 96 |...f.......2Ql..| +00000250 28 c3 5f c0 69 d5 09 00 60 b8 05 de 45 88 51 b8 |(._.i...`...E.Q.| +00000260 f0 ed 67 57 97 8f b9 82 ed 4b 31 66 f2 7e e5 a4 |..gW.....K1f.~..| +00000270 92 2b cc 63 b5 98 ea 57 6c 44 51 f6 de ee 3b bf |.+.c...WlDQ...;.| +00000280 ac 25 c8 21 a9 74 f8 ca 61 69 93 95 83 c9 f3 da |.%.!.t..ai......| +00000290 17 e5 3d 82 05 c2 3f e8 80 92 e0 14 b5 b8 40 63 |..=...?.......@c| +000002a0 3a e7 cd 39 5e e5 1c a4 31 8a 74 97 1e 16 fb 0a |:..9^...1.t.....| +000002b0 2c 0d d5 fa aa b2 4b de 59 56 17 03 03 00 35 ab |,.....K.YV....5.| +000002c0 07 57 5c 79 b1 5f 13 6a 37 e7 a4 a1 97 0c 87 cb |.W\y._.j7.......| +000002d0 84 1e fd d7 15 ec 37 c4 18 83 41 c7 c1 26 cf 1b |......7...A..&..| +000002e0 43 5e 2a 06 1b be 66 42 84 46 f5 e0 d6 a7 83 cf |C^*...fB.F......| +000002f0 08 d9 30 a6 17 03 03 00 17 dc b8 10 ea ce 82 16 |..0.............| +00000300 ff ce bc 5f 46 5d d0 61 9b dd bf 64 54 8e 54 b1 |..._F].a...dT.T.| +>>> Flow 4 (server to client) +00000000 17 03 03 02 da ad f0 96 2c a1 08 c0 c7 aa 43 b8 |........,.....C.| +00000010 23 65 61 d2 4b 56 54 a2 0c d4 31 12 5d 19 ac 38 |#ea.KVT...1.]..8| +00000020 b3 bd 72 1f e4 40 39 5d a5 95 85 93 ff 53 63 0a |..r..@9].....Sc.| +00000030 df 7f 79 39 07 75 c2 18 ef 4e 20 6b d6 81 6c 91 |..y9.u...N k..l.| +00000040 63 9a d8 45 99 2c ed e7 19 8e 4b 2d 06 c9 60 7e |c..E.,....K-..`~| +00000050 3b e7 68 bd 35 13 bb be 57 4a 43 01 74 3c 92 b6 |;.h.5...WJC.t<..| +00000060 f9 c3 6d 0f 26 80 3f 3d 5b 86 10 27 d8 51 71 d1 |..m.&.?=[..'.Qq.| +00000070 ad 5d d4 3d 8c 66 e7 db 9d 6f fe e2 f2 4e 56 7a |.].=.f...o...NVz| +00000080 76 02 94 d9 95 0f 64 8e 6b 89 b0 8c 82 c3 eb 22 |v.....d.k......"| +00000090 1d 15 64 5a e7 3c bd 3d 64 0b 44 3c 6e 13 79 27 |..dZ.<.=d.D.b./?...`.5| +000000c0 f6 8e 2e 7d ec 17 32 f6 f4 99 b5 8c 6d b2 e6 ba |...}..2.....m...| +000000d0 29 1a 85 c0 1c ea 8c 2d f2 b3 14 53 13 5d e9 2d |)......-...S.].-| +000000e0 db d5 7f 41 89 86 a6 88 e5 56 82 ba 6d 67 6a 33 |...A.....V..mgj3| +000000f0 02 f6 b9 6c 5b 89 02 4e 5e df d1 c4 46 61 69 08 |...l[..N^...Fai.| +00000100 18 91 6b 98 d1 97 bd 6c d4 71 d9 91 c6 9c d6 58 |..k....l.q.....X| +00000110 51 4a 34 72 34 be 59 50 4d 49 0c 60 d2 c1 bd d6 |QJ4r4.YPMI.`....| +00000120 54 5d 8e 3f db ec b1 9a f8 84 ce 69 ef 58 f0 63 |T].?.......i.X.c| +00000130 17 2b fe 30 df 57 e4 c1 42 1f 1f 49 8d a1 9d d7 |.+.0.W..B..I....| +00000140 82 b9 c8 36 59 4e f9 31 2b 3e 49 17 5d ac 30 9e |...6YN.1+>I.].0.| +00000150 1d a4 04 84 1b 88 51 47 4e a1 b6 5a 12 72 8f 1a |......QGN..Z.r..| +00000160 22 96 1c 7c a7 11 33 4c 40 33 03 cd ba fb 2d 4e |"..|..3L@3....-N| +00000170 8d d4 20 bd c8 d8 32 ab 81 fd c1 a5 a6 9e bf 4a |.. ...2........J| +00000180 26 69 be d8 62 b2 12 a8 4a 1b 44 42 20 1e fc 7d |&i..b...J.DB ..}| +00000190 de f1 3f f6 0e cb 3d 2a 2e d7 91 9a 74 d7 c9 24 |..?...=*....t..$| +000001a0 35 9e c9 78 d4 b0 d0 9d 43 60 45 e3 9b 91 5a a5 |5..x....C`E...Z.| +000001b0 47 cc 4e 1f 4b e6 ce 9a b3 ae 3f bd ca 2b 79 cd |G.N.K.....?..+y.| +000001c0 e1 e7 10 bb 80 fc f2 93 7c d5 b5 5b e0 51 88 94 |........|..[.Q..| +000001d0 53 4f 99 a6 f0 29 fa 11 56 3b 01 12 6b b1 24 5a |SO...)..V;..k.$Z| +000001e0 08 19 1f ed f1 c6 3a 09 ad bf d6 e3 37 17 1a e0 |......:.....7...| +000001f0 00 8a de 74 ad 3e 2f 99 e7 f4 3f fe 6d 9a a4 5a |...t.>/...?.m..Z| +00000200 de 5b 8a 17 86 60 0f 91 43 77 b7 34 9a f1 fb d0 |.[...`..Cw.4....| +00000210 34 df 0d 08 47 5a 47 f1 e4 43 86 d8 1e dd c0 7e |4...GZG..C.....~| +00000220 63 13 8f f3 01 a1 e1 70 d7 1b 9a 2b 82 3d c4 87 |c......p...+.=..| +00000230 af 6c 9d d2 bb f2 cd da 8e c6 e3 5b 19 ae 31 75 |.l.........[..1u| +00000240 1c b5 01 51 c9 38 1c 29 ca f5 8a a5 51 14 a4 e4 |...Q.8.)....Q...| +00000250 fe 46 86 47 c4 a1 7c 56 a0 e2 6e 50 f5 7a 15 1a |.F.G..|V..nP.z..| +00000260 6d 9f 6c 43 24 ce 9e 1e b2 8a f9 da 2e d3 6a 81 |m.lC$.........j.| +00000270 5d 14 97 75 44 f1 ba 81 55 0a 38 64 1f 40 7b 4a |]..uD...U.8d.@{J| +00000280 23 47 13 7e cd f7 6d 67 45 7f c7 4d 42 59 ad 42 |#G.~..mgE..MBY.B| +00000290 e1 67 53 25 dc e1 8e 56 f4 cc 14 00 9b d0 e2 d5 |.gS%...V........| +000002a0 b9 bf fa de 74 39 60 4f 24 7c 51 5e a0 34 05 53 |....t9`O$|Q^.4.S| +000002b0 23 01 b9 50 f4 f7 39 c2 f3 e1 62 5d d3 2a 43 98 |#..P..9...b].*C.| +000002c0 32 3e 3d 40 39 32 8b 6f db 77 53 ec ac 1e a3 95 |2>=@92.o.wS.....| +000002d0 24 b5 88 f8 62 e9 f7 a5 a3 20 8a be 02 8a 58 17 |$...b.... ....X.| +000002e0 03 03 02 da 51 d2 ea aa e4 a6 65 20 5c c2 70 aa |....Q.....e \.p.| +000002f0 75 4e c1 40 69 7b 49 d7 25 65 a0 97 1e 69 5d d6 |uN.@i{I.%e...i].| +00000300 99 cf 32 fc 4c 3d 6b 6d b9 e5 db 20 ed 00 00 93 |..2.L=km... ....| +00000310 6d 6a 24 8a 2f 85 49 5b 2d 18 a8 08 ac a2 b2 4f |mj$./.I[-......O| +00000320 c5 52 4a 2f 94 7b d5 c4 87 21 0f 60 c6 c9 fd 06 |.RJ/.{...!.`....| +00000330 69 66 b8 8d 43 83 be 4e 64 23 e9 d8 01 02 af af |if..C..Nd#......| +00000340 cf 1d 8b 7d e7 38 c8 31 30 f7 e8 9f 17 46 35 9b |...}.8.10....F5.| +00000350 72 ba 65 6d 18 bd 0e b7 5e ec 3f c5 f5 f1 c0 dd |r.em....^.?.....| +00000360 a1 3d 1c 41 ca eb 0a 7e f9 ab a1 2e 32 be 60 79 |.=.A...~....2.`y| +00000370 0f 28 1d fa 4a 62 ff 4f 0b ba 84 a1 63 fa 4a 07 |.(..Jb.O....c.J.| +00000380 02 d4 7c bf 42 90 1b 38 cc 21 71 1e 70 f7 65 a3 |..|.B..8.!q.p.e.| +00000390 b5 a7 1e 54 47 ec 7f 65 8e 8f 3c 95 dc ee af 21 |...TG..e..<....!| +000003a0 52 7a 05 a6 51 5e 1c aa cd 5d 45 2f 11 31 2f 9a |Rz..Q^...]E/.1/.| +000003b0 cb e6 92 cd 21 b4 18 c1 12 bc 3c 9e d7 3b 3f 42 |....!.....<..;?B| +000003c0 b6 df b4 4e cc af 22 9e c3 5d 2d 2c 75 b6 0b 00 |...N.."..]-,u...| +000003d0 3d cf bb 3b 2a 14 70 49 f2 e7 c2 07 be 16 ca 83 |=..;*.pI........| +000003e0 b1 27 da 78 8b f0 b6 ef 2a e0 8f cb 50 f5 89 47 |.'.x....*...P..G| +000003f0 30 f6 84 57 21 de 33 e7 fb 58 26 6a 3f 3b 72 2b |0..W!.3..X&j?;r+| +00000400 23 a4 09 41 41 a8 86 bd c9 af 78 53 23 94 e6 6c |#..AA.....xS#..l| +00000410 87 1c f8 e9 96 b0 0e 37 b8 13 96 12 05 60 97 9e |.......7.....`..| +00000420 c7 d2 a3 33 4b 68 49 d4 b7 99 3c 94 c9 57 72 de |...3KhI...<..Wr.| +00000430 5a ff 9d ef 55 7b b9 35 e3 e1 13 ad 53 90 6e cf |Z...U{.5....S.n.| +00000440 2f 82 79 dd 95 ce b3 4d 5b c9 b3 3e 5e af 75 85 |/.y....M[..>^.u.| +00000450 9b c0 58 96 40 f9 28 04 0b 28 64 c4 9d f4 fa 9c |..X.@.(..(d.....| +00000460 ea 59 1a c2 db 98 13 8d 5f 8b f5 32 2d ab a6 70 |.Y......_..2-..p| +00000470 36 0d c8 f6 98 84 88 e8 31 23 c5 18 29 59 1a 5a |6.......1#..)Y.Z| +00000480 14 d3 fc 69 47 95 6d f9 a8 51 12 4a 91 9c 19 23 |...iG.m..Q.J...#| +00000490 64 1b 96 5c a3 45 c4 ef 58 22 9c e2 08 46 fd 23 |d..\.E..X"...F.#| +000004a0 3d fd e6 a2 5e 42 90 ac a0 ad 8f 27 2f 8a e8 97 |=...^B.....'/...| +000004b0 fa b9 72 a1 28 9a 71 87 68 9a ae 73 bb bc b3 6f |..r.(.q.h..s...o| +000004c0 cb c4 48 0c a8 50 b5 2d ad f0 ca 1e d6 0f 7e 9a |..H..P.-......~.| +000004d0 56 ad 3e 98 43 f4 7e 56 57 7f 79 6e 9a 99 15 62 |V.>.C.~VW.yn...b| +000004e0 98 a6 78 2e ce 18 3c 21 a5 66 7b c5 3c a1 48 49 |..x...b..P....N.}:d.| +000005a0 71 5c 16 4a d0 66 bc 0b cc b6 ba bd 53 ff b7 f5 |q\.J.f......S...| +000005b0 05 c6 e1 31 0b 18 69 74 e5 63 95 7d 34 cd |...1..it.c.}4.| +>>> Flow 5 (client to server) +00000000 17 03 03 00 13 8e f7 f6 9b 86 95 cc d0 fb 93 36 |...............6| +00000010 11 5a a4 7d 85 aa c7 c6 |.Z.}....| diff --git a/testdata/Server-TLSv13-ClientAuthRequestedAndECDSAGiven b/testdata/Server-TLSv13-ClientAuthRequestedAndECDSAGiven new file mode 100644 index 0000000..c26e3c2 --- /dev/null +++ b/testdata/Server-TLSv13-ClientAuthRequestedAndECDSAGiven @@ -0,0 +1,184 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 e0 01 00 00 dc 03 03 93 c7 00 24 7c |..............$|| +00000010 18 0f ec 3a 26 e2 8c 6b 54 d4 34 c0 5d 1e 0d 37 |...:&..kT.4.]..7| +00000020 d1 cd 67 7a 48 59 0a 11 c3 bf d6 20 f3 37 6c 43 |..gzHY..... .7lC| +00000030 00 91 4d e9 b4 27 39 77 6e 75 4b bf 41 68 b8 0c |..M..'9wnuK.Ah..| +00000040 31 53 bc 48 55 a6 27 71 09 30 01 36 00 08 13 02 |1S.HU.'q.0.6....| +00000050 13 03 13 01 00 ff 01 00 00 8b 00 00 00 0e 00 0c |................| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| +00000080 00 19 00 18 00 16 00 00 00 17 00 00 00 0d 00 1e |................| +00000090 00 1c 04 03 05 03 06 03 08 07 08 08 08 09 08 0a |................| +000000a0 08 0b 08 04 08 05 08 06 04 01 05 01 06 01 00 2b |...............+| +000000b0 00 03 02 03 04 00 2d 00 02 01 01 00 33 00 26 00 |......-.....3.&.| +000000c0 24 00 1d 00 20 95 28 2e 63 cf 81 4b cd 4b 64 73 |$... .(.c..K.Kds| +000000d0 19 19 82 2d b7 f5 54 08 4d f4 72 70 21 3e a0 d6 |...-..T.M.rp!>..| +000000e0 7d 96 92 ac 63 |}...c| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 f3 37 6c 43 |........... .7lC| +00000030 00 91 4d e9 b4 27 39 77 6e 75 4b bf 41 68 b8 0c |..M..'9wnuK.Ah..| +00000040 31 53 bc 48 55 a6 27 71 09 30 01 36 13 02 00 00 |1S.HU.'q.0.6....| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 db 3b a3 78 48 c0 |...........;.xH.| +00000090 4e d1 ad 99 4d 73 e3 84 27 ff 42 de f6 c9 c9 b5 |N...Ms..'.B.....| +000000a0 49 17 03 03 00 3c 77 b8 16 13 1d cb 0a 6b 3e 41 |I....A| +000000b0 24 8a 03 b9 88 48 6f b3 d7 61 66 f4 33 67 86 8c |$....Ho..af.3g..| +000000c0 2f ad 4f f1 40 ad 63 10 35 ee f7 15 d2 0e e9 31 |/.O.@.c.5......1| +000000d0 b8 d9 b2 32 28 05 1e 73 3d bd a2 12 26 32 5a bc |...2(..s=...&2Z.| +000000e0 0c ea 17 03 03 02 6d e0 8f 50 e0 54 85 74 f0 b8 |......m..P.T.t..| +000000f0 31 25 df 87 fd 8b 5b 52 d4 fe b0 8e 61 44 b5 28 |1%....[R....aD.(| +00000100 1d 0e 8a 07 56 bb 77 5d 60 d8 c1 a0 95 ff 5c e9 |....V.w]`.....\.| +00000110 a2 ca 17 20 3d b1 b1 8e 76 31 2f 0d c9 e3 ee b5 |... =...v1/.....| +00000120 e6 fe fd dc 2e b9 e5 44 77 d3 fe 7a d5 9f 0e ab |.......Dw..z....| +00000130 75 b0 ff 2a 7b aa 64 75 62 ec 15 bd 2e 0c a4 54 |u..*{.dub......T| +00000140 e6 12 cd 31 13 83 6c 98 e8 00 b3 b6 c6 7b cb 87 |...1..l......{..| +00000150 82 3a f9 15 50 6b 4d c2 5b 6a 91 42 ce e8 25 14 |.:..PkM.[j.B..%.| +00000160 0d 5d 17 04 c3 cf d6 23 ad 9e 0e 3b 1c aa 2e 88 |.].....#...;....| +00000170 02 dc 63 12 3e 33 29 3d f8 b2 ec f2 15 d6 13 d3 |..c.>3)=........| +00000180 c9 88 a1 ad a9 27 fd 7c c4 5e f9 73 eb 45 a7 5f |.....'.|.^.s.E._| +00000190 a1 4f be d7 0f e9 d0 da 30 67 3b 9d 63 2d ef b4 |.O......0g;.c-..| +000001a0 89 3e de 19 20 af 62 52 7c e7 80 96 93 6e ca bf |.>.. .bR|....n..| +000001b0 c3 48 e2 c5 23 8d cf b0 a2 e5 dd a8 51 21 6f 99 |.H..#.......Q!o.| +000001c0 24 03 c8 d8 e0 dd e6 d4 ef 7f 74 17 85 14 ca 81 |$.........t.....| +000001d0 91 4e c6 5d 80 86 63 6f 97 55 ab 80 1c ab 63 c8 |.N.]..co.U....c.| +000001e0 01 ca df 11 28 68 b8 75 06 22 33 ba 9c b8 14 a1 |....(h.u."3.....| +000001f0 7a 1d cb 24 7c 90 44 b1 ed 33 e7 9d 80 6d ce b7 |z..$|.D..3...m..| +00000200 0a 74 bd 29 53 a2 bb 06 67 4d 4d 53 cc 1c 66 76 |.t.)S...gMMS..fv| +00000210 a9 4f 86 be 7a da ba 35 23 b6 6f c4 7d 02 2a 9f |.O..z..5#.o.}.*.| +00000220 2d 81 3d e2 16 3d 4b 78 ba cb f3 91 c7 39 9c 3d |-.=..=Kx.....9.=| +00000230 2e 4d a0 f6 6d 3d ba 15 bd cf 60 3b 8a 4a 18 9f |.M..m=....`;.J..| +00000240 87 e4 ee 1a ac f2 b2 bc a6 9f af b2 9e ca be 60 |...............`| +00000250 3f 36 54 84 d0 cd 31 d8 60 3b 4e 7e 6c 80 d5 25 |?6T...1.`;N~l..%| +00000260 1c 1b 1e fb 0f e7 ad b0 30 0d 13 be 27 f8 c3 6a |........0...'..j| +00000270 93 d3 f0 55 cb e9 73 6b e9 72 aa bb ea 24 05 f7 |...U..sk.r...$..| +00000280 c7 51 d5 66 77 32 53 82 fb 6c 2e fc fb 83 2d f4 |.Q.fw2S..l....-.| +00000290 5d a1 cc 75 fa d1 ee c2 5b 5d 48 e5 6d 69 87 54 |]..u....[]H.mi.T| +000002a0 1c b1 03 bd 06 66 7b 6d b7 46 33 56 b9 1c 62 a1 |.....f{m.F3V..b.| +000002b0 fd d3 61 50 42 ef 66 f8 97 26 5b 17 82 52 89 09 |..aPB.f..&[..R..| +000002c0 48 b8 68 50 63 d6 d4 83 7e 1f 5d 9d ad 69 2a 3c |H.hPc...~.]..i*<| +000002d0 d6 ab b7 33 1b 07 bc 44 92 d7 23 07 00 64 3f 64 |...3...D..#..d?d| +000002e0 98 e9 52 11 69 fc 21 04 65 1d f8 0d 06 dd 54 14 |..R.i.!.e.....T.| +000002f0 93 ae ca 30 06 db 4b 70 00 0b 3a cb 11 19 1a c6 |...0..Kp..:.....| +00000300 a7 f0 1c 9f 31 f9 30 ec 5f 1c 4e 74 d0 1c 9b 49 |....1.0._.Nt...I| +00000310 ab 42 c3 72 7d 11 e0 07 3d 3f 51 7a 99 07 32 0f |.B.r}...=?Qz..2.| +00000320 d6 b7 b7 ac 83 2e 3b c4 ce 81 1d 1a e0 e8 ba d7 |......;.........| +00000330 12 d1 14 a9 62 c3 58 30 0d ac 30 6c 7d 06 be 96 |....b.X0..0l}...| +00000340 e1 e4 14 6b 56 16 17 84 52 32 4c aa ec 83 1d 6c |...kV...R2L....l| +00000350 d1 b0 1f 63 17 03 03 00 99 c9 7d 79 9c 0f 73 20 |...c......}y..s | +00000360 0b 93 09 a6 6e 46 fd 56 12 08 0a 8c 1b 9c b0 9f |....nF.V........| +00000370 0a d4 d9 33 e9 22 0e 90 d4 7c b3 4d 5a 95 e9 90 |...3."...|.MZ...| +00000380 14 69 e5 d2 ad 2e b4 f1 a0 98 7d 24 fa b2 a4 2a |.i........}$...*| +00000390 f8 af 6a e3 9d a7 64 cc ea 51 73 d1 40 23 98 df |..j...d..Qs.@#..| +000003a0 9f cc 70 bb c5 3b 8b fc 95 6f ca 04 6d 7d cd 77 |..p..;...o..m}.w| +000003b0 ba b3 d3 e1 50 38 9c 16 60 d7 2b be 82 b3 a5 70 |....P8..`.+....p| +000003c0 76 c4 fb ba 7e 78 5c 97 a3 47 fe 23 80 b7 d4 f1 |v...~x\..G.#....| +000003d0 1f a6 dc 08 68 b4 d7 bb 09 6f 45 37 e5 1d 2b 2f |....h....oE7..+/| +000003e0 e1 57 84 4e 95 c1 bc b4 14 a4 45 04 69 ae 79 01 |.W.N......E.i.y.| +000003f0 07 42 17 03 03 00 45 00 a8 d1 03 76 56 7f b3 7e |.B....E....vV..~| +00000400 ec 82 94 7f b7 66 8a 01 c3 ab 50 13 20 f3 ea 3e |.....f....P. ..>| +00000410 27 56 e7 49 14 6a d0 2e f4 04 d1 54 c0 b1 4d 5e |'V.I.j.....T..M^| +00000420 2a a5 f1 89 55 f6 b0 ee e2 15 26 13 ec a4 4c ca |*...U.....&...L.| +00000430 ef 1a c7 ff 3e 5e f3 88 15 57 47 43 |....>^...WGC| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 02 1e cd 5f bd ff 6b |............_..k| +00000010 f7 c8 70 4b cc c8 84 44 c2 d0 7d ea 39 78 5a 6f |..pK...D..}.9xZo| +00000020 7a 72 0e 55 d0 76 7c 48 d8 cc 32 b4 08 bf f7 a8 |zr.U.v|H..2.....| +00000030 32 99 4a c5 83 79 4d 39 ea 0d 63 33 da 89 57 30 |2.J..yM9..c3..W0| +00000040 ab 31 95 90 f4 8d 4a 63 34 13 c6 4e d6 80 37 b8 |.1....Jc4..N..7.| +00000050 9b 28 8b 8f e5 b5 2a 16 e1 82 63 6f 1b ca 3a b4 |.(....*...co..:.| +00000060 b3 0b 36 56 09 d8 1e ab b4 fb aa 07 df 76 d3 b2 |..6V.........v..| +00000070 07 8d 56 38 f9 15 c2 1b c9 97 50 6a c4 23 6f 39 |..V8......Pj.#o9| +00000080 7b b3 69 b5 c2 6e 29 b4 14 17 9c 3d b7 c5 5f 12 |{.i..n)....=.._.| +00000090 25 73 89 22 99 1f 77 9d 9c a4 f6 fc 0a 8b af 24 |%s."..w........$| +000000a0 9b fc c1 b3 c3 cd 88 55 b5 81 8a 6e 73 83 cc da |.......U...ns...| +000000b0 fa 64 fe 3b 20 31 75 9a ce 35 ad a6 4b 3f 6f 49 |.d.; 1u..5..K?oI| +000000c0 e0 ae 21 23 ac c5 86 bb ec 91 13 37 76 d9 06 40 |..!#.......7v..@| +000000d0 ce 32 84 41 3e c0 5c 6d 93 0c 2f af ac af 5e ef |.2.A>.\m../...^.| +000000e0 ab 65 fc cc 00 a4 11 94 27 0e 11 ac 2a 00 dc c3 |.e......'...*...| +000000f0 dc fc 68 ff b3 32 bf 75 ff d0 35 e1 a3 44 68 6e |..h..2.u..5..Dhn| +00000100 21 39 ab 68 93 11 50 3b 30 1c 32 2a 03 9a 2a 9c |!9.h..P;0.2*..*.| +00000110 ff 2a bf 10 b3 ae 28 33 43 3c b2 04 a3 5d 49 21 |.*....(3C<...]I!| +00000120 db c4 4e 90 2f bd 20 03 d1 99 78 48 1a fd f2 a8 |..N./. ...xH....| +00000130 1b 06 1b 4e d1 5f 7c ed ba 04 3c ad 9c 20 4f 5e |...N._|...<.. O^| +00000140 37 5b 75 8e fc 40 2a 09 1c 78 f7 b2 15 ad a6 24 |7[u..@*..x.....$| +00000150 29 98 74 42 e2 80 28 80 0b 78 22 72 75 e3 33 75 |).tB..(..x"ru.3u| +00000160 a0 57 37 00 f1 69 bd ab 22 74 2d 6c 4a 1e 46 5b |.W7..i.."t-lJ.F[| +00000170 64 e0 47 d7 77 85 18 6b 10 67 6f 83 eb 98 e4 31 |d.G.w..k.go....1| +00000180 00 35 1d c3 1f d9 7a 86 27 27 3f 2d 0d cb 53 8f |.5....z.''?-..S.| +00000190 f4 52 e7 5a ba 02 67 44 a8 19 71 1a 7b f2 b1 80 |.R.Z..gD..q.{...| +000001a0 c9 82 d0 4b 63 0e d0 e0 bd a1 cc 5e 55 80 9a 51 |...Kc......^U..Q| +000001b0 21 bf 32 ce 8f 74 ea ed a6 cd ee b4 8f 3b 8f 6c |!.2..t.......;.l| +000001c0 41 5e 3d 1f 00 0b d4 a4 09 9a 8e c3 3f b1 b7 4c |A^=.........?..L| +000001d0 7b 6b 57 3f 94 3d ed d7 60 5c d4 04 b0 7b 62 06 |{kW?.=..`\...{b.| +000001e0 f7 06 f6 f0 f8 44 80 55 97 22 60 e6 dc f3 ec 7d |.....D.U."`....}| +000001f0 d2 22 e0 07 5d 52 0c 63 4d 77 f8 c5 16 06 67 5b |."..]R.cMw....g[| +00000200 9e 96 f4 1e fa 8e dd f8 42 85 7f 1e dc f9 dc b8 |........B.......| +00000210 b1 91 b0 c3 04 0d e1 dd c9 c4 0d fb b7 74 cb e5 |.............t..| +00000220 57 38 b7 82 8c d1 20 d1 0f 17 03 03 00 a4 79 ad |W8.... .......y.| +00000230 66 39 e1 10 c9 96 2c d3 7f 11 c6 7e c4 36 56 4c |f9....,....~.6VL| +00000240 70 c3 8f a4 da c2 a5 53 9b 28 25 82 69 d8 90 f0 |p......S.(%.i...| +00000250 79 52 29 cb e1 d4 48 49 dd 00 82 37 b1 ac 3b 1c |yR)...HI...7..;.| +00000260 2c b9 a7 c4 08 ac 08 fd 42 47 79 1f 64 82 57 2a |,.......BGy.d.W*| +00000270 63 c0 78 54 55 69 f2 05 9e 8d 81 6e d9 b5 31 08 |c.xTUi.....n..1.| +00000280 d3 0d 61 61 4f 70 a4 57 67 eb 9d 09 ca 51 01 ff |..aaOp.Wg....Q..| +00000290 53 d2 6d 9e 49 ce 40 1f c9 ab a2 52 e6 56 0c d3 |S.m.I.@....R.V..| +000002a0 63 b4 44 d7 fe 97 1d d2 55 8d 13 df 23 71 68 b6 |c.D.....U...#qh.| +000002b0 79 26 a8 a6 cd ca a1 19 6b 21 e8 b6 30 34 b6 6f |y&......k!..04.o| +000002c0 66 2d ab 1d 16 7f c6 b1 53 c9 2a 40 87 9d 7d 48 |f-......S.*@..}H| +000002d0 c9 6a 17 03 03 00 45 43 bf 6e f3 e2 76 56 69 2f |.j....EC.n..vVi/| +000002e0 9b c5 d2 46 4f 24 d2 e2 61 13 2b ad b6 3e d8 89 |...FO$..a.+..>..| +000002f0 1b 31 7c ec 14 44 39 7c b4 08 44 9d 31 d9 a1 5f |.1|..D9|..D.1.._| +00000300 2e 8f a9 8e 5b 5a 91 e2 f5 61 f5 63 be 5c 14 e3 |....[Z...a.c.\..| +00000310 70 8e 2e 9e fd 6c 54 85 ba ef 85 b7 |p....lT.....| +>>> Flow 4 (server to client) +00000000 17 03 03 02 a8 02 f0 98 42 d8 ab 9d 92 8c 11 ac |........B.......| +00000010 16 4d b1 c0 2e 3b 0f ac 53 f8 aa 15 01 36 03 fd |.M...;..S....6..| +00000020 1b e1 0f 87 62 5f d4 4e fc 0d 88 13 30 4f 5e fc |....b_.N....0O^.| +00000030 46 1b 3a 22 cc ff a9 5e 29 24 15 67 08 1b 28 18 |F.:"...^)$.g..(.| +00000040 d3 70 46 fa 92 89 de 69 62 f1 c7 47 d1 24 a2 98 |.pF....ib..G.$..| +00000050 8d 78 d0 f2 cc 3f fb 4c 3c 5e 03 0c 4e a8 a3 b7 |.x...?.L<^..N...| +00000060 c5 69 49 19 43 da 07 b4 be 6e 7d cd 12 c3 bf d7 |.iI.C....n}.....| +00000070 74 9a 3e 30 cd 9d 8e a4 27 bb 66 d1 95 50 ad f7 |t.>0....'.f..P..| +00000080 91 52 e4 be d5 61 fc 28 fb 33 02 bc f4 fb fb 7f |.R...a.(.3......| +00000090 0c 9a dc e4 63 86 c6 f8 f6 bc 67 60 c6 ac b2 52 |....c.....g`...R| +000000a0 65 3e 0d f7 15 e0 d4 f2 7b 36 ed e2 2e c3 ab 44 |e>......{6.....D| +000000b0 e4 06 d1 09 e6 c6 9e c3 dd df e9 3b 9c 22 cb 48 |...........;.".H| +000000c0 1a 18 22 da 8c e7 11 e0 36 0b a9 73 be d8 22 db |..".....6..s..".| +000000d0 8b 95 f5 3e cc c0 11 6f db 40 57 4c 07 14 2b fc |...>...o.@WL..+.| +000000e0 9e 6b f8 07 96 9f 3d 8e cc d2 c3 b5 a8 e1 64 33 |.k....=.......d3| +000000f0 b6 ab 17 4b aa b2 e0 b6 fe b6 49 69 7d 0b 8e cd |...K......Ii}...| +00000100 19 a3 d8 5e 22 5a 02 64 c2 68 ec 69 55 2d fd aa |...^"Z.d.h.iU-..| +00000110 1f f6 35 bf b2 14 a5 f9 a0 49 59 a4 84 ff 41 a5 |..5......IY...A.| +00000120 fb a1 e4 97 72 88 00 98 dd 5a 6f 7b 00 a7 59 fa |....r....Zo{..Y.| +00000130 83 73 e7 ca 8f dd 31 e8 ca 02 13 c9 fa 2b 8c 5e |.s....1......+.^| +00000140 b5 7b 85 da 2b 1a 75 da e3 db b7 34 58 c4 da 15 |.{..+.u....4X...| +00000150 b3 3a f9 a7 b3 7f 15 d2 01 b2 26 b4 c1 fe 83 af |.:........&.....| +00000160 d6 f7 8b fb 92 3d 32 ae 4a 1b a2 50 60 70 a6 34 |.....=2.J..P`p.4| +00000170 98 3f 2d bf 27 2e d3 a0 91 d9 c8 f9 a9 27 f2 23 |.?-.'........'.#| +00000180 7c 3c 17 96 19 99 6f 09 a7 bd da 2d 94 9e f9 6b ||<....o....-...k| +00000190 bb 93 fd bb b1 c0 89 6f b4 8f 90 86 e1 85 59 98 |.......o......Y.| +000001a0 ba 98 7c 6c 26 be 98 30 5f cf 46 bf e9 c6 a4 bd |..|l&..0_.F.....| +000001b0 08 14 2a 5c 05 d8 c2 0e ba 46 af 23 e8 f0 71 77 |..*\.....F.#..qw| +000001c0 78 78 ec c2 af 4a 63 93 2e b1 ed 56 3d b7 7c a5 |xx...Jc....V=.|.| +000001d0 63 99 2f df 15 d3 ce 79 0e 49 d0 16 ac 3e f3 fa |c./....y.I...>..| +000001e0 cd e7 0e e5 ee 4a cd 49 20 f6 9f fa d1 df cb cc |.....J.I .......| +000001f0 1b 73 83 12 47 52 69 3c 93 bb 1f 65 64 1e 79 15 |.s..GRi<...ed.y.| +00000200 72 85 e8 fd fa d6 be d5 61 44 35 bb 75 a7 17 1f |r.......aD5.u...| +00000210 dd 7b 60 17 78 1f 11 72 7f ac e7 52 1e 94 13 35 |.{`.x..r...R...5| +00000220 ab 97 69 17 09 6c 4b 46 cd 34 2d 7e 55 8a 16 d3 |..i..lKF.4-~U...| +00000230 c2 59 e8 d8 67 9b 29 af bc f1 31 39 d9 ff 06 d5 |.Y..g.)...19....| +00000240 80 b8 8d 50 80 5f 2c 0a 30 84 28 32 3d 4c 45 f2 |...P._,.0.(2=LE.| +00000250 2f 8b b5 d9 3a 7a 47 05 55 22 7a a4 61 c8 8c d1 |/...:zG.U"z.a...| +00000260 1c 1b 78 e0 87 37 5e 36 88 5c 32 ca 7a d3 76 63 |..x..7^6.\2.z.vc| +00000270 ee 94 83 9c 9e 5e 9b 01 42 03 e1 e5 0f a8 43 53 |.....^..B.....CS| +00000280 cd 3d 76 01 88 ba bf 78 b8 d7 b2 e9 8f 69 d1 35 |.=v....x.....i.5| +00000290 88 44 f1 ef 20 cd 42 c6 99 99 0c a5 25 ec dc 88 |.D.. .B.....%...| +000002a0 1e b5 28 dd e4 a1 12 20 03 fa ce 38 8a 17 03 03 |..(.... ...8....| +000002b0 00 1e bc 9a e0 0d 88 a2 71 15 c3 0d 54 d3 13 d8 |........q...T...| +000002c0 d9 96 ad 95 ee 47 2c c6 ba e9 f9 50 b1 8e 1e 0b |.....G,....P....| +000002d0 17 03 03 00 13 d2 56 e3 48 c0 fa 0f 9a 95 22 e9 |......V.H.....".| +000002e0 51 c1 98 64 b4 03 09 5a |Q..d...Z| diff --git a/testdata/Server-TLSv13-ClientAuthRequestedAndGiven b/testdata/Server-TLSv13-ClientAuthRequestedAndGiven new file mode 100644 index 0000000..cbd8c75 --- /dev/null +++ b/testdata/Server-TLSv13-ClientAuthRequestedAndGiven @@ -0,0 +1,180 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 c6 01 00 00 c2 03 03 9f dd 5a e8 c2 |.............Z..| +00000010 fa 2f 38 45 33 8d f2 ab 67 03 f6 cc ba 9d 8b 33 |./8E3...g......3| +00000020 69 c8 c6 50 f4 2e 1b 2b dc 2b 2d 20 ab eb f9 db |i..P...+.+- ....| +00000030 71 a7 b4 eb 9a e0 17 04 2e a8 d2 c7 65 51 71 a3 |q...........eQq.| +00000040 9a a3 5a 64 38 45 49 dc e9 e9 e2 96 00 08 13 02 |..Zd8EI.........| +00000050 13 03 13 01 00 ff 01 00 00 71 00 00 00 0e 00 0c |.........q......| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| +00000080 00 19 00 18 00 16 00 00 00 17 00 00 00 0d 00 04 |................| +00000090 00 02 08 04 00 2b 00 03 02 03 04 00 2d 00 02 01 |.....+......-...| +000000a0 01 00 33 00 26 00 24 00 1d 00 20 08 a9 6d 37 e7 |..3.&.$... ..m7.| +000000b0 3b e8 ab 4c d3 81 41 6e ac 3d dc 45 94 72 9c 9d |;..L..An.=.E.r..| +000000c0 43 32 f7 d0 de 5a e0 6b b3 11 23 |C2...Z.k..#| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 ab eb f9 db |........... ....| +00000030 71 a7 b4 eb 9a e0 17 04 2e a8 d2 c7 65 51 71 a3 |q...........eQq.| +00000040 9a a3 5a 64 38 45 49 dc e9 e9 e2 96 13 02 00 00 |..Zd8EI.........| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 0f f6 f3 45 0e 04 |.............E..| +00000090 df 70 96 7c 7a a6 a7 31 7a 7f b8 43 53 ab 02 32 |.p.|z..1z..CS..2| +000000a0 23 17 03 03 00 3c bc 1f 27 c5 81 3d d3 25 22 34 |#....<..'..=.%"4| +000000b0 af e3 a4 6f 22 14 e0 e8 2b 9e 91 6b b5 a5 19 b7 |...o"...+..k....| +000000c0 32 5d a9 2a 7a ff 30 71 7b a8 32 01 00 b8 52 cc |2].*z.0q{.2...R.| +000000d0 5e 46 ab 4d c0 10 a6 8d 0d 04 8a 26 5c d1 3a 62 |^F.M.......&\.:b| +000000e0 67 07 17 03 03 02 6d 54 af e4 20 90 dd 21 b4 04 |g.....mT.. ..!..| +000000f0 46 0c 01 7f 5c c4 4b 08 87 4f f0 fd 9f 64 34 55 |F...\.K..O...d4U| +00000100 3e 30 81 52 3a c7 a6 3c 7a 0d 3e e8 b0 9c 38 df |>0.R:.....8.| +00000110 2a bf 29 e0 cb 13 04 0a d0 ab 65 fc d1 0c 6a ae |*.).......e...j.| +00000120 36 03 81 56 7b dd 1d 15 a8 81 de e2 85 25 5c e5 |6..V{........%\.| +00000130 a8 38 44 dd 04 d7 52 18 0e 27 8c a3 be c3 54 f7 |.8D...R..'....T.| +00000140 54 a2 ec df 6d cb ae cf dd 77 78 01 e0 0c 02 76 |T...m....wx....v| +00000150 65 e3 da da 5b 96 2c 57 fa c5 a2 6e 3f 9f 93 f5 |e...[.,W...n?...| +00000160 af b3 fa 27 d5 46 94 c1 8c 4e 0b d5 c7 f8 21 07 |...'.F...N....!.| +00000170 08 09 27 87 a6 19 5c b1 a8 d5 c1 66 3d 0a d9 bb |..'...\....f=...| +00000180 80 77 2b 24 cf 2e 7a 51 84 37 e1 e7 05 cb e9 90 |.w+$..zQ.7......| +00000190 47 0e 5f 32 25 60 81 2c 93 43 a5 1a f5 b0 84 13 |G._2%`.,.C......| +000001a0 2f e8 37 d6 b6 4b bc 4a ad 23 41 77 b0 b7 7e a7 |/.7..K.J.#Aw..~.| +000001b0 74 db d2 13 e5 12 ab 43 51 68 da 9a d6 68 f2 82 |t......CQh...h..| +000001c0 aa 73 49 6e e4 2e 24 41 e3 5c 22 c4 88 8b 03 8b |.sIn..$A.\".....| +000001d0 2d 14 b9 55 12 60 50 a2 d3 8a a9 8f 7c c5 d9 f6 |-..U.`P.....|...| +000001e0 f2 23 93 a2 a6 55 eb 27 3a c5 f5 f8 82 0e 23 43 |.#...U.':.....#C| +000001f0 bd 3a 2d b5 e3 e3 8f d3 a6 eb 30 56 a4 7f 1c 08 |.:-.......0V....| +00000200 72 85 77 22 36 f5 7a b8 d4 b8 9c e2 1f 47 f6 81 |r.w"6.z......G..| +00000210 d6 c7 76 4e 97 51 dd 1e 89 b5 b5 12 88 f9 2d ca |..vN.Q........-.| +00000220 2e 85 c8 cc cc 95 0d 7e a8 7e c3 59 85 b2 ca 14 |.......~.~.Y....| +00000230 d7 cc 50 3b 5e 03 52 77 d3 50 8d e4 50 76 e2 36 |..P;^.Rw.P..Pv.6| +00000240 82 df b2 69 a2 cf ee 1b fb 1d 5c a1 83 8b c9 97 |...i......\.....| +00000250 23 a6 7f 85 87 df d5 59 fc d5 ad 86 c7 2c 9a 92 |#......Y.....,..| +00000260 b6 1d d1 ee 92 83 92 f9 d8 9e dd e7 d7 05 c5 c8 |................| +00000270 a5 c2 10 b3 2f 99 4a 4b fb 8a 5b c7 26 06 18 7a |..../.JK..[.&..z| +00000280 1b d4 c1 f4 d4 2c cf a1 5e d2 f0 90 3d a4 2c b7 |.....,..^...=.,.| +00000290 d4 0a 7b e4 7f 16 29 1a ad d1 45 d5 b8 9b 07 4a |..{...)...E....J| +000002a0 ab 61 32 bb 27 ac 61 c6 74 56 ec fd 93 01 a0 53 |.a2.'.a.tV.....S| +000002b0 6b 0c 8b 3f 55 3d 53 fd cf f6 da d7 5a c6 8e 8f |k..?U=S.....Z...| +000002c0 c9 e1 fd 79 6c 85 22 08 2a a4 bc 82 ea f6 53 d6 |...yl.".*.....S.| +000002d0 80 02 a7 f5 49 0c 1f c3 4c 44 f2 7f 56 3a 5f 65 |....I...LD..V:_e| +000002e0 d1 4e 62 17 61 6b f9 75 94 e7 f9 5b da 8f 65 dd |.Nb.ak.u...[..e.| +000002f0 d0 98 99 72 35 b7 0e 79 3c b5 94 2b a2 19 94 e3 |...r5..y<..+....| +00000300 7b 31 cb 74 e4 41 c6 c3 92 0b 7a 2e 48 b5 50 2b |{1.t.A....z.H.P+| +00000310 23 b6 c1 de 6c 5e 57 c9 36 e8 a1 07 4d d1 73 a8 |#...l^W.6...M.s.| +00000320 c0 7b 67 1f fb 70 01 da 86 fb e0 73 ad 79 8c 9f |.{g..p.....s.y..| +00000330 7f 28 61 e9 2c d5 f0 d5 85 e4 e9 db 87 26 f9 dc |.(a.,........&..| +00000340 af e1 ed 4d 79 f0 5d 14 10 08 70 70 66 6d 5b 32 |...My.]...ppfm[2| +00000350 22 09 7f 78 17 03 03 00 99 16 32 bb fc 9a 38 88 |"..x......2...8.| +00000360 17 0f d1 03 15 b2 70 f3 ee d7 86 ec 67 f0 f6 aa |......p.....g...| +00000370 df 63 cf 4e 4c e3 f5 7f 67 3f ef 80 b0 68 b3 d2 |.c.NL...g?...h..| +00000380 a6 91 59 1a dd 9c 9b 26 7a 4e f1 e4 cb df cf 9f |..Y....&zN......| +00000390 51 26 76 88 02 73 e7 99 15 58 06 af cb 14 52 1e |Q&v..s...X....R.| +000003a0 18 4f 81 f9 62 2b 4b bd dc e6 3b fc 5f ff e6 4b |.O..b+K...;._..K| +000003b0 b7 4b 47 39 70 69 69 89 2b ca 9a 5e 32 91 7d e9 |.KG9pii.+..^2.}.| +000003c0 2f ae d4 b2 f8 13 89 57 4c 59 55 1e e5 41 66 34 |/......WLYU..Af4| +000003d0 b3 1e c3 e9 b0 79 7b 14 f8 c0 b5 16 c9 e3 7e ce |.....y{.......~.| +000003e0 3a 2c 38 85 ea ca 91 3f cf c0 fb 61 4d 24 b4 c5 |:,8....?...aM$..| +000003f0 b5 6a 17 03 03 00 45 3a 7a af a4 51 1c f9 07 39 |.j....E:z..Q...9| +00000400 73 d5 ca e2 6f ab 7c f3 ef b0 16 ea 17 0d 03 cb |s...o.|.........| +00000410 07 fb 40 1b ae 9a 5c e9 1f c1 aa c9 e5 f5 1b 4d |..@...\........M| +00000420 1b 4b 2c 0b 8d 86 24 06 9a 64 ba a5 fd e3 69 dd |.K,...$..d....i.| +00000430 53 e5 ac 9a 2f 37 fc fd e3 c1 b4 b7 |S.../7......| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 02 11 1c af 9f 29 61 |..............)a| +00000010 e3 1f bf c8 44 89 cf 28 10 cb e5 63 05 0c fa cf |....D..(...c....| +00000020 38 79 7c 63 5d 1d 6b 40 68 ea 54 41 3d 3a 39 83 |8y|c].k@h.TA=:9.| +00000030 8b e2 29 e9 f6 4d 4e e4 14 33 36 78 b2 bb 01 e1 |..)..MN..36x....| +00000040 84 c4 59 30 01 65 9b 6b b1 35 2d 3e 02 fa 9b db |..Y0.e.k.5->....| +00000050 51 d1 25 bc 4d fa a1 e8 24 e9 7e cc 97 b0 f2 40 |Q.%.M...$.~....@| +00000060 92 0f b0 1c 0a 0a 24 3e 77 d5 4f 0f c0 54 e7 f5 |......$>w.O..T..| +00000070 56 87 ff 46 0a 12 7f 49 18 76 40 3d ce 64 53 a8 |V..F...I.v@=.dS.| +00000080 f8 1a 95 70 dc 8f 1c b0 2d ba 55 42 89 1d fa 9a |...p....-.UB....| +00000090 cf d5 ba f0 fb f8 fe ad c8 5f e0 47 28 ce 48 2f |........._.G(.H/| +000000a0 a3 6c 7c 05 04 5f 3f 0a 95 ca 04 2f 6a b3 02 9c |.l|.._?..../j...| +000000b0 f3 23 d9 fd 13 75 45 5d a6 22 3f 72 6d 7e 35 60 |.#...uE]."?rm~5`| +000000c0 bd c1 b3 8d d4 42 4a b8 69 31 82 0c 83 94 84 76 |.....BJ.i1.....v| +000000d0 77 5e ca 19 8c d2 4f b1 94 71 2d 3d e9 34 3b 39 |w^....O..q-=.4;9| +000000e0 7f f0 b1 0b 8c e7 18 7e 37 89 c9 98 38 31 21 39 |.......~7...81!9| +000000f0 a4 52 b8 d0 0e 09 fb eb c1 e2 ef f1 37 4f d2 29 |.R..........7O.)| +00000100 13 4b 87 f9 88 19 71 bd d7 48 c9 8f 94 a3 51 4e |.K....q..H....QN| +00000110 65 4b 66 8a 48 9b 33 bf 14 70 24 24 e3 1c b3 6c |eKf.H.3..p$$...l| +00000120 0d f3 b1 74 5a bd a6 a4 f3 e9 1f 95 81 88 6d cb |...tZ.........m.| +00000130 19 44 67 b6 ee f7 65 af bf ec 0a 55 13 a6 65 41 |.Dg...e....U..eA| +00000140 49 4f be 8f c5 f2 a7 7c 27 ac ad fa 02 a5 75 54 |IO.....|'.....uT| +00000150 53 a5 a9 b5 7f b9 7d 70 2e 2d 48 27 fe 63 e6 ab |S.....}p.-H'.c..| +00000160 ea 13 47 0e 8f a5 8d 19 42 0f 8c 26 ba cd a2 98 |..G.....B..&....| +00000170 f5 e3 28 a7 a1 6d 56 95 0b 7f a1 c2 5e 77 56 81 |..(..mV.....^wV.| +00000180 5d c8 7f a8 00 4c a4 09 c1 ed 43 0e a2 65 8f 66 |]....L....C..e.f| +00000190 47 02 0f 0d 46 d5 42 d8 f5 e8 a7 f2 50 1b 09 02 |G...F.B.....P...| +000001a0 4d a9 39 78 6b fc 24 23 4b 2a 49 ef b7 60 70 78 |M.9xk.$#K*I..`px| +000001b0 f3 6f a0 2e 8f e3 20 b6 b9 76 ce 4d e4 56 e0 f3 |.o.... ..v.M.V..| +000001c0 b8 9f d2 02 f7 63 e9 80 ed 43 16 49 c9 3a c2 41 |.....c...C.I.:.A| +000001d0 8c f9 98 b7 3a 31 cb e6 78 3b ad ee 5f 52 c3 0a |....:1..x;.._R..| +000001e0 d7 dc 5f 67 89 6a 0a db 1f 7f 4b fc 08 0e a2 e1 |.._g.j....K.....| +000001f0 23 4b d6 a0 36 10 c7 e5 95 71 86 cb 1a 70 89 55 |#K..6....q...p.U| +00000200 2c 58 8a 55 f8 26 89 b1 40 1e 11 b0 b5 3e 0d eb |,X.U.&..@....>..| +00000210 33 cb 37 1c 80 6c b7 0e 84 96 a0 67 17 03 03 00 |3.7..l.....g....| +00000220 99 ae 4c b5 06 1e 69 cb 7d 28 42 7f 47 c8 1b bf |..L...i.}(B.G...| +00000230 8c 0a af 18 fc 5a 4d db 2c c5 b3 7d cc e5 28 be |.....ZM.,..}..(.| +00000240 ec 3a f7 e4 ec b1 11 01 67 f6 3b 0e a6 55 03 67 |.:......g.;..U.g| +00000250 76 8c 3f d3 0a cc 97 90 f2 51 d4 ee 58 3e 9c 78 |v.?......Q..X>.x| +00000260 e1 b4 57 4d 42 c1 fd e1 4c c5 6e 1f 5e 8e d9 fd |..WMB...L.n.^...| +00000270 f9 71 86 c9 63 7c 42 df 53 b0 99 06 3d 21 3e 06 |.q..c|B.S...=!>.| +00000280 d7 56 2f 90 b8 09 f5 77 8b 8a 4b 7e f5 78 05 73 |.V/....w..K~.x.s| +00000290 85 10 e7 b4 71 02 77 a0 2c cb db 76 53 0b b4 34 |....q.w.,..vS..4| +000002a0 56 37 7f 45 13 b4 72 f0 24 24 e4 47 1b ce b2 78 |V7.E..r.$$.G...x| +000002b0 44 82 73 f6 3a 77 68 5c ce 02 17 03 03 00 45 17 |D.s.:wh\......E.| +000002c0 d8 40 a5 44 fe 96 82 bc 27 1c 2f c6 c5 6e 0c 47 |.@.D....'./..n.G| +000002d0 52 9d 90 cd f6 43 03 d5 f0 1b 4a 11 38 56 f3 0b |R....C....J.8V..| +000002e0 73 cb 01 d3 69 33 1a 95 4b 5e 75 55 99 a9 a2 fe |s...i3..K^uU....| +000002f0 28 58 4e 54 92 5e 08 71 4b 40 42 a1 e6 94 ec c0 |(XNT.^.qK@B.....| +00000300 bc ac 82 8e |....| +>>> Flow 4 (server to client) +00000000 17 03 03 02 9b bf 6f 39 51 ff 9a ee ff 16 51 98 |......o9Q.....Q.| +00000010 49 e5 88 3d b3 ea b4 14 1d a7 8c ae 11 da 7b 08 |I..=..........{.| +00000020 99 ad 7d 23 e7 3a 78 8f b1 ca c1 2c b5 f7 84 bf |..}#.:x....,....| +00000030 0d 48 0b 1e 3f 6d 56 d7 7c 84 df f0 39 ee 77 ff |.H..?mV.|...9.w.| +00000040 af 7b f5 f2 6e 59 dc 4e 92 a8 b5 d0 64 03 5a 87 |.{..nY.N....d.Z.| +00000050 9d 4b 0c d7 00 0c e7 7e 2d 4a e0 da 63 10 cc a6 |.K.....~-J..c...| +00000060 a0 8e 8b ff 04 e2 49 75 01 4f b9 6a cd 5c 90 82 |......Iu.O.j.\..| +00000070 3c e3 67 d0 a0 93 b7 9b 4d f3 f8 b6 67 d3 fd f6 |<.g.....M...g...| +00000080 e3 d2 d0 dd 0f 6c 89 92 95 4f b6 74 56 5c f8 f5 |.....l...O.tV\..| +00000090 a1 33 3d e6 31 05 93 d8 09 d8 3c 0b e3 a7 9f b9 |.3=.1.....<.....| +000000a0 4b c7 0a de 1c 71 8a d6 63 44 b8 7d 11 6f 1e 8d |K....q..cD.}.o..| +000000b0 d8 7f 3f 9f 39 77 8b 2d 7a fd 01 e1 9e 45 58 b6 |..?.9w.-z....EX.| +000000c0 f8 eb f6 48 9b f2 fc 95 ba 75 56 42 5c 01 22 39 |...H.....uVB\."9| +000000d0 ab df c2 2d 32 9c de f6 fa 51 00 d0 77 a8 47 34 |...-2....Q..w.G4| +000000e0 b2 cf dd 9e d5 d6 c2 fd 0e db 98 71 6a 30 82 4e |...........qj0.N| +000000f0 4a 36 ce 6c c8 27 a0 92 77 ec 04 e8 ed 20 0d f4 |J6.l.'..w.... ..| +00000100 1e 9a 5c ae 71 db 06 6a ed ba 18 0e 65 94 dc f1 |..\.q..j....e...| +00000110 60 67 34 d4 6a 9d 4b ed 4b 80 69 2e 52 8b e2 ba |`g4.j.K.K.i.R...| +00000120 17 aa b7 75 0f 02 bf b9 95 f1 05 83 2c 2a e8 7d |...u........,*.}| +00000130 62 17 0e 89 c5 40 fb bb 98 14 98 f4 68 09 af 73 |b....@......h..s| +00000140 e2 f9 35 68 19 d7 56 66 dd 36 1f 8e 6e 1c 73 e4 |..5h..Vf.6..n.s.| +00000150 98 ef b0 f3 31 ae 58 de 91 56 a6 eb ee 4c f6 57 |....1.X..V...L.W| +00000160 5b 6c e7 f9 c3 51 c7 2c 78 40 c0 37 14 0d c4 12 |[l...Q.,x@.7....| +00000170 18 4c 96 24 69 19 53 de 07 a3 50 b4 00 fa cd 47 |.L.$i.S...P....G| +00000180 e4 a3 4f 3a 0c 44 82 b7 90 7d 55 6d 6f b1 68 04 |..O:.D...}Umo.h.| +00000190 02 3d 60 14 80 8b 4b 7d 13 55 5c 1b d2 73 f2 03 |.=`...K}.U\..s..| +000001a0 31 a1 12 f3 cc df 5f 2e 14 5d 15 7b 6c a8 66 10 |1....._..].{l.f.| +000001b0 3d ee 11 e0 bd 0f ff b6 d9 9d 2b b8 59 0c b5 f5 |=.........+.Y...| +000001c0 ec 78 80 bd 11 85 6b b7 67 01 25 5d 1f 14 26 4c |.x....k.g.%]..&L| +000001d0 60 48 0e 40 7f 2e a5 d9 09 25 e9 45 87 6e b3 a9 |`H.@.....%.E.n..| +000001e0 e2 19 5a 58 4c 3e 53 0e 1f d1 55 42 3f bc d0 26 |..ZXL>S...UB?..&| +000001f0 4e 9a dc 00 ac 2e 8b ac 4d e2 76 d0 80 80 09 87 |N.......M.v.....| +00000200 8b fe c6 9b c5 43 2d 56 b6 13 e2 eb 91 94 d9 0c |.....C-V........| +00000210 40 4f e6 96 af b2 c5 fb 75 9d 51 24 09 b0 8d 4f |@O......u.Q$...O| +00000220 68 c5 b1 7a 0e 22 03 84 21 14 b5 db f7 97 d4 60 |h..z."..!......`| +00000230 c9 ee 49 a0 9a 14 d4 bb 3c 54 91 61 ac 78 40 0f |..I......j.c9| +000002c0 64 e8 05 17 03 03 00 13 3b b0 06 df 04 01 7a 90 |d.......;.....z.| +000002d0 46 4a 2e 57 1c 66 26 f0 d8 4c ea |FJ.W.f&..L.| diff --git a/testdata/Server-TLSv13-ClientAuthRequestedNotGiven b/testdata/Server-TLSv13-ClientAuthRequestedNotGiven new file mode 100644 index 0000000..c9c8728 --- /dev/null +++ b/testdata/Server-TLSv13-ClientAuthRequestedNotGiven @@ -0,0 +1,109 @@ +>>> Flow 1 (client to server) +00000000 16 03 01 00 e0 01 00 00 dc 03 03 d7 9c 79 99 50 |.............y.P| +00000010 c9 4b 3a e0 a1 36 a8 fc 40 bb 51 a9 71 a6 ba 2f |.K:..6..@.Q.q../| +00000020 1b ba 13 f3 b6 8b 2b 77 f1 60 27 20 a6 a3 e8 5a |......+w.`' ...Z| +00000030 4b cb 7c 64 05 b4 77 3b af 66 4b e3 5a b3 cb 57 |K.|d..w;.fK.Z..W| +00000040 84 d3 fa 5d 7f 5a cd 94 62 79 31 4a 00 08 13 02 |...].Z..by1J....| +00000050 13 03 13 01 00 ff 01 00 00 8b 00 00 00 0e 00 0c |................| +00000060 00 00 09 31 32 37 2e 30 2e 30 2e 31 00 0b 00 04 |...127.0.0.1....| +00000070 03 00 01 02 00 0a 00 0c 00 0a 00 1d 00 17 00 1e |................| +00000080 00 19 00 18 00 16 00 00 00 17 00 00 00 0d 00 1e |................| +00000090 00 1c 04 03 05 03 06 03 08 07 08 08 08 09 08 0a |................| +000000a0 08 0b 08 04 08 05 08 06 04 01 05 01 06 01 00 2b |...............+| +000000b0 00 03 02 03 04 00 2d 00 02 01 01 00 33 00 26 00 |......-.....3.&.| +000000c0 24 00 1d 00 20 c6 c0 3a af 99 9f ef 6d 59 6b bd |$... ..:....mYk.| +000000d0 c3 b0 8a 94 02 c8 fb 13 7d cb a8 3a f4 f1 e0 40 |........}..:...@| +000000e0 03 15 7a 95 06 |..z..| +>>> Flow 2 (server to client) +00000000 16 03 03 00 7a 02 00 00 76 03 03 00 00 00 00 00 |....z...v.......| +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 20 a6 a3 e8 5a |........... ...Z| +00000030 4b cb 7c 64 05 b4 77 3b af 66 4b e3 5a b3 cb 57 |K.|d..w;.fK.Z..W| +00000040 84 d3 fa 5d 7f 5a cd 94 62 79 31 4a 13 02 00 00 |...].Z..by1J....| +00000050 2e 00 2b 00 02 03 04 00 33 00 24 00 1d 00 20 2f |..+.....3.$... /| +00000060 e5 7d a3 47 cd 62 43 15 28 da ac 5f bb 29 07 30 |.}.G.bC.(.._.).0| +00000070 ff f6 84 af c4 cf c2 ed 90 99 5f 58 cb 3b 74 14 |.........._X.;t.| +00000080 03 03 00 01 01 17 03 03 00 17 d8 15 a1 e7 a9 00 |................| +00000090 bf 9d 8d 63 5d ba b1 5a 08 c2 de 57 7e 73 61 5d |...c]..Z...W~sa]| +000000a0 2f 17 03 03 00 3c 59 ed f4 2a 62 56 2a 02 73 4f |/.......r....4| +00000350 2f 45 81 fe 17 03 03 00 99 ef 4a 43 25 8d dd 0d |/E........JC%...| +00000360 e5 af 9e e3 46 e1 84 de f1 68 5f 9b f6 70 17 6f |....F....h_..p.o| +00000370 7e 86 33 45 b6 13 f0 a8 a2 fd 08 1b 4a 4f 92 3f |~.3E........JO.?| +00000380 45 ef db 03 ff 1f 54 55 28 cc de 0e f5 6c af 5c |E.....TU(....l.\| +00000390 86 cc b1 e2 c7 0e ea 24 47 fb e0 37 e8 a2 e7 47 |.......$G..7...G| +000003a0 cd 9e da 02 e5 37 1f a9 b2 ea 57 f8 6f 63 be 5e |.....7....W.oc.^| +000003b0 38 be 1a 09 38 23 46 52 df cf 79 bc ce c1 da 23 |8...8#FR..y....#| +000003c0 34 97 c8 ce 81 74 d5 03 f4 71 ff 4b 17 e0 99 7c |4....t...q.K...|| +000003d0 31 bd c9 1e d5 2b d3 d4 ff dc 56 82 07 f5 a6 57 |1....+....V....W| +000003e0 0e ab 18 cf db 38 26 ff d9 51 c2 8f 70 b8 5b 84 |.....8&..Q..p.[.| +000003f0 80 27 17 03 03 00 45 95 7b 2b 46 29 0a 03 4f c6 |.'....E.{+F)..O.| +00000400 37 0c 31 e8 72 8a aa 00 db 90 e8 d3 1f c1 e1 eb |7.1.r...........| +00000410 03 02 bc ae dd 03 a7 28 55 7e 19 0d 5f 76 e6 fa |.......(U~.._v..| +00000420 03 91 c2 5a 10 1d c0 a0 85 3d d2 32 ec 65 af 83 |...Z.....=.2.e..| +00000430 25 d1 77 0f 41 d9 e7 43 56 04 4e fe |%.w.A..CV.N.| +>>> Flow 3 (client to server) +00000000 14 03 03 00 01 01 17 03 03 00 19 6c b2 53 5f 6e |...........l.S_n| +00000010 a9 6a b2 48 da d7 d5 b2 56 81 47 a9 7d a8 5c 6d |.j.H....V.G.}.\m| +00000020 7a a8 23 db 17 03 03 00 45 88 80 32 38 19 22 fd |z.#.....E..28.".| +00000030 09 5c a2 40 50 ba 9c 34 ad 4e 4c 70 7c 4d f0 0e |.\.@P..4.NLp|M..| +00000040 68 3f da d6 c0 6e 6e 29 fa ec d8 11 2e 20 94 38 |h?...nn)..... .8| +00000050 12 b9 08 27 3c e3 0a 8f 9a da cb 1f ab c9 f5 0e |...'<...........| +00000060 da a9 8c 66 24 de 2f b2 92 22 68 53 2f 68 |...f$./.."hS/h| +>>> Flow 4 (server to client) +00000000 17 03 03 00 a3 38 95 dc 12 b1 b8 df 96 ef 91 88 |.....8..........| +00000010 d4 d5 dc 35 ec 19 32 a3 2d 90 0b d5 03 f4 b2 b9 |...5..2.-.......| +00000020 4e 5f 4d b2 18 ae 44 d6 21 f1 7f ef a2 ab 3a 60 |N_M...D.!.....:`| +00000030 df a3 f3 6c 90 68 66 12 8c 3c c2 25 13 36 6c 1d |...l.hf..<.%.6l.| +00000040 51 e7 7e 75 f1 ac 54 fd ae 1b e0 b3 03 6f 0e 96 |Q.~u..T......o..| +00000050 91 5e 88 f5 a7 b6 f0 c5 3c ec a4 e1 3a 46 cd 41 |.^......<...:F.A| +00000060 60 dc 6f 13 d0 eb 76 7e b4 46 31 0f 23 22 0f b1 |`.o...v~.F1.#"..| +00000070 c8 91 14 42 ac 67 6f 83 92 a7 5b 2c 88 16 fc cf |...B.go...[,....| +00000080 ef 97 56 2f 2b 64 92 7d 1a ae a7 94 66 5d 35 f3 |..V/+d.}....f]5.| +00000090 77 63 c2 ef 82 d7 33 6d 0e 60 b2 a3 6b 01 aa 84 |wc....3m.`..k...| +000000a0 32 d0 df 47 e1 01 52 15 17 03 03 00 1e 05 90 37 |2..G..R........7| +000000b0 26 ed e0 a9 8d b1 07 26 42 6d 77 7c 19 aa c2 56 |&......&Bmw|...V| +000000c0 f1 92 eb de 96 46 f2 25 d9 93 df 17 03 03 00 13 |.....F.%........| +000000d0 ed b0 6c 70 1e 85 32 0d 8b ef 55 32 8c d6 fe 1d |..lp..2...U2....| +000000e0 c5 b0 4f |..O|