├── VERSION ├── .gitignore ├── testdata ├── sess_smtps.pcapng ├── sess_test_1.pcapng └── 00000014-00-108.160.166.148-443-www.dropbox.com.der ├── tls_clone ├── hackage.go ├── testdata │ ├── Server-TLSv11-FallbackSCSV │ ├── Server-TLSv12-Resume │ ├── Server-TLSv12-SNI │ ├── Server-TLSv10-RSA-RC4 │ ├── Server-TLSv11-RSA-RC4 │ ├── Server-SSLv3-RSA-RC4 │ ├── Server-TLSv12-RSA-RC4 │ ├── Server-TLSv10-RSA-3DES │ ├── Server-TLSv12-ClientAuthRequestedNotGiven │ ├── Server-TLSv10-RSA-AES │ ├── Client-TLSv10-RSA-RC4 │ ├── Client-TLSv11-RSA-RC4 │ ├── Client-TLSv12-RSA-RC4 │ ├── Server-SSLv3-RSA-3DES │ ├── Server-TLSv12-RSA-3DES │ ├── Client-TLSv12-ECDHE-ECDSA-AES-GCM │ ├── Server-SSLv3-RSA-AES │ ├── Server-TLSv10-ECDHE-ECDSA-AES │ ├── Client-TLSv10-ECDHE-ECDSA-AES │ ├── Server-TLSv12-RSA-AES │ ├── Server-TLSv12-IssueTicket │ ├── Server-TLSv12-IssueTicketPreDisable │ ├── Server-TLSv12-ResumeDisabled │ ├── Client-TLSv11-ECDHE-ECDSA-AES │ ├── Client-TLSv12-ECDHE-ECDSA-AES │ ├── Server-TLSv12-ECDHE-ECDSA-AES │ └── Server-TLSv12-CipherSuiteCertPreferenceECDSA ├── example_test.go ├── alert.go ├── ticket.go ├── generate_cert.go ├── handshake_test.go └── prf_test.go ├── TODO.md ├── go.mod ├── Makefile ├── options.go ├── BUILD.md ├── README.md ├── output.go ├── cmd └── certgrep │ └── main.go ├── go.sum ├── extractor.go └── reader.go /VERSION: -------------------------------------------------------------------------------- 1 | 0.99.3 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | capture/ 2 | profiling/ 3 | dist/ 4 | testdata/ 5 | output 6 | certs/ 7 | old/ 8 | .idea/ 9 | -------------------------------------------------------------------------------- /testdata/sess_smtps.pcapng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kung-foo/certgrep/HEAD/testdata/sess_smtps.pcapng -------------------------------------------------------------------------------- /testdata/sess_test_1.pcapng: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kung-foo/certgrep/HEAD/testdata/sess_test_1.pcapng -------------------------------------------------------------------------------- /tls_clone/hackage.go: -------------------------------------------------------------------------------- 1 | package tls 2 | 3 | import "crypto/x509" 4 | 5 | func (c *Conn) PeerCertificates() []*x509.Certificate { 6 | return c.peerCertificates 7 | } 8 | -------------------------------------------------------------------------------- /testdata/00000014-00-108.160.166.148-443-www.dropbox.com.der: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/kung-foo/certgrep/HEAD/testdata/00000014-00-108.160.166.148-443-www.dropbox.com.der -------------------------------------------------------------------------------- /TODO.md: -------------------------------------------------------------------------------- 1 | TODO 2 | ==== 3 | 4 | - [ ] make patchfile for net/tls changes 5 | - [ ] integrate patchfile into Makefile 6 | - [ ] create standalone x509 certificate representation 7 | - [ ] if `--log-to-stdout` && no cert export requested, don't touch the file system 8 | -------------------------------------------------------------------------------- /go.mod: -------------------------------------------------------------------------------- 1 | module github.com/kung-foo/certgrep 2 | 3 | go 1.17 4 | 5 | require ( 6 | github.com/davecgh/go-spew v1.1.0 7 | github.com/docopt/docopt-go v0.0.0-20160216232012-784ddc588536 8 | github.com/google/gopacket v1.1.19 9 | github.com/mattn/go-isatty v0.0.3 10 | github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b 11 | github.com/olekukonko/tablewriter v0.0.0-20180506121414-d4647c9c7a84 12 | github.com/pkg/errors v0.8.0 13 | github.com/pkg/profile v1.2.1 14 | go.uber.org/zap v1.9.1 15 | ) 16 | 17 | require ( 18 | github.com/mattn/go-colorable v0.0.9 // indirect 19 | github.com/mattn/go-runewidth v0.0.3 // indirect 20 | github.com/stretchr/testify v1.7.0 // indirect 21 | go.uber.org/atomic v1.3.2 // indirect 22 | go.uber.org/multierr v1.1.0 // indirect 23 | golang.org/x/sys v0.0.0-20190412213103-97732733099d // indirect 24 | ) 25 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | VERSION = v$(strip $(shell cat VERSION)) 2 | 3 | GO := $(shell which go) 4 | 5 | BUILDSTRING := git:[$(shell git log --pretty=format:'%h' -n 1)] go:[$(shell $(GO) version | sed 's/go version //')] 6 | VERSIONSTRING := certgrep $(VERSION) $(BUILDSTRING) 7 | DIMAGE := kung-foo/certgrep 8 | 9 | ifndef GOARCH 10 | GOARCH := $(shell $(GO) env GOARCH) 11 | endif 12 | 13 | ifndef GOOS 14 | GOOS := $(shell $(GO) env GOOS) 15 | endif 16 | 17 | OUTPUT := ./dist/certgrep-$(GOOS)-$(GOARCH) 18 | 19 | ifeq ($(GOOS), windows) 20 | OUTPUT := $(OUTPUT).exe 21 | endif 22 | 23 | .PHONY: default all clean 24 | 25 | default: build 26 | 27 | $(OUTPUT): *.go cmd/certgrep/*.go tls_clone/*.go 28 | mkdir -p dist/ 29 | $(GO) build -v -o $(OUTPUT) -ldflags '-X "main.VERSION=$(VERSIONSTRING)"' cmd/certgrep/main.go 30 | ifdef CALLING_UID 31 | ifdef CALLING_GID 32 | @echo Reseting owner to $(CALLING_UID):$(CALLING_GID) 33 | chown $(CALLING_UID):$(CALLING_GID) $(OUTPUT) 34 | endif 35 | endif 36 | @echo 37 | @echo Built $(OUTPUT) 38 | 39 | build: $(OUTPUT) 40 | 41 | clean: 42 | rm -f $(OUTPUT) 43 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv11-FallbackSCSV: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 d4 01 00 00 d0 03 02 74 2d da 6d 98 |...........t-.m.| 3 | 00000010 ad 3e a5 ec 90 ea d1 5b f0 e0 a7 45 33 d9 5e 8d |.>.....[...E3.^.| 4 | 00000020 0f 1d 01 16 6d 00 31 65 ed 50 88 00 00 5e c0 14 |....m.1e.P...^..| 5 | 00000030 c0 0a 00 39 00 38 00 88 00 87 c0 0f c0 05 00 35 |...9.8.........5| 6 | 00000040 00 84 c0 13 c0 09 00 33 00 32 00 9a 00 99 00 45 |.......3.2.....E| 7 | 00000050 00 44 c0 0e c0 04 00 2f 00 96 00 41 00 07 c0 11 |.D...../...A....| 8 | 00000060 c0 07 c0 0c c0 02 00 05 00 04 c0 12 c0 08 00 16 |................| 9 | 00000070 00 13 c0 0d c0 03 00 0a 00 15 00 12 00 09 00 14 |................| 10 | 00000080 00 11 00 08 00 06 00 03 00 ff 56 00 01 00 00 49 |..........V....I| 11 | 00000090 00 0b 00 04 03 00 01 02 00 0a 00 34 00 32 00 0e |...........4.2..| 12 | 000000a0 00 0d 00 19 00 0b 00 0c 00 18 00 09 00 0a 00 16 |................| 13 | 000000b0 00 17 00 08 00 06 00 07 00 14 00 15 00 04 00 05 |................| 14 | 000000c0 00 12 00 13 00 01 00 02 00 03 00 0f 00 10 00 11 |................| 15 | 000000d0 00 23 00 00 00 0f 00 01 01 |.#.......| 16 | >>> Flow 2 (server to client) 17 | 00000000 15 03 02 00 02 02 56 |......V| 18 | -------------------------------------------------------------------------------- /options.go: -------------------------------------------------------------------------------- 1 | package certgrep 2 | 3 | import ( 4 | "fmt" 5 | "os" 6 | "path" 7 | "path/filepath" 8 | "strings" 9 | "time" 10 | 11 | "go.uber.org/zap" 12 | ) 13 | 14 | type Option func(*Extractor) error 15 | 16 | func Logger(logger *zap.SugaredLogger) Option { 17 | return func(e *Extractor) (err error) { 18 | e.logger = logger.Named("certgrep") 19 | return 20 | } 21 | } 22 | 23 | func OutputDir(dir string) Option { 24 | // TODO(jca): check env SUDO_UID|GID and reset? 25 | return func(e *Extractor) (err error) { 26 | dir, err = filepath.Abs(dir) 27 | if err != nil { 28 | return 29 | } 30 | 31 | now := strings.Replace(time.Now().UTC().Format(time.RFC3339), ":", "_", -1) 32 | e.outputOptions.dir = path.Join(dir, now) 33 | 34 | return os.MkdirAll(e.outputOptions.dir, defaultDirPerm) 35 | } 36 | } 37 | 38 | func LogToStdout(do bool) Option { 39 | return func(e *Extractor) (err error) { 40 | e.logToStdout = do 41 | return nil 42 | } 43 | } 44 | 45 | func EnableOutputFormat(format string, do bool) Option { 46 | return func(e *Extractor) (err error) { 47 | switch format { 48 | case "json": 49 | e.outputOptions.json = do 50 | case "der": 51 | e.outputOptions.der = do 52 | case "pem": 53 | e.outputOptions.pem = do 54 | default: 55 | return fmt.Errorf("invalid format") 56 | } 57 | return 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /tls_clone/example_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2014 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package tls_test 6 | 7 | import ( 8 | "crypto/tls" 9 | "crypto/x509" 10 | ) 11 | 12 | func ExampleDial() { 13 | // Connecting with a custom root-certificate set. 14 | 15 | const rootPEM = ` 16 | -----BEGIN CERTIFICATE----- 17 | MIIEBDCCAuygAwIBAgIDAjppMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT 18 | MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i 19 | YWwgQ0EwHhcNMTMwNDA1MTUxNTU1WhcNMTUwNDA0MTUxNTU1WjBJMQswCQYDVQQG 20 | EwJVUzETMBEGA1UEChMKR29vZ2xlIEluYzElMCMGA1UEAxMcR29vZ2xlIEludGVy 21 | bmV0IEF1dGhvcml0eSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB 22 | AJwqBHdc2FCROgajguDYUEi8iT/xGXAaiEZ+4I/F8YnOIe5a/mENtzJEiaB0C1NP 23 | VaTOgmKV7utZX8bhBYASxF6UP7xbSDj0U/ck5vuR6RXEz/RTDfRK/J9U3n2+oGtv 24 | h8DQUB8oMANA2ghzUWx//zo8pzcGjr1LEQTrfSTe5vn8MXH7lNVg8y5Kr0LSy+rE 25 | ahqyzFPdFUuLH8gZYR/Nnag+YyuENWllhMgZxUYi+FOVvuOAShDGKuy6lyARxzmZ 26 | EASg8GF6lSWMTlJ14rbtCMoU/M4iarNOz0YDl5cDfsCx3nuvRTPPuj5xt970JSXC 27 | DTWJnZ37DhF5iR43xa+OcmkCAwEAAaOB+zCB+DAfBgNVHSMEGDAWgBTAephojYn7 28 | qwVkDBF9qn1luMrMTjAdBgNVHQ4EFgQUSt0GFhu89mi1dvWBtrtiGrpagS8wEgYD 29 | VR0TAQH/BAgwBgEB/wIBADAOBgNVHQ8BAf8EBAMCAQYwOgYDVR0fBDMwMTAvoC2g 30 | K4YpaHR0cDovL2NybC5nZW90cnVzdC5jb20vY3Jscy9ndGdsb2JhbC5jcmwwPQYI 31 | KwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwOi8vZ3RnbG9iYWwtb2NzcC5n 32 | ZW90cnVzdC5jb20wFwYDVR0gBBAwDjAMBgorBgEEAdZ5AgUBMA0GCSqGSIb3DQEB 33 | BQUAA4IBAQA21waAESetKhSbOHezI6B1WLuxfoNCunLaHtiONgaX4PCVOzf9G0JY 34 | /iLIa704XtE7JW4S615ndkZAkNoUyHgN7ZVm2o6Gb4ChulYylYbc3GrKBIxbf/a/ 35 | zG+FA1jDaFETzf3I93k9mTXwVqO94FntT0QJo544evZG0R0SnU++0ED8Vf4GXjza 36 | HFa9llF7b1cq26KqltyMdMKVvvBulRP/F/A8rLIQjcxz++iPAsbw+zOzlTvjwsto 37 | WHPbqCRiOwY1nQ2pM714A5AuTHhdUDqB1O6gyHA43LL5Z/qHQF1hwFGPa4NrzQU6 38 | yuGnBXj8ytqU0CwIPX4WecigUCAkVDNx 39 | -----END CERTIFICATE-----` 40 | 41 | // First, create the set of root certificates. For this example we only 42 | // have one. It's also possible to omit this in order to use the 43 | // default root set of the current operating system. 44 | roots := x509.NewCertPool() 45 | ok := roots.AppendCertsFromPEM([]byte(rootPEM)) 46 | if !ok { 47 | panic("failed to parse root certificate") 48 | } 49 | 50 | conn, err := tls.Dial("tcp", "mail.google.com:443", &tls.Config{ 51 | RootCAs: roots, 52 | }) 53 | if err != nil { 54 | panic("failed to connect: " + err.Error()) 55 | } 56 | conn.Close() 57 | } 58 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv12-Resume: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 e8 01 00 00 e4 03 03 52 cc 57 59 c3 |...........R.WY.| 3 | 00000010 8b df 97 05 d8 5f 16 22 b4 b1 e7 cb 7d 2f 9b 58 |....._."....}/.X| 4 | 00000020 a3 f4 d7 2c a4 c1 9d 49 ed 4b ba 20 90 da 90 3e |...,...I.K. ...>| 5 | 00000030 36 19 7a db 56 43 26 f7 dc 42 57 33 22 ed 9d a4 |6.z.VC&..BW3"...| 6 | 00000040 9d 53 da f8 9d 4e 60 66 71 a0 2e 2e 00 04 00 05 |.S...N`fq.......| 7 | 00000050 00 ff 01 00 00 97 00 23 00 68 00 00 00 00 00 00 |.......#.h......| 8 | 00000060 00 00 00 00 00 00 00 00 00 00 65 ea 4b d1 ef ba |..........e.K...| 9 | 00000070 06 38 1e e1 88 82 3a cd 03 ac 3b 39 0a e0 19 fd |.8....:...;9....| 10 | 00000080 af 6c 57 30 df 31 6e f7 92 38 4b 5d 77 90 39 ff |.lW0.1n..8K]w.9.| 11 | 00000090 32 51 f5 ed 12 d7 b0 7c 4d 6c c5 76 e4 72 48 3e |2Q.....|Ml.v.rH>| 12 | 000000a0 59 23 fe 0d 15 df f4 ba ea b9 67 16 23 8f 7d 15 |Y#........g.#.}.| 13 | 000000b0 b6 11 f1 ab d7 d4 cd a3 21 82 92 2a 12 cf 95 f3 |........!..*....| 14 | 000000c0 60 b2 00 0d 00 22 00 20 06 01 06 02 06 03 05 01 |`....". ........| 15 | 000000d0 05 02 05 03 04 01 04 02 04 03 03 01 03 02 03 03 |................| 16 | 000000e0 02 01 02 02 02 03 01 01 00 0f 00 01 01 |.............| 17 | >>> Flow 2 (server to client) 18 | 00000000 16 03 03 00 51 02 00 00 4d 03 03 00 00 00 00 00 |....Q...M.......| 19 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 20 | 00000020 00 00 00 00 00 00 00 00 00 00 00 20 90 da 90 3e |........... ...>| 21 | 00000030 36 19 7a db 56 43 26 f7 dc 42 57 33 22 ed 9d a4 |6.z.VC&..BW3"...| 22 | 00000040 9d 53 da f8 9d 4e 60 66 71 a0 2e 2e 00 05 00 00 |.S...N`fq.......| 23 | 00000050 05 ff 01 00 01 00 14 03 03 00 01 01 16 03 03 00 |................| 24 | 00000060 24 11 12 ff 28 10 14 4c e5 0e ad a7 fa f3 92 fb |$...(..L........| 25 | 00000070 13 7d ae f2 b2 4a 6b a1 9e 67 cf a8 f7 8c 6f a0 |.}...Jk..g....o.| 26 | 00000080 6c 30 0e 18 55 |l0..U| 27 | >>> Flow 3 (client to server) 28 | 00000000 14 03 03 00 01 01 16 03 03 00 24 0d 46 41 8b 24 |..........$.FA.$| 29 | 00000010 36 01 a9 fd 8b ec fc e6 b1 83 96 df 0d 3e 53 54 |6............>ST| 30 | 00000020 58 b8 43 f2 a6 25 5e 1a ae 19 9e d2 28 44 92 |X.C..%^.....(D.| 31 | >>> Flow 4 (server to client) 32 | 00000000 17 03 03 00 21 c4 fb f6 53 bb 3e 04 cc 0b a0 03 |....!...S.>.....| 33 | 00000010 fa 49 96 da b5 8d b2 f2 e5 d8 f3 5c 27 57 4f 9c |.I.........\'WO.| 34 | 00000020 30 00 34 fc 52 92 15 03 03 00 16 a3 02 7a 50 d2 |0.4.R........zP.| 35 | 00000030 c6 b3 fc 69 8f e4 94 ae ab 22 ad 05 1d 15 69 b9 |...i....."....i.| 36 | 00000040 a5 |.| 37 | -------------------------------------------------------------------------------- /BUILD.md: -------------------------------------------------------------------------------- 1 | Build Instructions 2 | ================== 3 | 4 | ### Common Requirements 5 | * Go (https://golang.org/) 6 | * godep (https://github.com/tools/godep) 7 | * libpcap 8 | 9 | Ubuntu 10 | ------ 11 | 12 | For a [Docker](https://www.docker.com/) based build environment please go [here](#docker). 13 | 14 | * Install Go (>= 1.3) (see: https://golang.org/doc/install) 15 | * Install dependencies 16 | ``` 17 | $ sudo apt-get install libpcap-dev build-essential git 18 | $ go get -v github.com/tools/godep 19 | ``` 20 | * Download source 21 | ``` 22 | $ git clone https://github.com/kung-foo/certgrep $GOPATH/src/github.com/kung-foo/certgrep 23 | ``` 24 | * Build 25 | ``` 26 | $ make build 27 | ``` 28 | 29 | ### Testing on Ubuntu 30 | 31 | ``` 32 | ./certgrep -p testdata/sess_smtps.pcapng 33 | 2015/04/11 18:28:31 flowid:2 server:68.114.188.72 port:587 client:10.74.5.100 commonname:"mobile.charter.net" serial:73397715042707340270384354846404777809 34 | 2015/04/11 18:28:31 flowid:2 server:68.114.188.72 port:587 client:10.74.5.100 commonname:"Thawte SSL CA" serial:102844720425577770632960998383784151532 35 | 2015/04/11 18:28:31 flowid:2 server:68.114.188.72 port:587 client:10.74.5.100 commonname:"thawte Primary Root CA" serial:68316673031993696956121215362381360273 36 | ``` 37 | 38 | Windows 39 | ------- 40 | * Install 64-bit Go release 41 | * Install 64-bit gcc toolchain (http://win-builds.org/doku.php) 42 | * WinPcap Developer's Pack (https://www.winpcap.org/devel.htm) 43 | * Unzip into `c:\WpdPack` (see: [gopacket/pcap/pcap.go ](https://github.com/google/gopacket/blob/master/pcap/pcap.go#L15)) 44 | * Install dependencies 45 | ``` 46 | go get -v github.com/tools/godep 47 | ``` 48 | * Build binary 49 | ``` 50 | mingw32-make # if using mingw toolchain 51 | # OR 52 | godep go build -v 53 | ``` 54 | 55 | ### Testing on Windows 56 | 57 | ``` 58 | certgrep.exe -p testdata\sess_smtps.pcapng 59 | 2015/04/11 18:28:31 flowid:2 server:68.114.188.72 port:587 client:10.74.5.100 commonname:"mobile.charter.net" serial:73397715042707340270384354846404777809 60 | 2015/04/11 18:28:31 flowid:2 server:68.114.188.72 port:587 client:10.74.5.100 commonname:"Thawte SSL CA" serial:102844720425577770632960998383784151532 61 | 2015/04/11 18:28:31 flowid:2 server:68.114.188.72 port:587 client:10.74.5.100 commonname:"thawte Primary Root CA" serial:68316673031993696956121215362381360273 62 | ``` 63 | 64 | Docker 65 | ------ 66 | > Note: **libpcap** is still required to run **certgrep** 67 | 68 | ``` 69 | $ make docker-build-shell 70 | docker build -t jonathancamp/certgrep . 71 | ... 72 | Successfully built f20ea8b8781d 73 | ... 74 | run make to build certgrep 75 | root@7052acf56fe8:/go/src/github.com/kung-foo/certgrep# make 76 | ... 77 | Built ./certgrep-linux-amd64 78 | root@7052acf56fe8:/go/src/github.com/kung-foo/certgrep# exit 79 | $ ./certgrep-linux-amd64 --version 80 | certgrep version v0.0.1+6604387 81 | ``` 82 | -------------------------------------------------------------------------------- /tls_clone/alert.go: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package tls 6 | 7 | import "strconv" 8 | 9 | type alert uint8 10 | 11 | const ( 12 | // alert level 13 | alertLevelWarning = 1 14 | alertLevelError = 2 15 | ) 16 | 17 | const ( 18 | alertCloseNotify alert = 0 19 | alertUnexpectedMessage alert = 10 20 | alertBadRecordMAC alert = 20 21 | alertDecryptionFailed alert = 21 22 | alertRecordOverflow alert = 22 23 | alertDecompressionFailure alert = 30 24 | alertHandshakeFailure alert = 40 25 | alertBadCertificate alert = 42 26 | alertUnsupportedCertificate alert = 43 27 | alertCertificateRevoked alert = 44 28 | alertCertificateExpired alert = 45 29 | alertCertificateUnknown alert = 46 30 | alertIllegalParameter alert = 47 31 | alertUnknownCA alert = 48 32 | alertAccessDenied alert = 49 33 | alertDecodeError alert = 50 34 | alertDecryptError alert = 51 35 | alertProtocolVersion alert = 70 36 | alertInsufficientSecurity alert = 71 37 | alertInternalError alert = 80 38 | alertInappropriateFallback alert = 86 39 | alertUserCanceled alert = 90 40 | alertNoRenegotiation alert = 100 41 | ) 42 | 43 | var alertText = map[alert]string{ 44 | alertCloseNotify: "close notify", 45 | alertUnexpectedMessage: "unexpected message", 46 | alertBadRecordMAC: "bad record MAC", 47 | alertDecryptionFailed: "decryption failed", 48 | alertRecordOverflow: "record overflow", 49 | alertDecompressionFailure: "decompression failure", 50 | alertHandshakeFailure: "handshake failure", 51 | alertBadCertificate: "bad certificate", 52 | alertUnsupportedCertificate: "unsupported certificate", 53 | alertCertificateRevoked: "revoked certificate", 54 | alertCertificateExpired: "expired certificate", 55 | alertCertificateUnknown: "unknown certificate", 56 | alertIllegalParameter: "illegal parameter", 57 | alertUnknownCA: "unknown certificate authority", 58 | alertAccessDenied: "access denied", 59 | alertDecodeError: "error decoding message", 60 | alertDecryptError: "error decrypting message", 61 | alertProtocolVersion: "protocol version not supported", 62 | alertInsufficientSecurity: "insufficient security level", 63 | alertInternalError: "internal error", 64 | alertInappropriateFallback: "inappropriate fallback", 65 | alertUserCanceled: "user canceled", 66 | alertNoRenegotiation: "no renegotiation", 67 | } 68 | 69 | func (e alert) String() string { 70 | s, ok := alertText[e] 71 | if ok { 72 | return s 73 | } 74 | return "alert(" + strconv.Itoa(int(e)) + ")" 75 | } 76 | 77 | func (e alert) Error() string { 78 | return e.String() 79 | } 80 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | certgrep 2 | ======== 3 | 4 | [![AppVeyor](https://img.shields.io/appveyor/ci/kung-foo/certgrep.svg?logo=appveyor&style=for-the-badge)](https://ci.appveyor.com/project/kung-foo/certgrep) 5 | 6 | **certgrep** is a cross-platform command line tool that extracts TLS/SSL certificates from either a network interface or a local PCAP file. The certificates are saved in either JSON, DER and/or PEM format. 7 | 8 | Utilizes [google/gopacket] (https://github.com/google/gopacket) 9 | 10 | Usage 11 | ----- 12 | 13 | ``` 14 | Usage: 15 | certgrep [options] [-v ...] [--format= ...] (-p= | -i=) 16 | certgrep [options] [-v ...] -l | --list 17 | certgrep -h | --help | --version 18 | 19 | Options: 20 | -h --help Show this screen. 21 | --version Show version. 22 | -l --list List available interfaces 23 | -p --pcap= PCAP file to parse 24 | -i --interface= Network interface to listen on 25 | -o --output= Resource output directory [default: certs] 26 | --log-to-stdout Write certificate log to stdout 27 | -f --format= Certificate output format (json|der|pem) [default: pem] 28 | -b --bpf= Capture filter (BPF) [default: tcp] 29 | --no-color Disabled colored output 30 | -v Enable verbose logging (-vv for very verbose) 31 | --profile 32 | --assembly-memuse-log 33 | --assembly-debug-log 34 | --dump-metrics 35 | --dump-packets 36 | ``` 37 | 38 | Example 39 | ------- 40 | 41 | ``` 42 | $ sudo ./dist/certgrep-linux-amd64 -i wlp58s0 --format pem --format json --log-to-stdout 43 | 2018-08-17T10:11:14.340+0200 INFO certgrep certgrep/extractor.go:86 setting output dir to: certs/2018-08-17T08_11_14Z 44 | 2018-08-17T08:11:15Z flowidx:9 flowhash:f1a0fb33d0ef19ba client:192.168.5.14 server:192.30.253.113 port:443 cert:0 cn:"github.com" fingerprint:ca06f56b258b7a0d4f2b05470939478651151984 serial:13324412563135569597699362973539517727 45 | 2018-08-17T08:11:15Z flowidx:9 flowhash:f1a0fb33d0ef19ba client:192.168.5.14 server:192.30.253.113 port:443 cert:1 cn:"DigiCert SHA2 Extended Validation Server CA" fingerprint:7e2f3a4f8fe8fa8a5730aeca029696637e986f3f serial:16582437038678467094619379592629788035 46 | ^C 47 | 2018-08-17T10:11:17.749+0200 INFO certgrep certgrep/extractor.go:168 capture time: 3 seconds 48 | 2018-08-17T10:11:17.749+0200 INFO certgrep certgrep/extractor.go:169 capture size: 22508 bytes 49 | 2018-08-17T10:11:17.749+0200 INFO certgrep certgrep/extractor.go:173 average capture rate: 64.256 Kbit/s 50 | 2018-08-17T10:11:17.749+0200 INFO certgrep certgrep/extractor.go:179 pps: 18 51 | ``` 52 | 53 | A request to `https://github.com` generates two certificates in the output folder `./certs/2018-08-17T08_11_14Z`. 54 | 55 | ``` 56 | $ tree certs/2018-08-17T08_11_14Z 57 | certs/2018-08-17T08_11_14Z 58 | ├── 7e2f3a4f8fe8fa8a5730aeca029696637e986f3f 59 | │   ├── cert.json 60 | │   └── cert.pem 61 | └── ca06f56b258b7a0d4f2b05470939478651151984 62 | ├── cert.json 63 | └── cert.pem 64 | ``` 65 | -------------------------------------------------------------------------------- /output.go: -------------------------------------------------------------------------------- 1 | package certgrep 2 | 3 | import ( 4 | "crypto/sha1" 5 | "crypto/x509" 6 | "encoding/hex" 7 | "encoding/json" 8 | "encoding/pem" 9 | "fmt" 10 | "io" 11 | "io/ioutil" 12 | "log" 13 | "os" 14 | "path" 15 | "path/filepath" 16 | "time" 17 | ) 18 | 19 | type output struct { 20 | persist chan *ctx 21 | done chan struct{} 22 | certLogFile io.WriteCloser 23 | options outputOptions 24 | } 25 | 26 | type outputOptions struct { 27 | der bool 28 | json bool 29 | pem bool 30 | dir string 31 | } 32 | 33 | type ctx struct { 34 | certs []*x509.Certificate 35 | logLine string 36 | /* 37 | src gopacket.Endpoint 38 | dst gopacket.Endpoint 39 | flowId uint64 40 | flowHash string 41 | */ 42 | } 43 | 44 | func newOutput(logfile string, options outputOptions) (*output, error) { 45 | var ( 46 | err error 47 | clf *os.File 48 | ) 49 | if logLine == "-" { 50 | clf = os.Stdout 51 | } else { 52 | clf, err = os.Create(path.Join(options.dir, logfile)) 53 | if err != nil { 54 | return nil, err 55 | } 56 | } 57 | o := &output{ 58 | persist: make(chan *ctx), 59 | done: make(chan struct{}), 60 | certLogFile: clf, 61 | options: options, 62 | } 63 | go o.run() 64 | return o, nil 65 | } 66 | 67 | func (o *output) PersistCertificate(certs []*x509.Certificate, 68 | logLine string) { 69 | o.persist <- &ctx{ 70 | certs: certs, 71 | logLine: logLine, 72 | } 73 | } 74 | 75 | func (o *output) run() { 76 | for ctx := range o.persist { 77 | for i, cert := range ctx.certs { 78 | h := sha1.New() 79 | h.Write(cert.Raw) 80 | digest := hex.EncodeToString(h.Sum(nil)) 81 | 82 | path := filepath.Join(o.options.dir, digest) 83 | 84 | // TODO: break if cert already written 85 | 86 | if err := os.MkdirAll(path, defaultDirPerm); err != nil { 87 | log.Fatal(err) 88 | } 89 | 90 | // log.Printf("%d %s %s", i, digest, cert.Subject.CommonName) 91 | // log.Print(cert.Verify(x509.VerifyOptions{})) 92 | 93 | //if !cert.IsCA { 94 | //log.Print(cert.CheckSignatureFrom(cert)) 95 | //} 96 | 97 | if o.options.der { 98 | ioutil.WriteFile(filepath.Join(path, "cert.der"), cert.Raw, 0644) 99 | } 100 | 101 | if o.options.pem { 102 | func() { 103 | block := pem.Block{ 104 | Type: "CERTIFICATE", 105 | Bytes: cert.Raw, 106 | } 107 | 108 | out, err := os.Create(filepath.Join(path, "cert.pem")) 109 | if err != nil { 110 | log.Fatal(err) 111 | } 112 | defer out.Close() 113 | 114 | err = pem.Encode(out, &block) 115 | if err != nil { 116 | log.Fatal(err) 117 | } 118 | }() 119 | } 120 | 121 | // Note: cert.Verify requires cert.Raw 122 | cert.Raw = nil 123 | cert.RawIssuer = nil 124 | cert.RawSubject = nil 125 | cert.RawSubjectPublicKeyInfo = nil 126 | cert.RawTBSCertificate = nil 127 | 128 | if o.options.json { 129 | raw, err := json.MarshalIndent(cert, "", " ") 130 | if err != nil { 131 | log.Fatal(err) 132 | } 133 | ioutil.WriteFile(filepath.Join(path, "cert.json"), raw, 0644) 134 | } 135 | 136 | // TODO(jca): proper escaping 137 | fmt.Fprintf(o.certLogFile, 138 | "%s %s cert:%d cn:\"%s\" fingerprint:%s serial:%s\n", 139 | time.Now().UTC().Format(time.RFC3339), ctx.logLine, 140 | i, cert.Subject.CommonName, digest, cert.SerialNumber.String()) 141 | } 142 | } 143 | close(o.done) 144 | } 145 | 146 | func (o *output) WaitUntilDone() { 147 | close(o.persist) 148 | <-o.done 149 | o.certLogFile.Close() 150 | } 151 | -------------------------------------------------------------------------------- /cmd/certgrep/main.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import ( 4 | "os" 5 | "os/signal" 6 | 7 | "github.com/davecgh/go-spew/spew" 8 | docopt "github.com/docopt/docopt-go" 9 | "github.com/google/gopacket/pcap" 10 | . "github.com/kung-foo/certgrep" 11 | isatty "github.com/mattn/go-isatty" 12 | "github.com/pkg/errors" 13 | "github.com/pkg/profile" 14 | "go.uber.org/zap" 15 | "go.uber.org/zap/zapcore" 16 | ) 17 | 18 | const ( 19 | snaplen = 65536 20 | ) 21 | 22 | // VERSION is set by the makefile 23 | var VERSION = "0.0.0-notset" 24 | 25 | var slogger *zap.SugaredLogger 26 | 27 | var usage = ` 28 | Usage: 29 | certgrep [options] [-v ...] [--format= ...] (-p= | -i=) 30 | certgrep [options] [-v ...] -l | --list 31 | certgrep -h | --help | --version 32 | 33 | Options: 34 | -h --help Show this screen. 35 | --version Show version. 36 | -l --list List available interfaces 37 | -p --pcap= PCAP file to parse 38 | -i --interface= Network interface to listen on 39 | -o --output= Resource output directory [default: certs] 40 | --log-to-stdout Write certificate log to stdout 41 | -f --format= Certificate output format (json|der|pem) [default: pem] 42 | -b --bpf= Capture filter (BPF) [default: tcp] 43 | --no-color Disabled colored output 44 | -v Enable verbose logging (-vv for very verbose) 45 | --profile 46 | --assembly-memuse-log 47 | --assembly-debug-log 48 | --dump-metrics 49 | --dump-packets 50 | ` 51 | 52 | // for --assembly-memuse-log and --assembly-debug-log see: 53 | // https://github.com/google/gopacket/blob/v1.1.14/tcpassembly/assembly.go#L31-L32 54 | 55 | func main() { 56 | mainEx(os.Args[1:]) 57 | } 58 | 59 | func mainEx(argv []string) { 60 | var err error 61 | args, _ := docopt.Parse(usage, argv, true, VERSION, true) 62 | 63 | if args["--profile"].(bool) { 64 | profiler := profile.Start(profile.CPUProfile, profile.ProfilePath("profiling")) 65 | defer func() { 66 | profiler.Stop() 67 | }() 68 | } 69 | 70 | config := zap.NewDevelopmentConfig() 71 | if !args["--no-color"].(bool) && ttySupportsColor() { 72 | config.EncoderConfig.EncodeLevel = zapcore.CapitalColorLevelEncoder 73 | } 74 | 75 | if args["-v"].(int) > 0 { 76 | config.Level.SetLevel(zap.DebugLevel) 77 | } else { 78 | config.Level.SetLevel(zap.InfoLevel) 79 | } 80 | 81 | logger, err := config.Build() 82 | if err != nil { 83 | panic(err) 84 | } 85 | defer logger.Sync() 86 | 87 | slogger = logger.Sugar() 88 | 89 | if args["--list"].(bool) { 90 | onErrorExit(PrintDeviceTable(os.Stdout, slogger)) 91 | return 92 | } 93 | 94 | var handle *pcap.Handle 95 | 96 | if args["--pcap"] != nil { 97 | handle, err = pcap.OpenOffline(args["--pcap"].(string)) 98 | onErrorExit(err) 99 | } 100 | 101 | if args["--interface"] != nil { 102 | handle, err = pcap.OpenLive(args["--interface"].(string), snaplen, true, pcap.BlockForever) 103 | if err != nil { 104 | slogger.Info("Run --list to view available capture interfaces.") 105 | onErrorExit(err) 106 | } 107 | } 108 | 109 | if err = handle.SetBPFFilter(args["--bpf"].(string)); err != nil { 110 | onErrorExit(errors.Wrap(err, "error setting BPF filter")) 111 | } 112 | 113 | var extractor *Extractor 114 | 115 | options := make([]Option, 0) 116 | 117 | if args["--format"] != nil { 118 | for _, format := range args["--format"].([]string) { 119 | options = append(options, EnableOutputFormat(format, true)) 120 | } 121 | } 122 | 123 | options = append(options, Logger(slogger)) 124 | options = append(options, OutputDir(args["--output"].(string))) 125 | options = append(options, LogToStdout(args["--log-to-stdout"].(bool))) 126 | 127 | extractor, err = NewExtractor(handle, options...) 128 | onErrorExit(err) 129 | 130 | onInterruptSignal(func() { 131 | os.Stdout.WriteString("\n") 132 | extractor.Close() 133 | }) 134 | 135 | extractor.Run() 136 | 137 | stats, err := handle.Stats() 138 | if err == nil { 139 | spew.Dump(*stats) 140 | } 141 | handle.Close() 142 | } 143 | 144 | func onErrorExit(err error) { 145 | if err != nil { 146 | slogger.Fatal(err) 147 | } 148 | } 149 | 150 | func onInterruptSignal(fn func()) { 151 | sig := make(chan os.Signal, 1) 152 | signal.Notify(sig, os.Interrupt) 153 | 154 | go func() { 155 | <-sig 156 | fn() 157 | }() 158 | } 159 | 160 | func ttySupportsColor() bool { 161 | fd := os.Stdout.Fd() 162 | return isatty.IsTerminal(fd) || isatty.IsCygwinTerminal(fd) 163 | } 164 | -------------------------------------------------------------------------------- /go.sum: -------------------------------------------------------------------------------- 1 | github.com/davecgh/go-spew v1.1.0 h1:ZDRjVQ15GmhC3fiQ8ni8+OwkZQO4DARzQgrnXU1Liz8= 2 | github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= 3 | github.com/docopt/docopt-go v0.0.0-20160216232012-784ddc588536 h1:rHnpq7uNlix5l7tWZ55iJcHHrxCPnOVF4FGb7qOT2Jc= 4 | github.com/docopt/docopt-go v0.0.0-20160216232012-784ddc588536/go.mod h1:WwZ+bS3ebgob9U8Nd0kOddGdZWjyMGR8Wziv+TBNwSE= 5 | github.com/google/gopacket v1.1.14 h1:1+TEhSu8Mh154ZBVjyd1Nt2Bb7cnyOeE3GQyb1WGLqI= 6 | github.com/google/gopacket v1.1.14/go.mod h1:UCLx9mCmAwsVbn6qQl1WIEt2SO7Nd2fD0th1TBAsqBw= 7 | github.com/google/gopacket v1.1.19 h1:ves8RnFZPGiFnTS0uPQStjwru6uO6h+nlr9j6fL7kF8= 8 | github.com/google/gopacket v1.1.19/go.mod h1:iJ8V8n6KS+z2U1A8pUwu8bW5SyEMkXJB8Yo/Vo+TKTo= 9 | github.com/mattn/go-colorable v0.0.9 h1:UVL0vNpWh04HeJXV0KLcaT7r06gOH2l4OW6ddYRUIY4= 10 | github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= 11 | github.com/mattn/go-isatty v0.0.3 h1:ns/ykhmWi7G9O+8a448SecJU3nSMBXJfqQkl0upE1jI= 12 | github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= 13 | github.com/mattn/go-runewidth v0.0.3 h1:a+kO+98RDGEfo6asOGMmpodZq4FNtnGP54yps8BzLR4= 14 | github.com/mattn/go-runewidth v0.0.3/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= 15 | github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b h1:j7+1HpAFS1zy5+Q4qx1fWh90gTKwiN4QCGoY9TWyyO4= 16 | github.com/mgutz/ansi v0.0.0-20170206155736-9520e82c474b/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE= 17 | github.com/olekukonko/tablewriter v0.0.0-20180506121414-d4647c9c7a84 h1:fiKJgB4JDUd43CApkmCeTSQlWjtTtABrU2qsgbuP0BI= 18 | github.com/olekukonko/tablewriter v0.0.0-20180506121414-d4647c9c7a84/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= 19 | github.com/pkg/errors v0.8.0 h1:WdK/asTD0HN+q6hsWO3/vpuAkAr+tw6aNJNDFFf0+qw= 20 | github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= 21 | github.com/pkg/profile v1.2.1 h1:F++O52m40owAmADcojzM+9gyjmMOY/T4oYJkgFDH8RE= 22 | github.com/pkg/profile v1.2.1/go.mod h1:hJw3o1OdXxsrSjjVksARp5W95eeEaEfptyVZyv6JUPA= 23 | github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= 24 | github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= 25 | github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= 26 | github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= 27 | github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= 28 | go.uber.org/atomic v1.3.2 h1:2Oa65PReHzfn29GpvgsYwloV9AVFHPDk8tYxt2c2tr4= 29 | go.uber.org/atomic v1.3.2/go.mod h1:gD2HeocX3+yG+ygLZcrzQJaqmWj9AIm7n08wl/qW/PE= 30 | go.uber.org/multierr v1.1.0 h1:HoEmRHQPVSqub6w2z2d2EOVs2fjyFRGyofhKuyDq0QI= 31 | go.uber.org/multierr v1.1.0/go.mod h1:wR5kodmAFQ0UK8QlbwjlSNy0Z68gJhDJUG5sjR94q/0= 32 | go.uber.org/zap v1.9.1 h1:XCJQEf3W6eZaVwhRBof6ImoYGJSITeKWsyeh3HFu/5o= 33 | go.uber.org/zap v1.9.1/go.mod h1:vwi/ZaCAaUcBkycHslxD9B2zi4UTXhF60s6SWpuDF0Q= 34 | golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= 35 | golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= 36 | golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= 37 | golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= 38 | golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= 39 | golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= 40 | golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= 41 | golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c h1:uHnKXcvx6SNkuwC+nrzxkJ+TpPwZOtumbhWrrOYN5YA= 42 | golang.org/x/sys v0.0.0-20180816055513-1c9583448a9c/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 43 | golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= 44 | golang.org/x/sys v0.0.0-20190412213103-97732733099d h1:+R4KGOnez64A81RvjARKc4UT5/tI9ujCIVX+P5KiHuI= 45 | golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= 46 | golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= 47 | golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= 48 | golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= 49 | gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= 50 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= 51 | gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= 52 | -------------------------------------------------------------------------------- /tls_clone/ticket.go: -------------------------------------------------------------------------------- 1 | // Copyright 2012 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package tls 6 | 7 | import ( 8 | "bytes" 9 | "crypto/aes" 10 | "crypto/cipher" 11 | "crypto/hmac" 12 | "crypto/sha256" 13 | "crypto/subtle" 14 | "errors" 15 | "io" 16 | ) 17 | 18 | // sessionState contains the information that is serialized into a session 19 | // ticket in order to later resume a connection. 20 | type sessionState struct { 21 | vers uint16 22 | cipherSuite uint16 23 | masterSecret []byte 24 | certificates [][]byte 25 | } 26 | 27 | func (s *sessionState) equal(i interface{}) bool { 28 | s1, ok := i.(*sessionState) 29 | if !ok { 30 | return false 31 | } 32 | 33 | if s.vers != s1.vers || 34 | s.cipherSuite != s1.cipherSuite || 35 | !bytes.Equal(s.masterSecret, s1.masterSecret) { 36 | return false 37 | } 38 | 39 | if len(s.certificates) != len(s1.certificates) { 40 | return false 41 | } 42 | 43 | for i := range s.certificates { 44 | if !bytes.Equal(s.certificates[i], s1.certificates[i]) { 45 | return false 46 | } 47 | } 48 | 49 | return true 50 | } 51 | 52 | func (s *sessionState) marshal() []byte { 53 | length := 2 + 2 + 2 + len(s.masterSecret) + 2 54 | for _, cert := range s.certificates { 55 | length += 4 + len(cert) 56 | } 57 | 58 | ret := make([]byte, length) 59 | x := ret 60 | x[0] = byte(s.vers >> 8) 61 | x[1] = byte(s.vers) 62 | x[2] = byte(s.cipherSuite >> 8) 63 | x[3] = byte(s.cipherSuite) 64 | x[4] = byte(len(s.masterSecret) >> 8) 65 | x[5] = byte(len(s.masterSecret)) 66 | x = x[6:] 67 | copy(x, s.masterSecret) 68 | x = x[len(s.masterSecret):] 69 | 70 | x[0] = byte(len(s.certificates) >> 8) 71 | x[1] = byte(len(s.certificates)) 72 | x = x[2:] 73 | 74 | for _, cert := range s.certificates { 75 | x[0] = byte(len(cert) >> 24) 76 | x[1] = byte(len(cert) >> 16) 77 | x[2] = byte(len(cert) >> 8) 78 | x[3] = byte(len(cert)) 79 | copy(x[4:], cert) 80 | x = x[4+len(cert):] 81 | } 82 | 83 | return ret 84 | } 85 | 86 | func (s *sessionState) unmarshal(data []byte) bool { 87 | if len(data) < 8 { 88 | return false 89 | } 90 | 91 | s.vers = uint16(data[0])<<8 | uint16(data[1]) 92 | s.cipherSuite = uint16(data[2])<<8 | uint16(data[3]) 93 | masterSecretLen := int(data[4])<<8 | int(data[5]) 94 | data = data[6:] 95 | if len(data) < masterSecretLen { 96 | return false 97 | } 98 | 99 | s.masterSecret = data[:masterSecretLen] 100 | data = data[masterSecretLen:] 101 | 102 | if len(data) < 2 { 103 | return false 104 | } 105 | 106 | numCerts := int(data[0])<<8 | int(data[1]) 107 | data = data[2:] 108 | 109 | s.certificates = make([][]byte, numCerts) 110 | for i := range s.certificates { 111 | if len(data) < 4 { 112 | return false 113 | } 114 | certLen := int(data[0])<<24 | int(data[1])<<16 | int(data[2])<<8 | int(data[3]) 115 | data = data[4:] 116 | if certLen < 0 { 117 | return false 118 | } 119 | if len(data) < certLen { 120 | return false 121 | } 122 | s.certificates[i] = data[:certLen] 123 | data = data[certLen:] 124 | } 125 | 126 | if len(data) > 0 { 127 | return false 128 | } 129 | 130 | return true 131 | } 132 | 133 | func (c *Conn) encryptTicket(state *sessionState) ([]byte, error) { 134 | serialized := state.marshal() 135 | encrypted := make([]byte, aes.BlockSize+len(serialized)+sha256.Size) 136 | iv := encrypted[:aes.BlockSize] 137 | macBytes := encrypted[len(encrypted)-sha256.Size:] 138 | 139 | if _, err := io.ReadFull(c.config.rand(), iv); err != nil { 140 | return nil, err 141 | } 142 | block, err := aes.NewCipher(c.config.SessionTicketKey[:16]) 143 | if err != nil { 144 | return nil, errors.New("tls: failed to create cipher while encrypting ticket: " + err.Error()) 145 | } 146 | cipher.NewCTR(block, iv).XORKeyStream(encrypted[aes.BlockSize:], serialized) 147 | 148 | mac := hmac.New(sha256.New, c.config.SessionTicketKey[16:32]) 149 | mac.Write(encrypted[:len(encrypted)-sha256.Size]) 150 | mac.Sum(macBytes[:0]) 151 | 152 | return encrypted, nil 153 | } 154 | 155 | func (c *Conn) decryptTicket(encrypted []byte) (*sessionState, bool) { 156 | if c.config.SessionTicketsDisabled || 157 | len(encrypted) < aes.BlockSize+sha256.Size { 158 | return nil, false 159 | } 160 | 161 | iv := encrypted[:aes.BlockSize] 162 | macBytes := encrypted[len(encrypted)-sha256.Size:] 163 | 164 | mac := hmac.New(sha256.New, c.config.SessionTicketKey[16:32]) 165 | mac.Write(encrypted[:len(encrypted)-sha256.Size]) 166 | expected := mac.Sum(nil) 167 | 168 | if subtle.ConstantTimeCompare(macBytes, expected) != 1 { 169 | return nil, false 170 | } 171 | 172 | block, err := aes.NewCipher(c.config.SessionTicketKey[:16]) 173 | if err != nil { 174 | return nil, false 175 | } 176 | ciphertext := encrypted[aes.BlockSize : len(encrypted)-sha256.Size] 177 | plaintext := ciphertext 178 | cipher.NewCTR(block, iv).XORKeyStream(plaintext, ciphertext) 179 | 180 | state := new(sessionState) 181 | ok := state.unmarshal(plaintext) 182 | return state, ok 183 | } 184 | -------------------------------------------------------------------------------- /tls_clone/generate_cert.go: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | // +build ignore 6 | 7 | // Generate a self-signed X.509 certificate for a TLS server. Outputs to 8 | // 'cert.pem' and 'key.pem' and will overwrite existing files. 9 | 10 | package main 11 | 12 | import ( 13 | "crypto/ecdsa" 14 | "crypto/elliptic" 15 | "crypto/rand" 16 | "crypto/rsa" 17 | "crypto/x509" 18 | "crypto/x509/pkix" 19 | "encoding/pem" 20 | "flag" 21 | "fmt" 22 | "log" 23 | "math/big" 24 | "net" 25 | "os" 26 | "strings" 27 | "time" 28 | ) 29 | 30 | var ( 31 | host = flag.String("host", "", "Comma-separated hostnames and IPs to generate a certificate for") 32 | validFrom = flag.String("start-date", "", "Creation date formatted as Jan 1 15:04:05 2011") 33 | validFor = flag.Duration("duration", 365*24*time.Hour, "Duration that certificate is valid for") 34 | isCA = flag.Bool("ca", false, "whether this cert should be its own Certificate Authority") 35 | rsaBits = flag.Int("rsa-bits", 2048, "Size of RSA key to generate. Ignored if --ecdsa-curve is set") 36 | ecdsaCurve = flag.String("ecdsa-curve", "", "ECDSA curve to use to generate a key. Valid values are P224, P256, P384, P521") 37 | ) 38 | 39 | func publicKey(priv interface{}) interface{} { 40 | switch k := priv.(type) { 41 | case *rsa.PrivateKey: 42 | return &k.PublicKey 43 | case *ecdsa.PrivateKey: 44 | return &k.PublicKey 45 | default: 46 | return nil 47 | } 48 | } 49 | 50 | func pemBlockForKey(priv interface{}) *pem.Block { 51 | switch k := priv.(type) { 52 | case *rsa.PrivateKey: 53 | return &pem.Block{Type: "RSA PRIVATE KEY", Bytes: x509.MarshalPKCS1PrivateKey(k)} 54 | case *ecdsa.PrivateKey: 55 | b, err := x509.MarshalECPrivateKey(k) 56 | if err != nil { 57 | fmt.Fprintf(os.Stderr, "Unable to marshal ECDSA private key: %v", err) 58 | os.Exit(2) 59 | } 60 | return &pem.Block{Type: "EC PRIVATE KEY", Bytes: b} 61 | default: 62 | return nil 63 | } 64 | } 65 | 66 | func main() { 67 | flag.Parse() 68 | 69 | if len(*host) == 0 { 70 | log.Fatalf("Missing required --host parameter") 71 | } 72 | 73 | var priv interface{} 74 | var err error 75 | switch *ecdsaCurve { 76 | case "": 77 | priv, err = rsa.GenerateKey(rand.Reader, *rsaBits) 78 | case "P224": 79 | priv, err = ecdsa.GenerateKey(elliptic.P224(), rand.Reader) 80 | case "P256": 81 | priv, err = ecdsa.GenerateKey(elliptic.P256(), rand.Reader) 82 | case "P384": 83 | priv, err = ecdsa.GenerateKey(elliptic.P384(), rand.Reader) 84 | case "P521": 85 | priv, err = ecdsa.GenerateKey(elliptic.P521(), rand.Reader) 86 | default: 87 | fmt.Fprintf(os.Stderr, "Unrecognized elliptic curve: %q", *ecdsaCurve) 88 | os.Exit(1) 89 | } 90 | if err != nil { 91 | log.Fatalf("failed to generate private key: %s", err) 92 | } 93 | 94 | var notBefore time.Time 95 | if len(*validFrom) == 0 { 96 | notBefore = time.Now() 97 | } else { 98 | notBefore, err = time.Parse("Jan 2 15:04:05 2006", *validFrom) 99 | if err != nil { 100 | fmt.Fprintf(os.Stderr, "Failed to parse creation date: %s\n", err) 101 | os.Exit(1) 102 | } 103 | } 104 | 105 | notAfter := notBefore.Add(*validFor) 106 | 107 | serialNumberLimit := new(big.Int).Lsh(big.NewInt(1), 128) 108 | serialNumber, err := rand.Int(rand.Reader, serialNumberLimit) 109 | if err != nil { 110 | log.Fatalf("failed to generate serial number: %s", err) 111 | } 112 | 113 | template := x509.Certificate{ 114 | SerialNumber: serialNumber, 115 | Subject: pkix.Name{ 116 | Organization: []string{"Acme Co"}, 117 | }, 118 | NotBefore: notBefore, 119 | NotAfter: notAfter, 120 | 121 | KeyUsage: x509.KeyUsageKeyEncipherment | x509.KeyUsageDigitalSignature, 122 | ExtKeyUsage: []x509.ExtKeyUsage{x509.ExtKeyUsageServerAuth}, 123 | BasicConstraintsValid: true, 124 | } 125 | 126 | hosts := strings.Split(*host, ",") 127 | for _, h := range hosts { 128 | if ip := net.ParseIP(h); ip != nil { 129 | template.IPAddresses = append(template.IPAddresses, ip) 130 | } else { 131 | template.DNSNames = append(template.DNSNames, h) 132 | } 133 | } 134 | 135 | if *isCA { 136 | template.IsCA = true 137 | template.KeyUsage |= x509.KeyUsageCertSign 138 | } 139 | 140 | derBytes, err := x509.CreateCertificate(rand.Reader, &template, &template, publicKey(priv), priv) 141 | if err != nil { 142 | log.Fatalf("Failed to create certificate: %s", err) 143 | } 144 | 145 | certOut, err := os.Create("cert.pem") 146 | if err != nil { 147 | log.Fatalf("failed to open cert.pem for writing: %s", err) 148 | } 149 | pem.Encode(certOut, &pem.Block{Type: "CERTIFICATE", Bytes: derBytes}) 150 | certOut.Close() 151 | log.Print("written cert.pem\n") 152 | 153 | keyOut, err := os.OpenFile("key.pem", os.O_WRONLY|os.O_CREATE|os.O_TRUNC, 0600) 154 | if err != nil { 155 | log.Print("failed to open key.pem for writing:", err) 156 | return 157 | } 158 | pem.Encode(keyOut, pemBlockForKey(priv)) 159 | keyOut.Close() 160 | log.Print("written key.pem\n") 161 | } 162 | -------------------------------------------------------------------------------- /tls_clone/handshake_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2013 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package tls 6 | 7 | import ( 8 | "bufio" 9 | "encoding/hex" 10 | "errors" 11 | "flag" 12 | "fmt" 13 | "io" 14 | "io/ioutil" 15 | "net" 16 | "strconv" 17 | "strings" 18 | "sync" 19 | ) 20 | 21 | // TLS reference tests run a connection against a reference implementation 22 | // (OpenSSL) of TLS and record the bytes of the resulting connection. The Go 23 | // code, during a test, is configured with deterministic randomness and so the 24 | // reference test can be reproduced exactly in the future. 25 | // 26 | // In order to save everyone who wishes to run the tests from needing the 27 | // reference implementation installed, the reference connections are saved in 28 | // files in the testdata directory. Thus running the tests involves nothing 29 | // external, but creating and updating them requires the reference 30 | // implementation. 31 | // 32 | // Tests can be updated by running them with the -update flag. This will cause 33 | // the test files. Generally one should combine the -update flag with -test.run 34 | // to updated a specific test. Since the reference implementation will always 35 | // generate fresh random numbers, large parts of the reference connection will 36 | // always change. 37 | 38 | var update = flag.Bool("update", false, "update golden files on disk") 39 | 40 | // recordingConn is a net.Conn that records the traffic that passes through it. 41 | // WriteTo can be used to produce output that can be later be loaded with 42 | // ParseTestData. 43 | type recordingConn struct { 44 | net.Conn 45 | sync.Mutex 46 | flows [][]byte 47 | reading bool 48 | } 49 | 50 | func (r *recordingConn) Read(b []byte) (n int, err error) { 51 | if n, err = r.Conn.Read(b); n == 0 { 52 | return 53 | } 54 | b = b[:n] 55 | 56 | r.Lock() 57 | defer r.Unlock() 58 | 59 | if l := len(r.flows); l == 0 || !r.reading { 60 | buf := make([]byte, len(b)) 61 | copy(buf, b) 62 | r.flows = append(r.flows, buf) 63 | } else { 64 | r.flows[l-1] = append(r.flows[l-1], b[:n]...) 65 | } 66 | r.reading = true 67 | return 68 | } 69 | 70 | func (r *recordingConn) Write(b []byte) (n int, err error) { 71 | if n, err = r.Conn.Write(b); n == 0 { 72 | return 73 | } 74 | b = b[:n] 75 | 76 | r.Lock() 77 | defer r.Unlock() 78 | 79 | if l := len(r.flows); l == 0 || r.reading { 80 | buf := make([]byte, len(b)) 81 | copy(buf, b) 82 | r.flows = append(r.flows, buf) 83 | } else { 84 | r.flows[l-1] = append(r.flows[l-1], b[:n]...) 85 | } 86 | r.reading = false 87 | return 88 | } 89 | 90 | // WriteTo writes Go source code to w that contains the recorded traffic. 91 | func (r *recordingConn) WriteTo(w io.Writer) { 92 | // TLS always starts with a client to server flow. 93 | clientToServer := true 94 | 95 | for i, flow := range r.flows { 96 | source, dest := "client", "server" 97 | if !clientToServer { 98 | source, dest = dest, source 99 | } 100 | fmt.Fprintf(w, ">>> Flow %d (%s to %s)\n", i+1, source, dest) 101 | dumper := hex.Dumper(w) 102 | dumper.Write(flow) 103 | dumper.Close() 104 | clientToServer = !clientToServer 105 | } 106 | } 107 | 108 | func parseTestData(r io.Reader) (flows [][]byte, err error) { 109 | var currentFlow []byte 110 | 111 | scanner := bufio.NewScanner(r) 112 | for scanner.Scan() { 113 | line := scanner.Text() 114 | // If the line starts with ">>> " then it marks the beginning 115 | // of a new flow. 116 | if strings.HasPrefix(line, ">>> ") { 117 | if len(currentFlow) > 0 || len(flows) > 0 { 118 | flows = append(flows, currentFlow) 119 | currentFlow = nil 120 | } 121 | continue 122 | } 123 | 124 | // Otherwise the line is a line of hex dump that looks like: 125 | // 00000170 fc f5 06 bf (...) |.....X{&?......!| 126 | // (Some bytes have been omitted from the middle section.) 127 | 128 | if i := strings.IndexByte(line, ' '); i >= 0 { 129 | line = line[i:] 130 | } else { 131 | return nil, errors.New("invalid test data") 132 | } 133 | 134 | if i := strings.IndexByte(line, '|'); i >= 0 { 135 | line = line[:i] 136 | } else { 137 | return nil, errors.New("invalid test data") 138 | } 139 | 140 | hexBytes := strings.Fields(line) 141 | for _, hexByte := range hexBytes { 142 | val, err := strconv.ParseUint(hexByte, 16, 8) 143 | if err != nil { 144 | return nil, errors.New("invalid hex byte in test data: " + err.Error()) 145 | } 146 | currentFlow = append(currentFlow, byte(val)) 147 | } 148 | } 149 | 150 | if len(currentFlow) > 0 { 151 | flows = append(flows, currentFlow) 152 | } 153 | 154 | return flows, nil 155 | } 156 | 157 | // tempFile creates a temp file containing contents and returns its path. 158 | func tempFile(contents string) string { 159 | file, err := ioutil.TempFile("", "go-tls-test") 160 | if err != nil { 161 | panic("failed to create temp file: " + err.Error()) 162 | } 163 | path := file.Name() 164 | file.WriteString(contents) 165 | file.Close() 166 | return path 167 | } 168 | -------------------------------------------------------------------------------- /tls_clone/prf_test.go: -------------------------------------------------------------------------------- 1 | // Copyright 2009 The Go Authors. All rights reserved. 2 | // Use of this source code is governed by a BSD-style 3 | // license that can be found in the LICENSE file. 4 | 5 | package tls 6 | 7 | import ( 8 | "encoding/hex" 9 | "testing" 10 | ) 11 | 12 | type testSplitPreMasterSecretTest struct { 13 | in, out1, out2 string 14 | } 15 | 16 | var testSplitPreMasterSecretTests = []testSplitPreMasterSecretTest{ 17 | {"", "", ""}, 18 | {"00", "00", "00"}, 19 | {"0011", "00", "11"}, 20 | {"001122", "0011", "1122"}, 21 | {"00112233", "0011", "2233"}, 22 | } 23 | 24 | func TestSplitPreMasterSecret(t *testing.T) { 25 | for i, test := range testSplitPreMasterSecretTests { 26 | in, _ := hex.DecodeString(test.in) 27 | out1, out2 := splitPreMasterSecret(in) 28 | s1 := hex.EncodeToString(out1) 29 | s2 := hex.EncodeToString(out2) 30 | if s1 != test.out1 || s2 != test.out2 { 31 | t.Errorf("#%d: got: (%s, %s) want: (%s, %s)", i, s1, s2, test.out1, test.out2) 32 | } 33 | } 34 | } 35 | 36 | type testKeysFromTest struct { 37 | version uint16 38 | preMasterSecret string 39 | clientRandom, serverRandom string 40 | masterSecret string 41 | clientMAC, serverMAC string 42 | clientKey, serverKey string 43 | macLen, keyLen int 44 | } 45 | 46 | func TestKeysFromPreMasterSecret(t *testing.T) { 47 | for i, test := range testKeysFromTests { 48 | in, _ := hex.DecodeString(test.preMasterSecret) 49 | clientRandom, _ := hex.DecodeString(test.clientRandom) 50 | serverRandom, _ := hex.DecodeString(test.serverRandom) 51 | 52 | masterSecret := masterFromPreMasterSecret(test.version, in, clientRandom, serverRandom) 53 | if s := hex.EncodeToString(masterSecret); s != test.masterSecret { 54 | t.Errorf("#%d: bad master secret %s, want %s", i, s, test.masterSecret) 55 | continue 56 | } 57 | 58 | clientMAC, serverMAC, clientKey, serverKey, _, _ := keysFromMasterSecret(test.version, masterSecret, clientRandom, serverRandom, test.macLen, test.keyLen, 0) 59 | clientMACString := hex.EncodeToString(clientMAC) 60 | serverMACString := hex.EncodeToString(serverMAC) 61 | clientKeyString := hex.EncodeToString(clientKey) 62 | serverKeyString := hex.EncodeToString(serverKey) 63 | if clientMACString != test.clientMAC || 64 | serverMACString != test.serverMAC || 65 | clientKeyString != test.clientKey || 66 | serverKeyString != test.serverKey { 67 | t.Errorf("#%d: got: (%s, %s, %s, %s) want: (%s, %s, %s, %s)", i, clientMACString, serverMACString, clientKeyString, serverKeyString, test.clientMAC, test.serverMAC, test.clientKey, test.serverKey) 68 | } 69 | } 70 | } 71 | 72 | // These test vectors were generated from GnuTLS using `gnutls-cli --insecure -d 9 ` 73 | var testKeysFromTests = []testKeysFromTest{ 74 | { 75 | VersionTLS10, 76 | "0302cac83ad4b1db3b9ab49ad05957de2a504a634a386fc600889321e1a971f57479466830ac3e6f468e87f5385fa0c5", 77 | "4ae66303755184a3917fcb44880605fcc53baa01912b22ed94473fc69cebd558", 78 | "4ae663020ec16e6bb5130be918cfcafd4d765979a3136a5d50c593446e4e44db", 79 | "3d851bab6e5556e959a16bc36d66cfae32f672bfa9ecdef6096cbb1b23472df1da63dbbd9827606413221d149ed08ceb", 80 | "805aaa19b3d2c0a0759a4b6c9959890e08480119", 81 | "2d22f9fe519c075c16448305ceee209fc24ad109", 82 | "d50b5771244f850cd8117a9ccafe2cf1", 83 | "e076e33206b30507a85c32855acd0919", 84 | 20, 85 | 16, 86 | }, 87 | { 88 | VersionTLS10, 89 | "03023f7527316bc12cbcd69e4b9e8275d62c028f27e65c745cfcddc7ce01bd3570a111378b63848127f1c36e5f9e4890", 90 | "4ae66364b5ea56b20ce4e25555aed2d7e67f42788dd03f3fee4adae0459ab106", 91 | "4ae66363ab815cbf6a248b87d6b556184e945e9b97fbdf247858b0bdafacfa1c", 92 | "7d64be7c80c59b740200b4b9c26d0baaa1c5ae56705acbcf2307fe62beb4728c19392c83f20483801cce022c77645460", 93 | "97742ed60a0554ca13f04f97ee193177b971e3b0", 94 | "37068751700400e03a8477a5c7eec0813ab9e0dc", 95 | "207cddbc600d2a200abac6502053ee5c", 96 | "df3f94f6e1eacc753b815fe16055cd43", 97 | 20, 98 | 16, 99 | }, 100 | { 101 | VersionTLS10, 102 | "832d515f1d61eebb2be56ba0ef79879efb9b527504abb386fb4310ed5d0e3b1f220d3bb6b455033a2773e6d8bdf951d278a187482b400d45deb88a5d5a6bb7d6a7a1decc04eb9ef0642876cd4a82d374d3b6ff35f0351dc5d411104de431375355addc39bfb1f6329fb163b0bc298d658338930d07d313cd980a7e3d9196cac1", 103 | "4ae663b2ee389c0de147c509d8f18f5052afc4aaf9699efe8cb05ece883d3a5e", 104 | "4ae664d503fd4cff50cfc1fb8fc606580f87b0fcdac9554ba0e01d785bdf278e", 105 | "1aff2e7a2c4279d0126f57a65a77a8d9d0087cf2733366699bec27eb53d5740705a8574bb1acc2abbe90e44f0dd28d6c", 106 | "3c7647c93c1379a31a609542aa44e7f117a70085", 107 | "0d73102994be74a575a3ead8532590ca32a526d4", 108 | "ac7581b0b6c10d85bbd905ffbf36c65e", 109 | "ff07edde49682b45466bd2e39464b306", 110 | 20, 111 | 16, 112 | }, 113 | { 114 | VersionSSL30, 115 | "832d515f1d61eebb2be56ba0ef79879efb9b527504abb386fb4310ed5d0e3b1f220d3bb6b455033a2773e6d8bdf951d278a187482b400d45deb88a5d5a6bb7d6a7a1decc04eb9ef0642876cd4a82d374d3b6ff35f0351dc5d411104de431375355addc39bfb1f6329fb163b0bc298d658338930d07d313cd980a7e3d9196cac1", 116 | "4ae663b2ee389c0de147c509d8f18f5052afc4aaf9699efe8cb05ece883d3a5e", 117 | "4ae664d503fd4cff50cfc1fb8fc606580f87b0fcdac9554ba0e01d785bdf278e", 118 | "a614863e56299dcffeea2938f22c2ba023768dbe4b3f6877bc9c346c6ae529b51d9cb87ff9695ea4d01f2205584405b2", 119 | "2c450d5b6f6e2013ac6bea6a0b32200d4e1ffb94", 120 | "7a7a7438769536f2fb1ae49a61f0703b79b2dc53", 121 | "f8f6b26c10f12855c9aafb1e0e839ccf", 122 | "2b9d4b4a60cb7f396780ebff50650419", 123 | 20, 124 | 16, 125 | }, 126 | } 127 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv12-SNI: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 70 01 00 00 6c 03 03 52 cc 57 59 2d |....p...l..R.WY-| 3 | 00000010 77 aa 75 35 fa ff 2a a2 bf 91 5e e3 7f 38 7d 7a |w.u5..*...^..8}z| 4 | 00000020 e3 93 d3 e8 8b 09 bb 06 c8 6d 91 00 00 04 00 2f |.........m...../| 5 | 00000030 00 ff 01 00 00 3f 00 00 00 10 00 0e 00 00 0b 73 |.....?.........s| 6 | 00000040 6e 69 74 65 73 74 2e 63 6f 6d 00 0d 00 22 00 20 |nitest.com...". | 7 | 00000050 06 01 06 02 06 03 05 01 05 02 05 03 04 01 04 02 |................| 8 | 00000060 04 03 03 01 03 02 03 03 02 01 02 02 02 03 01 01 |................| 9 | 00000070 00 0f 00 01 01 |.....| 10 | >>> Flow 2 (server to client) 11 | 00000000 16 03 03 00 31 02 00 00 2d 03 03 00 00 00 00 00 |....1...-.......| 12 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 13 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 2f 00 00 |............./..| 14 | 00000030 05 ff 01 00 01 00 16 03 03 02 00 0b 00 01 fc 00 |................| 15 | 00000040 01 f9 00 01 f6 30 82 01 f2 30 82 01 5d a0 03 02 |.....0...0..]...| 16 | 00000050 01 02 02 01 00 30 0b 06 09 2a 86 48 86 f7 0d 01 |.....0...*.H....| 17 | 00000060 01 05 30 28 31 10 30 0e 06 03 55 04 0a 13 07 41 |..0(1.0...U....A| 18 | 00000070 63 6d 65 20 43 6f 31 14 30 12 06 03 55 04 03 13 |cme Co1.0...U...| 19 | 00000080 0b 73 6e 69 74 65 73 74 2e 63 6f 6d 30 1e 17 0d |.snitest.com0...| 20 | 00000090 31 32 30 34 31 31 31 37 34 30 33 35 5a 17 0d 31 |120411174035Z..1| 21 | 000000a0 33 30 34 31 31 31 37 34 35 33 35 5a 30 28 31 10 |30411174535Z0(1.| 22 | 000000b0 30 0e 06 03 55 04 0a 13 07 41 63 6d 65 20 43 6f |0...U....Acme Co| 23 | 000000c0 31 14 30 12 06 03 55 04 03 13 0b 73 6e 69 74 65 |1.0...U....snite| 24 | 000000d0 73 74 2e 63 6f 6d 30 81 9d 30 0b 06 09 2a 86 48 |st.com0..0...*.H| 25 | 000000e0 86 f7 0d 01 01 01 03 81 8d 00 30 81 89 02 81 81 |..........0.....| 26 | 000000f0 00 bb 79 d6 f5 17 b5 e5 bf 46 10 d0 dc 69 be e6 |..y......F...i..| 27 | 00000100 2b 07 43 5a d0 03 2d 8a 7a 43 85 b7 14 52 e7 a5 |+.CZ..-.zC...R..| 28 | 00000110 65 4c 2c 78 b8 23 8c b5 b4 82 e5 de 1f 95 3b 7e |eL,x.#........;~| 29 | 00000120 62 a5 2c a5 33 d6 fe 12 5c 7a 56 fc f5 06 bf fa |b.,.3...\zV.....| 30 | 00000130 58 7b 26 3f b5 cd 04 d3 d0 c9 21 96 4a c7 f4 54 |X{&?......!.J..T| 31 | 00000140 9f 5a bf ef 42 71 00 fe 18 99 07 7f 7e 88 7d 7d |.Z..Bq......~.}}| 32 | 00000150 f1 04 39 c4 a2 2e db 51 c9 7c e3 c0 4c 3b 32 66 |..9....Q.|..L;2f| 33 | 00000160 01 cf af b1 1d b8 71 9a 1d db db 89 6b ae da 2d |......q.....k..-| 34 | 00000170 79 02 03 01 00 01 a3 32 30 30 30 0e 06 03 55 1d |y......2000...U.| 35 | 00000180 0f 01 01 ff 04 04 03 02 00 a0 30 0d 06 03 55 1d |..........0...U.| 36 | 00000190 0e 04 06 04 04 01 02 03 04 30 0f 06 03 55 1d 23 |.........0...U.#| 37 | 000001a0 04 08 30 06 80 04 01 02 03 04 30 0b 06 09 2a 86 |..0.......0...*.| 38 | 000001b0 48 86 f7 0d 01 01 05 03 81 81 00 89 c6 45 5f 1c |H............E_.| 39 | 000001c0 1f 5e f8 eb 1a b1 74 ee 24 39 05 9f 5c 42 59 bb |.^....t.$9..\BY.| 40 | 000001d0 1a 8d 86 cd b1 d0 56 f5 6a 71 7d a4 0e 95 ab 90 |......V.jq}.....| 41 | 000001e0 f5 9e 8d ea f6 27 c1 57 99 50 94 db 08 02 26 6e |.....'.W.P....&n| 42 | 000001f0 b3 4f c6 84 2d ea 8a 4b 68 d9 c1 38 91 03 ab 84 |.O..-..Kh..8....| 43 | 00000200 fb 9e 1f 85 d9 b5 d2 3f f2 31 2c 86 70 fb b5 40 |.......?.1,.p..@| 44 | 00000210 14 82 45 a4 eb af e2 64 d9 0c 8a 4c f4 f8 5b 0f |..E....d...L..[.| 45 | 00000220 ac 12 ac 2f c4 a3 15 4b ad 52 46 28 68 af 96 c6 |.../...K.RF(h...| 46 | 00000230 2c 65 25 d6 52 b6 e3 18 45 bd cc 16 03 03 00 04 |,e%.R...E.......| 47 | 00000240 0e 00 00 00 |....| 48 | >>> Flow 3 (client to server) 49 | 00000000 16 03 03 00 86 10 00 00 82 00 80 0d f2 bf 75 a9 |..............u.| 50 | 00000010 aa db f3 25 55 d4 20 59 63 54 d1 70 82 f9 61 c5 |...%U. YcT.p..a.| 51 | 00000020 b7 ae 3f 75 71 75 9d c5 01 a1 ed b1 07 66 9f 3f |..?uqu.......f.?| 52 | 00000030 cf c6 e6 ad 44 03 fd 18 6f 53 24 ce 76 01 bd fe |....D...oS$.v...| 53 | 00000040 e2 51 f7 df 8a 23 3a 21 c4 00 15 ff d0 e0 ff c8 |.Q...#:!........| 54 | 00000050 8b 89 33 c6 8e e0 ce 97 ef b4 c6 f9 b0 ea 38 89 |..3...........8.| 55 | 00000060 79 98 34 9e f7 bc c6 fd d2 5d 56 84 5c d2 9a ce |y.4......]V.\...| 56 | 00000070 ae de 09 bc 24 25 fc 09 0c bc 0e 91 0d 6b 36 ae |....$%.......k6.| 57 | 00000080 ce 6b cd 14 ec b6 3c fa d6 df fc 14 03 03 00 01 |.k....<.........| 58 | 00000090 01 16 03 03 00 40 ad 21 13 2b 33 7a 4a 0d fb 0f |.....@.!.+3zJ...| 59 | 000000a0 eb d2 b6 85 29 1f 59 79 ba 86 53 5c 68 b4 c7 e3 |....).Yy..S\h...| 60 | 000000b0 8a 6c 5c 18 04 4d e4 76 19 30 ba 92 b4 79 8c 64 |.l\..M.v.0...y.d| 61 | 000000c0 00 a0 2e 13 96 45 9f e7 a9 e4 23 9e 9f 89 23 26 |.....E....#...#&| 62 | 000000d0 36 20 82 fc 75 fe |6 ..u.| 63 | >>> Flow 4 (server to client) 64 | 00000000 14 03 03 00 01 01 16 03 03 00 40 00 00 00 00 00 |..........@.....| 65 | 00000010 00 00 00 00 00 00 00 00 00 00 00 b7 87 61 10 03 |.............a..| 66 | 00000020 b8 a4 42 d4 8b 49 bc 40 80 70 92 c8 25 b0 c6 7f |..B..I.@.p..%...| 67 | 00000030 b3 87 76 50 5a 59 b3 3c d8 3e 23 24 aa 1a f3 36 |..vPZY.<.>#$...6| 68 | 00000040 c9 2c 87 c1 22 d2 94 f8 2c fd ef 17 03 03 00 40 |.,.."...,......@| 69 | 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 70 | 00000060 e5 7f bd 3e ff 9f d4 1b 91 02 f8 69 6f 70 9d 51 |...>.......iop.Q| 71 | 00000070 a5 ec ef 5b 10 3f 4e 3f 44 e5 9a 39 68 7c 3a b9 |...[.?N?D..9h|:.| 72 | 00000080 69 38 31 ec 9c 45 bf 19 d1 5c 5e 2e 06 00 ca 19 |i81..E...\^.....| 73 | 00000090 15 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| 74 | 000000a0 00 00 00 00 00 63 5e 79 2c f2 05 dc 2b d7 5b ac |.....c^y,...+.[.| 75 | 000000b0 9d fc 75 94 03 16 ca 1f b2 75 58 2d f1 2f f1 1e |..u......uX-./..| 76 | 000000c0 d2 f6 84 8f 2e |.....| 77 | -------------------------------------------------------------------------------- /extractor.go: -------------------------------------------------------------------------------- 1 | package certgrep 2 | 3 | import ( 4 | "encoding/hex" 5 | "fmt" 6 | "io" 7 | "os" 8 | "os/user" 9 | "runtime" 10 | "strings" 11 | "sync" 12 | "time" 13 | 14 | "github.com/google/gopacket" 15 | "github.com/google/gopacket/layers" 16 | "github.com/google/gopacket/pcap" 17 | "github.com/google/gopacket/tcpassembly" 18 | "github.com/mgutz/ansi" 19 | "github.com/olekukonko/tablewriter" 20 | "go.uber.org/zap" 21 | ) 22 | 23 | const ( 24 | //snaplen = 65536 25 | maxAge = 30 * time.Second 26 | dumpPackets = false 27 | defaultDirPerm = 0755 28 | ) 29 | 30 | var ( 31 | redError = ansi.ColorFunc("red+b") 32 | phosphorize = ansi.ColorFunc("166+h:black") 33 | ) 34 | 35 | type Extractor struct { 36 | handle *pcap.Handle 37 | logger *zap.SugaredLogger 38 | verbose bool 39 | bpf string 40 | outputOptions outputOptions 41 | close chan struct{} 42 | closeOnce sync.Once 43 | logToStdout bool 44 | } 45 | 46 | func NewExtractor(handle *pcap.Handle, options ...Option) (*Extractor, error) { 47 | e := &Extractor{ 48 | handle: handle, 49 | close: make(chan struct{}), 50 | } 51 | 52 | for _, option := range options { 53 | err := option(e) 54 | if err != nil { 55 | return nil, err 56 | } 57 | } 58 | 59 | return e, nil 60 | } 61 | 62 | func (e *Extractor) Close() { 63 | e.closeOnce.Do(func() { 64 | close(e.close) 65 | }) 66 | } 67 | 68 | func (e *Extractor) Run() (err error) { 69 | packetSource := gopacket.NewPacketSource(e.handle, e.handle.LinkType()) 70 | logFile := "extractor.log" 71 | if e.logToStdout { 72 | logLine = "-" 73 | } 74 | output, err := newOutput(logFile, e.outputOptions) 75 | if err != nil { 76 | return err 77 | } 78 | pool := tcpassembly.NewStreamPool(&readerFactory{ 79 | logger: e.logger.Named("reader"), 80 | output: output, 81 | }) 82 | assembler := tcpassembly.NewAssembler(pool) 83 | packets := packetSource.Packets() 84 | ticker := time.Tick(maxAge) 85 | 86 | e.logger.Infof("setting output dir to: %s", e.outputOptions.dir) 87 | 88 | var ( 89 | lastFlush time.Time 90 | firstPacket time.Time 91 | current time.Time 92 | processed int64 93 | c int64 94 | ) 95 | 96 | start := time.Now() 97 | 98 | for { 99 | select { 100 | case <-e.close: 101 | goto done 102 | case packet := <-packets: 103 | // A nil packet indicates the end of a pcap file. 104 | if packet == nil { 105 | // TODO: find a better way to let flow workers finish 106 | time.Sleep(500 * time.Millisecond) 107 | //if Config.verbose { 108 | e.logger.Debugf("last packet, goodbye.") 109 | //} 110 | output.WaitUntilDone() 111 | goto done 112 | } 113 | 114 | current = packet.Metadata().Timestamp 115 | processed += int64(len(packet.Data())) 116 | c++ // go is better 117 | 118 | // first packet 119 | if lastFlush.IsZero() { 120 | lastFlush = current 121 | firstPacket = current 122 | } 123 | 124 | if err := packet.ErrorLayer(); err != nil { 125 | //fmt.Println(err) 126 | } else { 127 | if netLayer := packet.NetworkLayer(); netLayer != nil { 128 | flow := netLayer.NetworkFlow() 129 | if tcpLayer := packet.Layer(layers.LayerTypeTCP); tcpLayer != nil { 130 | tcp, _ := tcpLayer.(*layers.TCP) 131 | if dumpPackets { 132 | e.logger.Debugf("%s\n%s", flow.String(), phosphorize(hex.Dump(tcpLayer.LayerPayload()))) 133 | } 134 | assembler.AssembleWithTimestamp(flow, tcp, current) 135 | /* 136 | if Config.metrics { 137 | packetCount.Mark(1) 138 | } 139 | */ 140 | } 141 | } 142 | } 143 | 144 | if current.Sub(lastFlush) > maxAge { 145 | assembler.FlushOlderThan(lastFlush) 146 | lastFlush = current 147 | /* 148 | if Config.metrics { 149 | grGauge.Update(int64(runtime.NumGoroutine())) 150 | flushedCount.Mark(int64(flushed)) 151 | doFlush.Mark(1) 152 | } 153 | */ 154 | } 155 | case <-ticker: 156 | assembler.FlushOlderThan(time.Now().Add(-1 * maxAge)) 157 | /* 158 | if Config.metrics { 159 | grGauge.Update(int64(runtime.NumGoroutine())) 160 | flushedCount.Mark(int64(flushed)) 161 | doFlush.Mark(1) 162 | } 163 | */ 164 | } 165 | } 166 | 167 | done: 168 | e.logger.Infof("capture time: %.f seconds", current.Sub(firstPacket).Seconds()) 169 | e.logger.Infof("capture size: %d bytes", processed) 170 | 171 | bps := 8 * (float64(processed) / current.Sub(firstPacket).Seconds()) 172 | if bps < 1024*1024 { 173 | e.logger.Infof("average capture rate: %.3f Kbit/s", bps/1024) 174 | } else if bps < 1024*1024*1024 { 175 | e.logger.Infof("average capture rate: %.3f Mbit/s", bps/(1024*1024)) 176 | } else { 177 | e.logger.Infof("average capture rate: %.3f Gbit/s", bps/(1024*1024*1024)) 178 | } 179 | e.logger.Infof("pps: %.f", float64(c)/time.Now().Sub(start).Seconds()) 180 | 181 | return 182 | } 183 | 184 | func PrintDeviceTable(out io.Writer, logger *zap.SugaredLogger) error { 185 | if runtime.GOOS == "linux" { 186 | if os.Geteuid() != 0 { 187 | logger.Info("Not all capture devices may be visible with your current user.") 188 | } 189 | } 190 | 191 | ifs, err := pcap.FindAllDevs() 192 | if err != nil { 193 | return err 194 | } 195 | 196 | if len(ifs) == 0 { 197 | me, _ := user.Current() 198 | return fmt.Errorf("No devices found. Does user \"%s\" have access?", me.Name) 199 | } 200 | tbl := tablewriter.NewWriter(out) 201 | tbl.SetHeader([]string{"name", "addresses", "description"}) 202 | tbl.SetRowLine(true) 203 | 204 | for _, dev := range ifs { 205 | var addresses []string 206 | 207 | for _, a := range dev.Addresses { 208 | addresses = append(addresses, a.IP.String()) 209 | } 210 | 211 | tbl.Append([]string{ 212 | dev.Name, 213 | strings.Join(addresses, "\n"), 214 | dev.Description, 215 | }) 216 | } 217 | 218 | tbl.Render() 219 | 220 | return nil 221 | } 222 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv10-RSA-RC4: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 36 01 00 00 32 03 01 52 cc 57 59 cf |....6...2..R.WY.| 3 | 00000010 00 a1 49 a4 37 69 74 d8 a7 93 ea 8d e7 50 b7 b3 |..I.7it......P..| 4 | 00000020 8c ec e5 56 fb dc 5f 1a 2e ab 18 00 00 04 00 05 |...V.._.........| 5 | 00000030 00 ff 01 00 00 05 00 0f 00 01 01 |...........| 6 | >>> Flow 2 (server to client) 7 | 00000000 16 03 01 00 31 02 00 00 2d 03 01 00 00 00 00 00 |....1...-.......| 8 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 9 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 |................| 10 | 00000030 05 ff 01 00 01 00 16 03 01 02 be 0b 00 02 ba 00 |................| 11 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 12 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 13 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 14 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 15 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 16 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 17 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 18 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 19 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 20 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 21 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 22 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 23 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 24 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 25 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 26 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 27 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 28 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 29 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 30 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 31 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 32 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 33 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 34 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 35 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 36 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 37 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 38 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 39 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 40 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 41 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 42 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 43 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 44 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 45 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 46 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 47 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 48 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 49 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 50 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 51 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 52 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 53 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 54 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 01 00 04 0e 00 |n8P)l...........| 55 | 00000300 00 00 |..| 56 | >>> Flow 3 (client to server) 57 | 00000000 16 03 01 00 86 10 00 00 82 00 80 b1 96 7b 6f f5 |.............{o.| 58 | 00000010 a0 cb 0d 60 9b 64 d3 f5 17 76 47 7b bc a5 0e 96 |...`.d...vG{....| 59 | 00000020 53 af 68 0c 96 22 f7 28 0c 24 37 9c 51 69 ed b2 |S.h..".(.$7.Qi..| 60 | 00000030 47 14 ba 33 c5 79 6b 96 f2 ab 3c 02 5c 37 a4 97 |G..3.yk...<.\7..| 61 | 00000040 23 fc 7f d3 95 2d 85 99 1a 10 1b 38 e5 f1 83 55 |#....-.....8...U| 62 | 00000050 4a ab 60 f8 89 0a 6a c4 eb 45 f5 b0 f4 f8 09 31 |J.`...j..E.....1| 63 | 00000060 6e f0 25 30 fd 5e 68 61 bc cb 0d 9e 05 73 0a f4 |n.%0.^ha.....s..| 64 | 00000070 a5 2e d9 d5 4e 08 f6 3b 8d 2d 21 f5 79 b6 97 55 |....N..;.-!.y..U| 65 | 00000080 b9 99 03 49 ea 96 36 49 21 56 bf 14 03 01 00 01 |...I..6I!V......| 66 | 00000090 01 16 03 01 00 24 f0 4f 30 06 c3 25 01 93 34 ab |.....$.O0..%..4.| 67 | 000000a0 93 8f 59 26 83 6e 8a fd 5a a6 cf af ad b1 a2 83 |..Y&.n..Z.......| 68 | 000000b0 28 ff c2 66 5f ac e5 a5 a5 03 |(..f_.....| 69 | >>> Flow 4 (server to client) 70 | 00000000 14 03 01 00 01 01 16 03 01 00 24 9d b4 ea d8 be |..........$.....| 71 | 00000010 b5 9f 00 fd b5 99 04 12 6b 7a 3f b8 52 d7 52 a9 |........kz?.R.R.| 72 | 00000020 e9 bd 5b 63 ad b0 53 ac 46 80 be 48 6e dd ee 17 |..[c..S.F..Hn...| 73 | 00000030 03 01 00 21 07 ac c4 fb 21 e4 b8 6b 64 3b b5 27 |...!....!..kd;.'| 74 | 00000040 29 67 a1 10 2e d2 71 d5 59 5e fc 1d 84 31 15 6e |)g....q.Y^...1.n| 75 | 00000050 4d 4b dc a9 3a 15 03 01 00 16 25 22 a5 78 23 5a |MK..:.....%".x#Z| 76 | 00000060 69 6f 99 a1 b3 1c 8d bf f3 bd 1b c8 1c 57 15 75 |io...........W.u| 77 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv11-RSA-RC4: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 36 01 00 00 32 03 02 52 cc 57 59 bd |....6...2..R.WY.| 3 | 00000010 cd 9d 1e 17 38 43 a5 e3 e7 30 e4 2b 2a ef f7 5b |....8C...0.+*..[| 4 | 00000020 81 91 0c 0b 52 f8 2d 2c 61 d3 13 00 00 04 00 05 |....R.-,a.......| 5 | 00000030 00 ff 01 00 00 05 00 0f 00 01 01 |...........| 6 | >>> Flow 2 (server to client) 7 | 00000000 16 03 02 00 31 02 00 00 2d 03 02 00 00 00 00 00 |....1...-.......| 8 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 9 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 |................| 10 | 00000030 05 ff 01 00 01 00 16 03 02 02 be 0b 00 02 ba 00 |................| 11 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 12 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 13 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 14 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 15 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 16 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 17 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 18 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 19 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 20 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 21 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 22 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 23 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 24 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 25 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 26 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 27 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 28 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 29 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 30 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 31 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 32 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 33 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 34 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 35 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 36 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 37 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 38 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 39 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 40 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 41 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 42 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 43 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 44 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 45 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 46 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 47 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 48 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 49 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 50 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 51 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 52 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 53 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 54 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 02 00 04 0e 00 |n8P)l...........| 55 | 00000300 00 00 |..| 56 | >>> Flow 3 (client to server) 57 | 00000000 16 03 02 00 86 10 00 00 82 00 80 71 2b 19 25 86 |...........q+.%.| 58 | 00000010 a0 ff ba d5 1c a6 0c 8b 6b 0a b8 e9 42 93 2f 55 |........k...B./U| 59 | 00000020 a8 ee 62 fa ed bc 6d e2 9d e3 76 a6 73 d7 99 58 |..b...m...v.s..X| 60 | 00000030 cc 0b 14 42 96 7c b6 c7 8f 21 16 cf 71 9b 2b b9 |...B.|...!..q.+.| 61 | 00000040 e0 34 57 76 22 d5 87 8a ce 1f ea 26 6e 1e e6 ca |.4Wv"......&n...| 62 | 00000050 55 3b 20 cd cf 42 26 b1 51 3e 8c 1d a2 ae c4 63 |U; ..B&.Q>.....c| 63 | 00000060 f5 ce 27 3c 1e c3 e0 e3 b1 16 c1 8a 62 bd 21 7f |..'<........b.!.| 64 | 00000070 38 b5 b7 3a 3c bb 03 37 e1 a5 ff f1 29 e2 21 0a |8..:<..7....).!.| 65 | 00000080 8c 20 02 e0 c0 82 97 9d 18 6d f8 14 03 02 00 01 |. .......m......| 66 | 00000090 01 16 03 02 00 24 bc 19 16 6e fd 0b db 9e d5 1d |.....$...n......| 67 | 000000a0 65 b6 57 1c 58 b5 6a ac f7 4f f0 cd a1 a9 0c c0 |e.W.X.j..O......| 68 | 000000b0 df e6 eb d5 00 f7 fd 43 bb 27 |.......C.'| 69 | >>> Flow 4 (server to client) 70 | 00000000 14 03 02 00 01 01 16 03 02 00 24 cf 4f e4 27 b0 |..........$.O.'.| 71 | 00000010 3d 17 34 b1 3c 37 6e c5 2b 3d 4a c3 46 50 44 b4 |=.4.<7n.+=J.FPD.| 72 | 00000020 de 77 18 10 4f 60 b3 4e dc 06 fd 25 ec 05 15 17 |.w..O`.N...%....| 73 | 00000030 03 02 00 21 a5 c9 32 f2 21 fb 94 7e 0d 15 65 fd |...!..2.!..~..e.| 74 | 00000040 3e fe e4 c1 a5 e9 88 72 b2 f1 26 39 a6 48 59 97 |>......r..&9.HY.| 75 | 00000050 65 e3 f0 cb 46 15 03 02 00 16 4b 02 ec cd ca 30 |e...F.....K....0| 76 | 00000060 42 cf 3d a0 4a fa 8e 79 bb ed b0 59 40 9b 2c 1a |B.=.J..y...Y@.,.| 77 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-SSLv3-RSA-RC4: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 00 00 2f 01 00 00 2b 03 00 52 cc 57 59 79 |..../...+..R.WYy| 3 | 00000010 b9 3b ef df 53 fb 09 f6 01 e5 18 0a fc 3d 65 bb |.;..S........=e.| 4 | 00000020 cf 9c 4c 77 b1 e8 6b 4f 5f c7 94 00 00 04 00 05 |..Lw..kO_.......| 5 | 00000030 00 ff 01 00 |....| 6 | >>> Flow 2 (server to client) 7 | 00000000 16 03 00 00 31 02 00 00 2d 03 00 00 00 00 00 00 |....1...-.......| 8 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 9 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 |................| 10 | 00000030 05 ff 01 00 01 00 16 03 00 02 be 0b 00 02 ba 00 |................| 11 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 12 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 13 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 14 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 15 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 16 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 17 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 18 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 19 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 20 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 21 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 22 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 23 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 24 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 25 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 26 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 27 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 28 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 29 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 30 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 31 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 32 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 33 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 34 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 35 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 36 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 37 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 38 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 39 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 40 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 41 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 42 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 43 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 44 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 45 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 46 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 47 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 48 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 49 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 50 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 51 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 52 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 53 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 54 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 00 00 04 0e 00 |n8P)l...........| 55 | 00000300 00 00 |..| 56 | >>> Flow 3 (client to server) 57 | 00000000 16 03 00 00 84 10 00 00 80 4d 66 7a f3 f8 ab 86 |.........Mfz....| 58 | 00000010 43 4c 5f 7c 52 ca e7 3f ba 62 b3 82 88 16 7d ca |CL_|R..?.b....}.| 59 | 00000020 3a 66 15 c0 36 55 2c ab bf 30 6b cd 9c d8 b9 48 |:f..6U,..0k....H| 60 | 00000030 03 c9 d0 98 ab 0b a6 5b 39 c8 fe 82 8e bb f0 16 |.......[9.......| 61 | 00000040 6f 96 62 81 f2 dc 52 02 c9 de e4 47 73 21 6e 1e |o.b...R....Gs!n.| 62 | 00000050 3a 11 89 7a e2 6b 9e 04 64 72 15 ba 2d 10 a2 69 |:..z.k..dr..-..i| 63 | 00000060 07 e6 ba 17 cf 54 d6 4e 5f 99 e8 59 8b 54 ce 8e |.....T.N_..Y.T..| 64 | 00000070 6b 58 ba 83 68 46 4a 5f 43 3e 9b e1 32 a2 19 42 |kX..hFJ_C>..2..B| 65 | 00000080 46 0f e4 47 1a 3b 16 5f e1 14 03 00 00 01 01 16 |F..G.;._........| 66 | 00000090 03 00 00 3c 78 7e ee da 0d 38 0b 1a d6 d4 8e d5 |...>> Flow 4 (server to client) 71 | 00000000 14 03 00 00 01 01 16 03 00 00 3c 23 29 64 62 23 |..........<#)db#| 72 | 00000010 19 20 f8 2e 15 07 ee c8 f4 ab f0 3e 66 c3 ed 7b |. .........>f..{| 73 | 00000020 7c a7 c2 7e c3 25 3c 8f f3 04 dc 37 e8 fc 0a 1d ||..~.%<....7....| 74 | 00000030 fa 7a 09 d4 21 11 e3 24 21 4b 37 d1 85 cc 40 bf |.z..!..$!K7...@.| 75 | 00000040 bd bd f8 59 6b cd 73 17 03 00 00 21 47 1d ac 54 |...Yk.s....!G..T| 76 | 00000050 bd 58 a6 c0 04 e2 0c 6b 66 64 5a 85 09 0e 47 fc |.X.....kfdZ...G.| 77 | 00000060 0b 57 ee f1 24 b6 89 57 46 be 6b 0d f2 15 03 00 |.W..$..WF.k.....| 78 | 00000070 00 16 b4 f7 34 99 19 43 b6 b3 5a 8b c3 d2 67 2f |....4..C..Z...g/| 79 | 00000080 3b 19 1c 31 d4 f9 bd 96 |;..1....| 80 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv12-RSA-RC4: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 5c 01 00 00 58 03 03 52 cc 57 59 c9 |....\...X..R.WY.| 3 | 00000010 c3 13 fc 18 8a ee c2 0e 88 ff fb 4a 16 f2 eb eb |...........J....| 4 | 00000020 d4 f8 b3 5b cd bb 25 0e 0b cb 48 00 00 04 00 05 |...[..%...H.....| 5 | 00000030 00 ff 01 00 00 2b 00 0d 00 22 00 20 06 01 06 02 |.....+...". ....| 6 | 00000040 06 03 05 01 05 02 05 03 04 01 04 02 04 03 03 01 |................| 7 | 00000050 03 02 03 03 02 01 02 02 02 03 01 01 00 0f 00 01 |................| 8 | 00000060 01 |.| 9 | >>> Flow 2 (server to client) 10 | 00000000 16 03 03 00 31 02 00 00 2d 03 03 00 00 00 00 00 |....1...-.......| 11 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 12 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 |................| 13 | 00000030 05 ff 01 00 01 00 16 03 03 02 be 0b 00 02 ba 00 |................| 14 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 15 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 16 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 17 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 18 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 19 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 20 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 21 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 22 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 23 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 24 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 25 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 26 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 27 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 28 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 29 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 30 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 31 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 32 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 33 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 34 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 35 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 36 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 37 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 38 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 39 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 40 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 41 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 42 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 43 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 44 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 45 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 46 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 47 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 48 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 49 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 50 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 51 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 52 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 53 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 54 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 55 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 56 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 57 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 03 00 04 0e 00 |n8P)l...........| 58 | 00000300 00 00 |..| 59 | >>> Flow 3 (client to server) 60 | 00000000 16 03 03 00 86 10 00 00 82 00 80 35 b3 60 ba 14 |...........5.`..| 61 | 00000010 5f 19 24 a0 24 de 4e 85 a9 64 78 3a 51 24 64 70 |_.$.$.N..dx:Q$dp| 62 | 00000020 88 55 6d c3 11 b8 d3 9f bc 7a 33 f8 3c 48 93 2f |.Um......z3..|.| 67 | 00000070 44 82 f4 24 03 22 40 00 64 27 53 15 41 8c 01 e9 |D..$."@.d'S.A...| 68 | 00000080 39 32 fa 8e 2d f9 b4 89 34 15 d6 14 03 03 00 01 |92..-...4.......| 69 | 00000090 01 16 03 03 00 24 f5 61 8b 24 bf b4 82 3a cf 49 |.....$.a.$...:.I| 70 | 000000a0 99 a0 b1 1b a7 a7 a3 92 7c 84 85 e0 64 a3 3d bd |........|...d.=.| 71 | 000000b0 38 98 7d 97 a8 b9 2a 35 a9 09 |8.}...*5..| 72 | >>> Flow 4 (server to client) 73 | 00000000 14 03 03 00 01 01 16 03 03 00 24 c9 0b 84 e6 39 |..........$....9| 74 | 00000010 f2 e0 f3 ac 9f 0f 17 92 5f 6d de 94 18 c4 60 d9 |........_m....`.| 75 | 00000020 66 c3 0d 1a ae c2 8f 46 8f 7f f0 58 0e 4a 9b 17 |f......F...X.J..| 76 | 00000030 03 03 00 21 8b 73 a1 6a 7e d9 7e 4f 1d cc b2 7d |...!.s.j~.~O...}| 77 | 00000040 3c 83 3f 52 f8 08 77 01 4c 65 11 6d 50 25 9a cc |<.?R..w.Le.mP%..| 78 | 00000050 e3 54 27 72 59 15 03 03 00 16 3d c8 ab 14 51 fa |.T'rY.....=...Q.| 79 | 00000060 97 f1 ef 5f b4 4f 44 58 d4 93 3b ae e5 61 1f a3 |..._.ODX..;..a..| 80 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv10-RSA-3DES: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 36 01 00 00 32 03 01 52 cc 57 59 13 |....6...2..R.WY.| 3 | 00000010 8b e6 5b a3 1d cb 94 ef 48 e4 59 7e 20 6d 07 67 |..[.....H.Y~ m.g| 4 | 00000020 1e 28 6d 31 a2 e7 96 b3 7d 32 cc 00 00 04 00 0a |.(m1....}2......| 5 | 00000030 00 ff 01 00 00 05 00 0f 00 01 01 |...........| 6 | >>> Flow 2 (server to client) 7 | 00000000 16 03 01 00 31 02 00 00 2d 03 01 00 00 00 00 00 |....1...-.......| 8 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 9 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 |................| 10 | 00000030 05 ff 01 00 01 00 16 03 01 02 be 0b 00 02 ba 00 |................| 11 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 12 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 13 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 14 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 15 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 16 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 17 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 18 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 19 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 20 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 21 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 22 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 23 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 24 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 25 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 26 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 27 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 28 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 29 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 30 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 31 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 32 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 33 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 34 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 35 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 36 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 37 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 38 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 39 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 40 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 41 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 42 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 43 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 44 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 45 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 46 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 47 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 48 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 49 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 50 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 51 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 52 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 53 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 54 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 01 00 04 0e 00 |n8P)l...........| 55 | 00000300 00 00 |..| 56 | >>> Flow 3 (client to server) 57 | 00000000 16 03 01 00 86 10 00 00 82 00 80 2e af d2 61 f6 |..............a.| 58 | 00000010 e2 b8 24 da 28 17 55 99 fd 11 bd 7a ab 98 dd f2 |..$.(.U....z....| 59 | 00000020 f6 5f e0 11 6b 12 61 6f 86 48 b2 6e db f0 dd d5 |._..k.ao.H.n....| 60 | 00000030 07 88 e5 95 f4 2d 6b 0c d0 09 1a 5e 5f 50 1f dc |.....-k....^_P..| 61 | 00000040 f2 e7 02 7d 5e a0 70 29 80 ef 87 aa cc 95 3f 2e |...}^.p)......?.| 62 | 00000050 24 d1 40 b6 62 53 1d 25 31 87 1e 2f 77 d3 e1 1c |$.@.bS.%1../w...| 63 | 00000060 c4 99 89 bc 99 09 e9 ad 1f ce 09 e6 36 1c 3e 97 |............6.>.| 64 | 00000070 be 62 69 a0 4e 14 20 9c 82 2a 3e fc 7e 9b c4 7a |.bi.N. ..*>.~..z| 65 | 00000080 5a f7 ad 1a 03 17 2a f8 7a 5f 44 14 03 01 00 01 |Z.....*.z_D.....| 66 | 00000090 01 16 03 01 00 28 49 6b da 73 07 ad 85 9a 0e fb |.....(Ik.s......| 67 | 000000a0 dd e0 69 ef c9 22 2d 86 91 51 26 63 d0 24 7d 16 |..i.."-..Q&c.$}.| 68 | 000000b0 3c db 9b 00 c9 7e 64 e2 69 02 85 7d f7 47 |<....~d.i..}.G| 69 | >>> Flow 4 (server to client) 70 | 00000000 14 03 01 00 01 01 16 03 01 00 28 dc 60 83 43 6c |..........(.`.Cl| 71 | 00000010 37 79 ab 6e 92 1f 66 d0 b1 12 ce c1 64 9d 2b 68 |7y.n..f.....d.+h| 72 | 00000020 c7 1a e5 1f 8c 80 08 d2 86 3e a1 2c e3 7e f4 64 |.........>.,.~.d| 73 | 00000030 e7 96 b2 17 03 01 00 18 8d b5 7c 03 78 cf dc 09 |..........|.x...| 74 | 00000040 95 06 4b a6 82 f9 30 d2 6b 26 cb 0a 9a 9d 47 9f |..K...0.k&....G.| 75 | 00000050 17 03 01 00 28 30 a9 55 dd b9 4d 6a 76 00 39 96 |....(0.U..Mjv.9.| 76 | 00000060 a3 94 6a df e5 af 1e a2 eb bb e4 ac 95 2c f7 93 |..j..........,..| 77 | 00000070 ef d1 b5 13 d8 e2 06 1a ad 5c 00 dd 0c 15 03 01 |.........\......| 78 | 00000080 00 18 a5 62 e4 8b 51 1d 28 46 bc 8a c8 50 a3 32 |...b..Q.(F...P.2| 79 | 00000090 6b 7b f1 b6 19 43 63 1f 7d 38 |k{...Cc.}8| 80 | -------------------------------------------------------------------------------- /reader.go: -------------------------------------------------------------------------------- 1 | package certgrep 2 | 3 | import ( 4 | "bufio" 5 | "crypto/x509" 6 | "errors" 7 | "fmt" 8 | "io" 9 | "net" 10 | "regexp" 11 | "sync/atomic" 12 | 13 | "go.uber.org/zap" 14 | 15 | "encoding/hex" 16 | 17 | "github.com/google/gopacket" 18 | "github.com/google/gopacket/tcpassembly" 19 | "github.com/google/gopacket/tcpassembly/tcpreader" 20 | tls_clone "github.com/kung-foo/certgrep/tls_clone" 21 | ) 22 | 23 | var ( 24 | // ErrNoSSLHandshakeFound is used to indicate no handshake found 25 | ErrNoTLSHandshakeFound = errors.New("No TLS handshake found") 26 | 27 | // IgnoredTLSErrors is a map of errors that do not keep the certificates 28 | // from being extracted 29 | IgnoredTLSErrors = map[string]bool{ 30 | "tls: received unexpected handshake message of type *tls.clientHelloMsg when waiting for *tls.serverHelloMsg": true, 31 | "crypto/rsa: verification error": true, 32 | "local error: bad record MAC": true, 33 | "ECDSA verification failure": true, 34 | "tls: server selected unsupported curve": true, 35 | "tls: unknown hash function used by peer": true, 36 | "missing ServerKeyExchange message": true, 37 | } 38 | ) 39 | 40 | const ( 41 | peekSz = 16 42 | ) 43 | 44 | var ( 45 | // SSL handshake regex 46 | serverHSRegex = regexp.MustCompile(`^\x16\x03[\x00\x01\x02\x03].*`) 47 | // common name chars allowed in file name 48 | allowedCNCchars = regexp.MustCompile(`([^a-zA-Z0-9_\.\-])`) 49 | logLine = "%s commonname:\"%s\" serial:%s fingerprint:%s" 50 | ) 51 | 52 | func cleanupName(name string) string { 53 | n := allowedCNCchars.ReplaceAllLiteralString(name, "") 54 | if len(n) > 256 { 55 | n = n[0:256] 56 | } 57 | return n 58 | } 59 | 60 | var atomicFlowIdx uint64 61 | 62 | type fakeConn struct { 63 | net.Conn 64 | flow io.Reader 65 | idx uint64 66 | bytesRead int 67 | } 68 | 69 | func (f *fakeConn) Read(b []byte) (n int, err error) { 70 | n, err = f.flow.Read(b) 71 | f.bytesRead += n 72 | return 73 | } 74 | 75 | func (f *fakeConn) Write(b []byte) (int, error) { 76 | return len(b), nil 77 | } 78 | 79 | type readerFactory struct { 80 | logger *zap.SugaredLogger 81 | output *output 82 | } 83 | 84 | func (t *readerFactory) New(netflow gopacket.Flow, tcpflow gopacket.Flow) tcpassembly.Stream { 85 | r := tcpreader.NewReaderStream() 86 | h := newStreamHandler(&r, netflow, tcpflow, t.output, t.logger.Named("stream")) 87 | 88 | go func() { 89 | // TODO: this should go someplace else... 90 | defer r.Close() 91 | err := h.Run() 92 | if err != nil { 93 | //log.Println(err) 94 | } 95 | }() 96 | 97 | return &r 98 | } 99 | 100 | type streamHandler struct { 101 | r io.Reader 102 | netflow *gopacket.Flow 103 | tcpflow *gopacket.Flow 104 | idx uint64 105 | foundCerts bool 106 | output *output 107 | logger *zap.SugaredLogger 108 | } 109 | 110 | func newStreamHandler(r io.Reader, netflow gopacket.Flow, tcpflow gopacket.Flow, output *output, logger *zap.SugaredLogger) *streamHandler { 111 | return &streamHandler{ 112 | r: r, 113 | netflow: &netflow, 114 | tcpflow: &tcpflow, 115 | idx: atomic.AddUint64(&atomicFlowIdx, 1), 116 | output: output, 117 | logger: logger, 118 | } 119 | } 120 | 121 | func (s *streamHandler) hash() string { 122 | return fmt.Sprintf("%016x", s.tcpflow.FastHash()) 123 | } 124 | 125 | func (s *streamHandler) key() string { 126 | src, dst := s.netflow.Endpoints() 127 | return fmt.Sprintf("%s-%s-%s", src, s.tcpflow.Src(), dst) 128 | } 129 | 130 | func (s *streamHandler) logPrefix() string { 131 | src, dst := s.netflow.Endpoints() 132 | //if Config.verbose { 133 | return fmt.Sprintf("flowidx:%d flowhash:%s client:%s server:%s port:%s", 134 | s.idx, s.hash(), dst.String(), src.String(), s.tcpflow.Src()) 135 | //} 136 | //return fmt.Sprintf("server:%s port:%s client:%s", src.String(), s.tcpflow.Src(), dst.String()) 137 | } 138 | 139 | func (s *streamHandler) Run() error { 140 | defer func() { 141 | n := tcpreader.DiscardBytesToEOF(s.r) 142 | //if s.foundCerts && Config.veryVerbose { 143 | if s.foundCerts { 144 | s.logger.Debugf("%s DiscardBytesToEOF:%d", s.logPrefix(), n) 145 | } 146 | }() 147 | 148 | data := bufio.NewReader(s.r) 149 | t, err := data.Peek(peekSz) 150 | 151 | if err != nil { 152 | if err != io.EOF { 153 | s.logger.Error(err) 154 | return err 155 | } 156 | return nil 157 | } 158 | 159 | header := make([]byte, peekSz) 160 | copy(header, t) 161 | 162 | //if Config.veryVerbose { 163 | s.logger.Debugf("%s header:%s", s.logPrefix(), hex.EncodeToString(header)) 164 | //} 165 | 166 | if s.isTLSHandshake(header) { 167 | certs, err := s.extractCertificates(&fakeConn{flow: data, idx: s.idx}) 168 | if err != nil { 169 | return err 170 | } 171 | 172 | s.foundCerts = len(certs) > 0 173 | 174 | if s.foundCerts { 175 | s.output.PersistCertificate(certs, s.logPrefix()) 176 | } 177 | 178 | // TODO(jca): handshake but no certs?? 179 | 180 | return nil 181 | } 182 | return ErrNoTLSHandshakeFound 183 | } 184 | 185 | func (s *streamHandler) extractCertificates(conn net.Conn) ([]*x509.Certificate, error) { 186 | client := tls_clone.Client(conn, &tls_clone.Config{InsecureSkipVerify: true}) 187 | err := client.Handshake() 188 | if !IgnoredTLSErrors[err.Error()] { 189 | //if s.netflow != nil && Config.verbose { 190 | if s.netflow != nil { 191 | if len(client.PeerCertificates()) == 0 { 192 | s.logger.Debugf("%s %s %v", redError("ERROR"), s.logPrefix(), err) 193 | } else { 194 | // possibly ignoreable error 195 | s.logger.Debugf("%s %s %v", redError("ADD TO IGNORE"), s.logPrefix(), err) 196 | } 197 | } 198 | } 199 | // TODO: log various errors. some are interesting. 200 | certs := client.PeerCertificates() 201 | return certs, nil 202 | } 203 | 204 | func (s *streamHandler) isTLSHandshake(data []byte) bool { 205 | return serverHSRegex.Match(data) 206 | } 207 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv12-ClientAuthRequestedNotGiven: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 5c 01 00 00 58 03 03 52 cc 57 59 1b |....\...X..R.WY.| 3 | 00000010 08 fe f7 8a bf 07 84 2b 60 a6 13 2d 15 13 f8 b6 |.......+`..-....| 4 | 00000020 d4 b6 3b f2 7a 98 ff 32 a0 68 7c 00 00 04 00 05 |..;.z..2.h|.....| 5 | 00000030 00 ff 01 00 00 2b 00 0d 00 22 00 20 06 01 06 02 |.....+...". ....| 6 | 00000040 06 03 05 01 05 02 05 03 04 01 04 02 04 03 03 01 |................| 7 | 00000050 03 02 03 03 02 01 02 02 02 03 01 01 00 0f 00 01 |................| 8 | 00000060 01 |.| 9 | >>> Flow 2 (server to client) 10 | 00000000 16 03 03 00 31 02 00 00 2d 03 03 00 00 00 00 00 |....1...-.......| 11 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 12 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 |................| 13 | 00000030 05 ff 01 00 01 00 16 03 03 02 be 0b 00 02 ba 00 |................| 14 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 15 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 16 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 17 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 18 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 19 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 20 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 21 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 22 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 23 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 24 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 25 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 26 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 27 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 28 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 29 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 30 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 31 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 32 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 33 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 34 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 35 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 36 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 37 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 38 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 39 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 40 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 41 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 42 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 43 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 44 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 45 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 46 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 47 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 48 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 49 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 50 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 51 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 52 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 53 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 54 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 55 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 56 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 57 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 03 00 0f 0d 00 |n8P)l...........| 58 | 00000300 00 0b 02 01 40 00 04 04 01 04 03 00 00 16 03 03 |....@...........| 59 | 00000310 00 04 0e 00 00 00 |......| 60 | >>> Flow 3 (client to server) 61 | 00000000 16 03 03 00 07 0b 00 00 03 00 00 00 16 03 03 00 |................| 62 | 00000010 86 10 00 00 82 00 80 6b 51 48 d3 18 7d 30 e0 0c |.......kQH..}0..| 63 | 00000020 20 8d f3 e4 39 47 30 0e a5 85 79 f9 8b 11 50 9e | ...9G0...y...P.| 64 | 00000030 81 71 5c 26 c6 bb cb aa d5 00 d1 89 79 b1 77 2d |.q\&........y.w-| 65 | 00000040 eb 9b 86 7c 52 c6 f7 b7 10 b0 b6 94 22 51 b8 12 |...|R......."Q..| 66 | 00000050 3c 09 35 8e 1b cc f4 3b b7 b8 78 ab 89 59 41 49 |<.5....;..x..YAI| 67 | 00000060 21 31 eb f0 f8 94 63 3d e6 96 8f b6 63 95 05 dd |!1....c=....c...| 68 | 00000070 46 b3 00 8a d6 83 75 99 1b 5a 48 0a 23 b5 10 c1 |F.....u..ZH.#...| 69 | 00000080 95 b5 bc 15 72 b5 f5 a0 62 e2 1d c0 ff d2 87 a5 |....r...b.......| 70 | 00000090 97 5c 33 49 a7 26 35 14 03 03 00 01 01 16 03 03 |.\3I.&5.........| 71 | 000000a0 00 24 61 38 1f 9d fb d9 65 2e 02 07 fb be f9 85 |.$a8....e.......| 72 | 000000b0 8d 15 34 c0 d1 0e 4e 10 3c 25 60 2f ac 04 21 66 |..4...N.<%`/..!f| 73 | 000000c0 04 9d 9a 60 31 72 |...`1r| 74 | >>> Flow 4 (server to client) 75 | 00000000 14 03 03 00 01 01 16 03 03 00 24 fe 0e 3e 84 af |..........$..>..| 76 | 00000010 e5 6b 10 ed 41 9c 2b e0 ba e0 2b 53 61 36 1b 40 |.k..A.+...+Sa6.@| 77 | 00000020 35 de 3a c7 c3 5c df 74 67 f7 05 74 84 f5 e1 17 |5.:..\.tg..t....| 78 | 00000030 03 03 00 21 d3 8d 81 85 b7 1f 30 bd 89 33 f9 81 |...!......0..3..| 79 | 00000040 89 f7 af d1 be b0 c1 46 e3 df 32 f6 dc 2f 4d 82 |.......F..2../M.| 80 | 00000050 0a 84 9f 5b 03 15 03 03 00 16 13 af 37 91 82 67 |...[........7..g| 81 | 00000060 b0 7c 5e 0e ec 8e cc 31 a0 ea a5 72 a4 2b 0b 73 |.|^....1...r.+.s| 82 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv10-RSA-AES: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 36 01 00 00 32 03 01 52 cc 57 59 5d |....6...2..R.WY]| 3 | 00000010 0d 77 24 3e b3 32 3d ba 0f b0 aa 1d e3 13 06 f6 |.w$>.2=.........| 4 | 00000020 0f be 3c 92 ba 93 bd a6 6d 69 53 00 00 04 00 2f |..<.....miS..../| 5 | 00000030 00 ff 01 00 00 05 00 0f 00 01 01 |...........| 6 | >>> Flow 2 (server to client) 7 | 00000000 16 03 01 00 31 02 00 00 2d 03 01 00 00 00 00 00 |....1...-.......| 8 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 9 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 2f 00 00 |............./..| 10 | 00000030 05 ff 01 00 01 00 16 03 01 02 be 0b 00 02 ba 00 |................| 11 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 12 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 13 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 14 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 15 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 16 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 17 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 18 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 19 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 20 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 21 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 22 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 23 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 24 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 25 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 26 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 27 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 28 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 29 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 30 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 31 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 32 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 33 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 34 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 35 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 36 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 37 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 38 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 39 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 40 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 41 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 42 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 43 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 44 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 45 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 46 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 47 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 48 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 49 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 50 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 51 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 52 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 53 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 54 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 01 00 04 0e 00 |n8P)l...........| 55 | 00000300 00 00 |..| 56 | >>> Flow 3 (client to server) 57 | 00000000 16 03 01 00 86 10 00 00 82 00 80 20 e6 80 f7 48 |........... ...H| 58 | 00000010 7e 7d 08 08 54 e1 b4 e3 98 27 5f 90 9d 3b e3 c2 |~}..T....'_..;..| 59 | 00000020 c8 8b dc 9e ff 75 fa fc 60 e1 9e 67 7c c4 08 27 |.....u..`..g|..'| 60 | 00000030 cc 6f 15 6c bc 7c 96 de 83 8f 98 6d 4a c7 b7 20 |.o.l.|.....mJ.. | 61 | 00000040 8c 19 47 5a ff 76 92 0a df df 66 d2 b6 9d 2d 06 |..GZ.v....f...-.| 62 | 00000050 fb ac 07 cf 38 08 f1 fd 0d fe 07 d7 69 3e 8a 79 |....8.......i>.y| 63 | 00000060 dc 2d ab bb f7 18 3c 51 14 6e c6 70 95 a2 59 b1 |.-........0| 69 | 000000c0 ed c6 bc c2 38 b6 |....8.| 70 | >>> Flow 4 (server to client) 71 | 00000000 14 03 01 00 01 01 16 03 01 00 30 5d 0c a2 18 13 |..........0]....| 72 | 00000010 40 a1 84 ce c5 d8 4e fc a4 8a 14 b5 94 18 b1 86 |@.....N.........| 73 | 00000020 da 6a 7d 26 08 d6 a0 f8 78 5b 42 7e f8 83 54 56 |.j}&....x[B~..TV| 74 | 00000030 36 a4 91 37 67 5a d7 68 37 c4 4f 17 03 01 00 20 |6..7gZ.h7.O.... | 75 | 00000040 fd aa 5e cf 4b 12 c5 be a4 a2 65 5d 6e 65 46 5f |..^.K.....e]neF_| 76 | 00000050 d2 fe 46 e7 77 2d 9c 1e 0b 39 40 48 c2 2f be 21 |..F.w-...9@H./.!| 77 | 00000060 17 03 01 00 30 03 af 9e 6b d6 76 ed 9e 1d 8b 8b |....0...k.v.....| 78 | 00000070 2e 2a 5d da c4 73 95 ac 0e 6f 69 cb 63 df 50 27 |.*]..s...oi.c.P'| 79 | 00000080 30 de 2e 55 86 85 ad 3e 33 22 49 72 f2 e2 9f 8f |0..U...>3"Ir....| 80 | 00000090 ba cf 4e 30 34 15 03 01 00 20 4c 4c 97 61 70 ea |..N04.... LL.ap.| 81 | 000000a0 ae fc a2 e9 c6 c2 b6 2e 4d 85 f6 ae 2b 56 46 82 |........M...+VF.| 82 | 000000b0 9d d8 a5 82 17 fa 3e 62 67 7e |......>bg~| 83 | -------------------------------------------------------------------------------- /tls_clone/testdata/Client-TLSv10-RSA-RC4: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 75 01 00 00 71 03 03 00 00 00 00 00 |....u...q.......| 3 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 4 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1a c0 2f |.............../| 5 | 00000030 c0 2b c0 11 c0 07 c0 13 c0 09 c0 14 c0 0a 00 05 |.+..............| 6 | 00000040 00 2f 00 35 c0 12 00 0a 01 00 00 2e 00 05 00 05 |./.5............| 7 | 00000050 01 00 00 00 00 00 0a 00 08 00 06 00 17 00 18 00 |................| 8 | 00000060 19 00 0b 00 02 01 00 00 0d 00 0a 00 08 04 01 04 |................| 9 | 00000070 03 02 01 02 03 ff 01 00 01 00 |..........| 10 | >>> Flow 2 (server to client) 11 | 00000000 16 03 01 00 51 02 00 00 4d 03 01 53 04 f1 02 76 |....Q...M..S...v| 12 | 00000010 e8 45 7f 57 f3 42 4b 33 0b 06 fa a6 fa c4 3d 84 |.E.W.BK3......=.| 13 | 00000020 5a 45 dc 93 41 a5 8d 79 6e 8f 11 20 e7 c6 29 2b |ZE..A..yn.. ..)+| 14 | 00000030 ff 4a 6e 63 67 a6 10 cb 49 19 46 1e 5e 0a d5 70 |.Jncg...I.F.^..p| 15 | 00000040 96 88 9a 32 48 ef c3 4a 45 4c 6d e0 00 05 00 00 |...2H..JELm.....| 16 | 00000050 05 ff 01 00 01 00 16 03 01 02 be 0b 00 02 ba 00 |................| 17 | 00000060 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 18 | 00000070 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 19 | 00000080 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 20 | 00000090 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 21 | 000000a0 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 22 | 000000b0 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 23 | 000000c0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 24 | 000000d0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 25 | 000000e0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 26 | 000000f0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 27 | 00000100 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 28 | 00000110 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 29 | 00000120 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 30 | 00000130 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 31 | 00000140 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 32 | 00000150 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 33 | 00000160 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 34 | 00000170 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 35 | 00000180 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 36 | 00000190 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 37 | 000001a0 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 38 | 000001b0 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 39 | 000001c0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 40 | 000001d0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 41 | 000001e0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 42 | 000001f0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 43 | 00000200 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 44 | 00000210 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 45 | 00000220 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 46 | 00000230 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 47 | 00000240 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 48 | 00000250 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 49 | 00000260 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 50 | 00000270 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 51 | 00000280 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 52 | 00000290 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 53 | 000002a0 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 54 | 000002b0 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 55 | 000002c0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 56 | 000002d0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 57 | 000002e0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 58 | 000002f0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 59 | 00000300 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 60 | 00000310 6e 38 50 29 6c 90 a7 bd d9 16 03 01 00 04 0e 00 |n8P)l...........| 61 | 00000320 00 00 |..| 62 | >>> Flow 3 (client to server) 63 | 00000000 16 03 01 00 86 10 00 00 82 00 80 6d 51 f3 7f f9 |...........mQ...| 64 | 00000010 3e fb 75 82 41 36 83 e8 6a ee 2a 2e 25 90 67 4c |>.u.A6..j.*.%.gL| 65 | 00000020 8e 62 2f 30 81 17 e0 85 09 0c 2b b7 23 d7 b0 e2 |.b/0......+.#...| 66 | 00000030 1d f7 3b d7 f5 a1 27 b6 ee 24 b6 1b cc 5b ea 66 |..;...'..$...[.f| 67 | 00000040 0d 6a f4 e5 85 f9 da 43 b4 0e 86 85 e1 f5 aa be |.j.....C........| 68 | 00000050 c8 ce 39 4c 9c 86 00 08 c2 4b e2 c6 ec 2f f7 ce |..9L.....K.../..| 69 | 00000060 e6 bd 77 82 6f 23 b6 e0 bd a2 92 b7 3a ac e8 56 |..w.o#......:..V| 70 | 00000070 f1 af 54 5e 46 87 e9 3b 33 e7 b8 28 b7 d6 c8 90 |..T^F..;3..(....| 71 | 00000080 35 d4 1c 43 d1 30 6f 55 4e 0a 70 14 03 01 00 01 |5..C.0oUN.p.....| 72 | 00000090 01 16 03 01 00 24 cd c0 68 dc 2e 69 cc c7 5b c5 |.....$..h..i..[.| 73 | 000000a0 3f bd 40 cf a0 0f 41 34 ce 16 37 10 26 c8 3f d1 |?.@...A4..7.&.?.| 74 | 000000b0 46 3b ad 7b b0 31 f3 c5 36 e7 |F;.{.1..6.| 75 | >>> Flow 4 (server to client) 76 | 00000000 14 03 01 00 01 01 16 03 01 00 24 ea 77 6f 3c 42 |..........$.wo....]| 79 | >>> Flow 5 (client to server) 80 | 00000000 17 03 01 00 1a 9e ae ca 55 df c4 d9 47 04 55 dd |........U...G.U.| 81 | 00000010 3b 33 e1 a6 16 6f a1 94 b1 9b 4d 0d cb 6c 3b 15 |;3...o....M..l;.| 82 | 00000020 03 01 00 16 92 5d 76 07 e9 b7 31 29 09 c5 b1 09 |.....]v...1)....| 83 | 00000030 2d 64 3d 85 8d f1 d1 40 54 b8 |-d=....@T.| 84 | -------------------------------------------------------------------------------- /tls_clone/testdata/Client-TLSv11-RSA-RC4: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 75 01 00 00 71 03 03 00 00 00 00 00 |....u...q.......| 3 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 4 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1a c0 2f |.............../| 5 | 00000030 c0 2b c0 11 c0 07 c0 13 c0 09 c0 14 c0 0a 00 05 |.+..............| 6 | 00000040 00 2f 00 35 c0 12 00 0a 01 00 00 2e 00 05 00 05 |./.5............| 7 | 00000050 01 00 00 00 00 00 0a 00 08 00 06 00 17 00 18 00 |................| 8 | 00000060 19 00 0b 00 02 01 00 00 0d 00 0a 00 08 04 01 04 |................| 9 | 00000070 03 02 01 02 03 ff 01 00 01 00 |..........| 10 | >>> Flow 2 (server to client) 11 | 00000000 16 03 02 00 51 02 00 00 4d 03 02 53 04 f1 02 d4 |....Q...M..S....| 12 | 00000010 69 65 aa 96 3d 42 96 eb 9e 7d 8a 18 af 4c 7c 5d |ie..=B...}...L|]| 13 | 00000020 fb 97 5f da 94 62 13 69 1f 66 06 20 aa 52 e3 08 |.._..b.i.f. .R..| 14 | 00000030 35 0a 87 d5 ef 93 49 ab 1a 74 dd 90 bd 69 70 d1 |5.....I..t...ip.| 15 | 00000040 e9 f1 44 17 3a dc 33 98 f5 e5 ab 93 00 05 00 00 |..D.:.3.........| 16 | 00000050 05 ff 01 00 01 00 16 03 02 02 be 0b 00 02 ba 00 |................| 17 | 00000060 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 18 | 00000070 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 19 | 00000080 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 20 | 00000090 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 21 | 000000a0 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 22 | 000000b0 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 23 | 000000c0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 24 | 000000d0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 25 | 000000e0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 26 | 000000f0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 27 | 00000100 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 28 | 00000110 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 29 | 00000120 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 30 | 00000130 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 31 | 00000140 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 32 | 00000150 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 33 | 00000160 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 34 | 00000170 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 35 | 00000180 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 36 | 00000190 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 37 | 000001a0 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 38 | 000001b0 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 39 | 000001c0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 40 | 000001d0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 41 | 000001e0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 42 | 000001f0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 43 | 00000200 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 44 | 00000210 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 45 | 00000220 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 46 | 00000230 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 47 | 00000240 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 48 | 00000250 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 49 | 00000260 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 50 | 00000270 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 51 | 00000280 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 52 | 00000290 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 53 | 000002a0 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 54 | 000002b0 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 55 | 000002c0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 56 | 000002d0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 57 | 000002e0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 58 | 000002f0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 59 | 00000300 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 60 | 00000310 6e 38 50 29 6c 90 a7 bd d9 16 03 02 00 04 0e 00 |n8P)l...........| 61 | 00000320 00 00 |..| 62 | >>> Flow 3 (client to server) 63 | 00000000 16 03 02 00 86 10 00 00 82 00 80 6d 51 f3 7f f9 |...........mQ...| 64 | 00000010 3e fb 75 82 41 36 83 e8 6a ee 2a 2e 25 90 67 4c |>.u.A6..j.*.%.gL| 65 | 00000020 8e 62 2f 30 81 17 e0 85 09 0c 2b b7 23 d7 b0 e2 |.b/0......+.#...| 66 | 00000030 1d f7 3b d7 f5 a1 27 b6 ee 24 b6 1b cc 5b ea 66 |..;...'..$...[.f| 67 | 00000040 0d 6a f4 e5 85 f9 da 43 b4 0e 86 85 e1 f5 aa be |.j.....C........| 68 | 00000050 c8 ce 39 4c 9c 86 00 08 c2 4b e2 c6 ec 2f f7 ce |..9L.....K.../..| 69 | 00000060 e6 bd 77 82 6f 23 b6 e0 bd a2 92 b7 3a ac e8 56 |..w.o#......:..V| 70 | 00000070 f1 af 54 5e 46 87 e9 3b 33 e7 b8 28 b7 d6 c8 90 |..T^F..;3..(....| 71 | 00000080 35 d4 1c 43 d1 30 6f 55 4e 0a 70 14 03 02 00 01 |5..C.0oUN.p.....| 72 | 00000090 01 16 03 02 00 24 07 9f dc df 2d c3 a6 88 06 28 |.....$....-....(| 73 | 000000a0 21 e0 e0 d3 31 99 fc 89 b8 82 6e 95 f4 4b 9e e2 |!...1.....n..K..| 74 | 000000b0 d9 36 5c 14 ce d7 db e2 78 4e |.6\.....xN| 75 | >>> Flow 4 (server to client) 76 | 00000000 14 03 02 00 01 01 16 03 02 00 24 81 72 75 80 d4 |..........$.ru..| 77 | 00000010 1b 1a 32 00 89 bf 9e 79 30 b9 6b 67 e0 8e c7 eb |..2....y0.kg....| 78 | 00000020 73 f2 e4 93 51 65 9b 5f 91 b1 b4 b1 f7 44 76 |s...Qe._.....Dv| 79 | >>> Flow 5 (client to server) 80 | 00000000 17 03 02 00 1a b2 91 39 63 c0 38 3c 4d 25 fd 14 |.......9c.8>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 75 01 00 00 71 03 03 00 00 00 00 00 |....u...q.......| 3 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 4 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1a c0 2f |.............../| 5 | 00000030 c0 2b c0 11 c0 07 c0 13 c0 09 c0 14 c0 0a 00 05 |.+..............| 6 | 00000040 00 2f 00 35 c0 12 00 0a 01 00 00 2e 00 05 00 05 |./.5............| 7 | 00000050 01 00 00 00 00 00 0a 00 08 00 06 00 17 00 18 00 |................| 8 | 00000060 19 00 0b 00 02 01 00 00 0d 00 0a 00 08 04 01 04 |................| 9 | 00000070 03 02 01 02 03 ff 01 00 01 00 |..........| 10 | >>> Flow 2 (server to client) 11 | 00000000 16 03 03 00 51 02 00 00 4d 03 03 53 04 f1 02 9d |....Q...M..S....| 12 | 00000010 2e 4e d9 17 4a 35 fa 9d 94 f6 45 0a f6 6b 5d 1c |.N..J5....E..k].| 13 | 00000020 1e 15 19 8d 6d 94 cc 90 d9 39 94 20 8b 4b de 76 |....m....9. .K.v| 14 | 00000030 d5 64 5d b7 19 df e7 eb 7e a0 22 c4 09 38 a0 12 |.d].....~."..8..| 15 | 00000040 d5 59 10 c8 31 06 dc fc e4 9d d1 80 00 05 00 00 |.Y..1...........| 16 | 00000050 05 ff 01 00 01 00 16 03 03 02 be 0b 00 02 ba 00 |................| 17 | 00000060 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 18 | 00000070 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 19 | 00000080 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 20 | 00000090 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 21 | 000000a0 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 22 | 000000b0 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 23 | 000000c0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 24 | 000000d0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 25 | 000000e0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 26 | 000000f0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 27 | 00000100 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 28 | 00000110 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 29 | 00000120 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 30 | 00000130 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 31 | 00000140 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 32 | 00000150 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 33 | 00000160 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 34 | 00000170 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 35 | 00000180 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 36 | 00000190 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 37 | 000001a0 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 38 | 000001b0 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 39 | 000001c0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 40 | 000001d0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 41 | 000001e0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 42 | 000001f0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 43 | 00000200 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 44 | 00000210 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 45 | 00000220 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 46 | 00000230 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 47 | 00000240 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 48 | 00000250 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 49 | 00000260 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 50 | 00000270 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 51 | 00000280 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 52 | 00000290 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 53 | 000002a0 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 54 | 000002b0 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 55 | 000002c0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 56 | 000002d0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 57 | 000002e0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 58 | 000002f0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 59 | 00000300 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 60 | 00000310 6e 38 50 29 6c 90 a7 bd d9 16 03 03 00 04 0e 00 |n8P)l...........| 61 | 00000320 00 00 |..| 62 | >>> Flow 3 (client to server) 63 | 00000000 16 03 03 00 86 10 00 00 82 00 80 6d 51 f3 7f f9 |...........mQ...| 64 | 00000010 3e fb 75 82 41 36 83 e8 6a ee 2a 2e 25 90 67 4c |>.u.A6..j.*.%.gL| 65 | 00000020 8e 62 2f 30 81 17 e0 85 09 0c 2b b7 23 d7 b0 e2 |.b/0......+.#...| 66 | 00000030 1d f7 3b d7 f5 a1 27 b6 ee 24 b6 1b cc 5b ea 66 |..;...'..$...[.f| 67 | 00000040 0d 6a f4 e5 85 f9 da 43 b4 0e 86 85 e1 f5 aa be |.j.....C........| 68 | 00000050 c8 ce 39 4c 9c 86 00 08 c2 4b e2 c6 ec 2f f7 ce |..9L.....K.../..| 69 | 00000060 e6 bd 77 82 6f 23 b6 e0 bd a2 92 b7 3a ac e8 56 |..w.o#......:..V| 70 | 00000070 f1 af 54 5e 46 87 e9 3b 33 e7 b8 28 b7 d6 c8 90 |..T^F..;3..(....| 71 | 00000080 35 d4 1c 43 d1 30 6f 55 4e 0a 70 14 03 03 00 01 |5..C.0oUN.p.....| 72 | 00000090 01 16 03 03 00 24 37 14 b2 97 7b b5 f0 9a 38 05 |.....$7...{...8.| 73 | 000000a0 22 35 69 9c 95 2f 86 4b 37 98 22 db 4e 9a 46 9c |"5i../.K7.".N.F.| 74 | 000000b0 b9 81 74 72 58 18 53 0c 5c 3c |..trX.S.\<| 75 | >>> Flow 4 (server to client) 76 | 00000000 14 03 03 00 01 01 16 03 03 00 24 3c b3 e7 77 5a |..........$<..wZ| 77 | 00000010 7c 36 5a 74 74 26 8d 5b 5a 09 96 60 e8 24 45 2f ||6Ztt&.[Z..`.$E/| 78 | 00000020 c2 39 14 5e db 58 12 49 ad a8 b6 ea ef 58 16 |.9.^.X.I.....X.| 79 | >>> Flow 5 (client to server) 80 | 00000000 17 03 03 00 1a 6d 29 d7 ba 2f 85 02 b6 f0 82 64 |.....m)../.....d| 81 | 00000010 6c 55 ae ab f6 fd 14 ff b8 38 f0 f8 a6 ea cc 15 |lU.......8......| 82 | 00000020 03 03 00 16 10 c5 d9 41 7b e2 89 67 dc 29 8e f8 |.......A{..g.)..| 83 | 00000030 b5 ab 32 91 44 2c 27 84 49 f7 |..2.D,'.I.| 84 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-SSLv3-RSA-3DES: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 00 00 2f 01 00 00 2b 03 00 52 cc 57 59 d8 |..../...+..R.WY.| 3 | 00000010 86 d6 07 ae e0 8d 63 b7 1e cb aa c6 67 32 c8 dd |......c.....g2..| 4 | 00000020 68 03 d8 3d 37 18 72 c3 c0 f1 9d 00 00 04 00 0a |h..=7.r.........| 5 | 00000030 00 ff 01 00 |....| 6 | >>> Flow 2 (server to client) 7 | 00000000 16 03 00 00 31 02 00 00 2d 03 00 00 00 00 00 00 |....1...-.......| 8 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 9 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 |................| 10 | 00000030 05 ff 01 00 01 00 16 03 00 02 be 0b 00 02 ba 00 |................| 11 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 12 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 13 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 14 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 15 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 16 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 17 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 18 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 19 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 20 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 21 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 22 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 23 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 24 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 25 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 26 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 27 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 28 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 29 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 30 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 31 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 32 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 33 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 34 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 35 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 36 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 37 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 38 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 39 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 40 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 41 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 42 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 43 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 44 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 45 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 46 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 47 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 48 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 49 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 50 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 51 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 52 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 53 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 54 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 00 00 04 0e 00 |n8P)l...........| 55 | 00000300 00 00 |..| 56 | >>> Flow 3 (client to server) 57 | 00000000 16 03 00 00 84 10 00 00 80 75 e0 c9 76 d6 e9 34 |.........u..v..4| 58 | 00000010 1d e3 31 9e db 3b 03 41 93 e8 db 73 7c e9 3f 6a |..1..;.A...s|.?j| 59 | 00000020 d8 2a 7b 25 83 4f 45 de 3f 78 3f b6 53 a7 b4 6c |.*{%.OE.?x?.S..l| 60 | 00000030 e3 87 c4 c3 70 55 71 79 55 dc 74 98 84 21 19 13 |....pUqyU.t..!..| 61 | 00000040 be d5 8e 0a ff 2f 9f 7a 6b d4 6c ef 78 d1 cb 65 |...../.zk.l.x..e| 62 | 00000050 32 4c 0c c5 29 b9 60 94 c6 79 56 a2 aa 2d d9 ad |2L..).`..yV..-..| 63 | 00000060 51 2c 54 1b 28 23 33 54 cd 48 cb 80 13 45 3d 4a |Q,T.(#3T.H...E=J| 64 | 00000070 8e 2f f2 da bd 68 3e 1b eb 73 f9 2d 35 6b b1 40 |./...h>..s.-5k.@| 65 | 00000080 2e 6d 9d 1c e9 c1 02 80 37 14 03 00 00 01 01 16 |.m......7.......| 66 | 00000090 03 00 00 40 f7 c3 dd a4 64 3d 81 24 de a2 81 7d |...@....d=.$...}| 67 | 000000a0 e4 df 78 46 e7 ba 93 6c 36 43 05 96 fc 75 ef ec |..xF...l6C...u..| 68 | 000000b0 a5 46 6d 47 a5 be 74 ad 15 93 d9 87 4f 1d e2 b3 |.FmG..t.....O...| 69 | 000000c0 03 ff 2e 89 6e 50 f4 d6 a6 e2 b3 54 cb 74 07 f7 |....nP.....T.t..| 70 | 000000d0 ca 1b 8c 0a |....| 71 | >>> Flow 4 (server to client) 72 | 00000000 14 03 00 00 01 01 16 03 00 00 40 6d 3d d8 d5 cf |..........@m=...| 73 | 00000010 05 7d 98 8c 28 28 e2 43 ab ad 4a fa ae bf ec c3 |.}..((.C..J.....| 74 | 00000020 9c 0a 13 4d 28 a4 45 c4 b9 f2 bc c5 12 a2 68 91 |...M(.E.......h.| 75 | 00000030 77 fa 72 f8 9e 4e b7 1f b4 02 02 e3 5d 57 b0 8b |w.r..N......]W..| 76 | 00000040 d8 90 0c 9d e6 df 5b 90 92 a1 0d 17 03 00 00 18 |......[.........| 77 | 00000050 91 48 8a e1 d6 bf 79 1c d5 0a 70 d5 94 20 25 78 |.H....y...p.. %x| 78 | 00000060 d8 84 c8 6e 54 f0 99 01 17 03 00 00 28 74 19 90 |...nT.......(t..| 79 | 00000070 41 44 53 27 bb fb 1f fd 71 34 20 61 a0 eb a4 7c |ADS'....q4 a...|| 80 | 00000080 fe 36 f8 4b d7 b0 27 d3 b9 36 e1 67 af 2d 0e 23 |.6.K..'..6.g.-.#| 81 | 00000090 2b 76 a7 2f c3 15 03 00 00 18 db fc e9 fd 87 5f |+v./..........._| 82 | 000000a0 92 a8 3d 4b 35 f5 c6 48 2c b4 42 50 c3 81 28 f0 |..=K5..H,.BP..(.| 83 | 000000b0 2b 41 |+A| 84 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv12-RSA-3DES: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 5c 01 00 00 58 03 03 52 cc 57 59 68 |....\...X..R.WYh| 3 | 00000010 11 72 a6 ec 6b 0a 47 1d 10 06 ec 75 af 07 38 a0 |.r..k.G....u..8.| 4 | 00000020 30 9e 91 12 e1 9b 19 46 0d d4 45 00 00 04 00 0a |0......F..E.....| 5 | 00000030 00 ff 01 00 00 2b 00 0d 00 22 00 20 06 01 06 02 |.....+...". ....| 6 | 00000040 06 03 05 01 05 02 05 03 04 01 04 02 04 03 03 01 |................| 7 | 00000050 03 02 03 03 02 01 02 02 02 03 01 01 00 0f 00 01 |................| 8 | 00000060 01 |.| 9 | >>> Flow 2 (server to client) 10 | 00000000 16 03 03 00 31 02 00 00 2d 03 03 00 00 00 00 00 |....1...-.......| 11 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 12 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 0a 00 00 |................| 13 | 00000030 05 ff 01 00 01 00 16 03 03 02 be 0b 00 02 ba 00 |................| 14 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 15 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 16 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 17 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 18 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 19 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 20 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 21 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 22 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 23 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 24 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 25 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 26 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 27 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 28 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 29 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 30 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 31 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 32 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 33 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 34 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 35 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 36 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 37 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 38 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 39 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 40 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 41 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 42 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 43 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 44 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 45 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 46 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 47 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 48 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 49 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 50 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 51 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 52 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 53 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 54 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 55 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 56 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 57 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 03 00 04 0e 00 |n8P)l...........| 58 | 00000300 00 00 |..| 59 | >>> Flow 3 (client to server) 60 | 00000000 16 03 03 00 86 10 00 00 82 00 80 7a c0 73 ec cb |...........z.s..| 61 | 00000010 cf c2 a8 86 c0 7e 03 63 57 a1 ce 42 37 6d 78 54 |.....~.cW..B7mxT| 62 | 00000020 29 f5 3e cc 57 c7 0d d9 69 e1 52 5c 3b 6b c4 c7 |).>.W...i.R\;k..| 63 | 00000030 20 6d 59 ee c0 07 81 74 74 9f 62 41 64 f0 4d c8 | mY....tt.bAd.M.| 64 | 00000040 9b aa 1a b9 da 56 07 f5 6c 1c 59 8c d3 f9 08 d9 |.....V..l.Y.....| 65 | 00000050 08 f4 16 93 5d 9a e5 6f fb 9f ba 3d 3c d6 81 ad |....]..o...=<...| 66 | 00000060 02 12 a7 28 b6 81 6a 77 c3 e9 d7 c7 54 d6 77 83 |...(..jw....T.w.| 67 | 00000070 77 de 71 fb b3 f3 2d c4 a5 b1 e5 de aa 0e 21 bd |w.q...-.......!.| 68 | 00000080 91 a2 dc 7f f7 6f 90 82 54 b1 e7 14 03 03 00 01 |.....o..T.......| 69 | 00000090 01 16 03 03 00 30 8f ee bf fb c8 5c 54 f5 29 23 |.....0.....\T.)#| 70 | 000000a0 d4 55 f6 98 a1 6e d5 43 e7 81 b2 36 f2 98 d8 1b |.U...n.C...6....| 71 | 000000b0 0d 76 cb 14 ba 32 d7 36 30 e6 ab 42 80 95 f6 8a |.v...2.60..B....| 72 | 000000c0 60 64 a0 6b 90 81 |`d.k..| 73 | >>> Flow 4 (server to client) 74 | 00000000 14 03 03 00 01 01 16 03 03 00 30 00 00 00 00 00 |..........0.....| 75 | 00000010 00 00 00 2c 21 52 34 63 ac e3 a3 66 45 00 41 0c |...,!R4c...fE.A.| 76 | 00000020 93 5d 6a 74 5a 25 dc 69 1d 76 73 0c f4 42 6a 18 |.]jtZ%.i.vs..Bj.| 77 | 00000030 5b 62 23 e7 fe 41 cf d4 9b 86 35 17 03 03 00 30 |[b#..A....5....0| 78 | 00000040 00 00 00 00 00 00 00 00 7d 5d ce 43 85 5c 6b 89 |........}].C.\k.| 79 | 00000050 c9 a5 0e 22 69 8e b9 4a 77 4c c0 4e cc 79 d9 7e |..."i..JwL.N.y.~| 80 | 00000060 a3 c8 d3 db 5c 53 f8 92 4d c4 5a 88 72 58 05 11 |....\S..M.Z.rX..| 81 | 00000070 15 03 03 00 20 00 00 00 00 00 00 00 00 1d 63 8b |.... .........c.| 82 | 00000080 a7 74 fb 76 1d 47 31 93 1f ec 8c e2 18 8e 21 dd |.t.v.G1.......!.| 83 | 00000090 87 97 9f 1c ca |.....| 84 | -------------------------------------------------------------------------------- /tls_clone/testdata/Client-TLSv12-ECDHE-ECDSA-AES-GCM: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 75 01 00 00 71 03 03 00 00 00 00 00 |....u...q.......| 3 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 4 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1a c0 2f |.............../| 5 | 00000030 c0 2b c0 11 c0 07 c0 13 c0 09 c0 14 c0 0a 00 05 |.+..............| 6 | 00000040 00 2f 00 35 c0 12 00 0a 01 00 00 2e 00 05 00 05 |./.5............| 7 | 00000050 01 00 00 00 00 00 0a 00 08 00 06 00 17 00 18 00 |................| 8 | 00000060 19 00 0b 00 02 01 00 00 0d 00 0a 00 08 04 01 04 |................| 9 | 00000070 03 02 01 02 03 ff 01 00 01 00 |..........| 10 | >>> Flow 2 (server to client) 11 | 00000000 16 03 03 00 59 02 00 00 55 03 03 53 04 f1 02 48 |....Y...U..S...H| 12 | 00000010 03 36 01 05 56 6f f0 54 d2 c3 d3 41 c2 e2 69 7b |.6..Vo.T...A..i{| 13 | 00000020 50 f8 03 ef 3f 5d 7c e6 9c cb fe 20 82 a0 81 fd |P...?]|.... ....| 14 | 00000030 72 4b b8 e6 29 76 3b 0f 1d 0a b7 82 9d 0b cf a0 |rK..)v;.........| 15 | 00000040 65 b1 56 53 c9 d5 58 7b f0 b6 2d cf c0 2b 00 00 |e.VS..X{..-..+..| 16 | 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 17 | 00000060 03 02 0e 0b 00 02 0a 00 02 07 00 02 04 30 82 02 |.............0..| 18 | 00000070 00 30 82 01 62 02 09 00 b8 bf 2d 47 a0 d2 eb f4 |.0..b.....-G....| 19 | 00000080 30 09 06 07 2a 86 48 ce 3d 04 01 30 45 31 0b 30 |0...*.H.=..0E1.0| 20 | 00000090 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 03 |...U....AU1.0...| 21 | 000000a0 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 31 |U....Some-State1| 22 | 000000b0 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 6e |!0...U....Intern| 23 | 000000c0 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 4c |et Widgits Pty L| 24 | 000000d0 74 64 30 1e 17 0d 31 32 31 31 32 32 31 35 30 36 |td0...1211221506| 25 | 000000e0 33 32 5a 17 0d 32 32 31 31 32 30 31 35 30 36 33 |32Z..22112015063| 26 | 000000f0 32 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 41 |2Z0E1.0...U....A| 27 | 00000100 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d 65 |U1.0...U....Some| 28 | 00000110 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a 13 |-State1!0...U...| 29 | 00000120 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 74 |.Internet Widgit| 30 | 00000130 73 20 50 74 79 20 4c 74 64 30 81 9b 30 10 06 07 |s Pty Ltd0..0...| 31 | 00000140 2a 86 48 ce 3d 02 01 06 05 2b 81 04 00 23 03 81 |*.H.=....+...#..| 32 | 00000150 86 00 04 00 c4 a1 ed be 98 f9 0b 48 73 36 7e c3 |...........Hs6~.| 33 | 00000160 16 56 11 22 f2 3d 53 c3 3b 4d 21 3d cd 6b 75 e6 |.V.".=S.;M!=.ku.| 34 | 00000170 f6 b0 dc 9a df 26 c1 bc b2 87 f0 72 32 7c b3 64 |.....&.....r2|.d| 35 | 00000180 2f 1c 90 bc ea 68 23 10 7e fe e3 25 c0 48 3a 69 |/....h#.~..%.H:i| 36 | 00000190 e0 28 6d d3 37 00 ef 04 62 dd 0d a0 9c 70 62 83 |.(m.7...b....pb.| 37 | 000001a0 d8 81 d3 64 31 aa 9e 97 31 bd 96 b0 68 c0 9b 23 |...d1...1...h..#| 38 | 000001b0 de 76 64 3f 1a 5c 7f e9 12 0e 58 58 b6 5f 70 dd |.vd?.\....XX._p.| 39 | 000001c0 9b d8 ea d5 d7 f5 d5 cc b9 b6 9f 30 66 5b 66 9a |...........0f[f.| 40 | 000001d0 20 e2 27 e5 bf fe 3b 30 09 06 07 2a 86 48 ce 3d | .'...;0...*.H.=| 41 | 000001e0 04 01 03 81 8c 00 30 81 88 02 42 01 88 a2 4f eb |......0...B...O.| 42 | 000001f0 e2 45 c5 48 7d 1b ac f5 ed 98 9d ae 47 70 c0 5e |.E.H}.......Gp.^| 43 | 00000200 1b b6 2f bd f1 b6 4d b7 61 40 d3 11 a2 ce ee 0b |../...M.a@......| 44 | 00000210 7e 92 7e ff 76 9d c3 3b 7e a5 3f ce fa 10 e2 59 |~.~.v..;~.?....Y| 45 | 00000220 ec 47 2d 7c ac da 4e 97 0e 15 a0 6f d0 02 42 01 |.G-|..N....o..B.| 46 | 00000230 4d fc be 67 13 9c 2d 05 0e bd 3f a3 8c 25 c1 33 |M..g..-...?..%.3| 47 | 00000240 13 83 0d 94 06 bb d4 37 7a f6 ec 7a c9 86 2e dd |.......7z..z....| 48 | 00000250 d7 11 69 7f 85 7c 56 de fb 31 78 2b e4 c7 78 0d |..i..|V..1x+..x.| 49 | 00000260 ae cb be 9e 4e 36 24 31 7b 6a 0f 39 95 12 07 8f |....N6$1{j.9....| 50 | 00000270 2a 16 03 03 00 d7 0c 00 00 d3 03 00 17 41 04 86 |*............A..| 51 | 00000280 36 b4 78 76 87 70 ed ae 0d 34 70 3d 16 e5 a4 db |6.xv.p...4p=....| 52 | 00000290 ae 28 58 4c 01 5a 56 73 a7 0d 34 59 a7 04 75 69 |.(XL.ZVs..4Y..ui| 53 | 000002a0 f2 55 24 40 b0 33 c6 93 ff ae e0 14 f5 4b ce a8 |.U$@.3.......K..| 54 | 000002b0 e2 e6 9a 67 1d 66 fb 8f fd 56 59 e7 73 f2 2c 04 |...g.f...VY.s.,.| 55 | 000002c0 03 00 8a 30 81 87 02 41 73 ab a8 3c 64 17 69 9f |...0...As..>> Flow 3 (client to server) 66 | 00000000 16 03 03 00 46 10 00 00 42 41 04 1e 18 37 ef 0d |....F...BA...7..| 67 | 00000010 19 51 88 35 75 71 b5 e5 54 5b 12 2e 8f 09 67 fd |.Q.5uq..T[....g.| 68 | 00000020 a7 24 20 3e b2 56 1c ce 97 28 5e f8 2b 2d 4f 9e |.$ >.V...(^.+-O.| 69 | 00000030 f1 07 9f 6c 4b 5b 83 56 e2 32 42 e9 58 b6 d7 49 |...lK[.V.2B.X..I| 70 | 00000040 a6 b5 68 1a 41 03 56 6b dc 5a 89 14 03 03 00 01 |..h.A.Vk.Z......| 71 | 00000050 01 16 03 03 00 28 00 00 00 00 00 00 00 00 87 7a |.....(.........z| 72 | 00000060 82 d7 46 25 1d a6 bb c2 a8 a8 4e a5 d1 f8 02 db |..F%......N.....| 73 | 00000070 33 33 ca 78 b6 d3 bd 77 8a 33 23 a7 95 fb |33.x...w.3#...| 74 | >>> Flow 4 (server to client) 75 | 00000000 14 03 03 00 01 01 16 03 03 00 28 ce a1 9d 01 c0 |..........(.....| 76 | 00000010 31 e5 d5 57 16 e1 a6 b3 8b 25 58 0f fa 2a de 3e |1..W.....%X..*.>| 77 | 00000020 0c d9 06 11 a6 b0 d7 b0 33 ad 31 73 5b 26 b4 d2 |........3.1s[&..| 78 | 00000030 12 56 c8 |.V.| 79 | >>> Flow 5 (client to server) 80 | 00000000 17 03 03 00 1e 00 00 00 00 00 00 00 01 d5 04 4c |...............L| 81 | 00000010 7b 35 b4 d7 90 ae fe 00 d2 f2 4b 76 f1 36 5e 24 |{5........Kv.6^$| 82 | 00000020 4a aa 94 15 03 03 00 1a 00 00 00 00 00 00 00 02 |J...............| 83 | 00000030 d3 1c 41 37 ab f6 17 79 f0 01 a4 19 a5 75 7a 8e |..A7...y.....uz.| 84 | 00000040 a3 b2 |..| 85 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-SSLv3-RSA-AES: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 00 00 2f 01 00 00 2b 03 00 52 cc 57 59 30 |..../...+..R.WY0| 3 | 00000010 e1 ee 8c 60 5b 40 dd 95 bd b4 84 87 2f 01 15 e7 |...`[@....../...| 4 | 00000020 50 88 4c 82 6b 6d 93 8a 57 d0 27 00 00 04 00 2f |P.L.km..W.'..../| 5 | 00000030 00 ff 01 00 |....| 6 | >>> Flow 2 (server to client) 7 | 00000000 16 03 00 00 31 02 00 00 2d 03 00 00 00 00 00 00 |....1...-.......| 8 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 9 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 2f 00 00 |............./..| 10 | 00000030 05 ff 01 00 01 00 16 03 00 02 be 0b 00 02 ba 00 |................| 11 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 12 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 13 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 14 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 15 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 16 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 17 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 18 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 19 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 20 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 21 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 22 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 23 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 24 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 25 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 26 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 27 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 28 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 29 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 30 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 31 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 32 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 33 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 34 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 35 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 36 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 37 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 38 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 39 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 40 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 41 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 42 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 43 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 44 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 45 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 46 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 47 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 48 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 49 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 50 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 51 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 52 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 53 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 54 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 00 00 04 0e 00 |n8P)l...........| 55 | 00000300 00 00 |..| 56 | >>> Flow 3 (client to server) 57 | 00000000 16 03 00 00 84 10 00 00 80 74 50 05 6f f5 83 c9 |.........tP.o...| 58 | 00000010 f5 0c 5a 65 c7 4e c6 f3 87 96 d7 5d 3e 88 27 32 |..Ze.N.....]>.'2| 59 | 00000020 89 12 ba ec db ef c0 85 70 84 ed b6 83 03 8f 44 |........p......D| 60 | 00000030 f5 6f fa fa d0 1f 95 30 d1 ae a7 71 cf ee e9 b1 |.o.....0...q....| 61 | 00000040 80 7b 34 a9 ea 1b 5e e5 71 40 3f e8 7d 30 d1 8b |.{4...^.q@?.}0..| 62 | 00000050 11 f1 68 1f c8 25 f0 77 c5 af b3 92 6e d9 81 cc |..h..%.w....n...| 63 | 00000060 f8 fd 82 95 cc 1f 4a b1 05 15 7a b3 a1 22 33 09 |......J...z.."3.| 64 | 00000070 e7 a5 c2 89 7f 03 e0 91 b6 61 a3 a0 4e 17 0d 7a |.........a..N..z| 65 | 00000080 13 01 c4 b6 50 c7 d9 81 15 14 03 00 00 01 01 16 |....P...........| 66 | 00000090 03 00 00 40 56 da 56 ab e6 26 98 58 53 1f 36 b5 |...@V.V..&.XS.6.| 67 | 000000a0 03 14 bd 42 29 ee 9c 7c e4 48 26 82 68 ae fd fe |...B)..|.H&.h...| 68 | 000000b0 5e a4 43 22 75 95 7b c8 77 88 fd d6 d4 9b c9 b5 |^.C"u.{.w.......| 69 | 000000c0 ee 3e a6 e8 c5 04 90 63 3f ac be 56 67 da 30 d4 |.>.....c?..Vg.0.| 70 | 000000d0 64 fb a8 a0 |d...| 71 | >>> Flow 4 (server to client) 72 | 00000000 14 03 00 00 01 01 16 03 00 00 40 96 af fb 79 96 |..........@...y.| 73 | 00000010 92 97 2d d0 67 46 1e 08 b5 35 65 ef dc bc 8e 57 |..-.gF...5e....W| 74 | 00000020 53 b7 36 58 74 d7 88 b1 55 fc eb fa 2e f3 17 b7 |S.6Xt...U.......| 75 | 00000030 62 58 a0 9d 99 e1 85 d4 33 e0 b4 1f 1d 94 f2 88 |bX......3.......| 76 | 00000040 d5 9a 34 5b 74 cd d2 ff 87 bd 52 17 03 00 00 20 |..4[t.....R.... | 77 | 00000050 c6 61 c2 28 ac d2 0c 08 7f f1 c2 62 af 37 7e 78 |.a.(.......b.7~x| 78 | 00000060 e8 e2 a1 54 f2 3a 80 97 f8 47 64 f2 cd 94 dd 0b |...T.:...Gd.....| 79 | 00000070 17 03 00 00 30 b8 40 8f a3 18 ff 03 84 d4 1c 28 |....0.@........(| 80 | 00000080 82 ce d8 9a 81 3a dd 23 7c 65 d8 ca f7 f1 46 1b |.....:.#|e....F.| 81 | 00000090 70 f0 d7 d9 54 a7 71 e6 4d d4 25 61 5a e4 30 d3 |p...T.q.M.%aZ.0.| 82 | 000000a0 4a 42 ae 26 a5 15 03 00 00 20 c4 e8 ed 40 57 00 |JB.&..... ...@W.| 83 | 000000b0 dc a5 0e 82 90 47 92 08 dd 7e 50 6b 30 66 5e 90 |.....G...~Pk0f^.| 84 | 000000c0 73 7c 81 93 8d 24 b1 06 e7 39 |s|...$...9| 85 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv10-ECDHE-ECDSA-AES: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 76 01 00 00 72 03 01 53 04 f0 f9 4b |....v...r..S...K| 3 | 00000010 30 a8 68 d0 79 13 14 69 ee 3b 5d 05 cb 71 63 43 |0.h.y..i.;]..qcC| 4 | 00000020 4a 55 6b 05 25 53 19 ba e0 2f b1 00 00 04 c0 0a |JUk.%S.../......| 5 | 00000030 00 ff 01 00 00 45 00 0b 00 04 03 00 01 02 00 0a |.....E..........| 6 | 00000040 00 34 00 32 00 0e 00 0d 00 19 00 0b 00 0c 00 18 |.4.2............| 7 | 00000050 00 09 00 0a 00 16 00 17 00 08 00 06 00 07 00 14 |................| 8 | 00000060 00 15 00 04 00 05 00 12 00 13 00 01 00 02 00 03 |................| 9 | 00000070 00 0f 00 10 00 11 00 0f 00 01 01 |...........| 10 | >>> Flow 2 (server to client) 11 | 00000000 16 03 01 00 31 02 00 00 2d 03 01 00 00 00 00 00 |....1...-.......| 12 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 13 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 c0 0a 00 00 |................| 14 | 00000030 05 ff 01 00 01 00 16 03 01 02 0e 0b 00 02 0a 00 |................| 15 | 00000040 02 07 00 02 04 30 82 02 00 30 82 01 62 02 09 00 |.....0...0..b...| 16 | 00000050 b8 bf 2d 47 a0 d2 eb f4 30 09 06 07 2a 86 48 ce |..-G....0...*.H.| 17 | 00000060 3d 04 01 30 45 31 0b 30 09 06 03 55 04 06 13 02 |=..0E1.0...U....| 18 | 00000070 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 19 | 00000080 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 20 | 00000090 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 21 | 000000a0 74 73 20 50 74 79 20 4c 74 64 30 1e 17 0d 31 32 |ts Pty Ltd0...12| 22 | 000000b0 31 31 32 32 31 35 30 36 33 32 5a 17 0d 32 32 31 |1122150632Z..221| 23 | 000000c0 31 32 30 31 35 30 36 33 32 5a 30 45 31 0b 30 09 |120150632Z0E1.0.| 24 | 000000d0 06 03 55 04 06 13 02 41 55 31 13 30 11 06 03 55 |..U....AU1.0...U| 25 | 000000e0 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 31 21 |....Some-State1!| 26 | 000000f0 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 6e 65 |0...U....Interne| 27 | 00000100 74 20 57 69 64 67 69 74 73 20 50 74 79 20 4c 74 |t Widgits Pty Lt| 28 | 00000110 64 30 81 9b 30 10 06 07 2a 86 48 ce 3d 02 01 06 |d0..0...*.H.=...| 29 | 00000120 05 2b 81 04 00 23 03 81 86 00 04 00 c4 a1 ed be |.+...#..........| 30 | 00000130 98 f9 0b 48 73 36 7e c3 16 56 11 22 f2 3d 53 c3 |...Hs6~..V.".=S.| 31 | 00000140 3b 4d 21 3d cd 6b 75 e6 f6 b0 dc 9a df 26 c1 bc |;M!=.ku......&..| 32 | 00000150 b2 87 f0 72 32 7c b3 64 2f 1c 90 bc ea 68 23 10 |...r2|.d/....h#.| 33 | 00000160 7e fe e3 25 c0 48 3a 69 e0 28 6d d3 37 00 ef 04 |~..%.H:i.(m.7...| 34 | 00000170 62 dd 0d a0 9c 70 62 83 d8 81 d3 64 31 aa 9e 97 |b....pb....d1...| 35 | 00000180 31 bd 96 b0 68 c0 9b 23 de 76 64 3f 1a 5c 7f e9 |1...h..#.vd?.\..| 36 | 00000190 12 0e 58 58 b6 5f 70 dd 9b d8 ea d5 d7 f5 d5 cc |..XX._p.........| 37 | 000001a0 b9 b6 9f 30 66 5b 66 9a 20 e2 27 e5 bf fe 3b 30 |...0f[f. .'...;0| 38 | 000001b0 09 06 07 2a 86 48 ce 3d 04 01 03 81 8c 00 30 81 |...*.H.=......0.| 39 | 000001c0 88 02 42 01 88 a2 4f eb e2 45 c5 48 7d 1b ac f5 |..B...O..E.H}...| 40 | 000001d0 ed 98 9d ae 47 70 c0 5e 1b b6 2f bd f1 b6 4d b7 |....Gp.^../...M.| 41 | 000001e0 61 40 d3 11 a2 ce ee 0b 7e 92 7e ff 76 9d c3 3b |a@......~.~.v..;| 42 | 000001f0 7e a5 3f ce fa 10 e2 59 ec 47 2d 7c ac da 4e 97 |~.?....Y.G-|..N.| 43 | 00000200 0e 15 a0 6f d0 02 42 01 4d fc be 67 13 9c 2d 05 |...o..B.M..g..-.| 44 | 00000210 0e bd 3f a3 8c 25 c1 33 13 83 0d 94 06 bb d4 37 |..?..%.3.......7| 45 | 00000220 7a f6 ec 7a c9 86 2e dd d7 11 69 7f 85 7c 56 de |z..z......i..|V.| 46 | 00000230 fb 31 78 2b e4 c7 78 0d ae cb be 9e 4e 36 24 31 |.1x+..x.....N6$1| 47 | 00000240 7b 6a 0f 39 95 12 07 8f 2a 16 03 01 00 d6 0c 00 |{j.9....*.......| 48 | 00000250 00 d2 03 00 17 41 04 1e 18 37 ef 0d 19 51 88 35 |.....A...7...Q.5| 49 | 00000260 75 71 b5 e5 54 5b 12 2e 8f 09 67 fd a7 24 20 3e |uq..T[....g..$ >| 50 | 00000270 b2 56 1c ce 97 28 5e f8 2b 2d 4f 9e f1 07 9f 6c |.V...(^.+-O....l| 51 | 00000280 4b 5b 83 56 e2 32 42 e9 58 b6 d7 49 a6 b5 68 1a |K[.V.2B.X..I..h.| 52 | 00000290 41 03 56 6b dc 5a 89 00 8b 30 81 88 02 42 00 c6 |A.Vk.Z...0...B..| 53 | 000002a0 85 8e 06 b7 04 04 e9 cd 9e 3e cb 66 23 95 b4 42 |.........>.f#..B| 54 | 000002b0 9c 64 81 39 05 3f b5 21 f8 28 af 60 6b 4d 3d ba |.d.9.?.!.(.`kM=.| 55 | 000002c0 a1 4b 5e 77 ef e7 59 28 fe 1d c1 27 a2 ff a8 de |.K^w..Y(...'....| 56 | 000002d0 33 48 b3 c1 85 6a 42 9b f9 7e 7e 31 c2 e5 bd 66 |3H...jB..~~1...f| 57 | 000002e0 02 42 00 ad 7d 06 35 ab ec 8d ac d4 ba 1b 49 5e |.B..}.5.......I^| 58 | 000002f0 05 5f f0 97 93 82 b8 2b 8d 91 98 63 8e b4 14 62 |._.....+...c...b| 59 | 00000300 db 1e c9 2b 30 f8 41 9b a6 e6 bc de 0e 68 30 21 |...+0.A......h0!| 60 | 00000310 d8 ef 2f 05 42 da f2 e0 2c 06 33 1d 0d 9a 1a 75 |../.B...,.3....u| 61 | 00000320 59 a7 3a bc 16 03 01 00 04 0e 00 00 00 |Y.:..........| 62 | >>> Flow 3 (client to server) 63 | 00000000 16 03 01 00 46 10 00 00 42 41 04 08 28 cf bd 3c |....F...BA..(..<| 64 | 00000010 3c cc 98 9e 73 3f 92 a7 cb 22 83 3b c7 61 46 0e |<...s?...".;.aF.| 65 | 00000020 4d 7c 30 b5 06 85 2f 01 be b5 40 e2 64 1e 45 c1 |M|0.../...@.d.E.| 66 | 00000030 9d 73 95 d5 65 92 0b 9b e7 6f c6 91 ab b6 fa be |.s..e....o......| 67 | 00000040 61 83 a7 f2 eb f5 65 31 fe 24 7b 14 03 01 00 01 |a.....e1.${.....| 68 | 00000050 01 16 03 01 00 30 15 d1 c4 ca 0b 01 84 13 5a ba |.....0........Z.| 69 | 00000060 89 04 87 73 7c bb d8 89 7e 10 27 ba 6f 5d dc d3 |...s|...~.'.o]..| 70 | 00000070 b5 ef 32 86 58 cc fb eb 5c 32 9e 95 ef 01 1c ac |..2.X...\2......| 71 | 00000080 dc 8e df 7f fe 0a |......| 72 | >>> Flow 4 (server to client) 73 | 00000000 14 03 01 00 01 01 16 03 01 00 30 e8 48 86 81 3c |..........0.H..<| 74 | 00000010 f5 25 5c 94 a9 06 c4 5c 71 62 b1 43 76 ec 2c 44 |.%\....\qb.Cv.,D| 75 | 00000020 95 b5 8c 95 d2 ff 82 92 b6 fc 52 75 03 c6 a1 f0 |..........Ru....| 76 | 00000030 99 6d b1 ed ec 68 6c d7 9f 18 50 17 03 01 00 20 |.m...hl...P.... | 77 | 00000040 32 d9 26 8a 81 b8 9d a5 7b fd d5 4e 7a db 2e 29 |2.&.....{..Nz..)| 78 | 00000050 58 9a 4f 6a 27 18 bc dc c2 49 b8 65 cb 8e 16 5a |X.Oj'....I.e...Z| 79 | 00000060 17 03 01 00 30 c4 56 0a ad 9a 82 cb 3e 32 f1 7c |....0.V.....>2.|| 80 | 00000070 95 6e dd cd e9 4d f0 e5 2d c9 a3 f7 de bb d7 fd |.n...M..-.......| 81 | 00000080 84 bb df 34 8c 64 1f 03 58 64 19 4a 5b 7a a8 81 |...4.d..Xd.J[z..| 82 | 00000090 52 bb 51 0a 43 15 03 01 00 20 89 18 7a 40 ec 49 |R.Q.C.... ..z@.I| 83 | 000000a0 52 d5 d3 20 ac 07 eb e9 4a 78 23 cf e7 21 32 74 |R.. ....Jx#..!2t| 84 | 000000b0 ec 40 8d a8 f4 33 1c ae 93 cf |.@...3....| 85 | -------------------------------------------------------------------------------- /tls_clone/testdata/Client-TLSv10-ECDHE-ECDSA-AES: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 75 01 00 00 71 03 03 00 00 00 00 00 |....u...q.......| 3 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 4 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1a c0 2f |.............../| 5 | 00000030 c0 2b c0 11 c0 07 c0 13 c0 09 c0 14 c0 0a 00 05 |.+..............| 6 | 00000040 00 2f 00 35 c0 12 00 0a 01 00 00 2e 00 05 00 05 |./.5............| 7 | 00000050 01 00 00 00 00 00 0a 00 08 00 06 00 17 00 18 00 |................| 8 | 00000060 19 00 0b 00 02 01 00 00 0d 00 0a 00 08 04 01 04 |................| 9 | 00000070 03 02 01 02 03 ff 01 00 01 00 |..........| 10 | >>> Flow 2 (server to client) 11 | 00000000 16 03 01 00 59 02 00 00 55 03 01 53 04 f1 02 b2 |....Y...U..S....| 12 | 00000010 e0 f6 f6 b5 c9 5b 28 d0 5d 58 1b 6f 4e 2b 9d 05 |.....[(.]X.oN+..| 13 | 00000020 2a b9 b4 da 45 cf f3 10 b2 23 44 20 f8 4d 59 05 |*...E....#D .MY.| 14 | 00000030 ad 27 f2 a0 ee 7f ec cc 20 dc e7 a2 1b 07 b3 a5 |.'...... .......| 15 | 00000040 37 7e 61 3d d6 5c 03 cf cc f5 9b ca c0 09 00 00 |7~a=.\..........| 16 | 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 17 | 00000060 01 02 0e 0b 00 02 0a 00 02 07 00 02 04 30 82 02 |.............0..| 18 | 00000070 00 30 82 01 62 02 09 00 b8 bf 2d 47 a0 d2 eb f4 |.0..b.....-G....| 19 | 00000080 30 09 06 07 2a 86 48 ce 3d 04 01 30 45 31 0b 30 |0...*.H.=..0E1.0| 20 | 00000090 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 03 |...U....AU1.0...| 21 | 000000a0 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 31 |U....Some-State1| 22 | 000000b0 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 6e |!0...U....Intern| 23 | 000000c0 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 4c |et Widgits Pty L| 24 | 000000d0 74 64 30 1e 17 0d 31 32 31 31 32 32 31 35 30 36 |td0...1211221506| 25 | 000000e0 33 32 5a 17 0d 32 32 31 31 32 30 31 35 30 36 33 |32Z..22112015063| 26 | 000000f0 32 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 41 |2Z0E1.0...U....A| 27 | 00000100 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d 65 |U1.0...U....Some| 28 | 00000110 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a 13 |-State1!0...U...| 29 | 00000120 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 74 |.Internet Widgit| 30 | 00000130 73 20 50 74 79 20 4c 74 64 30 81 9b 30 10 06 07 |s Pty Ltd0..0...| 31 | 00000140 2a 86 48 ce 3d 02 01 06 05 2b 81 04 00 23 03 81 |*.H.=....+...#..| 32 | 00000150 86 00 04 00 c4 a1 ed be 98 f9 0b 48 73 36 7e c3 |...........Hs6~.| 33 | 00000160 16 56 11 22 f2 3d 53 c3 3b 4d 21 3d cd 6b 75 e6 |.V.".=S.;M!=.ku.| 34 | 00000170 f6 b0 dc 9a df 26 c1 bc b2 87 f0 72 32 7c b3 64 |.....&.....r2|.d| 35 | 00000180 2f 1c 90 bc ea 68 23 10 7e fe e3 25 c0 48 3a 69 |/....h#.~..%.H:i| 36 | 00000190 e0 28 6d d3 37 00 ef 04 62 dd 0d a0 9c 70 62 83 |.(m.7...b....pb.| 37 | 000001a0 d8 81 d3 64 31 aa 9e 97 31 bd 96 b0 68 c0 9b 23 |...d1...1...h..#| 38 | 000001b0 de 76 64 3f 1a 5c 7f e9 12 0e 58 58 b6 5f 70 dd |.vd?.\....XX._p.| 39 | 000001c0 9b d8 ea d5 d7 f5 d5 cc b9 b6 9f 30 66 5b 66 9a |...........0f[f.| 40 | 000001d0 20 e2 27 e5 bf fe 3b 30 09 06 07 2a 86 48 ce 3d | .'...;0...*.H.=| 41 | 000001e0 04 01 03 81 8c 00 30 81 88 02 42 01 88 a2 4f eb |......0...B...O.| 42 | 000001f0 e2 45 c5 48 7d 1b ac f5 ed 98 9d ae 47 70 c0 5e |.E.H}.......Gp.^| 43 | 00000200 1b b6 2f bd f1 b6 4d b7 61 40 d3 11 a2 ce ee 0b |../...M.a@......| 44 | 00000210 7e 92 7e ff 76 9d c3 3b 7e a5 3f ce fa 10 e2 59 |~.~.v..;~.?....Y| 45 | 00000220 ec 47 2d 7c ac da 4e 97 0e 15 a0 6f d0 02 42 01 |.G-|..N....o..B.| 46 | 00000230 4d fc be 67 13 9c 2d 05 0e bd 3f a3 8c 25 c1 33 |M..g..-...?..%.3| 47 | 00000240 13 83 0d 94 06 bb d4 37 7a f6 ec 7a c9 86 2e dd |.......7z..z....| 48 | 00000250 d7 11 69 7f 85 7c 56 de fb 31 78 2b e4 c7 78 0d |..i..|V..1x+..x.| 49 | 00000260 ae cb be 9e 4e 36 24 31 7b 6a 0f 39 95 12 07 8f |....N6$1{j.9....| 50 | 00000270 2a 16 03 01 00 d5 0c 00 00 d1 03 00 17 41 04 da |*............A..| 51 | 00000280 5a fd 09 e5 d6 c0 70 41 5e 3a 87 eb df 0c ad 90 |Z.....pA^:......| 52 | 00000290 22 8a 2f 90 81 0c 24 00 68 92 f3 d5 95 2f 93 43 |"./...$.h..../.C| 53 | 000002a0 e9 58 2d 18 28 62 ee 33 5b 21 2e 49 87 21 4d 32 |.X-.(b.3[!.I.!M2| 54 | 000002b0 32 19 b3 ba fe 2d 9a 85 12 0e a1 77 08 06 75 00 |2....-.....w..u.| 55 | 000002c0 8a 30 81 87 02 42 01 91 14 fc 68 74 95 10 4b d4 |.0...B....ht..K.| 56 | 000002d0 67 60 12 46 bb b0 f6 98 77 a3 41 b8 01 5c 49 54 |g`.F....w.A..\IT| 57 | 000002e0 9e 3e 81 e7 97 a3 b9 73 6e 15 74 67 be e5 d9 eb |.>.....sn.tg....| 58 | 000002f0 8b 87 c5 22 ab ab 58 28 4f d1 b6 80 94 1b f5 f7 |..."..X(O.......| 59 | 00000300 12 43 ef 0a c7 3e 1a 76 02 41 7a 00 49 cb 9f 3b |.C...>.v.Az.I..;| 60 | 00000310 91 6e 38 58 0a d3 d0 d1 ee 67 f0 b6 5d cd fa 23 |.n8X.....g..]..#| 61 | 00000320 b6 98 43 af 9c 71 90 1e 1d 50 a2 6e 61 5b f2 92 |..C..q...P.na[..| 62 | 00000330 b4 69 73 f2 3b 54 bf 1c 9d 05 19 97 e4 4e 41 9e |.is.;T.......NA.| 63 | 00000340 f2 9a 76 77 9a 86 43 1f 1f 30 a2 16 03 01 00 04 |..vw..C..0......| 64 | 00000350 0e 00 00 00 |....| 65 | >>> Flow 3 (client to server) 66 | 00000000 16 03 01 00 46 10 00 00 42 41 04 1e 18 37 ef 0d |....F...BA...7..| 67 | 00000010 19 51 88 35 75 71 b5 e5 54 5b 12 2e 8f 09 67 fd |.Q.5uq..T[....g.| 68 | 00000020 a7 24 20 3e b2 56 1c ce 97 28 5e f8 2b 2d 4f 9e |.$ >.V...(^.+-O.| 69 | 00000030 f1 07 9f 6c 4b 5b 83 56 e2 32 42 e9 58 b6 d7 49 |...lK[.V.2B.X..I| 70 | 00000040 a6 b5 68 1a 41 03 56 6b dc 5a 89 14 03 01 00 01 |..h.A.Vk.Z......| 71 | 00000050 01 16 03 01 00 30 88 60 65 b2 d7 51 1f ad 96 56 |.....0.`e..Q...V| 72 | 00000060 4e 0a 20 eb b5 b0 1a dd 4c f6 1a cf d4 5c 47 c4 |N. .....L....\G.| 73 | 00000070 9c 7c a0 36 dd d1 1b 96 91 99 c0 a7 2d 9a 7c 42 |.|.6........-.|B| 74 | 00000080 51 d1 de 87 2b a4 |Q...+.| 75 | >>> Flow 4 (server to client) 76 | 00000000 14 03 01 00 01 01 16 03 01 00 30 86 6c b5 94 69 |..........0.l..i| 77 | 00000010 2e e0 55 a2 4d a8 63 f2 5b 1f ae 34 21 c8 21 6a |..U.M.c.[..4!.!j| 78 | 00000020 00 b6 56 ed 4e 2a b0 ff 01 2f da ce a1 c0 41 03 |..V.N*.../....A.| 79 | 00000030 a9 1b 6e 2e e1 88 50 ba 62 14 88 |..n...P.b..| 80 | >>> Flow 5 (client to server) 81 | 00000000 17 03 01 00 20 a6 63 0a 2f a5 dc e1 fb cb 7b 1f |.... .c./.....{.| 82 | 00000010 f2 da 74 c3 ff e9 f5 8b 9c 5f 0c d3 f7 1f 44 e6 |..t......_....D.| 83 | 00000020 90 13 5c 48 50 17 03 01 00 20 c7 75 b5 ff bc 09 |..\HP.... .u....| 84 | 00000030 34 f2 45 db 0d 22 08 8e f1 35 cd b6 0f b0 eb 2a |4.E.."...5.....*| 85 | 00000040 b7 1a d0 8e 14 a4 54 84 f9 dc 15 03 01 00 20 e0 |......T....... .| 86 | 00000050 36 3d aa b3 a9 b4 20 23 ca 9e 8c 5d fc a8 c8 b7 |6=.... #...]....| 87 | 00000060 f5 c2 b6 d0 5a e2 ce a5 7b 68 a0 48 86 95 6a |....Z...{h.H..j| 88 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv12-RSA-AES: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 5c 01 00 00 58 03 03 52 cc 57 59 d0 |....\...X..R.WY.| 3 | 00000010 38 05 36 7e e3 1e 93 2a 5a bf dc c2 f8 0a 03 6f |8.6~...*Z......o| 4 | 00000020 1a fc 21 74 e5 8b 2a c3 9e 2c 26 00 00 04 00 2f |..!t..*..,&..../| 5 | 00000030 00 ff 01 00 00 2b 00 0d 00 22 00 20 06 01 06 02 |.....+...". ....| 6 | 00000040 06 03 05 01 05 02 05 03 04 01 04 02 04 03 03 01 |................| 7 | 00000050 03 02 03 03 02 01 02 02 02 03 01 01 00 0f 00 01 |................| 8 | 00000060 01 |.| 9 | >>> Flow 2 (server to client) 10 | 00000000 16 03 03 00 31 02 00 00 2d 03 03 00 00 00 00 00 |....1...-.......| 11 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 12 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 2f 00 00 |............./..| 13 | 00000030 05 ff 01 00 01 00 16 03 03 02 be 0b 00 02 ba 00 |................| 14 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 15 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 16 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 17 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 18 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 19 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 20 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 21 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 22 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 23 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 24 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 25 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 26 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 27 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 28 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 29 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 30 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 31 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 32 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 33 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 34 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 35 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 36 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 37 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 38 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 39 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 40 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 41 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 42 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 43 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 44 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 45 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 46 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 47 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 48 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 49 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 50 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 51 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 52 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 53 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 54 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 55 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 56 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 57 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 03 00 04 0e 00 |n8P)l...........| 58 | 00000300 00 00 |..| 59 | >>> Flow 3 (client to server) 60 | 00000000 16 03 03 00 86 10 00 00 82 00 80 4b b4 28 bc 78 |...........K.(.x| 61 | 00000010 41 34 f3 49 e8 74 07 74 42 ae 2e 55 9e 9a ce e5 |A4.I.t.tB..U....| 62 | 00000020 4a 1b e7 55 c7 64 c4 9c b3 dd 20 d6 f8 8e 67 b3 |J..U.d.... ...g.| 63 | 00000030 7a 5c 3b 34 e4 1a f6 bd 65 fc 21 cd 9a de 64 77 |z\;4....e.!...dw| 64 | 00000040 09 a5 92 e5 a4 f5 18 7b 23 5b 8b c1 95 23 97 6f |.......{#[...#.o| 65 | 00000050 76 55 04 34 22 7d 43 71 db cd eb f8 36 36 44 4b |vU.4"}Cq....66DK| 66 | 00000060 ae e3 cc ec 64 88 7b e1 ea d6 ab 49 35 94 a5 04 |....d.{....I5...| 67 | 00000070 1e 83 c5 cf 21 bb ca 33 5f d4 bf 1d d3 4d 07 59 |....!..3_....M.Y| 68 | 00000080 b4 39 b2 4b 7b 05 43 70 0d ba 7a 14 03 03 00 01 |.9.K{.Cp..z.....| 69 | 00000090 01 16 03 03 00 40 74 4b 7d b2 53 49 ea 86 90 c3 |.....@tK}.SI....| 70 | 000000a0 64 6b 64 31 1a 2a 3f 1a 37 1e 56 b8 dd 12 6d 56 |dkd1.*?.7.V...mV| 71 | 000000b0 2a 61 92 5b 39 e7 e1 be 71 70 4b 9b b3 f0 71 e7 |*a.[9...qpK...q.| 72 | 000000c0 47 2e 2e 17 c3 0a 66 9f 69 74 30 2d f0 a0 7f 84 |G.....f.it0-....| 73 | 000000d0 25 db c1 81 ee cf |%.....| 74 | >>> Flow 4 (server to client) 75 | 00000000 14 03 03 00 01 01 16 03 03 00 40 00 00 00 00 00 |..........@.....| 76 | 00000010 00 00 00 00 00 00 00 00 00 00 00 f3 4d 5a fc 21 |............MZ.!| 77 | 00000020 30 b5 a1 86 9d e2 ea 38 ac 54 57 fa 5a 54 97 b8 |0......8.TW.ZT..| 78 | 00000030 bb 4d 64 09 ef ce a1 75 0c 50 8d ff 5c c2 e9 47 |.Md....u.P..\..G| 79 | 00000040 95 93 53 c0 bd dc c5 9c e0 59 17 17 03 03 00 40 |..S......Y.....@| 80 | 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 81 | 00000060 69 c5 48 6e 45 cf 98 1b 2c 23 40 d1 ab a3 c2 e2 |i.HnE...,#@.....| 82 | 00000070 10 7b b1 c8 21 3c f0 eb 96 bd 4f 78 b2 4a 7b 18 |.{..!<....Ox.J{.| 83 | 00000080 4c b1 a6 67 bf 06 40 01 d0 8d 91 be 17 d8 0c 71 |L..g..@........q| 84 | 00000090 15 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| 85 | 000000a0 00 00 00 00 00 20 84 80 3d 70 fe ae ee d7 2f e9 |..... ..=p..../.| 86 | 000000b0 bf 65 30 bf 0b dd 98 ea bb ba 12 14 98 53 7f d5 |.e0..........S..| 87 | 000000c0 56 ce 06 3c d0 |V..<.| 88 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv12-IssueTicket: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 60 01 00 00 5c 03 03 52 cc 57 59 7e |....`...\..R.WY~| 3 | 00000010 43 5c 3b fd 50 ab 61 3f 64 a4 f9 bd ba 8c 28 e1 |C\;.P.a?d.....(.| 4 | 00000020 f9 a1 45 7e 48 9e 62 af 25 de 0e 00 00 04 00 05 |..E~H.b.%.......| 5 | 00000030 00 ff 01 00 00 2f 00 23 00 00 00 0d 00 22 00 20 |...../.#.....". | 6 | 00000040 06 01 06 02 06 03 05 01 05 02 05 03 04 01 04 02 |................| 7 | 00000050 04 03 03 01 03 02 03 03 02 01 02 02 02 03 01 01 |................| 8 | 00000060 00 0f 00 01 01 |.....| 9 | >>> Flow 2 (server to client) 10 | 00000000 16 03 03 00 35 02 00 00 31 03 03 00 00 00 00 00 |....5...1.......| 11 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 12 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 |................| 13 | 00000030 09 00 23 00 00 ff 01 00 01 00 16 03 03 02 be 0b |..#.............| 14 | 00000040 00 02 ba 00 02 b7 00 02 b4 30 82 02 b0 30 82 02 |.........0...0..| 15 | 00000050 19 a0 03 02 01 02 02 09 00 85 b0 bb a4 8a 7f b8 |................| 16 | 00000060 ca 30 0d 06 09 2a 86 48 86 f7 0d 01 01 05 05 00 |.0...*.H........| 17 | 00000070 30 45 31 0b 30 09 06 03 55 04 06 13 02 41 55 31 |0E1.0...U....AU1| 18 | 00000080 13 30 11 06 03 55 04 08 13 0a 53 6f 6d 65 2d 53 |.0...U....Some-S| 19 | 00000090 74 61 74 65 31 21 30 1f 06 03 55 04 0a 13 18 49 |tate1!0...U....I| 20 | 000000a0 6e 74 65 72 6e 65 74 20 57 69 64 67 69 74 73 20 |nternet Widgits | 21 | 000000b0 50 74 79 20 4c 74 64 30 1e 17 0d 31 30 30 34 32 |Pty Ltd0...10042| 22 | 000000c0 34 30 39 30 39 33 38 5a 17 0d 31 31 30 34 32 34 |4090938Z..110424| 23 | 000000d0 30 39 30 39 33 38 5a 30 45 31 0b 30 09 06 03 55 |090938Z0E1.0...U| 24 | 000000e0 04 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 |....AU1.0...U...| 25 | 000000f0 0a 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 |.Some-State1!0..| 26 | 00000100 03 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 |.U....Internet W| 27 | 00000110 69 64 67 69 74 73 20 50 74 79 20 4c 74 64 30 81 |idgits Pty Ltd0.| 28 | 00000120 9f 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 |.0...*.H........| 29 | 00000130 03 81 8d 00 30 81 89 02 81 81 00 bb 79 d6 f5 17 |....0.......y...| 30 | 00000140 b5 e5 bf 46 10 d0 dc 69 be e6 2b 07 43 5a d0 03 |...F...i..+.CZ..| 31 | 00000150 2d 8a 7a 43 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 |-.zC...R..eL,x.#| 32 | 00000160 8c b5 b4 82 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 |........;~b.,.3.| 33 | 00000170 fe 12 5c 7a 56 fc f5 06 bf fa 58 7b 26 3f b5 cd |..\zV.....X{&?..| 34 | 00000180 04 d3 d0 c9 21 96 4a c7 f4 54 9f 5a bf ef 42 71 |....!.J..T.Z..Bq| 35 | 00000190 00 fe 18 99 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e |......~.}}..9...| 36 | 000001a0 db 51 c9 7c e3 c0 4c 3b 32 66 01 cf af b1 1d b8 |.Q.|..L;2f......| 37 | 000001b0 71 9a 1d db db 89 6b ae da 2d 79 02 03 01 00 01 |q.....k..-y.....| 38 | 000001c0 a3 81 a7 30 81 a4 30 1d 06 03 55 1d 0e 04 16 04 |...0..0...U.....| 39 | 000001d0 14 b1 ad e2 85 5a cf cb 28 db 69 ce 23 69 de d3 |.....Z..(.i.#i..| 40 | 000001e0 26 8e 18 88 39 30 75 06 03 55 1d 23 04 6e 30 6c |&...90u..U.#.n0l| 41 | 000001f0 80 14 b1 ad e2 85 5a cf cb 28 db 69 ce 23 69 de |......Z..(.i.#i.| 42 | 00000200 d3 26 8e 18 88 39 a1 49 a4 47 30 45 31 0b 30 09 |.&...9.I.G0E1.0.| 43 | 00000210 06 03 55 04 06 13 02 41 55 31 13 30 11 06 03 55 |..U....AU1.0...U| 44 | 00000220 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 31 21 |....Some-State1!| 45 | 00000230 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 6e 65 |0...U....Interne| 46 | 00000240 74 20 57 69 64 67 69 74 73 20 50 74 79 20 4c 74 |t Widgits Pty Lt| 47 | 00000250 64 82 09 00 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 |d...........0...| 48 | 00000260 55 1d 13 04 05 30 03 01 01 ff 30 0d 06 09 2a 86 |U....0....0...*.| 49 | 00000270 48 86 f7 0d 01 01 05 05 00 03 81 81 00 08 6c 45 |H.............lE| 50 | 00000280 24 c7 6b b1 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a |$.k.Y..R.......z| 51 | 00000290 64 75 b5 5a 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f |du.Z.f..+...f..O| 52 | 000002a0 38 b3 6e 60 d3 92 fd f7 41 08 b5 25 13 b1 18 7a |8.n`....A..%...z| 53 | 000002b0 24 fb 30 1d ba ed 98 b9 17 ec e7 d7 31 59 db 95 |$.0.........1Y..| 54 | 000002c0 d3 1d 78 ea 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 |..x.PV\..Z-Z_3..| 55 | 000002d0 d8 c9 75 90 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f |..u....R...... _| 56 | 000002e0 f2 a0 1c a3 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d |..........W.p.&m| 57 | 000002f0 71 99 9b 26 6e 38 50 29 6c 90 a7 bd d9 16 03 03 |q..&n8P)l.......| 58 | 00000300 00 04 0e 00 00 00 |......| 59 | >>> Flow 3 (client to server) 60 | 00000000 16 03 03 00 86 10 00 00 82 00 80 6e 2e 79 82 3a |...........n.y.:| 61 | 00000010 c4 68 72 f5 a2 42 3d 71 f9 ec 22 8c 0b fa f0 82 |.hr..B=q..".....| 62 | 00000020 82 c0 cb fc 52 0a 51 03 04 8c eb 4a 4e 4f b6 49 |....R.Q....JNO.I| 63 | 00000030 ef 94 65 21 3c f7 9d 46 85 6e 35 d5 17 6b ff a3 |..e!<..F.n5..k..| 64 | 00000040 5e 4d c1 36 1a 2f 68 f5 06 d4 2d 73 4f 1c 3b 7b |^M.6./h...-sO.;{| 65 | 00000050 c1 fa 4e 7e 7c f9 6c 13 a6 f4 3a 43 e9 aa be 22 |..N~|.l...:C..."| 66 | 00000060 85 6f 2f 7c 5b b0 08 e2 86 b2 ae cb a9 12 d8 32 |.o/|[..........2| 67 | 00000070 80 1d e4 2e 5d c3 66 d1 19 e5 89 33 2a 88 24 40 |....].f....3*.$@| 68 | 00000080 2a 6d 6b b5 f1 92 4b 66 06 b8 49 14 03 03 00 01 |*mk...Kf..I.....| 69 | 00000090 01 16 03 03 00 24 16 49 e2 a0 67 31 cf 0d 72 cb |.....$.I..g1..r.| 70 | 000000a0 ac 16 2c 80 37 71 69 f7 5f c4 d3 00 19 b7 4b fb |..,.7qi._.....K.| 71 | 000000b0 e5 e9 74 8e 30 b3 1c c5 ae e6 |..t.0.....| 72 | >>> Flow 4 (server to client) 73 | 00000000 16 03 03 00 72 04 00 00 6e 00 00 00 00 00 68 00 |....r...n.....h.| 74 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 65 |...............e| 75 | 00000020 ea 4b d1 ef ba 06 38 1e e1 88 82 3a cd 03 ac 3b |.K....8....:...;| 76 | 00000030 39 0a e0 19 fd af 6c 57 30 df 31 6e f7 92 38 4b |9.....lW0.1n..8K| 77 | 00000040 5d 77 90 39 ff 32 51 f5 ed 12 d7 b0 7c 4d 6c c5 |]w.9.2Q.....|Ml.| 78 | 00000050 76 e4 72 48 3e 59 23 fe 0d 15 df f4 ba ea b9 67 |v.rH>Y#........g| 79 | 00000060 16 23 8f 7d 15 b6 11 f1 ab d7 d4 cd a3 21 82 92 |.#.}.........!..| 80 | 00000070 2a 12 cf 95 f3 60 b2 14 03 03 00 01 01 16 03 03 |*....`..........| 81 | 00000080 00 24 89 ad 87 04 4f 08 dc 2a 71 37 fb f1 95 d1 |.$....O..*q7....| 82 | 00000090 2e 3c c2 6e 0f 38 5d e4 0e c3 f7 27 d0 46 a3 c1 |.<.n.8]....'.F..| 83 | 000000a0 a8 3b 06 ed 96 ec 17 03 03 00 21 30 d4 9f 0b 49 |.;........!0...I| 84 | 000000b0 9f a2 a8 a1 2c 0a 79 93 56 2d 8a ee 85 ed 62 42 |....,.y.V-....bB| 85 | 000000c0 8c 18 fe 7a 09 3a 24 c4 5e ed 7d 2a 15 03 03 00 |...z.:$.^.}*....| 86 | 000000d0 16 a0 24 0a 8b 90 4c fc 99 ba 67 bb 04 1e 59 69 |..$...L...g...Yi| 87 | 000000e0 c2 98 49 b5 00 0b e0 |..I....| 88 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv12-IssueTicketPreDisable: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 60 01 00 00 5c 03 03 54 23 54 02 17 |....`...\..T#T..| 3 | 00000010 f3 53 13 3d 48 88 c3 19 b9 d1 3d 33 7f f5 99 56 |.S.=H.....=3...V| 4 | 00000020 04 71 1b d9 d5 64 8a 0d 4a 54 00 00 00 04 00 05 |.q...d..JT......| 5 | 00000030 00 ff 01 00 00 2f 00 23 00 00 00 0d 00 22 00 20 |...../.#.....". | 6 | 00000040 06 01 06 02 06 03 05 01 05 02 05 03 04 01 04 02 |................| 7 | 00000050 04 03 03 01 03 02 03 03 02 01 02 02 02 03 01 01 |................| 8 | 00000060 00 0f 00 01 01 |.....| 9 | >>> Flow 2 (server to client) 10 | 00000000 16 03 03 00 35 02 00 00 31 03 03 00 00 00 00 00 |....5...1.......| 11 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 12 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 |................| 13 | 00000030 09 00 23 00 00 ff 01 00 01 00 16 03 03 02 be 0b |..#.............| 14 | 00000040 00 02 ba 00 02 b7 00 02 b4 30 82 02 b0 30 82 02 |.........0...0..| 15 | 00000050 19 a0 03 02 01 02 02 09 00 85 b0 bb a4 8a 7f b8 |................| 16 | 00000060 ca 30 0d 06 09 2a 86 48 86 f7 0d 01 01 05 05 00 |.0...*.H........| 17 | 00000070 30 45 31 0b 30 09 06 03 55 04 06 13 02 41 55 31 |0E1.0...U....AU1| 18 | 00000080 13 30 11 06 03 55 04 08 13 0a 53 6f 6d 65 2d 53 |.0...U....Some-S| 19 | 00000090 74 61 74 65 31 21 30 1f 06 03 55 04 0a 13 18 49 |tate1!0...U....I| 20 | 000000a0 6e 74 65 72 6e 65 74 20 57 69 64 67 69 74 73 20 |nternet Widgits | 21 | 000000b0 50 74 79 20 4c 74 64 30 1e 17 0d 31 30 30 34 32 |Pty Ltd0...10042| 22 | 000000c0 34 30 39 30 39 33 38 5a 17 0d 31 31 30 34 32 34 |4090938Z..110424| 23 | 000000d0 30 39 30 39 33 38 5a 30 45 31 0b 30 09 06 03 55 |090938Z0E1.0...U| 24 | 000000e0 04 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 |....AU1.0...U...| 25 | 000000f0 0a 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 |.Some-State1!0..| 26 | 00000100 03 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 |.U....Internet W| 27 | 00000110 69 64 67 69 74 73 20 50 74 79 20 4c 74 64 30 81 |idgits Pty Ltd0.| 28 | 00000120 9f 30 0d 06 09 2a 86 48 86 f7 0d 01 01 01 05 00 |.0...*.H........| 29 | 00000130 03 81 8d 00 30 81 89 02 81 81 00 bb 79 d6 f5 17 |....0.......y...| 30 | 00000140 b5 e5 bf 46 10 d0 dc 69 be e6 2b 07 43 5a d0 03 |...F...i..+.CZ..| 31 | 00000150 2d 8a 7a 43 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 |-.zC...R..eL,x.#| 32 | 00000160 8c b5 b4 82 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 |........;~b.,.3.| 33 | 00000170 fe 12 5c 7a 56 fc f5 06 bf fa 58 7b 26 3f b5 cd |..\zV.....X{&?..| 34 | 00000180 04 d3 d0 c9 21 96 4a c7 f4 54 9f 5a bf ef 42 71 |....!.J..T.Z..Bq| 35 | 00000190 00 fe 18 99 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e |......~.}}..9...| 36 | 000001a0 db 51 c9 7c e3 c0 4c 3b 32 66 01 cf af b1 1d b8 |.Q.|..L;2f......| 37 | 000001b0 71 9a 1d db db 89 6b ae da 2d 79 02 03 01 00 01 |q.....k..-y.....| 38 | 000001c0 a3 81 a7 30 81 a4 30 1d 06 03 55 1d 0e 04 16 04 |...0..0...U.....| 39 | 000001d0 14 b1 ad e2 85 5a cf cb 28 db 69 ce 23 69 de d3 |.....Z..(.i.#i..| 40 | 000001e0 26 8e 18 88 39 30 75 06 03 55 1d 23 04 6e 30 6c |&...90u..U.#.n0l| 41 | 000001f0 80 14 b1 ad e2 85 5a cf cb 28 db 69 ce 23 69 de |......Z..(.i.#i.| 42 | 00000200 d3 26 8e 18 88 39 a1 49 a4 47 30 45 31 0b 30 09 |.&...9.I.G0E1.0.| 43 | 00000210 06 03 55 04 06 13 02 41 55 31 13 30 11 06 03 55 |..U....AU1.0...U| 44 | 00000220 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 31 21 |....Some-State1!| 45 | 00000230 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 6e 65 |0...U....Interne| 46 | 00000240 74 20 57 69 64 67 69 74 73 20 50 74 79 20 4c 74 |t Widgits Pty Lt| 47 | 00000250 64 82 09 00 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 |d...........0...| 48 | 00000260 55 1d 13 04 05 30 03 01 01 ff 30 0d 06 09 2a 86 |U....0....0...*.| 49 | 00000270 48 86 f7 0d 01 01 05 05 00 03 81 81 00 08 6c 45 |H.............lE| 50 | 00000280 24 c7 6b b1 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a |$.k.Y..R.......z| 51 | 00000290 64 75 b5 5a 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f |du.Z.f..+...f..O| 52 | 000002a0 38 b3 6e 60 d3 92 fd f7 41 08 b5 25 13 b1 18 7a |8.n`....A..%...z| 53 | 000002b0 24 fb 30 1d ba ed 98 b9 17 ec e7 d7 31 59 db 95 |$.0.........1Y..| 54 | 000002c0 d3 1d 78 ea 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 |..x.PV\..Z-Z_3..| 55 | 000002d0 d8 c9 75 90 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f |..u....R...... _| 56 | 000002e0 f2 a0 1c a3 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d |..........W.p.&m| 57 | 000002f0 71 99 9b 26 6e 38 50 29 6c 90 a7 bd d9 16 03 03 |q..&n8P)l.......| 58 | 00000300 00 04 0e 00 00 00 |......| 59 | >>> Flow 3 (client to server) 60 | 00000000 16 03 03 00 86 10 00 00 82 00 80 27 e9 a4 f7 e7 |...........'....| 61 | 00000010 df 25 de 84 8c 1f d6 e6 c3 11 28 55 9a c1 91 37 |.%........(U...7| 62 | 00000020 84 f5 ba f8 80 0d ca 50 cb 1e 72 f7 97 6f c2 b2 |.......P..r..o..| 63 | 00000030 04 4d 13 7c e0 6e a0 1f 91 e1 38 1b a2 c0 55 16 |.M.|.n....8...U.| 64 | 00000040 7f 29 fc ed 1c 1a cf 72 14 c3 00 c1 dd 36 36 af |.).....r.....66.| 65 | 00000050 a6 e4 a8 be ba ec 13 d0 1e d0 1d fd e1 5b 27 fd |.............['.| 66 | 00000060 9a da 2e 12 c8 b0 b9 c2 b9 76 ec 7f 3c 98 b6 63 |.........v..<..c| 67 | 00000070 bc da f0 07 7a 3d e7 61 f4 2f 12 80 3b f9 3b cc |....z=.a./..;.;.| 68 | 00000080 05 c8 2f 7e 28 b2 73 bf 97 61 29 14 03 03 00 01 |../~(.s..a).....| 69 | 00000090 01 16 03 03 00 24 17 59 a9 45 53 46 33 96 50 dd |.....$.Y.ESF3.P.| 70 | 000000a0 3e 23 aa 91 38 f8 56 4a 2f 1a f2 b1 44 9b ce 17 |>#..8.VJ/...D...| 71 | 000000b0 6b 8a 89 76 bc 67 b8 8b ba 90 |k..v.g....| 72 | >>> Flow 4 (server to client) 73 | 00000000 16 03 03 00 72 04 00 00 6e 00 00 00 00 00 68 00 |....r...n.....h.| 74 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 65 |...............e| 75 | 00000020 ea 4b d1 ef ba 2d db 0c ba 9a d4 20 76 57 c8 ec |.K...-..... vW..| 76 | 00000030 dc 2d 77 fb fb 3b 93 5f 53 e0 14 4f 90 fb d6 55 |.-w..;._S..O...U| 77 | 00000040 57 8c 8d 0d 25 ea 5d 0d f2 91 e5 12 22 12 ec 7b |W...%.]....."..{| 78 | 00000050 5f b6 6e fd 07 59 23 24 fc b1 97 ca ea 56 a5 c2 |_.n..Y#$.....V..| 79 | 00000060 a0 e4 9e 99 64 f2 64 d0 75 7a 46 63 e3 dc 21 ed |....d.d.uzFc..!.| 80 | 00000070 78 56 e9 e1 ab 66 80 14 03 03 00 01 01 16 03 03 |xV...f..........| 81 | 00000080 00 24 fc 14 68 07 17 1f df b7 84 cb fd c1 e0 e4 |.$..h...........| 82 | 00000090 f2 1a ea 34 b5 00 7f 70 be c8 1c 0a d6 55 e3 57 |...4...p.....U.W| 83 | 000000a0 50 4e 6d 7d 8a 5d 17 03 03 00 21 24 27 50 40 c1 |PNm}.]....!$'P@.| 84 | 000000b0 c5 bd c7 9f 95 d9 ba 2e 7b 0e db ea a7 31 81 05 |........{....1..| 85 | 000000c0 75 43 b1 63 cf b8 55 92 ef 76 98 a9 15 03 03 00 |uC.c..U..v......| 86 | 000000d0 16 d7 ea 3c 79 e7 a6 2f 61 39 ec 4e 95 86 48 5e |...>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 e8 01 00 00 e4 03 03 54 23 54 02 a5 |...........T#T..| 3 | 00000010 10 11 0f 6d e5 2d 2f e8 bb 52 b1 38 3f 65 01 43 |...m.-/..R.8?e.C| 4 | 00000020 36 cc 48 f6 09 22 a1 85 20 28 3c 20 35 8b fe 7a |6.H..".. (< 5..z| 5 | 00000030 41 3b 59 3a 5d b9 b3 21 f0 62 e9 0d 7b af f5 5d |A;Y:]..!.b..{..]| 6 | 00000040 fa 65 1a 40 c8 ca cd 74 8c ef d2 fb 00 04 00 05 |.e.@...t........| 7 | 00000050 00 ff 01 00 00 97 00 23 00 68 00 00 00 00 00 00 |.......#.h......| 8 | 00000060 00 00 00 00 00 00 00 00 00 00 65 ea 4b d1 ef ba |..........e.K...| 9 | 00000070 2d db 0c ba 9a d4 20 76 57 c8 ec dc 2d 77 fb fb |-..... vW...-w..| 10 | 00000080 3b 93 5f 53 e0 14 4f 90 fb d6 55 57 8c 8d 0d 25 |;._S..O...UW...%| 11 | 00000090 ea 5d 0d f2 91 e5 12 22 12 ec 7b 5f b6 6e fd 07 |.]....."..{_.n..| 12 | 000000a0 59 23 24 fc b1 97 ca ea 56 a5 c2 a0 e4 9e 99 64 |Y#$.....V......d| 13 | 000000b0 f2 64 d0 75 7a 46 63 e3 dc 21 ed 78 56 e9 e1 ab |.d.uzFc..!.xV...| 14 | 000000c0 66 80 00 0d 00 22 00 20 06 01 06 02 06 03 05 01 |f....". ........| 15 | 000000d0 05 02 05 03 04 01 04 02 04 03 03 01 03 02 03 03 |................| 16 | 000000e0 02 01 02 02 02 03 01 01 00 0f 00 01 01 |.............| 17 | >>> Flow 2 (server to client) 18 | 00000000 16 03 03 00 31 02 00 00 2d 03 03 00 00 00 00 00 |....1...-.......| 19 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 20 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 05 00 00 |................| 21 | 00000030 05 ff 01 00 01 00 16 03 03 02 be 0b 00 02 ba 00 |................| 22 | 00000040 02 b7 00 02 b4 30 82 02 b0 30 82 02 19 a0 03 02 |.....0...0......| 23 | 00000050 01 02 02 09 00 85 b0 bb a4 8a 7f b8 ca 30 0d 06 |.............0..| 24 | 00000060 09 2a 86 48 86 f7 0d 01 01 05 05 00 30 45 31 0b |.*.H........0E1.| 25 | 00000070 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 26 | 00000080 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 27 | 00000090 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 28 | 000000a0 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 29 | 000000b0 4c 74 64 30 1e 17 0d 31 30 30 34 32 34 30 39 30 |Ltd0...100424090| 30 | 000000c0 39 33 38 5a 17 0d 31 31 30 34 32 34 30 39 30 39 |938Z..1104240909| 31 | 000000d0 33 38 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |38Z0E1.0...U....| 32 | 000000e0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 33 | 000000f0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 34 | 00000100 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 35 | 00000110 74 73 20 50 74 79 20 4c 74 64 30 81 9f 30 0d 06 |ts Pty Ltd0..0..| 36 | 00000120 09 2a 86 48 86 f7 0d 01 01 01 05 00 03 81 8d 00 |.*.H............| 37 | 00000130 30 81 89 02 81 81 00 bb 79 d6 f5 17 b5 e5 bf 46 |0.......y......F| 38 | 00000140 10 d0 dc 69 be e6 2b 07 43 5a d0 03 2d 8a 7a 43 |...i..+.CZ..-.zC| 39 | 00000150 85 b7 14 52 e7 a5 65 4c 2c 78 b8 23 8c b5 b4 82 |...R..eL,x.#....| 40 | 00000160 e5 de 1f 95 3b 7e 62 a5 2c a5 33 d6 fe 12 5c 7a |....;~b.,.3...\z| 41 | 00000170 56 fc f5 06 bf fa 58 7b 26 3f b5 cd 04 d3 d0 c9 |V.....X{&?......| 42 | 00000180 21 96 4a c7 f4 54 9f 5a bf ef 42 71 00 fe 18 99 |!.J..T.Z..Bq....| 43 | 00000190 07 7f 7e 88 7d 7d f1 04 39 c4 a2 2e db 51 c9 7c |..~.}}..9....Q.|| 44 | 000001a0 e3 c0 4c 3b 32 66 01 cf af b1 1d b8 71 9a 1d db |..L;2f......q...| 45 | 000001b0 db 89 6b ae da 2d 79 02 03 01 00 01 a3 81 a7 30 |..k..-y........0| 46 | 000001c0 81 a4 30 1d 06 03 55 1d 0e 04 16 04 14 b1 ad e2 |..0...U.........| 47 | 000001d0 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 88 |.Z..(.i.#i..&...| 48 | 000001e0 39 30 75 06 03 55 1d 23 04 6e 30 6c 80 14 b1 ad |90u..U.#.n0l....| 49 | 000001f0 e2 85 5a cf cb 28 db 69 ce 23 69 de d3 26 8e 18 |..Z..(.i.#i..&..| 50 | 00000200 88 39 a1 49 a4 47 30 45 31 0b 30 09 06 03 55 04 |.9.I.G0E1.0...U.| 51 | 00000210 06 13 02 41 55 31 13 30 11 06 03 55 04 08 13 0a |...AU1.0...U....| 52 | 00000220 53 6f 6d 65 2d 53 74 61 74 65 31 21 30 1f 06 03 |Some-State1!0...| 53 | 00000230 55 04 0a 13 18 49 6e 74 65 72 6e 65 74 20 57 69 |U....Internet Wi| 54 | 00000240 64 67 69 74 73 20 50 74 79 20 4c 74 64 82 09 00 |dgits Pty Ltd...| 55 | 00000250 85 b0 bb a4 8a 7f b8 ca 30 0c 06 03 55 1d 13 04 |........0...U...| 56 | 00000260 05 30 03 01 01 ff 30 0d 06 09 2a 86 48 86 f7 0d |.0....0...*.H...| 57 | 00000270 01 01 05 05 00 03 81 81 00 08 6c 45 24 c7 6b b1 |..........lE$.k.| 58 | 00000280 59 ab 0c 52 cc f2 b0 14 d7 87 9d 7a 64 75 b5 5a |Y..R.......zdu.Z| 59 | 00000290 95 66 e4 c5 2b 8e ae 12 66 1f eb 4f 38 b3 6e 60 |.f..+...f..O8.n`| 60 | 000002a0 d3 92 fd f7 41 08 b5 25 13 b1 18 7a 24 fb 30 1d |....A..%...z$.0.| 61 | 000002b0 ba ed 98 b9 17 ec e7 d7 31 59 db 95 d3 1d 78 ea |........1Y....x.| 62 | 000002c0 50 56 5c d5 82 5a 2d 5a 5f 33 c4 b6 d8 c9 75 90 |PV\..Z-Z_3....u.| 63 | 000002d0 96 8c 0f 52 98 b5 cd 98 1f 89 20 5f f2 a0 1c a3 |...R...... _....| 64 | 000002e0 1b 96 94 dd a9 fd 57 e9 70 e8 26 6d 71 99 9b 26 |......W.p.&mq..&| 65 | 000002f0 6e 38 50 29 6c 90 a7 bd d9 16 03 03 00 04 0e 00 |n8P)l...........| 66 | 00000300 00 00 |..| 67 | >>> Flow 3 (client to server) 68 | 00000000 16 03 03 00 86 10 00 00 82 00 80 ae 02 dd 1f 1a |................| 69 | 00000010 86 83 f5 2f 82 46 4b 29 58 aa a1 b3 56 8b 4e 40 |.../.FK)X...V.N@| 70 | 00000020 ef 23 65 67 ad 48 e5 e1 fd ae dd bf 68 fd bd a6 |.#eg.H......h...| 71 | 00000030 13 a0 7e 05 ab f7 20 e1 6a 4e d1 37 93 08 1d c9 |..~... .jN.7....| 72 | 00000040 37 e0 b5 34 28 bf 20 45 45 da 0f 7e 51 a7 c6 ae |7..4(. EE..~Q...| 73 | 00000050 61 6c 07 1b 73 ef da 6e 25 c4 ed be e3 3f da ae |al..s..n%....?..| 74 | 00000060 cd 3c 17 9c 2e ee fb 47 9d b3 a1 b2 c3 5d e0 83 |.<.....G.....]..| 75 | 00000070 74 20 37 2d 72 d6 d0 4d 58 0e 26 1c 50 22 95 08 |t 7-r..MX.&.P"..| 76 | 00000080 7d e0 5f 86 99 9e 2c 2e a7 a0 7f 14 03 03 00 01 |}._...,.........| 77 | 00000090 01 16 03 03 00 24 a2 ab 41 25 a5 cf 04 18 1d 98 |.....$..A%......| 78 | 000000a0 88 6c 59 21 86 33 54 f4 35 b4 21 6e a5 29 d5 6e |.lY!.3T.5.!n.).n| 79 | 000000b0 3d 08 72 b0 af 46 b5 8f 6b 86 |=.r..F..k.| 80 | >>> Flow 4 (server to client) 81 | 00000000 14 03 03 00 01 01 16 03 03 00 24 59 20 4d c2 17 |..........$Y M..| 82 | 00000010 8b 3c 9b 33 d9 f9 ef fb 80 18 1f 67 a7 58 12 89 |.<.3.......g.X..| 83 | 00000020 4e 73 0f 2d 7b e6 c4 a6 79 73 01 da 22 e8 54 17 |Ns.-{...ys..".T.| 84 | 00000030 03 03 00 21 36 ca 64 0f 4a 12 a5 50 3d 97 bb 39 |...!6.d.J..P=..9| 85 | 00000040 02 fc ed d1 82 6a 9a 2e 21 79 f6 e1 b3 cc 32 db |.....j..!y....2.| 86 | 00000050 0f 5d b3 fb a5 15 03 03 00 16 51 f4 be 57 7a df |.]........Q..Wz.| 87 | 00000060 f1 f2 bd b5 51 5e 45 80 be 0b 9a 0c d1 19 3c 79 |....Q^E.......>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 75 01 00 00 71 03 03 00 00 00 00 00 |....u...q.......| 3 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 4 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1a c0 2f |.............../| 5 | 00000030 c0 2b c0 11 c0 07 c0 13 c0 09 c0 14 c0 0a 00 05 |.+..............| 6 | 00000040 00 2f 00 35 c0 12 00 0a 01 00 00 2e 00 05 00 05 |./.5............| 7 | 00000050 01 00 00 00 00 00 0a 00 08 00 06 00 17 00 18 00 |................| 8 | 00000060 19 00 0b 00 02 01 00 00 0d 00 0a 00 08 04 01 04 |................| 9 | 00000070 03 02 01 02 03 ff 01 00 01 00 |..........| 10 | >>> Flow 2 (server to client) 11 | 00000000 16 03 02 00 59 02 00 00 55 03 02 53 04 f1 02 1c |....Y...U..S....| 12 | 00000010 d1 1c 6a 5f 7a 5c 26 69 92 cd ee c3 57 ed 96 90 |..j_z\&i....W...| 13 | 00000020 e3 c5 f1 ee 8b ee 99 5f 46 2c e6 20 c8 50 6a a4 |......._F,. .Pj.| 14 | 00000030 4b 93 e6 da ba 6d d4 87 f6 75 a8 9d 44 db b5 43 |K....m...u..D..C| 15 | 00000040 df 12 57 de a4 f1 bc fb b8 7a 3f 6a c0 09 00 00 |..W......z?j....| 16 | 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 17 | 00000060 02 02 0e 0b 00 02 0a 00 02 07 00 02 04 30 82 02 |.............0..| 18 | 00000070 00 30 82 01 62 02 09 00 b8 bf 2d 47 a0 d2 eb f4 |.0..b.....-G....| 19 | 00000080 30 09 06 07 2a 86 48 ce 3d 04 01 30 45 31 0b 30 |0...*.H.=..0E1.0| 20 | 00000090 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 03 |...U....AU1.0...| 21 | 000000a0 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 31 |U....Some-State1| 22 | 000000b0 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 6e |!0...U....Intern| 23 | 000000c0 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 4c |et Widgits Pty L| 24 | 000000d0 74 64 30 1e 17 0d 31 32 31 31 32 32 31 35 30 36 |td0...1211221506| 25 | 000000e0 33 32 5a 17 0d 32 32 31 31 32 30 31 35 30 36 33 |32Z..22112015063| 26 | 000000f0 32 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 41 |2Z0E1.0...U....A| 27 | 00000100 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d 65 |U1.0...U....Some| 28 | 00000110 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a 13 |-State1!0...U...| 29 | 00000120 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 74 |.Internet Widgit| 30 | 00000130 73 20 50 74 79 20 4c 74 64 30 81 9b 30 10 06 07 |s Pty Ltd0..0...| 31 | 00000140 2a 86 48 ce 3d 02 01 06 05 2b 81 04 00 23 03 81 |*.H.=....+...#..| 32 | 00000150 86 00 04 00 c4 a1 ed be 98 f9 0b 48 73 36 7e c3 |...........Hs6~.| 33 | 00000160 16 56 11 22 f2 3d 53 c3 3b 4d 21 3d cd 6b 75 e6 |.V.".=S.;M!=.ku.| 34 | 00000170 f6 b0 dc 9a df 26 c1 bc b2 87 f0 72 32 7c b3 64 |.....&.....r2|.d| 35 | 00000180 2f 1c 90 bc ea 68 23 10 7e fe e3 25 c0 48 3a 69 |/....h#.~..%.H:i| 36 | 00000190 e0 28 6d d3 37 00 ef 04 62 dd 0d a0 9c 70 62 83 |.(m.7...b....pb.| 37 | 000001a0 d8 81 d3 64 31 aa 9e 97 31 bd 96 b0 68 c0 9b 23 |...d1...1...h..#| 38 | 000001b0 de 76 64 3f 1a 5c 7f e9 12 0e 58 58 b6 5f 70 dd |.vd?.\....XX._p.| 39 | 000001c0 9b d8 ea d5 d7 f5 d5 cc b9 b6 9f 30 66 5b 66 9a |...........0f[f.| 40 | 000001d0 20 e2 27 e5 bf fe 3b 30 09 06 07 2a 86 48 ce 3d | .'...;0...*.H.=| 41 | 000001e0 04 01 03 81 8c 00 30 81 88 02 42 01 88 a2 4f eb |......0...B...O.| 42 | 000001f0 e2 45 c5 48 7d 1b ac f5 ed 98 9d ae 47 70 c0 5e |.E.H}.......Gp.^| 43 | 00000200 1b b6 2f bd f1 b6 4d b7 61 40 d3 11 a2 ce ee 0b |../...M.a@......| 44 | 00000210 7e 92 7e ff 76 9d c3 3b 7e a5 3f ce fa 10 e2 59 |~.~.v..;~.?....Y| 45 | 00000220 ec 47 2d 7c ac da 4e 97 0e 15 a0 6f d0 02 42 01 |.G-|..N....o..B.| 46 | 00000230 4d fc be 67 13 9c 2d 05 0e bd 3f a3 8c 25 c1 33 |M..g..-...?..%.3| 47 | 00000240 13 83 0d 94 06 bb d4 37 7a f6 ec 7a c9 86 2e dd |.......7z..z....| 48 | 00000250 d7 11 69 7f 85 7c 56 de fb 31 78 2b e4 c7 78 0d |..i..|V..1x+..x.| 49 | 00000260 ae cb be 9e 4e 36 24 31 7b 6a 0f 39 95 12 07 8f |....N6$1{j.9....| 50 | 00000270 2a 16 03 02 00 d4 0c 00 00 d0 03 00 17 41 04 7b |*............A.{| 51 | 00000280 c4 00 37 35 51 de c3 f2 a4 95 2c 19 21 3e a6 94 |..75Q.....,.!>..| 52 | 00000290 7b fd 04 d7 b7 1c 56 e6 af 3c ee 36 cb 55 e6 f0 |{.....V..<.6.U..| 53 | 000002a0 e6 24 34 6b 8a 02 66 71 f9 e2 f5 a6 c9 d7 6c dc |.$4k..fq......l.| 54 | 000002b0 65 59 ff 1c c9 ec a9 8b 07 d6 52 2c 01 3c c3 00 |eY........R,.<..| 55 | 000002c0 89 30 81 86 02 41 74 89 1a 31 72 e6 8b c0 4a ce |.0...At..1r...J.| 56 | 000002d0 8f 5a 49 a7 52 2d 6d b9 8b 50 17 62 2a 99 d6 3b |.ZI.R-m..P.b*..;| 57 | 000002e0 02 85 41 4d 34 53 b5 09 bd e3 ac 16 c1 9b e9 83 |..AM4S..........| 58 | 000002f0 cc 83 e3 9c 23 34 67 71 72 d4 05 a2 34 f7 08 29 |....#4gqr...4..)| 59 | 00000300 62 43 2e cc bc 08 01 02 41 59 de 5a d0 dd d7 6b |bC......AY.Z...k| 60 | 00000310 db 9c 35 29 79 f8 96 91 56 74 1f 18 7b ee 25 83 |..5)y...Vt..{.%.| 61 | 00000320 f2 37 0e 77 ab 38 fb 5e 04 0b 09 d9 b4 1f 3f be |.7.w.8.^......?.| 62 | 00000330 2e e3 60 e3 96 f3 29 c1 6d 8f 56 1b fd 62 14 48 |..`...).m.V..b.H| 63 | 00000340 e3 d9 2a ea 2f be 93 d0 8b 31 16 03 02 00 04 0e |..*./....1......| 64 | 00000350 00 00 00 |...| 65 | >>> Flow 3 (client to server) 66 | 00000000 16 03 02 00 46 10 00 00 42 41 04 1e 18 37 ef 0d |....F...BA...7..| 67 | 00000010 19 51 88 35 75 71 b5 e5 54 5b 12 2e 8f 09 67 fd |.Q.5uq..T[....g.| 68 | 00000020 a7 24 20 3e b2 56 1c ce 97 28 5e f8 2b 2d 4f 9e |.$ >.V...(^.+-O.| 69 | 00000030 f1 07 9f 6c 4b 5b 83 56 e2 32 42 e9 58 b6 d7 49 |...lK[.V.2B.X..I| 70 | 00000040 a6 b5 68 1a 41 03 56 6b dc 5a 89 14 03 02 00 01 |..h.A.Vk.Z......| 71 | 00000050 01 16 03 02 00 40 00 00 00 00 00 00 00 00 00 00 |.....@..........| 72 | 00000060 00 00 00 00 00 00 b6 98 a2 a9 48 34 12 6b 0a 94 |..........H4.k..| 73 | 00000070 89 fc 38 04 63 5a 6f 63 36 3e d9 35 12 64 8c 28 |..8.cZoc6>.5.d.(| 74 | 00000080 99 a6 cf 2e 57 e3 14 6d 0a 8a ab f0 a6 58 37 7c |....W..m.....X7|| 75 | 00000090 96 04 d3 71 bc d4 |...q..| 76 | >>> Flow 4 (server to client) 77 | 00000000 14 03 02 00 01 01 16 03 02 00 40 c5 01 c9 0a b0 |..........@.....| 78 | 00000010 d8 ca 5e c1 19 dc 37 6c 2e a0 b3 11 a8 87 65 5a |..^...7l......eZ| 79 | 00000020 09 41 b9 fe 53 c4 c9 76 97 6d 7f ac c0 be d2 07 |.A..S..v.m......| 80 | 00000030 84 e5 5b 78 37 34 ee da 3b cb 3e 82 52 79 91 44 |..[x74..;.>.Ry.D| 81 | 00000040 b4 e4 1c ec 3a c0 c0 9d cd ff 13 |....:......| 82 | >>> Flow 5 (client to server) 83 | 00000000 17 03 02 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| 84 | 00000010 00 00 00 00 00 46 60 13 39 2b 2f 72 95 ed 0e aa |.....F`.9+/r....| 85 | 00000020 69 6e b4 64 3e 83 43 d0 f9 7f 37 7c 1d b9 ce 11 |in.d>.C...7|....| 86 | 00000030 d9 41 66 60 6d 15 03 02 00 30 00 00 00 00 00 00 |.Af`m....0......| 87 | 00000040 00 00 00 00 00 00 00 00 00 00 b1 26 d0 5d 08 98 |...........&.]..| 88 | 00000050 eb 28 42 74 31 58 42 95 c5 ad 1a 92 0a f5 5f ed |.(Bt1XB......._.| 89 | 00000060 45 98 e0 90 e5 a3 b6 8b 8d 18 |E.........| 90 | -------------------------------------------------------------------------------- /tls_clone/testdata/Client-TLSv12-ECDHE-ECDSA-AES: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 75 01 00 00 71 03 03 00 00 00 00 00 |....u...q.......| 3 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 4 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 1a c0 2f |.............../| 5 | 00000030 c0 2b c0 11 c0 07 c0 13 c0 09 c0 14 c0 0a 00 05 |.+..............| 6 | 00000040 00 2f 00 35 c0 12 00 0a 01 00 00 2e 00 05 00 05 |./.5............| 7 | 00000050 01 00 00 00 00 00 0a 00 08 00 06 00 17 00 18 00 |................| 8 | 00000060 19 00 0b 00 02 01 00 00 0d 00 0a 00 08 04 01 04 |................| 9 | 00000070 03 02 01 02 03 ff 01 00 01 00 |..........| 10 | >>> Flow 2 (server to client) 11 | 00000000 16 03 03 00 59 02 00 00 55 03 03 53 04 f1 02 a0 |....Y...U..S....| 12 | 00000010 5f bd a4 8d 98 93 b8 da 08 86 9f b2 be 9a a4 91 |_...............| 13 | 00000020 2b 3c 1f 18 f0 75 7c a9 a8 a0 f7 20 4a 89 9a d2 |+<...u|.... J...| 14 | 00000030 34 3b d9 b1 c2 fd 61 bd 97 19 22 ce b9 d1 5b a7 |4;....a..."...[.| 15 | 00000040 83 80 9c 19 d0 f5 a0 aa 4c ac 06 20 c0 09 00 00 |........L.. ....| 16 | 00000050 0d ff 01 00 01 00 00 0b 00 04 03 00 01 02 16 03 |................| 17 | 00000060 03 02 0e 0b 00 02 0a 00 02 07 00 02 04 30 82 02 |.............0..| 18 | 00000070 00 30 82 01 62 02 09 00 b8 bf 2d 47 a0 d2 eb f4 |.0..b.....-G....| 19 | 00000080 30 09 06 07 2a 86 48 ce 3d 04 01 30 45 31 0b 30 |0...*.H.=..0E1.0| 20 | 00000090 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 03 |...U....AU1.0...| 21 | 000000a0 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 31 |U....Some-State1| 22 | 000000b0 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 6e |!0...U....Intern| 23 | 000000c0 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 4c |et Widgits Pty L| 24 | 000000d0 74 64 30 1e 17 0d 31 32 31 31 32 32 31 35 30 36 |td0...1211221506| 25 | 000000e0 33 32 5a 17 0d 32 32 31 31 32 30 31 35 30 36 33 |32Z..22112015063| 26 | 000000f0 32 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 41 |2Z0E1.0...U....A| 27 | 00000100 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d 65 |U1.0...U....Some| 28 | 00000110 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a 13 |-State1!0...U...| 29 | 00000120 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 74 |.Internet Widgit| 30 | 00000130 73 20 50 74 79 20 4c 74 64 30 81 9b 30 10 06 07 |s Pty Ltd0..0...| 31 | 00000140 2a 86 48 ce 3d 02 01 06 05 2b 81 04 00 23 03 81 |*.H.=....+...#..| 32 | 00000150 86 00 04 00 c4 a1 ed be 98 f9 0b 48 73 36 7e c3 |...........Hs6~.| 33 | 00000160 16 56 11 22 f2 3d 53 c3 3b 4d 21 3d cd 6b 75 e6 |.V.".=S.;M!=.ku.| 34 | 00000170 f6 b0 dc 9a df 26 c1 bc b2 87 f0 72 32 7c b3 64 |.....&.....r2|.d| 35 | 00000180 2f 1c 90 bc ea 68 23 10 7e fe e3 25 c0 48 3a 69 |/....h#.~..%.H:i| 36 | 00000190 e0 28 6d d3 37 00 ef 04 62 dd 0d a0 9c 70 62 83 |.(m.7...b....pb.| 37 | 000001a0 d8 81 d3 64 31 aa 9e 97 31 bd 96 b0 68 c0 9b 23 |...d1...1...h..#| 38 | 000001b0 de 76 64 3f 1a 5c 7f e9 12 0e 58 58 b6 5f 70 dd |.vd?.\....XX._p.| 39 | 000001c0 9b d8 ea d5 d7 f5 d5 cc b9 b6 9f 30 66 5b 66 9a |...........0f[f.| 40 | 000001d0 20 e2 27 e5 bf fe 3b 30 09 06 07 2a 86 48 ce 3d | .'...;0...*.H.=| 41 | 000001e0 04 01 03 81 8c 00 30 81 88 02 42 01 88 a2 4f eb |......0...B...O.| 42 | 000001f0 e2 45 c5 48 7d 1b ac f5 ed 98 9d ae 47 70 c0 5e |.E.H}.......Gp.^| 43 | 00000200 1b b6 2f bd f1 b6 4d b7 61 40 d3 11 a2 ce ee 0b |../...M.a@......| 44 | 00000210 7e 92 7e ff 76 9d c3 3b 7e a5 3f ce fa 10 e2 59 |~.~.v..;~.?....Y| 45 | 00000220 ec 47 2d 7c ac da 4e 97 0e 15 a0 6f d0 02 42 01 |.G-|..N....o..B.| 46 | 00000230 4d fc be 67 13 9c 2d 05 0e bd 3f a3 8c 25 c1 33 |M..g..-...?..%.3| 47 | 00000240 13 83 0d 94 06 bb d4 37 7a f6 ec 7a c9 86 2e dd |.......7z..z....| 48 | 00000250 d7 11 69 7f 85 7c 56 de fb 31 78 2b e4 c7 78 0d |..i..|V..1x+..x.| 49 | 00000260 ae cb be 9e 4e 36 24 31 7b 6a 0f 39 95 12 07 8f |....N6$1{j.9....| 50 | 00000270 2a 16 03 03 00 d7 0c 00 00 d3 03 00 17 41 04 3c |*............A.<| 51 | 00000280 8f 35 1e 47 5d 7b ad 13 0c e9 5c c0 97 c7 83 06 |.5.G]{....\.....| 52 | 00000290 49 0f 6c cf e5 4d 3b ed f7 1b c6 96 8d ba 54 35 |I.l..M;.......T5| 53 | 000002a0 7f df 35 e3 6e 28 e9 71 f2 24 b5 ab 17 2b 4b 2b |..5.n(.q.$...+K+| 54 | 000002b0 0c 8f 9f 48 89 73 8f 09 69 84 af 7f ec 43 7a 04 |...H.s..i....Cz.| 55 | 000002c0 03 00 8a 30 81 87 02 41 79 84 43 0c 78 fa 7e e2 |...0...Ay.C.x.~.| 56 | 000002d0 c5 51 c1 60 88 c4 4a 59 7d 02 fa dc 19 68 33 ed |.Q.`..JY}....h3.| 57 | 000002e0 19 ef a1 df ef 6b 21 a6 98 aa ba a9 13 70 91 0f |.....k!......p..| 58 | 000002f0 cc 6c 5c 1e 99 53 1b 42 51 6c 06 a7 3c c4 04 22 |.l\..S.BQl..<.."| 59 | 00000300 5d 0d c1 30 ab e3 ec b4 54 02 42 01 15 15 1a 6e |]..0....T.B....n| 60 | 00000310 6f f1 c6 b1 10 84 2c c8 04 de 2b 52 d5 b4 f7 c9 |o.....,...+R....| 61 | 00000320 4f 6d 0e 0e 26 45 1d 7a 28 59 2b 8b f6 92 3a 23 |Om..&E.z(Y+...:#| 62 | 00000330 7a 39 9c d5 4e cc 5d c5 45 92 9c d0 5f 33 12 e3 |z9..N.].E..._3..| 63 | 00000340 2b 29 39 52 bb 16 aa e1 72 9e b5 fe 99 16 03 03 |+)9R....r.......| 64 | 00000350 00 04 0e 00 00 00 |......| 65 | >>> Flow 3 (client to server) 66 | 00000000 16 03 03 00 46 10 00 00 42 41 04 1e 18 37 ef 0d |....F...BA...7..| 67 | 00000010 19 51 88 35 75 71 b5 e5 54 5b 12 2e 8f 09 67 fd |.Q.5uq..T[....g.| 68 | 00000020 a7 24 20 3e b2 56 1c ce 97 28 5e f8 2b 2d 4f 9e |.$ >.V...(^.+-O.| 69 | 00000030 f1 07 9f 6c 4b 5b 83 56 e2 32 42 e9 58 b6 d7 49 |...lK[.V.2B.X..I| 70 | 00000040 a6 b5 68 1a 41 03 56 6b dc 5a 89 14 03 03 00 01 |..h.A.Vk.Z......| 71 | 00000050 01 16 03 03 00 40 00 00 00 00 00 00 00 00 00 00 |.....@..........| 72 | 00000060 00 00 00 00 00 00 20 a3 f8 5a e2 ea f3 09 19 3e |...... ..Z.....>| 73 | 00000070 4a 54 69 70 06 5b 17 35 0f ed e7 30 3b 6f eb a1 |JTip.[.5...0;o..| 74 | 00000080 cb 9c 35 81 10 2e 34 f7 12 a5 e4 63 20 b2 65 31 |..5...4....c .e1| 75 | 00000090 19 da 30 43 39 59 |..0C9Y| 76 | >>> Flow 4 (server to client) 77 | 00000000 14 03 03 00 01 01 16 03 03 00 40 8d 4d 31 07 df |..........@.M1..| 78 | 00000010 ab 41 f5 19 9c 1a 57 fc 33 ab 5f e6 bd 45 b9 fa |.A....W.3._..E..| 79 | 00000020 7f db c0 df 72 f2 3b ef aa d4 5e 34 e6 3d 44 7c |....r.;...^4.=D|| 80 | 00000030 12 05 c7 57 da 54 b1 e3 66 f0 0a ab cd 15 a5 bf |...W.T..f.......| 81 | 00000040 c5 c2 07 a9 d9 a7 2e 5e 29 da da |.......^)..| 82 | >>> Flow 5 (client to server) 83 | 00000000 17 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| 84 | 00000010 00 00 00 00 00 dc 03 7b 29 2c 49 64 58 2d dc f7 |.......{),IdX-..| 85 | 00000020 26 a1 3b ec 2d e8 30 c4 6c a3 ff e2 bc b5 a4 a6 |&.;.-.0.l.......| 86 | 00000030 93 ce 14 bd da 15 03 03 00 30 00 00 00 00 00 00 |.........0......| 87 | 00000040 00 00 00 00 00 00 00 00 00 00 a6 77 10 30 15 eb |...........w.0..| 88 | 00000050 ed cf 73 5b 74 5d 09 52 4a 5b e2 f0 e4 67 f8 7a |..s[t].RJ[...g.z| 89 | 00000060 5e 5e fc ba 7f 80 0a d2 f4 fb |^^........| 90 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv12-ECDHE-ECDSA-AES: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 9c 01 00 00 98 03 03 53 04 f0 f9 09 |...........S....| 3 | 00000010 13 56 01 37 84 b1 32 59 4c 73 b1 8e bb 02 1a 32 |.V.7..2YLs.....2| 4 | 00000020 db ab 8c e6 ed ad 7f 52 9a 59 39 00 00 04 c0 0a |.......R.Y9.....| 5 | 00000030 00 ff 01 00 00 6b 00 0b 00 04 03 00 01 02 00 0a |.....k..........| 6 | 00000040 00 34 00 32 00 0e 00 0d 00 19 00 0b 00 0c 00 18 |.4.2............| 7 | 00000050 00 09 00 0a 00 16 00 17 00 08 00 06 00 07 00 14 |................| 8 | 00000060 00 15 00 04 00 05 00 12 00 13 00 01 00 02 00 03 |................| 9 | 00000070 00 0f 00 10 00 11 00 0d 00 22 00 20 06 01 06 02 |.........". ....| 10 | 00000080 06 03 05 01 05 02 05 03 04 01 04 02 04 03 03 01 |................| 11 | 00000090 03 02 03 03 02 01 02 02 02 03 01 01 00 0f 00 01 |................| 12 | 000000a0 01 |.| 13 | >>> Flow 2 (server to client) 14 | 00000000 16 03 03 00 31 02 00 00 2d 03 03 00 00 00 00 00 |....1...-.......| 15 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 16 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 c0 0a 00 00 |................| 17 | 00000030 05 ff 01 00 01 00 16 03 03 02 0e 0b 00 02 0a 00 |................| 18 | 00000040 02 07 00 02 04 30 82 02 00 30 82 01 62 02 09 00 |.....0...0..b...| 19 | 00000050 b8 bf 2d 47 a0 d2 eb f4 30 09 06 07 2a 86 48 ce |..-G....0...*.H.| 20 | 00000060 3d 04 01 30 45 31 0b 30 09 06 03 55 04 06 13 02 |=..0E1.0...U....| 21 | 00000070 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 22 | 00000080 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 23 | 00000090 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 24 | 000000a0 74 73 20 50 74 79 20 4c 74 64 30 1e 17 0d 31 32 |ts Pty Ltd0...12| 25 | 000000b0 31 31 32 32 31 35 30 36 33 32 5a 17 0d 32 32 31 |1122150632Z..221| 26 | 000000c0 31 32 30 31 35 30 36 33 32 5a 30 45 31 0b 30 09 |120150632Z0E1.0.| 27 | 000000d0 06 03 55 04 06 13 02 41 55 31 13 30 11 06 03 55 |..U....AU1.0...U| 28 | 000000e0 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 31 21 |....Some-State1!| 29 | 000000f0 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 6e 65 |0...U....Interne| 30 | 00000100 74 20 57 69 64 67 69 74 73 20 50 74 79 20 4c 74 |t Widgits Pty Lt| 31 | 00000110 64 30 81 9b 30 10 06 07 2a 86 48 ce 3d 02 01 06 |d0..0...*.H.=...| 32 | 00000120 05 2b 81 04 00 23 03 81 86 00 04 00 c4 a1 ed be |.+...#..........| 33 | 00000130 98 f9 0b 48 73 36 7e c3 16 56 11 22 f2 3d 53 c3 |...Hs6~..V.".=S.| 34 | 00000140 3b 4d 21 3d cd 6b 75 e6 f6 b0 dc 9a df 26 c1 bc |;M!=.ku......&..| 35 | 00000150 b2 87 f0 72 32 7c b3 64 2f 1c 90 bc ea 68 23 10 |...r2|.d/....h#.| 36 | 00000160 7e fe e3 25 c0 48 3a 69 e0 28 6d d3 37 00 ef 04 |~..%.H:i.(m.7...| 37 | 00000170 62 dd 0d a0 9c 70 62 83 d8 81 d3 64 31 aa 9e 97 |b....pb....d1...| 38 | 00000180 31 bd 96 b0 68 c0 9b 23 de 76 64 3f 1a 5c 7f e9 |1...h..#.vd?.\..| 39 | 00000190 12 0e 58 58 b6 5f 70 dd 9b d8 ea d5 d7 f5 d5 cc |..XX._p.........| 40 | 000001a0 b9 b6 9f 30 66 5b 66 9a 20 e2 27 e5 bf fe 3b 30 |...0f[f. .'...;0| 41 | 000001b0 09 06 07 2a 86 48 ce 3d 04 01 03 81 8c 00 30 81 |...*.H.=......0.| 42 | 000001c0 88 02 42 01 88 a2 4f eb e2 45 c5 48 7d 1b ac f5 |..B...O..E.H}...| 43 | 000001d0 ed 98 9d ae 47 70 c0 5e 1b b6 2f bd f1 b6 4d b7 |....Gp.^../...M.| 44 | 000001e0 61 40 d3 11 a2 ce ee 0b 7e 92 7e ff 76 9d c3 3b |a@......~.~.v..;| 45 | 000001f0 7e a5 3f ce fa 10 e2 59 ec 47 2d 7c ac da 4e 97 |~.?....Y.G-|..N.| 46 | 00000200 0e 15 a0 6f d0 02 42 01 4d fc be 67 13 9c 2d 05 |...o..B.M..g..-.| 47 | 00000210 0e bd 3f a3 8c 25 c1 33 13 83 0d 94 06 bb d4 37 |..?..%.3.......7| 48 | 00000220 7a f6 ec 7a c9 86 2e dd d7 11 69 7f 85 7c 56 de |z..z......i..|V.| 49 | 00000230 fb 31 78 2b e4 c7 78 0d ae cb be 9e 4e 36 24 31 |.1x+..x.....N6$1| 50 | 00000240 7b 6a 0f 39 95 12 07 8f 2a 16 03 03 00 d8 0c 00 |{j.9....*.......| 51 | 00000250 00 d4 03 00 17 41 04 1e 18 37 ef 0d 19 51 88 35 |.....A...7...Q.5| 52 | 00000260 75 71 b5 e5 54 5b 12 2e 8f 09 67 fd a7 24 20 3e |uq..T[....g..$ >| 53 | 00000270 b2 56 1c ce 97 28 5e f8 2b 2d 4f 9e f1 07 9f 6c |.V...(^.+-O....l| 54 | 00000280 4b 5b 83 56 e2 32 42 e9 58 b6 d7 49 a6 b5 68 1a |K[.V.2B.X..I..h.| 55 | 00000290 41 03 56 6b dc 5a 89 04 03 00 8b 30 81 88 02 42 |A.Vk.Z.....0...B| 56 | 000002a0 00 c6 85 8e 06 b7 04 04 e9 cd 9e 3e cb 66 23 95 |...........>.f#.| 57 | 000002b0 b4 42 9c 64 81 39 05 3f b5 21 f8 28 af 60 6b 4d |.B.d.9.?.!.(.`kM| 58 | 000002c0 3d ba a1 4b 5e 77 ef e7 59 28 fe 1d c1 27 a2 ff |=..K^w..Y(...'..| 59 | 000002d0 a8 de 33 48 b3 c1 85 6a 42 9b f9 7e 7e 31 c2 e5 |..3H...jB..~~1..| 60 | 000002e0 bd 66 02 42 00 ad 7d 06 35 ab ec 8d ac d4 ba 1b |.f.B..}.5.......| 61 | 000002f0 49 5e 05 5f f0 97 93 82 b8 2b 8d 91 98 63 8e b4 |I^._.....+...c..| 62 | 00000300 14 62 db 1e c9 2c 13 ae b7 d3 17 38 23 2f f6 7f |.b...,.....8#/..| 63 | 00000310 0c 4d d3 33 d2 79 d1 77 ee cb b1 c2 fc 34 b8 69 |.M.3.y.w.....4.i| 64 | 00000320 f9 10 8b 61 89 85 16 03 03 00 04 0e 00 00 00 |...a...........| 65 | >>> Flow 3 (client to server) 66 | 00000000 16 03 03 00 46 10 00 00 42 41 04 dd 22 68 a1 4e |....F...BA.."h.N| 67 | 00000010 04 1b 47 f9 c5 7d 04 1d d8 fe 84 fa be 31 2e a7 |..G..}.......1..| 68 | 00000020 f8 e5 b8 14 92 44 99 11 0e 34 97 fc e5 b1 91 cf |.....D...4......| 69 | 00000030 a4 d1 3f b4 71 94 c6 06 16 f0 98 c0 3e 05 f9 2f |..?.q.......>../| 70 | 00000040 0a 97 78 3d ef dc fa a2 d7 ee 7d 14 03 03 00 01 |..x=......}.....| 71 | 00000050 01 16 03 03 00 40 90 bf 7f e9 c9 6e d1 80 f5 12 |.....@.....n....| 72 | 00000060 6d c5 b7 c5 15 4b 18 a5 d3 18 1e f8 8c 4d 7e 6d |m....K.......M~m| 73 | 00000070 03 60 29 7c 45 7c b2 ca 8c 07 71 70 aa 23 fa 6e |.`)|E|....qp.#.n| 74 | 00000080 d9 0b 0a 32 4c 9e e5 00 f9 19 9b b6 8d dc d3 67 |...2L..........g| 75 | 00000090 3d 0f bb b8 4b 9e |=...K.| 76 | >>> Flow 4 (server to client) 77 | 00000000 14 03 03 00 01 01 16 03 03 00 40 00 00 00 00 00 |..........@.....| 78 | 00000010 00 00 00 00 00 00 00 00 00 00 00 a1 6e e5 d1 ca |............n...| 79 | 00000020 03 f4 77 dc ec ee 5d f0 22 5e 7f 55 1a 8d ad 45 |..w...]."^.U...E| 80 | 00000030 09 f1 3b b2 61 36 dc 3d 2a 1e 1f e5 a7 84 76 a9 |..;.a6.=*.....v.| 81 | 00000040 41 5b 86 03 ac 22 18 20 9b a9 29 17 03 03 00 40 |A[...". ..)....@| 82 | 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 83 | 00000060 f5 cb 28 1e b5 bc 82 7f 82 38 54 14 e8 b9 6d 3b |..(......8T...m;| 84 | 00000070 bc 99 d6 0e f9 00 96 99 a8 92 2e 86 9d 62 4e 90 |.............bN.| 85 | 00000080 27 52 58 45 20 93 90 a1 f3 a8 89 2b e7 21 24 16 |'RXE ......+.!$.| 86 | 00000090 15 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| 87 | 000000a0 00 00 00 00 00 a8 2a ab 8f b0 ce 49 8b fd a5 c9 |......*....I....| 88 | 000000b0 11 b2 04 83 18 f3 1d 6c 82 34 1d df dd 2f 45 3b |.......l.4.../E;| 89 | 000000c0 27 8a 0f 16 69 |'...i| 90 | -------------------------------------------------------------------------------- /tls_clone/testdata/Server-TLSv12-CipherSuiteCertPreferenceECDSA: -------------------------------------------------------------------------------- 1 | >>> Flow 1 (client to server) 2 | 00000000 16 03 01 00 ca 01 00 00 c6 03 03 53 04 f1 3f 5f |...........S..?_| 3 | 00000010 f4 ef 1f b3 41 0b 54 e4 4d 56 0a 31 22 b8 5c 73 |....A.T.MV.1".\s| 4 | 00000020 a3 cb b5 b2 9d 43 f1 83 bc d3 bd 00 00 32 c0 30 |.....C.......2.0| 5 | 00000030 c0 2c c0 28 c0 24 c0 14 c0 0a c0 22 c0 21 00 a3 |.,.(.$.....".!..| 6 | 00000040 00 9f 00 6b 00 6a 00 39 00 38 00 88 00 87 c0 32 |...k.j.9.8.....2| 7 | 00000050 c0 2e c0 2a c0 26 c0 0f c0 05 00 9d 00 3d 00 35 |...*.&.......=.5| 8 | 00000060 01 00 00 6b 00 0b 00 04 03 00 01 02 00 0a 00 34 |...k...........4| 9 | 00000070 00 32 00 0e 00 0d 00 19 00 0b 00 0c 00 18 00 09 |.2..............| 10 | 00000080 00 0a 00 16 00 17 00 08 00 06 00 07 00 14 00 15 |................| 11 | 00000090 00 04 00 05 00 12 00 13 00 01 00 02 00 03 00 0f |................| 12 | 000000a0 00 10 00 11 00 0d 00 22 00 20 06 01 06 02 06 03 |.......". ......| 13 | 000000b0 05 01 05 02 05 03 04 01 04 02 04 03 03 01 03 02 |................| 14 | 000000c0 03 03 02 01 02 02 02 03 01 01 00 0f 00 01 01 |...............| 15 | >>> Flow 2 (server to client) 16 | 00000000 16 03 03 00 2a 02 00 00 26 03 03 00 00 00 00 00 |....*...&.......| 17 | 00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 18 | 00000020 00 00 00 00 00 00 00 00 00 00 00 00 c0 0a 00 16 |................| 19 | 00000030 03 03 02 0e 0b 00 02 0a 00 02 07 00 02 04 30 82 |..............0.| 20 | 00000040 02 00 30 82 01 62 02 09 00 b8 bf 2d 47 a0 d2 eb |..0..b.....-G...| 21 | 00000050 f4 30 09 06 07 2a 86 48 ce 3d 04 01 30 45 31 0b |.0...*.H.=..0E1.| 22 | 00000060 30 09 06 03 55 04 06 13 02 41 55 31 13 30 11 06 |0...U....AU1.0..| 23 | 00000070 03 55 04 08 13 0a 53 6f 6d 65 2d 53 74 61 74 65 |.U....Some-State| 24 | 00000080 31 21 30 1f 06 03 55 04 0a 13 18 49 6e 74 65 72 |1!0...U....Inter| 25 | 00000090 6e 65 74 20 57 69 64 67 69 74 73 20 50 74 79 20 |net Widgits Pty | 26 | 000000a0 4c 74 64 30 1e 17 0d 31 32 31 31 32 32 31 35 30 |Ltd0...121122150| 27 | 000000b0 36 33 32 5a 17 0d 32 32 31 31 32 30 31 35 30 36 |632Z..2211201506| 28 | 000000c0 33 32 5a 30 45 31 0b 30 09 06 03 55 04 06 13 02 |32Z0E1.0...U....| 29 | 000000d0 41 55 31 13 30 11 06 03 55 04 08 13 0a 53 6f 6d |AU1.0...U....Som| 30 | 000000e0 65 2d 53 74 61 74 65 31 21 30 1f 06 03 55 04 0a |e-State1!0...U..| 31 | 000000f0 13 18 49 6e 74 65 72 6e 65 74 20 57 69 64 67 69 |..Internet Widgi| 32 | 00000100 74 73 20 50 74 79 20 4c 74 64 30 81 9b 30 10 06 |ts Pty Ltd0..0..| 33 | 00000110 07 2a 86 48 ce 3d 02 01 06 05 2b 81 04 00 23 03 |.*.H.=....+...#.| 34 | 00000120 81 86 00 04 00 c4 a1 ed be 98 f9 0b 48 73 36 7e |............Hs6~| 35 | 00000130 c3 16 56 11 22 f2 3d 53 c3 3b 4d 21 3d cd 6b 75 |..V.".=S.;M!=.ku| 36 | 00000140 e6 f6 b0 dc 9a df 26 c1 bc b2 87 f0 72 32 7c b3 |......&.....r2|.| 37 | 00000150 64 2f 1c 90 bc ea 68 23 10 7e fe e3 25 c0 48 3a |d/....h#.~..%.H:| 38 | 00000160 69 e0 28 6d d3 37 00 ef 04 62 dd 0d a0 9c 70 62 |i.(m.7...b....pb| 39 | 00000170 83 d8 81 d3 64 31 aa 9e 97 31 bd 96 b0 68 c0 9b |....d1...1...h..| 40 | 00000180 23 de 76 64 3f 1a 5c 7f e9 12 0e 58 58 b6 5f 70 |#.vd?.\....XX._p| 41 | 00000190 dd 9b d8 ea d5 d7 f5 d5 cc b9 b6 9f 30 66 5b 66 |............0f[f| 42 | 000001a0 9a 20 e2 27 e5 bf fe 3b 30 09 06 07 2a 86 48 ce |. .'...;0...*.H.| 43 | 000001b0 3d 04 01 03 81 8c 00 30 81 88 02 42 01 88 a2 4f |=......0...B...O| 44 | 000001c0 eb e2 45 c5 48 7d 1b ac f5 ed 98 9d ae 47 70 c0 |..E.H}.......Gp.| 45 | 000001d0 5e 1b b6 2f bd f1 b6 4d b7 61 40 d3 11 a2 ce ee |^../...M.a@.....| 46 | 000001e0 0b 7e 92 7e ff 76 9d c3 3b 7e a5 3f ce fa 10 e2 |.~.~.v..;~.?....| 47 | 000001f0 59 ec 47 2d 7c ac da 4e 97 0e 15 a0 6f d0 02 42 |Y.G-|..N....o..B| 48 | 00000200 01 4d fc be 67 13 9c 2d 05 0e bd 3f a3 8c 25 c1 |.M..g..-...?..%.| 49 | 00000210 33 13 83 0d 94 06 bb d4 37 7a f6 ec 7a c9 86 2e |3.......7z..z...| 50 | 00000220 dd d7 11 69 7f 85 7c 56 de fb 31 78 2b e4 c7 78 |...i..|V..1x+..x| 51 | 00000230 0d ae cb be 9e 4e 36 24 31 7b 6a 0f 39 95 12 07 |.....N6$1{j.9...| 52 | 00000240 8f 2a 16 03 03 00 d8 0c 00 00 d4 03 00 17 41 04 |.*............A.| 53 | 00000250 1e 18 37 ef 0d 19 51 88 35 75 71 b5 e5 54 5b 12 |..7...Q.5uq..T[.| 54 | 00000260 2e 8f 09 67 fd a7 24 20 3e b2 56 1c ce 97 28 5e |...g..$ >.V...(^| 55 | 00000270 f8 2b 2d 4f 9e f1 07 9f 6c 4b 5b 83 56 e2 32 42 |.+-O....lK[.V.2B| 56 | 00000280 e9 58 b6 d7 49 a6 b5 68 1a 41 03 56 6b dc 5a 89 |.X..I..h.A.Vk.Z.| 57 | 00000290 04 03 00 8b 30 81 88 02 42 00 c6 85 8e 06 b7 04 |....0...B.......| 58 | 000002a0 04 e9 cd 9e 3e cb 66 23 95 b4 42 9c 64 81 39 05 |....>.f#..B.d.9.| 59 | 000002b0 3f b5 21 f8 28 af 60 6b 4d 3d ba a1 4b 5e 77 ef |?.!.(.`kM=..K^w.| 60 | 000002c0 e7 59 28 fe 1d c1 27 a2 ff a8 de 33 48 b3 c1 85 |.Y(...'....3H...| 61 | 000002d0 6a 42 9b f9 7e 7e 31 c2 e5 bd 66 02 42 00 ad 7d |jB..~~1...f.B..}| 62 | 000002e0 06 35 ab ec 8d ac d4 ba 1b 49 5e 05 5f f0 97 93 |.5.......I^._...| 63 | 000002f0 82 b8 2b 8d 91 98 63 8e b4 14 62 db 1e c9 2b 64 |..+...c...b...+d| 64 | 00000300 e9 e6 bf 15 5b 67 c2 40 90 c6 1f b7 92 db 4b f6 |....[g.@......K.| 65 | 00000310 f4 db ae 82 f1 4f 02 75 52 40 38 10 ff 35 f0 16 |.....O.uR@8..5..| 66 | 00000320 03 03 00 04 0e 00 00 00 |........| 67 | >>> Flow 3 (client to server) 68 | 00000000 16 03 03 00 46 10 00 00 42 41 04 d8 94 c4 05 26 |....F...BA.....&| 69 | 00000010 76 29 2d 0e ec 47 b6 50 d5 a3 da 2a ba 02 11 37 |v)-..G.P...*...7| 70 | 00000020 3d ef e6 2a db d0 47 47 a7 9a 5f 43 2d 98 78 26 |=..*..GG.._C-.x&| 71 | 00000030 81 e2 f1 ba fe f7 66 c6 61 cb c1 b7 60 62 34 a5 |......f.a...`b4.| 72 | 00000040 78 67 50 3d 9a 0e 4a 8c 8f d7 10 14 03 03 00 01 |xgP=..J.........| 73 | 00000050 01 16 03 03 00 40 5e 46 b0 5d 30 f6 da 8f 9e 67 |.....@^F.]0....g| 74 | 00000060 f5 3e bd fe c9 b8 53 b2 10 d5 7c 0e 34 e3 93 6d |.>....S...|.4..m| 75 | 00000070 0e 8e 8a 2b df fb 9a 0f a5 23 55 e7 0a 4b e2 d3 |...+.....#U..K..| 76 | 00000080 db 15 e8 52 74 26 78 b3 b0 56 65 63 ac ae 1e c0 |...Rt&x..Vec....| 77 | 00000090 0b f4 92 56 a9 04 |...V..| 78 | >>> Flow 4 (server to client) 79 | 00000000 14 03 03 00 01 01 16 03 03 00 40 00 00 00 00 00 |..........@.....| 80 | 00000010 00 00 00 00 00 00 00 00 00 00 00 16 a9 63 0a 99 |.............c..| 81 | 00000020 21 8a fc 5c b3 ee 05 71 4e 75 c0 d9 40 54 0d 3e |!..\...qNu..@T.>| 82 | 00000030 4e 5d 44 b7 4b 5d a9 e7 5a 30 ed b6 d5 08 50 b1 |N]D.K]..Z0....P.| 83 | 00000040 e8 8c 54 eb 1b 39 7a f9 3b ac 2e 17 03 03 00 40 |..T..9z.;......@| 84 | 00000050 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| 85 | 00000060 96 03 20 2b 20 c4 c1 9a 76 7b f3 96 bd 33 ed e6 |.. + ...v{...3..| 86 | 00000070 38 48 ea 53 d5 e0 62 b5 7e 1a 36 a8 dd 9f 2d 4b |8H.S..b.~.6...-K| 87 | 00000080 06 0d ae f6 bc 99 14 b3 93 14 27 63 e2 a0 c8 76 |..........'c...v| 88 | 00000090 15 03 03 00 30 00 00 00 00 00 00 00 00 00 00 00 |....0...........| 89 | 000000a0 00 00 00 00 00 48 af e1 e4 11 e1 b7 03 19 b0 e3 |.....H..........| 90 | 000000b0 e6 a9 66 d8 ac af aa 03 f6 0d 51 df 9a 27 78 3a |..f.......Q..'x:| 91 | 000000c0 56 5a 03 1a 4c |VZ..L| 92 | --------------------------------------------------------------------------------