From 9852f56b74a7abda095668891509e1d6240d5ea1 Mon Sep 17 00:00:00 2001 From: Mattias Wadman Date: Fri, 10 Feb 2023 20:06:38 +0100 Subject: [PATCH] tls: Add TLS 1.0, 1.1, 1.2 decode and decryption What it can do: - Decodes records and most standard messages and extensions. - Decryptes records and reassemples application data stream if a keylog is provided and the cipher suite is supported. - Supports most recommended and used ciphers and a bunch of older ones. What it can't do: - SSL v3 maybe supported, is similar to TLS 1.0, not tested. - Decryption and renegotiation/cipher change. - Record defragmentation not supported, seems rare over TCP. - TLS 1.3 - SSL v2 but v2 compat header is supported. - Some key exchange messages not decoded yet Decryption code is heavly based on golang crypto/tls and zmap/zcrypto. Will be base for decoding http2 and other TLS based on protocols. Fixes #587 --- .golangci.yml | 4 + README.md | 2 + doc/formats.md | 150 +- doc/formats.svg | 1918 ++++++++-------- format/all/all.fqtest | 1 + format/all/all.go | 1 + format/format.go | 12 +- format/pcap/shared.go | 25 +- format/pcap/testdata/many_interfaces.fqtest | 438 +++- format/tls/README.md | 18 + format/tls/alerts.go | 85 + format/tls/ciphersuites/ciphersuites.go | 3 + format/tls/ciphersuites/ciphersuites.jq | 85 + format/tls/ciphersuites/ciphersuites_gen.go | 851 +++++++ format/tls/ciphersuites/other.csv | 21 + format/tls/ciphersuites/tls-parameters-4.csv | 449 ++++ format/tls/extensions.go | 132 ++ format/tls/keylog/keylog.go | 101 + format/tls/keylog/keylog_test.go | 63 + format/tls/keylog/testdata/keylog.txt | 5 + format/tls/rezlib/reinflate.go | 90 + format/tls/testdata/README.md | 5 + ...TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA.pcap | Bin 0 -> 3716 bytes ..._DSS_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest | 475 ++++ .../TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA.pcap | Bin 0 -> 3709 bytes ..._DHE_DSS_WITH_3DES_EDE_CBC_SHA.pcap.fqtest | 477 ++++ .../TLS_DHE_DSS_WITH_AES_128_CBC_SHA.pcap | Bin 0 -> 3756 bytes ...S_DHE_DSS_WITH_AES_128_CBC_SHA.pcap.fqtest | 479 ++++ .../TLS_DHE_DSS_WITH_AES_128_CBC_SHA256.pcap | Bin 0 -> 3836 bytes ...HE_DSS_WITH_AES_128_CBC_SHA256.pcap.fqtest | 479 ++++ .../TLS_DHE_DSS_WITH_AES_128_GCM_SHA256.pcap | Bin 0 -> 3672 bytes ...HE_DSS_WITH_AES_128_GCM_SHA256.pcap.fqtest | 478 ++++ .../TLS_DHE_DSS_WITH_AES_256_CBC_SHA.pcap | Bin 0 -> 3756 bytes ...S_DHE_DSS_WITH_AES_256_CBC_SHA.pcap.fqtest | 479 ++++ .../TLS_DHE_DSS_WITH_AES_256_CBC_SHA256.pcap | Bin 0 -> 3836 bytes ...HE_DSS_WITH_AES_256_CBC_SHA256.pcap.fqtest | 479 ++++ .../TLS_DHE_DSS_WITH_AES_256_GCM_SHA384.pcap | Bin 0 -> 3673 bytes ...HE_DSS_WITH_AES_256_GCM_SHA384.pcap.fqtest | 479 ++++ ...TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA.pcap | Bin 0 -> 3756 bytes ..._DSS_WITH_CAMELLIA_128_CBC_SHA.pcap.fqtest | 456 ++++ ...TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA.pcap | Bin 0 -> 3756 bytes ..._DSS_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest | 456 ++++ .../ciphers/TLS_DHE_DSS_WITH_DES_CBC_SHA.pcap | Bin 0 -> 3709 bytes .../TLS_DHE_DSS_WITH_DES_CBC_SHA.pcap.fqtest | 477 ++++ .../TLS_DHE_DSS_WITH_SEED_CBC_SHA.pcap | Bin 0 -> 3758 bytes .../TLS_DHE_DSS_WITH_SEED_CBC_SHA.pcap.fqtest | 454 ++++ ...TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap | Bin 0 -> 3601 bytes ..._RSA_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest | 467 ++++ .../TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap | Bin 0 -> 3601 bytes ..._DHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest | 470 ++++ .../TLS_DHE_RSA_WITH_AES_128_CBC_SHA.pcap | Bin 0 -> 3649 bytes ...S_DHE_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest | 472 ++++ .../TLS_DHE_RSA_WITH_AES_128_CBC_SHA256.pcap | Bin 0 -> 3729 bytes ...HE_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest | 472 ++++ .../TLS_DHE_RSA_WITH_AES_128_GCM_SHA256.pcap | Bin 0 -> 3567 bytes ...HE_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest | 470 ++++ .../TLS_DHE_RSA_WITH_AES_256_CBC_SHA.pcap | Bin 0 -> 3649 bytes ...S_DHE_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest | 472 ++++ .../TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.pcap | Bin 0 -> 3729 bytes ...HE_RSA_WITH_AES_256_CBC_SHA256.pcap.fqtest | 472 ++++ .../TLS_DHE_RSA_WITH_AES_256_GCM_SHA384.pcap | Bin 0 -> 3563 bytes ...HE_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest | 471 ++++ ...TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap | Bin 0 -> 3649 bytes ..._RSA_WITH_CAMELLIA_128_CBC_SHA.pcap.fqtest | 449 ++++ ...TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap | Bin 0 -> 3649 bytes ..._RSA_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest | 449 ++++ .../ciphers/TLS_DHE_RSA_WITH_DES_CBC_SHA.pcap | Bin 0 -> 3601 bytes .../TLS_DHE_RSA_WITH_DES_CBC_SHA.pcap.fqtest | 470 ++++ .../TLS_DHE_RSA_WITH_SEED_CBC_SHA.pcap | Bin 0 -> 3649 bytes .../TLS_DHE_RSA_WITH_SEED_CBC_SHA.pcap.fqtest | 449 ++++ ...TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap | Bin 0 -> 3518 bytes ...HE_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest | 518 +++++ .../TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.pcap | Bin 0 -> 3558 bytes ...DHE_ECDSA_WITH_AES_128_CBC_SHA.pcap.fqtest | 520 +++++ ...S_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256.pcap | Bin 0 -> 3638 bytes ..._ECDSA_WITH_AES_128_CBC_SHA256.pcap.fqtest | 520 +++++ ...S_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.pcap | Bin 0 -> 3481 bytes ..._ECDSA_WITH_AES_128_GCM_SHA256.pcap.fqtest | 518 +++++ .../TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA.pcap | Bin 0 -> 3558 bytes ...DHE_ECDSA_WITH_AES_256_CBC_SHA.pcap.fqtest | 520 +++++ ...S_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384.pcap | Bin 0 -> 3718 bytes ..._ECDSA_WITH_AES_256_CBC_SHA384.pcap.fqtest | 520 +++++ ...S_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.pcap | Bin 0 -> 3482 bytes ..._ECDSA_WITH_AES_256_GCM_SHA384.pcap.fqtest | 518 +++++ .../TLS_ECDHE_ECDSA_WITH_RC4_128_SHA.pcap | Bin 0 -> 3462 bytes ...S_ECDHE_ECDSA_WITH_RC4_128_SHA.pcap.fqtest | 518 +++++ .../TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap | Bin 0 -> 3615 bytes ...CDHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest | 527 +++++ .../TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA.pcap | Bin 0 -> 3655 bytes ...ECDHE_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest | 527 +++++ ...TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256.pcap | Bin 0 -> 3735 bytes ...HE_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest | 527 +++++ ...TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.pcap | Bin 0 -> 3572 bytes ...HE_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest | 526 +++++ .../TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA.pcap | Bin 0 -> 3655 bytes ...ECDHE_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest | 527 +++++ ...TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384.pcap | Bin 0 -> 3815 bytes ...HE_RSA_WITH_AES_256_CBC_SHA384.pcap.fqtest | 527 +++++ ...TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.pcap | Bin 0 -> 3569 bytes ...HE_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest | 526 +++++ .../TLS_ECDHE_RSA_WITH_RC4_128_SHA.pcap | Bin 0 -> 3550 bytes ...TLS_ECDHE_RSA_WITH_RC4_128_SHA.pcap.fqtest | 526 +++++ .../TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap | Bin 0 -> 3365 bytes ...DH_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest | 495 +++++ .../TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA.pcap | Bin 0 -> 3405 bytes ...CDH_ECDSA_WITH_AES_128_CBC_SHA.pcap.fqtest | 496 +++++ ...LS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256.pcap | Bin 0 -> 3485 bytes ..._ECDSA_WITH_AES_128_CBC_SHA256.pcap.fqtest | 496 +++++ ...LS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256.pcap | Bin 0 -> 3328 bytes ..._ECDSA_WITH_AES_128_GCM_SHA256.pcap.fqtest | 495 +++++ .../TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA.pcap | Bin 0 -> 3405 bytes ...CDH_ECDSA_WITH_AES_256_CBC_SHA.pcap.fqtest | 496 +++++ ...LS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384.pcap | Bin 0 -> 3565 bytes ..._ECDSA_WITH_AES_256_CBC_SHA384.pcap.fqtest | 496 +++++ ...LS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384.pcap | Bin 0 -> 3329 bytes ..._ECDSA_WITH_AES_256_GCM_SHA384.pcap.fqtest | 494 +++++ .../TLS_ECDH_ECDSA_WITH_RC4_128_SHA.pcap | Bin 0 -> 3310 bytes ...LS_ECDH_ECDSA_WITH_RC4_128_SHA.pcap.fqtest | 495 +++++ .../TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA.pcap | Bin 0 -> 3389 bytes ...ECDH_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest | 512 +++++ .../TLS_ECDH_RSA_WITH_AES_128_CBC_SHA.pcap | Bin 0 -> 3429 bytes ..._ECDH_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest | 513 +++++ .../TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256.pcap | Bin 0 -> 3509 bytes ...DH_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest | 513 +++++ .../TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256.pcap | Bin 0 -> 3349 bytes ...DH_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest | 512 +++++ .../TLS_ECDH_RSA_WITH_AES_256_CBC_SHA.pcap | Bin 0 -> 3429 bytes ..._ECDH_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest | 513 +++++ .../TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384.pcap | Bin 0 -> 3589 bytes ...DH_RSA_WITH_AES_256_CBC_SHA384.pcap.fqtest | 513 +++++ .../TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384.pcap | Bin 0 -> 3350 bytes ...DH_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest | 512 +++++ .../TLS_ECDH_RSA_WITH_RC4_128_SHA.pcap | Bin 0 -> 3331 bytes .../TLS_ECDH_RSA_WITH_RC4_128_SHA.pcap.fqtest | 512 +++++ .../TLS_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap | Bin 0 -> 3537 bytes ..._RSA_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest | 467 ++++ .../TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5.pcap | Bin 0 -> 6599 bytes ...RSA_EXPORT_WITH_RC2_CBC_40_MD5.pcap.fqtest | 357 +++ .../TLS_RSA_EXPORT_WITH_RC4_40_MD5.pcap | Bin 0 -> 6512 bytes ...TLS_RSA_EXPORT_WITH_RC4_40_MD5.pcap.fqtest | 379 ++++ .../TLS_RSA_WITH_3DES_EDE_CBC_SHA.pcap | Bin 0 -> 3389 bytes .../TLS_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest | 460 ++++ .../ciphers/TLS_RSA_WITH_AES_128_CBC_SHA.pcap | Bin 0 -> 3437 bytes .../TLS_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest | 461 ++++ .../TLS_RSA_WITH_AES_128_CBC_SHA256.pcap | Bin 0 -> 3517 bytes ...LS_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest | 461 ++++ .../TLS_RSA_WITH_AES_128_GCM_SHA256.pcap | Bin 0 -> 3353 bytes ...LS_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest | 459 ++++ .../ciphers/TLS_RSA_WITH_AES_256_CBC_SHA.pcap | Bin 0 -> 3437 bytes .../TLS_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest | 461 ++++ .../TLS_RSA_WITH_AES_256_CBC_SHA256.pcap | Bin 0 -> 3517 bytes ...LS_RSA_WITH_AES_256_CBC_SHA256.pcap.fqtest | 461 ++++ .../TLS_RSA_WITH_AES_256_GCM_SHA384.pcap | Bin 0 -> 3351 bytes ...LS_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest | 460 ++++ .../TLS_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap | Bin 0 -> 3437 bytes ..._RSA_WITH_CAMELLIA_128_CBC_SHA.pcap.fqtest | 438 ++++ .../TLS_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap | Bin 0 -> 3437 bytes ..._RSA_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest | 438 ++++ .../ciphers/TLS_RSA_WITH_DES_CBC_SHA.pcap | Bin 0 -> 3397 bytes .../TLS_RSA_WITH_DES_CBC_SHA.pcap.fqtest | 460 ++++ .../ciphers/TLS_RSA_WITH_IDEA_CBC_SHA.pcap | Bin 0 -> 3389 bytes .../TLS_RSA_WITH_IDEA_CBC_SHA.pcap.fqtest | 437 ++++ .../ciphers/TLS_RSA_WITH_RC4_128_MD5.pcap | Bin 0 -> 6352 bytes .../TLS_RSA_WITH_RC4_128_MD5.pcap.fqtest | 371 ++++ .../ciphers/TLS_RSA_WITH_RC4_128_SHA.pcap | Bin 0 -> 3333 bytes .../TLS_RSA_WITH_RC4_128_SHA.pcap.fqtest | 460 ++++ .../ciphers/TLS_RSA_WITH_SEED_CBC_SHA.pcap | Bin 0 -> 3437 bytes .../TLS_RSA_WITH_SEED_CBC_SHA.pcap.fqtest | 438 ++++ format/tls/testdata/ciphers/all.keylog | 219 ++ format/tls/testdata/dump-broken.pcapng | Bin 0 -> 7568 bytes format/tls/testdata/dump-broken.pcapng.fqtest | 524 +++++ format/tls/testdata/dump-broken.pcapng.keylog | 4 + format/tls/testdata/dump.pcapng | Bin 0 -> 301260 bytes format/tls/testdata/dump.pcapng.keylog | 219 ++ format/tls/testdata/help_tls.fqtest | 85 + format/tls/testdata/ja3.fqtest | 11 + format/tls/testdata/ja3.jq | 48 + format/tls/testdata/split.jq | 44 + .../testdata/testtls.com.http1.1-tls1.2.pcap | Bin 0 -> 28237 bytes .../testtls.com.http1.1-tls1.2.pcap.fqtest | 1951 +++++++++++++++++ .../testtls.com.http1.1-tls1.2.pcap.keylog | 1 + format/tls/testdata/to_tar.jq | 44 + format/tls/tls.go | 754 +++++++ format/tls/tls.md | 126 ++ format/tls/tlsdecrypt/README.md | 7 + format/tls/tlsdecrypt/alert.go | 93 + format/tls/tlsdecrypt/cipher_suites.go | 841 +++++++ format/tls/tlsdecrypt/common.go | 49 + format/tls/tlsdecrypt/conn.go | 258 +++ format/tls/tlsdecrypt/key_schedule.go | 115 + format/tls/tlsdecrypt/prf.go | 295 +++ format/tls/tlsdecrypt/tlsdecrypt.go | 96 + pkg/decode/decode.go | 5 +- pkg/decode/value.go | 32 + 194 files changed, 44460 insertions(+), 967 deletions(-) create mode 100644 format/tls/README.md create mode 100644 format/tls/alerts.go create mode 100644 format/tls/ciphersuites/ciphersuites.go create mode 100755 format/tls/ciphersuites/ciphersuites.jq create mode 100644 format/tls/ciphersuites/ciphersuites_gen.go create mode 100644 format/tls/ciphersuites/other.csv create mode 100644 format/tls/ciphersuites/tls-parameters-4.csv create mode 100644 format/tls/extensions.go create mode 100644 format/tls/keylog/keylog.go create mode 100644 format/tls/keylog/keylog_test.go create mode 100644 format/tls/keylog/testdata/keylog.txt create mode 100644 format/tls/rezlib/reinflate.go create mode 100644 format/tls/testdata/README.md create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_128_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_128_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_128_CBC_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_128_CBC_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_128_GCM_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_128_GCM_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_256_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_256_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_256_CBC_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_256_CBC_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_256_GCM_SHA384.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_AES_256_GCM_SHA384.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_DES_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_DES_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_SEED_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_SEED_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_CBC_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_GCM_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_GCM_SHA384.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_DES_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_DES_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_SEED_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_SEED_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_RC4_128_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_RC4_128_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_RC4_128_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_RC4_128_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_RC4_128_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_RC4_128_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_RC4_128_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_RC4_128_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_RC4_40_MD5.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_RC4_40_MD5.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_3DES_EDE_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_CBC_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_GCM_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_CBC_SHA256.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_CBC_SHA256.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_GCM_SHA384.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_DES_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_DES_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_IDEA_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_IDEA_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_MD5.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_MD5.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_SEED_CBC_SHA.pcap create mode 100644 format/tls/testdata/ciphers/TLS_RSA_WITH_SEED_CBC_SHA.pcap.fqtest create mode 100644 format/tls/testdata/ciphers/all.keylog create mode 100644 format/tls/testdata/dump-broken.pcapng create mode 100644 format/tls/testdata/dump-broken.pcapng.fqtest create mode 100644 format/tls/testdata/dump-broken.pcapng.keylog create mode 100644 format/tls/testdata/dump.pcapng create mode 100644 format/tls/testdata/dump.pcapng.keylog create mode 100644 format/tls/testdata/help_tls.fqtest create mode 100644 format/tls/testdata/ja3.fqtest create mode 100644 format/tls/testdata/ja3.jq create mode 100644 format/tls/testdata/split.jq create mode 100644 format/tls/testdata/testtls.com.http1.1-tls1.2.pcap create mode 100644 format/tls/testdata/testtls.com.http1.1-tls1.2.pcap.fqtest create mode 100644 format/tls/testdata/testtls.com.http1.1-tls1.2.pcap.keylog create mode 100644 format/tls/testdata/to_tar.jq create mode 100644 format/tls/tls.go create mode 100644 format/tls/tls.md create mode 100644 format/tls/tlsdecrypt/README.md create mode 100644 format/tls/tlsdecrypt/alert.go create mode 100644 format/tls/tlsdecrypt/cipher_suites.go create mode 100644 format/tls/tlsdecrypt/common.go create mode 100644 format/tls/tlsdecrypt/conn.go create mode 100644 format/tls/tlsdecrypt/key_schedule.go create mode 100644 format/tls/tlsdecrypt/prf.go create mode 100644 format/tls/tlsdecrypt/tlsdecrypt.go diff --git a/.golangci.yml b/.golangci.yml index 2c01a556..9b8271bb 100644 --- a/.golangci.yml +++ b/.golangci.yml @@ -23,6 +23,7 @@ linters: - unconvert - unparam - wastedassign + linters-settings: exhaustive: default-signifies-exhaustive: true @@ -36,9 +37,12 @@ linters-settings: - rela - equalisation - synchronisation + run: timeout: 5m skip-dirs: # allow md5 - dev - doc + # ignore warnings in code from crypto/tls and zmap/zcrypto + - format/tls/tlsdecrypt diff --git a/README.md b/README.md index 84790ec3..a2fa0e5e 100644 --- a/README.md +++ b/README.md @@ -132,6 +132,7 @@ sll_packet, tar, tcp_segment, tiff, +[tls](doc/formats.md#tls), toml, [tzif](doc/formats.md#tzif), udp_datagram, @@ -310,3 +311,4 @@ Licenses of direct dependencies: - golang/snappy https://github.com/golang/snappy/blob/master/LICENSE (BSD) - golang/x/* https://github.com/golang/text/blob/master/LICENSE (BSD) - gopkg.in/yaml.v3 https://github.com/go-yaml/yaml/blob/v3/LICENSE (MIT) +- Parts of go crypto/tls and github.com/zmap/zcrypto https://github.com/zmap/zcrypto/blob/master/LICENSE (Apache) diff --git a/doc/formats.md b/doc/formats.md index bce23c7c..4ce07db4 100644 --- a/doc/formats.md +++ b/doc/formats.md @@ -102,6 +102,7 @@ |`tar` |Tar archive |`probe`| |`tcp_segment` |Transmission control protocol segment || |`tiff` |Tag Image File Format |`icc_profile`| +|[`tls`](#tls) |Transport layer security |`asn1_ber`| |`toml` |Tom's Obvious, Minimal Language || |[`tzif`](#tzif) |Time Zone Information Format || |`udp_datagram` |User datagram protocol |`udp_payload`| @@ -123,7 +124,7 @@ |`link_frame` |Group |`bsd_loopback_frame` `ether8023_frame` `ipv4_packet` `ipv6_packet` `sll2_packet` `sll_packet`| |`mp3_frame_tags` |Group |`mp3_frame_vbri` `mp3_frame_xing`| |`probe` |Group |`adts` `apple_bookmark` `ar` `avi` `avro_ocf` `bitcoin_blkdat` `bplist` `bzip2` `elf` `flac` `gif` `gzip` `jpeg` `json` `jsonl` `macho` `macho_fat` `matroska` `mp3` `mp4` `mpeg_ts` `ogg` `pcap` `pcapng` `png` `tar` `tiff` `toml` `tzif` `wasm` `wav` `webp` `xml` `yaml` `zip`| -|`tcp_stream` |Group |`dns_tcp` `rtmp`| +|`tcp_stream` |Group |`dns_tcp` `rtmp` `tls`| |`udp_payload` |Group |`dns`| [#]: sh-end @@ -839,6 +840,153 @@ fq '.tcp_connections[] | select(.server.port=="rtmp") | d' file.cap - https://rtmp.veriskope.com/docs/spec/ - https://rtmp.veriskope.com/pdf/video_file_format_spec_v10.pdf +## tls + +### Options + +|Name |Default|Description| +|- |- |-| +|`keylog`| |NSS Key Log content| + +### Examples + +Decode file using tls options +``` +$ fq -d tls -o keylog="" . file +``` + +Decode value as tls +``` +... | tls({keylog:""}) +``` + +Supports decoding of most standard records, messages and extensions. Can also decrypt most standard cipher suits in a PCAP with traffic in both directions if a NSS key log is provided. + +### Decode and decrypt provding a PCAP and key log + +Write traffic to a PCAP file: + +```sh +$ tcpdump -i -w traffic.pcap +``` + +Make sure your curl TLS backend support `SSLKEYLOGFILE` and do: +```sh +$ SSLKEYLOGFILE=traffic.keylog curl --tls-max 1.2 https://host/path +``` + +Decode, decrypt and query. Uses `keylog=@` to read option value from keylog file: +```sh +# decode and show whole tree +$ fq -o keylog=@traffic.keylog d traffic.pcap + +# write unencrypted server response to a file. +# first .stream is the TCP stream, second .stream is TLS application data stream +# +# first TCP connections: +$ fq -o keylog=@traffic.keylog '.tcp_connections[0].server.stream.stream | tobytes' traffic.pcap > data +# first TLS connection: +$ fq -o keylog=@traffic.keylog 'first(grep_by(.server.stream | format == "tls")).server.stream.stream | tobytes' > data +``` + +### Supported cipher suites for decryption + +`TLS_DH_ANON_EXPORT_WITH_DES40_CBC_SHA`, +`TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5`, +`TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA`, +`TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA`, +`TLS_DHE_DSS_WITH_AES_128_CBC_SHA`, +`TLS_DHE_DSS_WITH_AES_128_CBC_SHA256`, +`TLS_DHE_DSS_WITH_AES_128_GCM_SHA256`, +`TLS_DHE_DSS_WITH_AES_256_CBC_SHA`, +`TLS_DHE_DSS_WITH_AES_256_CBC_SHA256`, +`TLS_DHE_DSS_WITH_AES_256_GCM_SHA384`, +`TLS_DHE_DSS_WITH_DES_CBC_SHA`, +`TLS_DHE_DSS_WITH_RC4_128_SHA`, +`TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA`, +`TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_DHE_RSA_WITH_AES_128_CBC_SHA`, +`TLS_DHE_RSA_WITH_AES_128_CBC_SHA256`, +`TLS_DHE_RSA_WITH_AES_128_GCM_SHA256`, +`TLS_DHE_RSA_WITH_AES_256_CBC_SHA`, +`TLS_DHE_RSA_WITH_AES_256_CBC_SHA256`, +`TLS_DHE_RSA_WITH_AES_256_GCM_SHA384`, +`TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256`, +`TLS_DHE_RSA_WITH_DES_CBC_SHA`, +`TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256`, +`TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256`, +`TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384`, +`TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384`, +`TLS_ECDH_ECDSA_WITH_RC4_128_SHA`, +`TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_ECDH_RSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256`, +`TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256`, +`TLS_ECDH_RSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384`, +`TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384`, +`TLS_ECDH_RSA_WITH_RC4_128_SHA`, +`TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256`, +`TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`, +`TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384`, +`TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384eadAESGCM`, +`TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256`, +`TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305`, +`TLS_ECDHE_ECDSA_WITH_RC4_128_SHA`, +`TLS_ECDHE_ECDSA_WITH_RC4_128_SHA`, +`TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA`, +`TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256`, +`TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256`, +`TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256`, +`TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384`, +`TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384`, +`TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256`, +`TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305`, +`TLS_ECDHE_RSA_WITH_RC4_128_SHA`, +`TLS_ECDHE_RSA_WITH_RC4_128_SHA`, +`TLS_PSK_WITH_AES_128_CBC_SHA`, +`TLS_PSK_WITH_AES_256_CBC_SHA`, +`TLS_PSK_WITH_RC4_128_SHA`, +`TLS_RSA_EXPORT_WITH_DES40_CBC_SHA`, +`TLS_RSA_EXPORT_WITH_RC4_40_MD5`, +`TLS_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_RSA_WITH_AES_128_CBC_SHA`, +`TLS_RSA_WITH_AES_128_CBC_SHA`, +`TLS_RSA_WITH_AES_128_CBC_SHA256`, +`TLS_RSA_WITH_AES_128_CBC_SHA256`, +`TLS_RSA_WITH_AES_128_GCM_SHA256`, +`TLS_RSA_WITH_AES_128_GCM_SHA256`, +`TLS_RSA_WITH_AES_256_CBC_SHA`, +`TLS_RSA_WITH_AES_256_CBC_SHA`, +`TLS_RSA_WITH_AES_256_CBC_SHA256`, +`TLS_RSA_WITH_AES_256_GCM_SHA384`, +`TLS_RSA_WITH_AES_256_GCM_SHA384`, +`TLS_RSA_WITH_DES_CBC_SHA`, +`TLS_RSA_WITH_RC4_128_MD5`, +`TLS_RSA_WITH_RC4_128_SHA`, +`TLS_RSA_WITH_RC4_128_SHA` + +### References + +- [RFC 5246: The Transport Layer Security (TLS) Protocol](https://www.rfc-editor.org/rfc/rfc5246) +- [RFC 6101: The Secure Sockets Layer (SSL) Protocol Version 3.0](https://www.rfc-editor.org/rfc/rfc) + ## tzif ### Get last transition time diff --git a/doc/formats.svg b/doc/formats.svg index cdf27bf7..ebb629bb 100644 --- a/doc/formats.svg +++ b/doc/formats.svg @@ -4,32 +4,32 @@ - + formats - + adts - -adts - -adts_frame + +adts + +adts_frame adts_frame - -adts_frame - -aac_frame + +adts_frame + +aac_frame adts:e->adts_frame:n - - + + @@ -40,652 +40,652 @@ adts_frame:e->aac_frame:n - - + + apev2 - -apev2 - -image + +apev2 + +image image - -image + +image apev2:e->image:n - - + + jpeg - -jpeg - -exif - -icc_profile + +jpeg + +exif + +icc_profile - + image->jpeg:n - - + + mp4 - -mp4 - -aac_frame - -av1_ccr - -av1_frame - -avc_au - -avc_dcr - -flac_frame - -flac_metadatablocks - -hevc_au - -hevc_dcr - -icc_profile - -id3v2 - -image - -jpeg - -mp3_frame - -mpeg_es - -mpeg_pes_packet - -opus_packet - -png - -prores_frame - -protobuf_widevine - -pssh_playready - -vorbis_packet - -vp9_frame - -vpx_ccr + +mp4 + +aac_frame + +av1_ccr + +av1_frame + +avc_au + +avc_dcr + +flac_frame + +flac_metadatablocks + +hevc_au + +hevc_dcr + +icc_profile + +id3v2 + +image + +jpeg + +mp3_frame + +mpeg_es + +mpeg_pes_packet + +opus_packet + +png + +prores_frame + +protobuf_widevine + +pssh_playready + +vorbis_packet + +vp9_frame + +vpx_ccr - + image->mp4:n - - + + png - -png - -icc_profile - -exif + +png + +icc_profile + +exif - + image->png:n - - + + tiff - -tiff - -icc_profile + +tiff + +icc_profile - + image->tiff:n - - + + - + webp - -webp - -vp8_frame + +webp + +vp8_frame - + image->webp:n - - + + - + gif - -gif + +gif - + image->gif:n - - + + ar - -ar - -probe + +ar + +probe probe - -probe + +probe ar:e->probe:n - - + + - + probe->adts:n - - + + - + probe->ar:n - - + + avi - -avi - -avc_au - -hevc_au - -mp3_frame - -flac_frame + +avi + +avc_au + +hevc_au + +mp3_frame + +flac_frame - + probe->avi:n - - + + bitcoin_blkdat - -bitcoin_blkdat - -bitcoin_block + +bitcoin_blkdat + +bitcoin_block - + probe->bitcoin_blkdat:n - - + + bzip2 - -bzip2 - -probe + +bzip2 + +probe - + probe->bzip2:n - - + + flac - -flac - -flac_metadatablocks - -flac_frame + +flac + +flac_metadatablocks + +flac_frame - + probe->flac:n - - + + gzip - -gzip - -probe + +gzip + +probe - + probe->gzip:n - - + + - + probe->jpeg:n - - + + macho_fat - -macho_fat - -macho + +macho_fat + +macho - + probe->macho_fat:n - - + + macho - -macho + +macho - + probe->macho:n - - + + matroska - -matroska - -aac_frame - -av1_ccr - -av1_frame - -avc_au - -avc_dcr - -flac_frame - -flac_metadatablocks - -hevc_au - -hevc_dcr - -image - -mp3_frame - -mpeg_asc - -mpeg_pes_packet - -mpeg_spu - -opus_packet - -vorbis_packet - -vp8_frame - -vp9_cfm - -vp9_frame + +matroska + +aac_frame + +av1_ccr + +av1_frame + +avc_au + +avc_dcr + +flac_frame + +flac_metadatablocks + +hevc_au + +hevc_dcr + +image + +mp3_frame + +mpeg_asc + +mpeg_pes_packet + +mpeg_spu + +opus_packet + +vorbis_packet + +vp8_frame + +vp9_cfm + +vp9_frame - + probe->matroska:n - - + + mp3 - -mp3 - -id3v2 - -id3v1 - -id3v11 - -apev2 - -mp3_frame + +mp3 + +id3v2 + +id3v1 + +id3v11 + +apev2 + +mp3_frame - + probe->mp3:n - - + + - + probe->mp4:n - - + + - + probe->png:n - - + + ogg - -ogg - -ogg_page - -vorbis_packet - -opus_packet - -flac_metadatablock - -flac_frame + +ogg + +ogg_page + +vorbis_packet + +opus_packet + +flac_metadatablock + +flac_frame - + probe->ogg:n - - + + pcap - -pcap - -link_frame - -tcp_stream - -ipv4_packet + +pcap + +link_frame + +tcp_stream + +ipv4_packet - + probe->pcap:n - - + + pcapng - -pcapng - -link_frame - -tcp_stream - -ipv4_packet + +pcapng + +link_frame + +tcp_stream + +ipv4_packet - + probe->pcapng:n - - + + tar - -tar - -probe + +tar + +probe - + probe->tar:n - - + + - + probe->tiff:n - - + + - + wav - -wav - -id3v2 - -id3v1 - -id3v11 + +wav + +id3v2 + +id3v1 + +id3v11 - + probe->wav:n - - + + - + probe->webp:n - - + + - + zip - -zip - -probe + +zip + +probe - + probe->zip:n - - + + - + apple_bookmark - -apple_bookmark + +apple_bookmark - + probe->apple_bookmark:n - - + + - + avro_ocf - -avro_ocf + +avro_ocf - + probe->avro_ocf:n - - + + - + bplist - -bplist + +bplist - + probe->bplist:n - - + + - + elf - -elf + +elf - + probe->elf:n - - + + - + probe->gif:n - - + + - + json - -json + +json - + probe->json:n - - + + - + jsonl - -jsonl + +jsonl - + probe->jsonl:n - - + + - + mpeg_ts - -mpeg_ts + +mpeg_ts - + probe->mpeg_ts:n - - + + - + toml - -toml + +toml - + probe->toml:n - - + + - + tzif - -tzif + +tzif - + probe->tzif:n - - + + - + wasm - -wasm + +wasm - + probe->wasm:n - - + + - + xml - -xml + +xml - + probe->xml:n - - + + - + yaml - -yaml + +yaml - + probe->yaml:n - - + + @@ -704,84 +704,84 @@ av1_frame:e->av1_obu:n - - + + avc_annexb - -avc_annexb - -avc_nalu + +avc_annexb + +avc_nalu avc_nalu - -avc_nalu - -avc_sps - -avc_pps - -avc_sei + +avc_nalu + +avc_sps + +avc_pps + +avc_sei avc_annexb:e->avc_nalu:n - - + + avc_sps - -avc_sps + +avc_sps avc_nalu:e->avc_sps:n - - + + avc_pps - -avc_pps + +avc_pps avc_nalu:e->avc_pps:n - - + + avc_sei - -avc_sei + +avc_sei avc_nalu:e->avc_sei:n - - + + avc_au - -avc_au - -avc_nalu + +avc_au + +avc_nalu avc_au:e->avc_nalu:n - - + + @@ -794,198 +794,198 @@ avc_dcr:e->avc_nalu:n - - + + avi:e->avc_au:n - - + + hevc_au - -hevc_au - -hevc_nalu + +hevc_au + +hevc_nalu avi:e->hevc_au:n - - + + mp3_frame - -mp3_frame - -mp3_frame_tags + +mp3_frame + +mp3_frame_tags avi:e->mp3_frame:n - - + + flac_frame - -flac_frame + +flac_frame avi:e->flac_frame:n - - + + hevc_nalu - -hevc_nalu - -hevc_vps - -hevc_pps - -hevc_sps + +hevc_nalu + +hevc_vps + +hevc_pps + +hevc_sps hevc_au:e->hevc_nalu:n - - + + mp3_frame_tags - -mp3_frame_tags + +mp3_frame_tags mp3_frame:e->mp3_frame_tags:n - - + + bitcoin_block - -bitcoin_block - -bitcoin_transaction + +bitcoin_block + +bitcoin_transaction bitcoin_blkdat:e->bitcoin_block:n - - + + bitcoin_transaction - -bitcoin_transaction - -bitcoin_script + +bitcoin_transaction + +bitcoin_script bitcoin_block:e->bitcoin_transaction:n - - + + bitcoin_script - -bitcoin_script + +bitcoin_script bitcoin_transaction:e->bitcoin_script:n - - + + bsd_loopback_frame - -bsd_loopback_frame - -inet_packet + +bsd_loopback_frame + +inet_packet inet_packet - -inet_packet + +inet_packet bsd_loopback_frame:e->inet_packet:n - - + + ipv4_packet - -ipv4_packet - -ip_packet + +ipv4_packet + +ip_packet - + inet_packet->ipv4_packet:n - - + + ipv6_packet - -ipv6_packet - -ip_packet + +ipv6_packet + +ip_packet - + inet_packet->ipv6_packet:n - - + + bzip2:e->probe:n - - + + ether8023_frame - -ether8023_frame - -inet_packet + +ether8023_frame + +inet_packet ether8023_frame:e->inet_packet:n - - + + flac:e->flac_frame:n - - + + @@ -998,8 +998,8 @@ flac:e->flac_metadatablocks:n - - + + @@ -1022,60 +1022,60 @@ flac_streaminfo - -flac_streaminfo + +flac_streaminfo flac_metadatablock:e->flac_streaminfo:n - - + + flac_picture - -flac_picture - -image + +flac_picture + +image flac_metadatablock:e->flac_picture:n - - + + vorbis_comment - -vorbis_comment - -flac_picture + +vorbis_comment + +flac_picture flac_metadatablock:e->vorbis_comment:n - - + + flac_picture:e->image:n - - + + - + vorbis_comment:e->flac_picture:n - - + + gzip:e->probe:n - - + + @@ -1088,306 +1088,306 @@ hevc_annexb:e->hevc_nalu:n - - + + hevc_vps - -hevc_vps + +hevc_vps hevc_nalu:e->hevc_vps:n - - + + hevc_pps - -hevc_pps + +hevc_pps hevc_nalu:e->hevc_pps:n - - + + hevc_sps - -hevc_sps + +hevc_sps hevc_nalu:e->hevc_sps:n - - + + hevc_dcr - -hevc_dcr - -hevc_nalu + +hevc_dcr + +hevc_nalu hevc_dcr:e->hevc_nalu:n - - + + id3v2 - -id3v2 - -image + +id3v2 + +image id3v2:e->image:n - - + + ip_packet - -ip_packet + +ip_packet ipv4_packet:e->ip_packet:n - - + + - + udp_datagram - -udp_datagram - -udp_payload + +udp_datagram + +udp_payload - + ip_packet->udp_datagram:n - - + + - + icmp - -icmp + +icmp - + ip_packet->icmp:n - - + + - + icmpv6 - -icmpv6 + +icmpv6 - + ip_packet->icmpv6:n - - + + - + tcp_segment - -tcp_segment + +tcp_segment - + ip_packet->tcp_segment:n - - + + ipv6_packet:e->ip_packet:n - - + + exif - -exif + +exif jpeg:e->exif:n - - + + icc_profile - -icc_profile + +icc_profile jpeg:e->icc_profile:n - - + + macho_fat:e->macho:n - - + + matroska:e->aac_frame:n - - + + matroska:e->image:n - - + + matroska:e->av1_frame:n - - + + matroska:e->avc_au:n - - + + matroska:e->avc_dcr:n - - + + matroska:e->hevc_au:n - - + + matroska:e->mp3_frame:n - - + + matroska:e->flac_frame:n - - + + matroska:e->flac_metadatablocks:n - - + + matroska:e->hevc_dcr:n - - + + av1_ccr - -av1_ccr + +av1_ccr matroska:e->av1_ccr:n - - + + mpeg_asc - -mpeg_asc + +mpeg_asc matroska:e->mpeg_asc:n - - + + mpeg_pes_packet - -mpeg_pes_packet + +mpeg_pes_packet matroska:e->mpeg_pes_packet:n - - + + mpeg_spu - -mpeg_spu + +mpeg_spu matroska:e->mpeg_spu:n - - + + opus_packet - -opus_packet - -vorbis_comment + +opus_packet + +vorbis_comment matroska:e->opus_packet:n - - + + vorbis_packet - -vorbis_packet - -vorbis_comment + +vorbis_packet + +vorbis_comment matroska:e->vorbis_packet:n - - + + @@ -1398,674 +1398,694 @@ matroska:e->vp8_frame:n - - + + vp9_cfm - -vp9_cfm + +vp9_cfm matroska:e->vp9_cfm:n - - + + vp9_frame - -vp9_frame + +vp9_frame matroska:e->vp9_frame:n - - + + opus_packet:e->vorbis_comment:n - - + + - + vorbis_packet:e->vorbis_comment:n - - + + mp3:e->apev2:n - - + + mp3:e->mp3_frame:n - - + + mp3:e->id3v2:n - - + + id3v1 - -id3v1 + +id3v1 mp3:e->id3v1:n - - + + id3v11 - -id3v11 + +id3v11 mp3:e->id3v11:n - - + + - + mp3_frame_vbri - -mp3_frame_vbri + +mp3_frame_vbri - + mp3_frame_tags->mp3_frame_vbri:n - - + + - + mp3_frame_xing - -mp3_frame_xing + +mp3_frame_xing - + mp3_frame_tags->mp3_frame_xing:n - - + + mp4:e->aac_frame:n - - + + mp4:e->image:n - - + + mp4:e->av1_frame:n - - + + mp4:e->avc_au:n - - + + mp4:e->avc_dcr:n - + mp4:e->hevc_au:n - - + + mp4:e->mp3_frame:n - - + + mp4:e->flac_frame:n - - + + mp4:e->flac_metadatablocks:n - - + + mp4:e->hevc_dcr:n - - + + mp4:e->id3v2:n - - + + mp4:e->jpeg:n - - + + mp4:e->icc_profile:n - - + + mp4:e->av1_ccr:n - - + + mp4:e->mpeg_pes_packet:n - - + + mp4:e->opus_packet:n - - + + mp4:e->vorbis_packet:n - - + + mp4:e->vp9_frame:n - - + + mpeg_es - -mpeg_es - -mpeg_asc - -vorbis_packet + +mpeg_es + +mpeg_asc + +vorbis_packet mp4:e->mpeg_es:n - - + + mp4:e->png:n - - + + prores_frame - -prores_frame + +prores_frame mp4:e->prores_frame:n - - + + protobuf_widevine - -protobuf_widevine - -protobuf + +protobuf_widevine + +protobuf mp4:e->protobuf_widevine:n - - + + pssh_playready - -pssh_playready + +pssh_playready mp4:e->pssh_playready:n - - + + vpx_ccr - -vpx_ccr + +vpx_ccr mp4:e->vpx_ccr:n - - + + mpeg_es:e->mpeg_asc:n - - + + mpeg_es:e->vorbis_packet:n - - + + png:e->exif:n - - + + png:e->icc_profile:n - - + + protobuf - -protobuf + +protobuf protobuf_widevine:e->protobuf:n - - + + mpeg_pes - -mpeg_pes - -mpeg_pes_packet - -mpeg_spu + +mpeg_pes + +mpeg_pes_packet + +mpeg_spu mpeg_pes:e->mpeg_pes_packet:n - - + + mpeg_pes:e->mpeg_spu:n - - + + ogg:e->flac_frame:n - - + + ogg:e->flac_metadatablock:n - - + + ogg:e->opus_packet:n - - + + ogg:e->vorbis_packet:n - - + + ogg_page - -ogg_page + +ogg_page ogg:e->ogg_page:n - - + + pcap:e->ipv4_packet:n - - + + link_frame - -link_frame + +link_frame pcap:e->link_frame:n - - + + tcp_stream - -tcp_stream + +tcp_stream pcap:e->tcp_stream:n - - + + - + link_frame->bsd_loopback_frame:n - - + + - + link_frame->ether8023_frame:n - - + + - + link_frame->ipv4_packet:n - - + + - + link_frame->ipv6_packet:n - - + + sll2_packet - -sll2_packet - -inet_packet + +sll2_packet + +inet_packet - + link_frame->sll2_packet:n - - + + sll_packet - -sll_packet - -inet_packet + +sll_packet + +inet_packet - + link_frame->sll_packet:n - - + + rtmp - -rtmp - -amf0 - -mpeg_asc + +rtmp + +amf0 + +mpeg_asc - + tcp_stream->rtmp:n - - + + + + + +tls + +tls + +asn1_ber + + + +tcp_stream->tls:n + + - + dns_tcp - -dns_tcp + +dns_tcp - + tcp_stream->dns_tcp:n - - + + pcapng:e->ipv4_packet:n - - + + pcapng:e->link_frame:n - - + + pcapng:e->tcp_stream:n - - + + rtmp:e->mpeg_asc:n - - + + amf0 - -amf0 + +amf0 rtmp:e->amf0:n - - + + sll2_packet:e->inet_packet:n - - + + sll_packet:e->inet_packet:n - - + + tar:e->probe:n - - + + tiff:e->icc_profile:n - - - - - -udp_payload - -udp_payload - - - -udp_datagram:e->udp_payload:n - - - - - -dns - -dns - - - -udp_payload->dns:n - - - - - -wav:e->id3v2:n - - - - - -wav:e->id3v1:n - - - - - -wav:e->id3v11:n - - - - - -webp:e->vp8_frame:n - - - - - -zip:e->probe:n - - + + - + asn1_ber - -asn1_ber + +asn1_ber + + + +tls:e->asn1_ber:n + + + + + +udp_payload + +udp_payload + + + +udp_datagram:e->udp_payload:n + + + + + +dns + +dns + + + +udp_payload->dns:n + + + + + +wav:e->id3v2:n + + + + + +wav:e->id3v1:n + + + + + +wav:e->id3v11:n + + + + + +webp:e->vp8_frame:n + + + + + +zip:e->probe:n + + - + bencode - -bencode + +bencode - + bits - -bits + +bits - + bson - -bson + +bson - + bytes - -bytes + +bytes - + cbor - -cbor + +cbor - + csv - -csv + +csv - + fairplay_spc - -fairplay_spc + +fairplay_spc - + html - -html + +html - + markdown - -markdown + +markdown - + msgpack - -msgpack + +msgpack diff --git a/format/all/all.fqtest b/format/all/all.fqtest index e8113b29..196f0c2e 100644 --- a/format/all/all.fqtest +++ b/format/all/all.fqtest @@ -135,6 +135,7 @@ sll_packet Linux cooked capture encapsulation tar Tar archive tcp_segment Transmission control protocol segment tiff Tag Image File Format +tls Transport layer security toml Tom's Obvious, Minimal Language tzif Time Zone Information Format udp_datagram User datagram protocol diff --git a/format/all/all.go b/format/all/all.go index 484230cb..76a7d1f6 100644 --- a/format/all/all.go +++ b/format/all/all.go @@ -49,6 +49,7 @@ import ( _ "github.com/wader/fq/format/tar" _ "github.com/wader/fq/format/text" _ "github.com/wader/fq/format/tiff" + _ "github.com/wader/fq/format/tls" _ "github.com/wader/fq/format/toml" _ "github.com/wader/fq/format/tzif" _ "github.com/wader/fq/format/vorbis" diff --git a/format/format.go b/format/format.go index 7f89000a..9d9e61b9 100644 --- a/format/format.go +++ b/format/format.go @@ -97,8 +97,8 @@ const ( MATROSKA = "matroska" MP3 = "mp3" MP3_FRAME = "mp3_frame" - MP3_FRAME_XING = "mp3_frame_xing" MP3_FRAME_VBRI = "mp3_frame_vbri" + MP3_FRAME_XING = "mp3_frame_xing" MP4 = "mp4" MPEG_ASC = "mpeg_asc" MPEG_ES = "mpeg_es" @@ -123,6 +123,7 @@ const ( TAR = "tar" TCP_SEGMENT = "tcp_segment" TIFF = "tiff" + TLS = "tls" TOML = "toml" TZIF = "tzif" UDP_DATAGRAM = "udp_datagram" @@ -283,6 +284,11 @@ type TCPStreamIn struct { DestinationPort int } +type TCPStreamOut struct { + PostFn func(peerIn any) + InArg any +} + func (t TCPStreamIn) IsPort(ports ...int) bool { for _, p := range ports { if (t.IsClient && t.DestinationPort == p) || @@ -332,3 +338,7 @@ type CSVLIn struct { type BitCoinBlockIn struct { HasHeader bool `doc:"Has blkdat header"` } + +type TLSIn struct { + Keylog string `doc:"NSS Key Log content"` +} diff --git a/format/pcap/shared.go b/format/pcap/shared.go index f36d7507..ae5d6581 100644 --- a/format/pcap/shared.go +++ b/format/pcap/shared.go @@ -36,7 +36,7 @@ func fieldFlows(d *decode.D, fd *flowsdecoder.Decoder, tcpStreamFormat decode.Gr d.FieldArray("tcp_connections", func(d *decode.D) { for _, s := range fd.TCPConnections { d.FieldStruct("tcp_connection", func(d *decode.D) { - f := func(d *decode.D, td *flowsdecoder.TCPDirection, tsi format.TCPStreamIn) { + f := func(d *decode.D, td *flowsdecoder.TCPDirection, tsi format.TCPStreamIn) any { d.FieldValueStr("ip", td.Endpoint.IP.String()) d.FieldValueUint("port", uint64(td.Endpoint.Port), format.TCPPortMap) d.FieldValueBool("has_start", td.HasStart) @@ -44,18 +44,22 @@ func fieldFlows(d *decode.D, fd *flowsdecoder.Decoder, tcpStreamFormat decode.Gr d.FieldValueUint("skipped_bytes", td.SkippedBytes) br := bitio.NewBitReader(td.Buffer.Bytes(), -1) - if dv, _, _ := d.TryFieldFormatBitBuf( + dv, outV, _ := d.TryFieldFormatBitBuf( "stream", br, tcpStreamFormat, tsi, - ); dv == nil { + ) + if dv == nil { d.FieldRootBitBuf("stream", br) } + return outV } + var clientV any + var serverV any d.FieldStruct("client", func(d *decode.D) { - f(d, &s.Client, format.TCPStreamIn{ + clientV = f(d, &s.Client, format.TCPStreamIn{ IsClient: true, HasStart: s.Client.HasStart, HasEnd: s.Client.HasEnd, @@ -65,7 +69,7 @@ func fieldFlows(d *decode.D, fd *flowsdecoder.Decoder, tcpStreamFormat decode.Gr }) }) d.FieldStruct("server", func(d *decode.D) { - f(d, &s.Server, format.TCPStreamIn{ + serverV = f(d, &s.Server, format.TCPStreamIn{ IsClient: false, HasStart: s.Server.HasStart, HasEnd: s.Server.HasEnd, @@ -74,6 +78,17 @@ func fieldFlows(d *decode.D, fd *flowsdecoder.Decoder, tcpStreamFormat decode.Gr DestinationPort: s.Client.Endpoint.Port, }) }) + + clientTo, clientToOk := clientV.(format.TCPStreamOut) + serverTo, serverToOk := serverV.(format.TCPStreamOut) + if clientToOk && serverToOk { + if clientTo.PostFn != nil { + clientTo.PostFn(serverTo.InArg) + } + if serverTo.PostFn != nil { + serverTo.PostFn(clientTo.InArg) + } + } }) } }) diff --git a/format/pcap/testdata/many_interfaces.fqtest b/format/pcap/testdata/many_interfaces.fqtest index 41a54608..4fdcf075 100644 --- a/format/pcap/testdata/many_interfaces.fqtest +++ b/format/pcap/testdata/many_interfaces.fqtest @@ -5521,18 +5521,303 @@ $ fq -d pcapng dv many_interfaces.pcapng | | | has_start: true 0x51b8-NA (0) | | | has_end: false 0x51b8-NA (0) | | | skipped_bytes: 0 0x51b8-NA (0) - |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| - 0x000|16 03 01 02 00 01 00 01 fc 03 03 f0 91 bc 87 3e|...............>| stream: raw bits 0x0-0x7b0.7 (1969) - * |until 0x7b0.7 (end) (1969) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x7b0.7 (1969) + | | | records[0:9]: 0x0-0x7b0.7 (1969) + | | | [0]{}: record 0x0-0x204.7 (517) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000| 02 00 | .. | length: 512 0x3-0x4.7 (2) + | | | message{}: 0x5-0x204.7 (512) + 0x000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000| 00 01 fc | ... | length: 508 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| f0 91 bc 87 | .... | gmt_unix_time: 4036082823 (2097-11-23T22:07:03Z) 0xb-0xe.7 (4) + 0x000| 3e| >| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|ed 9d cc 98 4a 6a 2e 84 3f 5c 1d 9b a9 e9 df f6|....Jj..?\......| + 0x002|5c 48 e8 17 3d 49 b9 a7 b4 1b 19 |\H..=I..... | + 0x002| 20 | | session_id_length: 32 0x2b-0x2b.7 (1) + 0x002| 6e 55 2a c2| nU*.| session_id: raw bits 0x2c-0x4b.7 (32) + 0x003|7e 89 b4 14 11 29 e5 e5 eb f0 2f 68 ca b6 16 f6|~....)..../h....| + 0x004|ef 0a 82 f9 16 c8 53 f6 8d d5 1b 50 |......S....P | + 0x004| 00 22 | ." | cipher_suits_length: 34 0x4c-0x4d.7 (2) + | | | cipher_suits[0:17]: 0x4e-0x6f.7 (34) + 0x004| c0 2b| .+| [0]: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" (0xc02b) cipher_suit 0x4e-0x4f.7 (2) + 0x005|c0 2f |./ | [1]: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" (0xc02f) cipher_suit 0x50-0x51.7 (2) + 0x005| 00 9e | .. | [2]: "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256" (0x9e) cipher_suit 0x52-0x53.7 (2) + 0x005| cc 14 | .. | [3]: 0xcc14 cipher_suit 0x54-0x55.7 (2) + 0x005| cc 13 | .. | [4]: 0xcc13 cipher_suit 0x56-0x57.7 (2) + 0x005| cc 15 | .. | [5]: 0xcc15 cipher_suit 0x58-0x59.7 (2) + 0x005| c0 0a | .. | [6]: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" (0xc00a) cipher_suit 0x5a-0x5b.7 (2) + 0x005| c0 14 | .. | [7]: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" (0xc014) cipher_suit 0x5c-0x5d.7 (2) + 0x005| 00 39| .9| [8]: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" (0x39) cipher_suit 0x5e-0x5f.7 (2) + 0x006|c0 09 |.. | [9]: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" (0xc009) cipher_suit 0x60-0x61.7 (2) + 0x006| c0 13 | .. | [10]: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" (0xc013) cipher_suit 0x62-0x63.7 (2) + 0x006| 00 33 | .3 | [11]: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" (0x33) cipher_suit 0x64-0x65.7 (2) + 0x006| 00 9c | .. | [12]: "TLS_RSA_WITH_AES_128_GCM_SHA256" (0x9c) cipher_suit 0x66-0x67.7 (2) + 0x006| 00 35 | .5 | [13]: "TLS_RSA_WITH_AES_256_CBC_SHA" (0x35) cipher_suit 0x68-0x69.7 (2) + 0x006| 00 2f | ./ | [14]: "TLS_RSA_WITH_AES_128_CBC_SHA" (0x2f) cipher_suit 0x6a-0x6b.7 (2) + 0x006| 00 0a | .. | [15]: "TLS_RSA_WITH_3DES_EDE_CBC_SHA" (0xa) cipher_suit 0x6c-0x6d.7 (2) + 0x006| 00 ff| ..| [16]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x6e-0x6f.7 (2) + 0x007|01 |. | compression_methods_length: 1 0x70-0x70.7 (1) + | | | compression_methods[0:1]: 0x71-0x71.7 (1) + 0x007| 00 | . | [0]: "null" (0x0) compression_method 0x71-0x71.7 (1) + 0x007| 01 91 | .. | extensions_length: 401 0x72-0x73.7 (2) + | | | extensions[0:11]: 0x74-0x204.7 (401) + | | | [0]{}: extension 0x74-0x8f.7 (28) + 0x007| 00 00 | .. | type: "server_name" (0) 0x74-0x75.7 (2) + 0x007| 00 18 | .. | length: 24 0x76-0x77.7 (2) + 0x007| 00 16 | .. | serer_names_length: 22 0x78-0x79.7 (2) + | | | server_names[0:1]: 0x7a-0x8f.7 (22) + | | | [0]{}: server_name 0x7a-0x8f.7 (22) + 0x007| 00 | . | type: 0 0x7a-0x7a.7 (1) + 0x007| 00 13 | .. | length: 19 0x7b-0x7c.7 (2) + 0x007| 63 6c 69| cli| name: "clients6.google.com" 0x7d-0x8f.7 (19) + 0x008|65 6e 74 73 36 2e 67 6f 6f 67 6c 65 2e 63 6f 6d|ents6.google.com| + | | | [1]{}: extension 0x90-0x93.7 (4) + 0x009|00 17 |.. | type: "extended_master_secret" (23) 0x90-0x91.7 (2) + 0x009| 00 00 | .. | length: 0 0x92-0x93.7 (2) + | | | [2]{}: extension 0x94-0x14b.7 (184) + 0x009| 00 23 | .# | type: "session_ticket" (35) 0x94-0x95.7 (2) + 0x009| 00 b4 | .. | length: 180 0x96-0x97.7 (2) + 0x009| e9 e5 4f 1a f4 6d 30 79| ..O..m0y| data: raw bits 0x98-0x14b.7 (180) + 0x00a|5e 25 a9 66 2c 13 95 b3 f3 99 d9 de b7 54 73 88|^%.f,........Ts.| + * |until 0x14b.7 (180) | | + | | | [3]{}: extension 0x14c-0x165.7 (26) + 0x014| 00 0d | .. | type: "signature_algorithms" (13) 0x14c-0x14d.7 (2) + 0x014| 00 16| ..| length: 22 0x14e-0x14f.7 (2) + 0x015|00 14 |.. | signature_algorithm_length: 20 0x150-0x151.7 (2) + | | | signature_algorithms[0:10]: 0x152-0x165.7 (20) + | | | [0]{}: signature_algorithm 0x152-0x153.7 (2) + 0x015| 06 | . | hash: "sha512" (6) 0x152-0x152.7 (1) + 0x015| 01 | . | signature: "rsa" (1) 0x153-0x153.7 (1) + | | | [1]{}: signature_algorithm 0x154-0x155.7 (2) + 0x015| 06 | . | hash: "sha512" (6) 0x154-0x154.7 (1) + 0x015| 03 | . | signature: "ecdsa" (3) 0x155-0x155.7 (1) + | | | [2]{}: signature_algorithm 0x156-0x157.7 (2) + 0x015| 05 | . | hash: "sha384" (5) 0x156-0x156.7 (1) + 0x015| 01 | . | signature: "rsa" (1) 0x157-0x157.7 (1) + | | | [3]{}: signature_algorithm 0x158-0x159.7 (2) + 0x015| 05 | . | hash: "sha384" (5) 0x158-0x158.7 (1) + 0x015| 03 | . | signature: "ecdsa" (3) 0x159-0x159.7 (1) + | | | [4]{}: signature_algorithm 0x15a-0x15b.7 (2) + 0x015| 04 | . | hash: "sha256" (4) 0x15a-0x15a.7 (1) + 0x015| 01 | . | signature: "rsa" (1) 0x15b-0x15b.7 (1) + | | | [5]{}: signature_algorithm 0x15c-0x15d.7 (2) + 0x015| 04 | . | hash: "sha256" (4) 0x15c-0x15c.7 (1) + 0x015| 03 | . | signature: "ecdsa" (3) 0x15d-0x15d.7 (1) + | | | [6]{}: signature_algorithm 0x15e-0x15f.7 (2) + 0x015| 03 | . | hash: "sha224" (3) 0x15e-0x15e.7 (1) + 0x015| 01| .| signature: "rsa" (1) 0x15f-0x15f.7 (1) + | | | [7]{}: signature_algorithm 0x160-0x161.7 (2) + 0x016|03 |. | hash: "sha224" (3) 0x160-0x160.7 (1) + 0x016| 03 | . | signature: "ecdsa" (3) 0x161-0x161.7 (1) + | | | [8]{}: signature_algorithm 0x162-0x163.7 (2) + 0x016| 02 | . | hash: "sha1" (2) 0x162-0x162.7 (1) + 0x016| 01 | . | signature: "rsa" (1) 0x163-0x163.7 (1) + | | | [9]{}: signature_algorithm 0x164-0x165.7 (2) + 0x016| 02 | . | hash: "sha1" (2) 0x164-0x164.7 (1) + 0x016| 03 | . | signature: "ecdsa" (3) 0x165-0x165.7 (1) + | | | [4]{}: extension 0x166-0x16e.7 (9) + 0x016| 00 05 | .. | type: "status_request" (5) 0x166-0x167.7 (2) + 0x016| 00 05 | .. | length: 5 0x168-0x169.7 (2) + 0x016| 01 00 00 00 00 | ..... | data: raw bits 0x16a-0x16e.7 (5) + | | | [5]{}: extension 0x16f-0x172.7 (4) + 0x016| 33| 3| type: 13172 0x16f-0x170.7 (2) + 0x017|74 |t | + 0x017| 00 00 | .. | length: 0 0x171-0x172.7 (2) + | | | [6]{}: extension 0x173-0x176.7 (4) + 0x017| 00 12 | .. | type: "signed_certificate_timestamp" (18) 0x173-0x174.7 (2) + 0x017| 00 00 | .. | length: 0 0x175-0x176.7 (2) + | | | [7]{}: extension 0x177-0x197.7 (33) + 0x017| 00 10 | .. | type: "application_layer_protocol_negotiation" (16) 0x177-0x178.7 (2) + 0x017| 00 1d | .. | length: 29 0x179-0x17a.7 (2) + 0x017| 00 1b | .. | serer_names_length: 27 0x17b-0x17c.7 (2) + | | | protocols[0:4]: 0x17d-0x197.7 (27) + | | | [0]{}: protocol 0x17d-0x185.7 (9) + 0x017| 08 | . | length: 8 0x17d-0x17d.7 (1) + 0x017| 68 74| ht| name: "http/1.1" 0x17e-0x185.7 (8) + 0x018|74 70 2f 31 2e 31 |tp/1.1 | + | | | [1]{}: protocol 0x186-0x18e.7 (9) + 0x018| 08 | . | length: 8 0x186-0x186.7 (1) + 0x018| 73 70 64 79 2f 33 2e 31 | spdy/3.1 | name: "spdy/3.1" 0x187-0x18e.7 (8) + | | | [2]{}: protocol 0x18f-0x194.7 (6) + 0x018| 05| .| length: 5 0x18f-0x18f.7 (1) + 0x019|68 32 2d 31 34 |h2-14 | name: "h2-14" 0x190-0x194.7 (5) + | | | [3]{}: protocol 0x195-0x197.7 (3) + 0x019| 02 | . | length: 2 0x195-0x195.7 (1) + 0x019| 68 32 | h2 | name: "h2" 0x196-0x197.7 (2) + | | | [8]{}: extension 0x198-0x19d.7 (6) + 0x019| 00 0b | .. | type: "ec_point_formats" (11) 0x198-0x199.7 (2) + 0x019| 00 02 | .. | length: 2 0x19a-0x19b.7 (2) + 0x019| 01 | . | ex_points_format_length: 1 0x19c-0x19c.7 (1) + | | | ex_points_formats[0:1]: 0x19d-0x19d.7 (1) + 0x019| 00 | . | [0]: 0x0 ex_points_format 0x19d-0x19d.7 (1) + | | | [9]{}: extension 0x19e-0x1a7.7 (10) + 0x019| 00 0a| ..| type: "supported_groups" (10) 0x19e-0x19f.7 (2) + 0x01a|00 06 |.. | length: 6 0x1a0-0x1a1.7 (2) + 0x01a| 00 04 | .. | supported_group_length: 4 0x1a2-0x1a3.7 (2) + | | | supported_groups[0:2]: 0x1a4-0x1a7.7 (4) + 0x01a| 00 17 | .. | [0]: 0x17 supported_group 0x1a4-0x1a5.7 (2) + 0x01a| 00 18 | .. | [1]: 0x18 supported_group 0x1a6-0x1a7.7 (2) + | | | [10]{}: extension 0x1a8-0x204.7 (93) + 0x01a| 00 15 | .. | type: "padding" (21) 0x1a8-0x1a9.7 (2) + 0x01a| 00 59 | .Y | length: 89 0x1aa-0x1ab.7 (2) + 0x01a| 00 00 00 00| ....| data: raw bits 0x1ac-0x204.7 (89) + 0x01b|00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00|................| + * |until 0x204.7 (89) | | + | | | [1]{}: record 0x205-0x20a.7 (6) + 0x020| 14 | . | type: "change_cipher_spec" (20) (valid) 0x205-0x205.7 (1) + 0x020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x206-0x207.7 (2) + 0x020| 00 01 | .. | length: 1 0x208-0x209.7 (2) + | | | message{}: 0x20a-0x20a.7 (1) + 0x020| 01 | . | type: 1 0x20a-0x20a.7 (1) + | | | [2]{}: record 0x20b-0x237.7 (45) + 0x020| 16 | . | type: "handshake" (22) (valid) 0x20b-0x20b.7 (1) + 0x020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x20c-0x20d.7 (2) + 0x020| 00 28| .(| length: 40 0x20e-0x20f.7 (2) + 0x021|00 00 00 00 00 00 00 00 2f 64 40 f5 c5 eb af 4b|......../d@....K| encrypted_data: raw bits 0x210-0x237.7 (40) + * |until 0x237.7 (40) | | + | | | [3]{}: record 0x238-0x26c.7 (53) + 0x023| 17 | . | type: "application_data" (23) (valid) 0x238-0x238.7 (1) + 0x023| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x239-0x23a.7 (2) + 0x023| 00 30 | .0 | length: 48 0x23b-0x23c.7 (2) + 0x023| 00 00 00| ...| encrypted_data: raw bits 0x23d-0x26c.7 (48) + 0x024|00 00 00 00 01 51 98 2a 12 b0 5e 2e 35 29 ba 2d|.....Q.*..^.5).-| + * |until 0x26c.7 (48) | | + | | | [4]{}: record 0x26d-0x29e.7 (50) + 0x026| 17 | . | type: "application_data" (23) (valid) 0x26d-0x26d.7 (1) + 0x026| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x26e-0x26f.7 (2) + 0x027|00 2d |.- | length: 45 0x270-0x271.7 (2) + 0x027| 00 00 00 00 00 00 00 02 f0 bc fa 7b fe 22| ...........{."| encrypted_data: raw bits 0x272-0x29e.7 (45) + 0x028|8d 11 11 1b 0b 72 db 65 ef b6 5f 2c 8c 04 9b e7|.....r.e.._,....| + 0x029|87 ba 5a bd 62 17 28 dc 39 33 ff f6 5e 4a 2b |..Z.b.(.93..^J+ | + | | | [5]{}: record 0x29f-0x2c8.7 (42) + 0x029| 17| .| type: "application_data" (23) (valid) 0x29f-0x29f.7 (1) + 0x02a|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2a0-0x2a1.7 (2) + 0x02a| 00 25 | .% | length: 37 0x2a2-0x2a3.7 (2) + 0x02a| 00 00 00 00 00 00 00 03 91 f4 86 be| ............| encrypted_data: raw bits 0x2a4-0x2c8.7 (37) + 0x02b|5b 2a 4f 9f 3e d2 32 71 30 db fe f1 f2 16 a6 ba|[*O.>.2q0.......| + 0x02c|e7 4f 84 c5 b9 98 24 e4 bf |.O....$.. | + | | | [6]{}: record 0x2c9-0x75c.7 (1172) + 0x02c| 17 | . | type: "application_data" (23) (valid) 0x2c9-0x2c9.7 (1) + 0x02c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2ca-0x2cb.7 (2) + 0x02c| 04 8f | .. | length: 1167 0x2cc-0x2cd.7 (2) + 0x02c| 00 00| ..| encrypted_data: raw bits 0x2ce-0x75c.7 (1167) + 0x02d|00 00 00 00 00 04 98 59 fb 7c d9 ba ce c7 cc 54|.......Y.|.....T| + * |until 0x75c.7 (1167) | | + | | | [7]{}: record 0x75d-0x782.7 (38) + 0x075| 17 | . | type: "application_data" (23) (valid) 0x75d-0x75d.7 (1) + 0x075| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x75e-0x75f.7 (2) + 0x076|00 21 |.! | length: 33 0x760-0x761.7 (2) + 0x076| 00 00 00 00 00 00 00 05 04 b0 d9 88 2d 7d| ............-}| encrypted_data: raw bits 0x762-0x782.7 (33) + 0x077|3b f5 9a 57 ee ba f2 5f dd 9d f1 f5 b1 1b 01 ba|;..W..._........| + 0x078|0e bd b3 |... | + | | | [8]{}: record 0x783-0x7b0.7 (46) + 0x078| 17 | . | type: "application_data" (23) (valid) 0x783-0x783.7 (1) + 0x078| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x784-0x785.7 (2) + 0x078| 00 29 | .) | length: 41 0x786-0x787.7 (2) + 0x078| 00 00 00 00 00 00 00 06| ........| encrypted_data: raw bits 0x788-0x7b0.7 (41) + 0x079|96 50 96 ef 10 f4 be e9 a0 94 5f 07 be dc fd 50|.P........_....P| + * |until 0x7b0.7 (end) (41) | | | | | server{}: 0x51b8-NA (0) | | | ip: "74.125.228.227" 0x51b8-NA (0) | | | port: "https" (443) (http protocol over TLS/SSL) 0x51b8-NA (0) | | | has_start: true 0x51b8-NA (0) | | | has_end: false 0x51b8-NA (0) | | | skipped_bytes: 0 0x51b8-NA (0) - |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| - 0x000|16 03 03 00 5a 02 00 00 56 03 03 55 d0 e5 ff ab|....Z...V..U....| stream: raw bits 0x0-0x35b.7 (860) - * |until 0x35b.7 (end) (860) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x35b.7 (860) + | | | records[0:9]: 0x0-0x35b.7 (860) + | | | [0]{}: record 0x0-0x5e.7 (95) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000| 00 5a | .Z | length: 90 0x3-0x4.7 (2) + | | | message{}: 0x5-0x5e.7 (90) + 0x000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000| 00 00 56 | ..V | length: 86 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 55 d0 e5 ff | U... | gmt_unix_time: 1439753727 (2015-08-16T19:35:27Z) 0xb-0xe.7 (4) + 0x000| ab| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|64 a2 2f fb 48 67 a5 ad 7e 38 59 f0 b7 3b cb 35|d./.Hg..~8Y..;.5| + 0x002|93 32 ff 40 5a e3 5d e2 db e2 dc |.2.@Z.].... | + 0x002| 20 | | session_id_length: 32 0x2b-0x2b.7 (1) + 0x002| 6e 55 2a c2| nU*.| session_id: raw bits 0x2c-0x4b.7 (32) + 0x003|7e 89 b4 14 11 29 e5 e5 eb f0 2f 68 ca b6 16 f6|~....)..../h....| + 0x004|ef 0a 82 f9 16 c8 53 f6 8d d5 1b 50 |......S....P | + 0x004| c0 2b | .+ | cipher_suit: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" (0xc02b) 0x4c-0x4d.7 (2) + 0x004| 00 | . | compression_method: "null" (0x0) 0x4e-0x4e.7 (1) + 0x004| 00| .| extensions_length: 14 0x4f-0x50.7 (2) + 0x005|0e |. | + | | | extensions[0:2]: 0x51-0x5e.7 (14) + | | | [0]{}: extension 0x51-0x55.7 (5) + 0x005| ff 01 | .. | type: "renegotiation_info" (65281) 0x51-0x52.7 (2) + 0x005| 00 01 | .. | length: 1 0x53-0x54.7 (2) + 0x005| 00 | . | data: raw bits 0x55-0x55.7 (1) + | | | [1]{}: extension 0x56-0x5e.7 (9) + 0x005| 00 10 | .. | type: "application_layer_protocol_negotiation" (16) 0x56-0x57.7 (2) + 0x005| 00 05 | .. | length: 5 0x58-0x59.7 (2) + 0x005| 00 03 | .. | serer_names_length: 3 0x5a-0x5b.7 (2) + | | | protocols[0:1]: 0x5c-0x5e.7 (3) + | | | [0]{}: protocol 0x5c-0x5e.7 (3) + 0x005| 02 | . | length: 2 0x5c-0x5c.7 (1) + 0x005| 68 32 | h2 | name: "h2" 0x5d-0x5e.7 (2) + | | | [1]{}: record 0x5f-0x64.7 (6) + 0x005| 14| .| type: "change_cipher_spec" (20) (valid) 0x5f-0x5f.7 (1) + 0x006|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x60-0x61.7 (2) + 0x006| 00 01 | .. | length: 1 0x62-0x63.7 (2) + | | | message{}: 0x64-0x64.7 (1) + 0x006| 01 | . | type: 1 0x64-0x64.7 (1) + | | | [2]{}: record 0x65-0x91.7 (45) + 0x006| 16 | . | type: "handshake" (22) (valid) 0x65-0x65.7 (1) + 0x006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x66-0x67.7 (2) + 0x006| 00 28 | .( | length: 40 0x68-0x69.7 (2) + 0x006| 00 00 00 00 00 00| ......| encrypted_data: raw bits 0x6a-0x91.7 (40) + 0x007|00 00 10 a0 e1 85 c9 7f a3 82 67 07 af 1a da bc|..........g.....| + * |until 0x91.7 (40) | | + | | | [3]{}: record 0x92-0xc9.7 (56) + 0x009| 17 | . | type: "application_data" (23) (valid) 0x92-0x92.7 (1) + 0x009| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x93-0x94.7 (2) + 0x009| 00 33 | .3 | length: 51 0x95-0x96.7 (2) + 0x009| 00 00 00 00 00 00 00 01 84| .........| encrypted_data: raw bits 0x97-0xc9.7 (51) + 0x00a|43 dc 31 8d ea 84 17 37 3d ee 7d 47 7d a0 24 3f|C.1....7=.}G}.$?| + * |until 0xc9.7 (51) | | + | | | [4]{}: record 0xca-0xf3.7 (42) + 0x00c| 17 | . | type: "application_data" (23) (valid) 0xca-0xca.7 (1) + 0x00c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xcb-0xcc.7 (2) + 0x00c| 00 25 | .% | length: 37 0xcd-0xce.7 (2) + 0x00c| 00| .| encrypted_data: raw bits 0xcf-0xf3.7 (37) + 0x00d|00 00 00 00 00 00 02 a8 2a 53 77 c7 0f 40 39 64|........*Sw..@9d| + * |until 0xf3.7 (37) | | + | | | [5]{}: record 0xf4-0x119.7 (38) + 0x00f| 17 | . | type: "application_data" (23) (valid) 0xf4-0xf4.7 (1) + 0x00f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf5-0xf6.7 (2) + 0x00f| 00 21 | .! | length: 33 0xf7-0xf8.7 (2) + 0x00f| 00 00 00 00 00 00 00| .......| encrypted_data: raw bits 0xf9-0x119.7 (33) + 0x010|03 bd 10 a7 a4 4e 7d 28 b4 4a 55 a3 39 db 64 b3|.....N}(.JU.9.d.| + 0x011|7a ae 3d e4 2e fc eb 8e 66 c5 |z.=.....f. | + | | | [6]{}: record 0x11a-0x307.7 (494) + 0x011| 17 | . | type: "application_data" (23) (valid) 0x11a-0x11a.7 (1) + 0x011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x11b-0x11c.7 (2) + 0x011| 01 e9 | .. | length: 489 0x11d-0x11e.7 (2) + 0x011| 00| .| encrypted_data: raw bits 0x11f-0x307.7 (489) + 0x012|00 00 00 00 00 00 04 cf 1d 4f e3 82 9a 07 84 9e|.........O......| + * |until 0x307.7 (489) | | + | | | [7]{}: record 0x308-0x32d.7 (38) + 0x030| 17 | . | type: "application_data" (23) (valid) 0x308-0x308.7 (1) + 0x030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x309-0x30a.7 (2) + 0x030| 00 21 | .! | length: 33 0x30b-0x30c.7 (2) + 0x030| 00 00 00| ...| encrypted_data: raw bits 0x30d-0x32d.7 (33) + 0x031|00 00 00 00 05 d5 71 fb a3 87 9f 58 83 90 15 c7|......q....X....| + 0x032|2d 65 52 df 40 13 ee cb 7f d6 30 c8 39 81 |-eR.@.....0.9. | + | | | [8]{}: record 0x32e-0x35b.7 (46) + 0x032| 17 | . | type: "application_data" (23) (valid) 0x32e-0x32e.7 (1) + 0x032| 03| .| version: "tls1.2" (0x303) (valid) 0x32f-0x330.7 (2) + 0x033|03 |. | + 0x033| 00 29 | .) | length: 41 0x331-0x332.7 (2) + 0x033| 00 00 00 00 00 00 00 06 a7 fa e5 cc 23| ............#| encrypted_data: raw bits 0x333-0x35b.7 (41) + 0x034|d5 5d a4 0a 83 41 17 4a 1f 0d 92 01 5c 36 53 c7|.]...A.J....\6S.| + 0x035|50 80 03 4c 1f a3 49 61 07 01 10 30| |P..L..Ia...0| | | | | [1]{}: tcp_connection 0x51b8-NA (0) | | | client{}: 0x51b8-NA (0) | | | ip: "192.168.1.139" 0x51b8-NA (0) @@ -5540,9 +5825,144 @@ $ fq -d pcapng dv many_interfaces.pcapng | | | has_start: true 0x51b8-NA (0) | | | has_end: false 0x51b8-NA (0) | | | skipped_bytes: 0 0x51b8-NA (0) - |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| - 0x000|16 03 01 00 d3 01 00 00 cf 03 03 c0 a6 33 83 e1|.............3..| stream: raw bits 0x0-0xd7.7 (216) - * |until 0xd7.7 (end) (216) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0xd7.7 (216) + | | | records[0:1]: 0x0-0xd7.7 (216) + | | | [0]{}: record 0x0-0xd7.7 (216) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000| 00 d3 | .. | length: 211 0x3-0x4.7 (2) + | | | message{}: 0x5-0xd7.7 (211) + 0x000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000| 00 00 cf | ... | length: 207 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| c0 a6 33 83 | ..3. | gmt_unix_time: 3232117635 (2072-06-02T18:27:15Z) 0xb-0xe.7 (4) + 0x000| e1| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|1e ec 7c 8e da 3b 46 f9 0b 54 6a 61 43 e1 98 13|..|..;F..TjaC...| + 0x002|80 6c e6 6f 14 ef ed 3a 16 04 09 |.l.o...:... | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 22 | ." | cipher_suits_length: 34 0x2c-0x2d.7 (2) + | | | cipher_suits[0:17]: 0x2e-0x4f.7 (34) + 0x002| c0 2b| .+| [0]: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" (0xc02b) cipher_suit 0x2e-0x2f.7 (2) + 0x003|c0 2f |./ | [1]: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" (0xc02f) cipher_suit 0x30-0x31.7 (2) + 0x003| 00 9e | .. | [2]: "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256" (0x9e) cipher_suit 0x32-0x33.7 (2) + 0x003| cc 14 | .. | [3]: 0xcc14 cipher_suit 0x34-0x35.7 (2) + 0x003| cc 13 | .. | [4]: 0xcc13 cipher_suit 0x36-0x37.7 (2) + 0x003| cc 15 | .. | [5]: 0xcc15 cipher_suit 0x38-0x39.7 (2) + 0x003| c0 0a | .. | [6]: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" (0xc00a) cipher_suit 0x3a-0x3b.7 (2) + 0x003| c0 14 | .. | [7]: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" (0xc014) cipher_suit 0x3c-0x3d.7 (2) + 0x003| 00 39| .9| [8]: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" (0x39) cipher_suit 0x3e-0x3f.7 (2) + 0x004|c0 09 |.. | [9]: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" (0xc009) cipher_suit 0x40-0x41.7 (2) + 0x004| c0 13 | .. | [10]: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" (0xc013) cipher_suit 0x42-0x43.7 (2) + 0x004| 00 33 | .3 | [11]: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" (0x33) cipher_suit 0x44-0x45.7 (2) + 0x004| 00 9c | .. | [12]: "TLS_RSA_WITH_AES_128_GCM_SHA256" (0x9c) cipher_suit 0x46-0x47.7 (2) + 0x004| 00 35 | .5 | [13]: "TLS_RSA_WITH_AES_256_CBC_SHA" (0x35) cipher_suit 0x48-0x49.7 (2) + 0x004| 00 2f | ./ | [14]: "TLS_RSA_WITH_AES_128_CBC_SHA" (0x2f) cipher_suit 0x4a-0x4b.7 (2) + 0x004| 00 0a | .. | [15]: "TLS_RSA_WITH_3DES_EDE_CBC_SHA" (0xa) cipher_suit 0x4c-0x4d.7 (2) + 0x004| 00 ff| ..| [16]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x4e-0x4f.7 (2) + 0x005|01 |. | compression_methods_length: 1 0x50-0x50.7 (1) + | | | compression_methods[0:1]: 0x51-0x51.7 (1) + 0x005| 00 | . | [0]: "null" (0x0) compression_method 0x51-0x51.7 (1) + 0x005| 00 84 | .. | extensions_length: 132 0x52-0x53.7 (2) + | | | extensions[0:11]: 0x54-0xd7.7 (132) + | | | [0]{}: extension 0x54-0x6f.7 (28) + 0x005| 00 00 | .. | type: "server_name" (0) 0x54-0x55.7 (2) + 0x005| 00 18 | .. | length: 24 0x56-0x57.7 (2) + 0x005| 00 16 | .. | serer_names_length: 22 0x58-0x59.7 (2) + | | | server_names[0:1]: 0x5a-0x6f.7 (22) + | | | [0]{}: server_name 0x5a-0x6f.7 (22) + 0x005| 00 | . | type: 0 0x5a-0x5a.7 (1) + 0x005| 00 13 | .. | length: 19 0x5b-0x5c.7 (2) + 0x005| 63 6c 69| cli| name: "clients6.google.com" 0x5d-0x6f.7 (19) + 0x006|65 6e 74 73 36 2e 67 6f 6f 67 6c 65 2e 63 6f 6d|ents6.google.com| + | | | [1]{}: extension 0x70-0x73.7 (4) + 0x007|00 17 |.. | type: "extended_master_secret" (23) 0x70-0x71.7 (2) + 0x007| 00 00 | .. | length: 0 0x72-0x73.7 (2) + | | | [2]{}: extension 0x74-0x77.7 (4) + 0x007| 00 23 | .# | type: "session_ticket" (35) 0x74-0x75.7 (2) + 0x007| 00 00 | .. | length: 0 0x76-0x77.7 (2) + | | | [3]{}: extension 0x78-0x91.7 (26) + 0x007| 00 0d | .. | type: "signature_algorithms" (13) 0x78-0x79.7 (2) + 0x007| 00 16 | .. | length: 22 0x7a-0x7b.7 (2) + 0x007| 00 14 | .. | signature_algorithm_length: 20 0x7c-0x7d.7 (2) + | | | signature_algorithms[0:10]: 0x7e-0x91.7 (20) + | | | [0]{}: signature_algorithm 0x7e-0x7f.7 (2) + 0x007| 06 | . | hash: "sha512" (6) 0x7e-0x7e.7 (1) + 0x007| 01| .| signature: "rsa" (1) 0x7f-0x7f.7 (1) + | | | [1]{}: signature_algorithm 0x80-0x81.7 (2) + 0x008|06 |. | hash: "sha512" (6) 0x80-0x80.7 (1) + 0x008| 03 | . | signature: "ecdsa" (3) 0x81-0x81.7 (1) + | | | [2]{}: signature_algorithm 0x82-0x83.7 (2) + 0x008| 05 | . | hash: "sha384" (5) 0x82-0x82.7 (1) + 0x008| 01 | . | signature: "rsa" (1) 0x83-0x83.7 (1) + | | | [3]{}: signature_algorithm 0x84-0x85.7 (2) + 0x008| 05 | . | hash: "sha384" (5) 0x84-0x84.7 (1) + 0x008| 03 | . | signature: "ecdsa" (3) 0x85-0x85.7 (1) + | | | [4]{}: signature_algorithm 0x86-0x87.7 (2) + 0x008| 04 | . | hash: "sha256" (4) 0x86-0x86.7 (1) + 0x008| 01 | . | signature: "rsa" (1) 0x87-0x87.7 (1) + | | | [5]{}: signature_algorithm 0x88-0x89.7 (2) + 0x008| 04 | . | hash: "sha256" (4) 0x88-0x88.7 (1) + 0x008| 03 | . | signature: "ecdsa" (3) 0x89-0x89.7 (1) + | | | [6]{}: signature_algorithm 0x8a-0x8b.7 (2) + 0x008| 03 | . | hash: "sha224" (3) 0x8a-0x8a.7 (1) + 0x008| 01 | . | signature: "rsa" (1) 0x8b-0x8b.7 (1) + | | | [7]{}: signature_algorithm 0x8c-0x8d.7 (2) + 0x008| 03 | . | hash: "sha224" (3) 0x8c-0x8c.7 (1) + 0x008| 03 | . | signature: "ecdsa" (3) 0x8d-0x8d.7 (1) + | | | [8]{}: signature_algorithm 0x8e-0x8f.7 (2) + 0x008| 02 | . | hash: "sha1" (2) 0x8e-0x8e.7 (1) + 0x008| 01| .| signature: "rsa" (1) 0x8f-0x8f.7 (1) + | | | [9]{}: signature_algorithm 0x90-0x91.7 (2) + 0x009|02 |. | hash: "sha1" (2) 0x90-0x90.7 (1) + 0x009| 03 | . | signature: "ecdsa" (3) 0x91-0x91.7 (1) + | | | [4]{}: extension 0x92-0x9a.7 (9) + 0x009| 00 05 | .. | type: "status_request" (5) 0x92-0x93.7 (2) + 0x009| 00 05 | .. | length: 5 0x94-0x95.7 (2) + 0x009| 01 00 00 00 00 | ..... | data: raw bits 0x96-0x9a.7 (5) + | | | [5]{}: extension 0x9b-0x9e.7 (4) + 0x009| 33 74 | 3t | type: 13172 0x9b-0x9c.7 (2) + 0x009| 00 00 | .. | length: 0 0x9d-0x9e.7 (2) + | | | [6]{}: extension 0x9f-0xa2.7 (4) + 0x009| 00| .| type: "signed_certificate_timestamp" (18) 0x9f-0xa0.7 (2) + 0x00a|12 |. | + 0x00a| 00 00 | .. | length: 0 0xa1-0xa2.7 (2) + | | | [7]{}: extension 0xa3-0xc3.7 (33) + 0x00a| 00 10 | .. | type: "application_layer_protocol_negotiation" (16) 0xa3-0xa4.7 (2) + 0x00a| 00 1d | .. | length: 29 0xa5-0xa6.7 (2) + 0x00a| 00 1b | .. | serer_names_length: 27 0xa7-0xa8.7 (2) + | | | protocols[0:4]: 0xa9-0xc3.7 (27) + | | | [0]{}: protocol 0xa9-0xb1.7 (9) + 0x00a| 08 | . | length: 8 0xa9-0xa9.7 (1) + 0x00a| 68 74 74 70 2f 31| http/1| name: "http/1.1" 0xaa-0xb1.7 (8) + 0x00b|2e 31 |.1 | + | | | [1]{}: protocol 0xb2-0xba.7 (9) + 0x00b| 08 | . | length: 8 0xb2-0xb2.7 (1) + 0x00b| 73 70 64 79 2f 33 2e 31 | spdy/3.1 | name: "spdy/3.1" 0xb3-0xba.7 (8) + | | | [2]{}: protocol 0xbb-0xc0.7 (6) + 0x00b| 05 | . | length: 5 0xbb-0xbb.7 (1) + 0x00b| 68 32 2d 31| h2-1| name: "h2-14" 0xbc-0xc0.7 (5) + 0x00c|34 |4 | + | | | [3]{}: protocol 0xc1-0xc3.7 (3) + 0x00c| 02 | . | length: 2 0xc1-0xc1.7 (1) + 0x00c| 68 32 | h2 | name: "h2" 0xc2-0xc3.7 (2) + | | | [8]{}: extension 0xc4-0xc7.7 (4) + 0x00c| 75 50 | uP | type: 30032 0xc4-0xc5.7 (2) + 0x00c| 00 00 | .. | length: 0 0xc6-0xc7.7 (2) + | | | [9]{}: extension 0xc8-0xcd.7 (6) + 0x00c| 00 0b | .. | type: "ec_point_formats" (11) 0xc8-0xc9.7 (2) + 0x00c| 00 02 | .. | length: 2 0xca-0xcb.7 (2) + 0x00c| 01 | . | ex_points_format_length: 1 0xcc-0xcc.7 (1) + | | | ex_points_formats[0:1]: 0xcd-0xcd.7 (1) + 0x00c| 00 | . | [0]: 0x0 ex_points_format 0xcd-0xcd.7 (1) + | | | [10]{}: extension 0xce-0xd7.7 (10) + 0x00c| 00 0a| ..| type: "supported_groups" (10) 0xce-0xcf.7 (2) + 0x00d|00 06 |.. | length: 6 0xd0-0xd1.7 (2) + 0x00d| 00 04 | .. | supported_group_length: 4 0xd2-0xd3.7 (2) + | | | supported_groups[0:2]: 0xd4-0xd7.7 (4) + 0x00d| 00 17 | .. | [0]: 0x17 supported_group 0xd4-0xd5.7 (2) + 0x00d| 00 18| | ..| | [1]: 0x18 supported_group 0xd6-0xd7.7 (2) | | | server{}: 0x51b8-NA (0) | | | ip: "74.125.228.227" 0x51b8-NA (0) | | | port: "https" (443) (http protocol over TLS/SSL) 0x51b8-NA (0) diff --git a/format/tls/README.md b/format/tls/README.md new file mode 100644 index 00000000..4d39f2af --- /dev/null +++ b/format/tls/README.md @@ -0,0 +1,18 @@ +## Dev notes + +TLS deflate compression seems to actually be zlib, so zlib header + deflate. Also each record is compressed with a flush (trailing 0x00 0x00 0xff 0xff) so that they can be uncompressed individually. + +https://lekensteyn.nl/files/wireshark-ssl-tls-decryption-secrets-sharkfest18eu.pdf + +``` +tshark -x -V -o tls.keylog_file:file.keylog -r file.pcap +``` + +Wireshark gui has TLS debug option to write key/iv etc + +``` +tcpdump -i en0 -w file.pcap +SSLKEYLOGFILE=file.keylog /path/to/sslkey-able/curl --http1.1 -tlsv1.2 --tls-max 1.2 -v https://host/path +``` + +TLS 1.3 dumps https://gitlab.com/wireshark/wireshark/-/issues/12779 diff --git a/format/tls/alerts.go b/format/tls/alerts.go new file mode 100644 index 00000000..636b967b --- /dev/null +++ b/format/tls/alerts.go @@ -0,0 +1,85 @@ +package tls + +import "github.com/wader/fq/pkg/scalar" + +const ( + alertLevelWarning = 1 + alertLevelError = 2 +) + +var alertLevelNames = scalar.UintMapSymStr{ + alertLevelWarning: "warning", + alertLevelError: "error", +} + +const ( + alertCloseNotify = 0 + alertUnexpectedMessage = 10 + alertBadRecordMAC = 20 + alertDecryptionFailed = 21 + alertRecordOverflow = 22 + alertDecompressionFailure = 30 + alertHandshakeFailure = 40 + alertBadCertificate = 42 + alertUnsupportedCertificate = 43 + alertCertificateRevoked = 44 + alertCertificateExpired = 45 + alertCertificateUnknown = 46 + alertIllegalParameter = 47 + alertUnknownCA = 48 + alertAccessDenied = 49 + alertDecodeError = 50 + alertDecryptError = 51 + alertExportRestriction = 60 + alertProtocolVersion = 70 + alertInsufficientSecurity = 71 + alertInternalError = 80 + alertInappropriateFallback = 86 + alertUserCanceled = 90 + alertNoRenegotiation = 100 + alertMissingExtension = 109 + alertUnsupportedExtension = 110 + alertCertificateUnobtainable = 111 + alertUnrecognizedName = 112 + alertBadCertificateStatusResponse = 113 + alertBadCertificateHashValue = 114 + alertUnknownPSKIdentity = 115 + alertCertificateRequired = 116 + alertNoApplicationProtocol = 120 +) + +var alertNames = scalar.UintMapSymStr{ + alertCloseNotify: "close_notify", + alertUnexpectedMessage: "unexpected_message", + alertBadRecordMAC: "bad_record_mac", + alertDecryptionFailed: "decryption_failed", + alertRecordOverflow: "record_overflow", + alertDecompressionFailure: "decompression_failure", + alertHandshakeFailure: "handshake_failure", + alertBadCertificate: "bad_certificate", + alertUnsupportedCertificate: "unsupported_certificate", + alertCertificateRevoked: "revoked_certificate", + alertCertificateExpired: "expired_certificate", + alertCertificateUnknown: "unknown_certificate", + alertIllegalParameter: "illegal_parameter", + alertUnknownCA: "unknown_certificate_authority", + alertAccessDenied: "access_denied", + alertDecodeError: "error_decoding_message", + alertDecryptError: "error_decrypting_message", + alertExportRestriction: "export_restriction", + alertProtocolVersion: "protocol_version_not_supported", + alertInsufficientSecurity: "insufficient_security_level", + alertInternalError: "internal_error", + alertInappropriateFallback: "inappropriate_fallback", + alertUserCanceled: "user_canceled", + alertNoRenegotiation: "no_renegotiation", + alertMissingExtension: "missing_extension", + alertUnsupportedExtension: "unsupported_extension", + alertCertificateUnobtainable: "certificate_unobtainable", + alertUnrecognizedName: "unrecognized_name", + alertBadCertificateStatusResponse: "bad_certificate_status_response", + alertBadCertificateHashValue: "bad_certificate_hash_value", + alertUnknownPSKIdentity: "unknown_PSK_identity", + alertCertificateRequired: "certificate_required", + alertNoApplicationProtocol: "no_application_protocol", +} diff --git a/format/tls/ciphersuites/ciphersuites.go b/format/tls/ciphersuites/ciphersuites.go new file mode 100644 index 00000000..bdd1530e --- /dev/null +++ b/format/tls/ciphersuites/ciphersuites.go @@ -0,0 +1,3 @@ +package ciphersuites + +//go:generate sh -c "cat tls-parameters-4.csv other.csv | ./ciphersuites.jq | gofmt -s > ciphersuites_gen.go" diff --git a/format/tls/ciphersuites/ciphersuites.jq b/format/tls/ciphersuites/ciphersuites.jq new file mode 100755 index 00000000..88efb98e --- /dev/null +++ b/format/tls/ciphersuites/ciphersuites.jq @@ -0,0 +1,85 @@ +#!/usr/bin/env fq -d csv -r -f +# +# cat tls-parameters-4.csv other.csv | ./ciphersuites.jq | gofmt > ciphersuits.go +# +# csv from: +# https://www.iana.org/assignments/tls-parameters/tls-parameters.xhtml +# +# Example line: +# "0xC0,0xA0",TLS_RSA_WITH_AES_128_CCM_8,Y,N,[RFC6655] +# + +def from_suitname: + ( . as $name + | ( capture(`^(?[A-Z0-9]+)_(?\w+)_WITH_(?\w+)_(?NULL|SHA.*|MD.*|GOSTR3411|IMIT)$`) + // + ( capture(`^(?[A-Z0-9]+)`) + | .ka = "UNKNOWN" + | .cipher = "UNKNOWN" + | .hash = "UNKNOWN" + | .ka = "UNKNOWN" + ) + ) + # special case to get valid cipher const name + | with_entries(.value |= if test("^\\d") then "_"+. end) + | .name = $name + ); + +def from_params: + ( .[1:] + | map( + ( select(.[0]) + | select(.[1] | test("unassigned|reserved";"i") | not)) + | { number: (.[0] | split(",") | map(.[2:]) | join("") | "0x" + ascii_downcase) + } + + (.[1] | from_suitname) + ) + ); + +def prefix_special($name): + if . == "NULL" or . == "UNKNOWN" then "\(.)_\($name)" end; + +def prefix_specials($name): + .[] |= prefix_special($name); + +def enum($name): + ( "type \($name) int" + , "" + , "const (" + , (.[0] | " \(.) \($name) = iota") + , (.[1:][] | " \(.)") + , ")" + ); + +( from_params as $params +| ($params | map(.proto) | unique | prefix_specials("Protocol")) as $protos +| ($params | map(.ka) | unique | prefix_specials("KeyAgreement")) as $kas +| ($params | map(.cipher) | unique | prefix_specials("Cipher")) as $ciphers +| ($params | map(.hash) | unique | prefix_specials("Hash")) as $hashs +| "// Package ciphersuites defines TLS and SSL cipher suit properties" +, "// generated by ciphersuites.jq" +, "//" +, "// Ignored lint warnings to keep same names as in spec" +, "//nolint:revive" +, "package ciphersuites" +, ($protos | enum("Protocol")) +, ($kas | enum("KeyAgreement")) +, ($ciphers | enum("Cipher")) +, ($hashs | enum("Hash")) +, ( "const (" + , ($params[] | " \(.name) = \(.number)") + , ")" + ) +, "type Suit struct {" +, " Name string" +, " Protocol Protocol" +, " KeyAgreement KeyAgreement" +, " Cipher Cipher" +, " Hash Hash" +, "}" +, ( "var Suits = map[int]Suit{" + , ( $params[] | "\(.name): {Name: \"\(.name)\", Protocol: \(.proto | prefix_special("Protocol")), KeyAgreement: \(.ka | prefix_special("KeyAgreement")), Cipher: \(.cipher | prefix_special("Cipher")), Hash: \(.hash | prefix_special("Hash"))},") + , "}" + ) +) + diff --git a/format/tls/ciphersuites/ciphersuites_gen.go b/format/tls/ciphersuites/ciphersuites_gen.go new file mode 100644 index 00000000..31bc0565 --- /dev/null +++ b/format/tls/ciphersuites/ciphersuites_gen.go @@ -0,0 +1,851 @@ +// Package ciphersuites defines TLS and SSL cipher suit properties +// generated by ciphersuites.jq +// +// Ignored lint warnings to keep same names as in spec +// +//nolint:revive +package ciphersuites + +type Protocol int + +const ( + SSL Protocol = iota + TLS +) + +type KeyAgreement int + +const ( + DHE_DSS KeyAgreement = iota + DHE_DSS_EXPORT + DHE_PSK + DHE_RSA + DHE_RSA_EXPORT + DH_DSS + DH_DSS_EXPORT + DH_RSA + DH_RSA_EXPORT + DH_anon + DH_anon_EXPORT + ECCPWD + ECDHE_ECDSA + ECDHE_PSK + ECDHE_RSA + ECDH_ECDSA + ECDH_RSA + ECDH_anon + GOSTR341001 + GOSTR341094 + GOSTR341112_256 + KRB5 + KRB5_EXPORT + NULL_KeyAgreement + PSK + RSA + RSA_EXPORT + RSA_FIPS + RSA_PSK + SRP_SHA + SRP_SHA_DSS + SRP_SHA_RSA + UNKNOWN_KeyAgreement +) + +type Cipher int + +const ( + AES_128_CBC Cipher = iota + AES_128_CCM + AES_128_CCM_8 + AES_128_GCM + AES_256_CBC + AES_256_CCM + AES_256_GCM + ARIA_128_CBC + ARIA_128_GCM + ARIA_256_CBC + ARIA_256_GCM + CAMELLIA_128_CBC + CAMELLIA_128_GCM + CAMELLIA_256_CBC + CAMELLIA_256_GCM + CHACHA20_POLY1305 + DES40_CBC + DES_CBC + DES_CBC_40 + IDEA_CBC + NULL_Cipher + RC2_CBC_40 + RC4_128 + RC4_40 + SEED_CBC + UNKNOWN_Cipher + _28147_CNT + _3DES_EDE_CBC +) + +type Hash int + +const ( + GOSTR3411 Hash = iota + IMIT + MD5 + NULL_Hash + SHA + SHA256 + SHA384 + UNKNOWN_Hash +) +const ( + TLS_NULL_WITH_NULL_NULL = 0x0000 + TLS_RSA_WITH_NULL_MD5 = 0x0001 + TLS_RSA_WITH_NULL_SHA = 0x0002 + TLS_RSA_EXPORT_WITH_RC4_40_MD5 = 0x0003 + TLS_RSA_WITH_RC4_128_MD5 = 0x0004 + TLS_RSA_WITH_RC4_128_SHA = 0x0005 + TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = 0x0006 + TLS_RSA_WITH_IDEA_CBC_SHA = 0x0007 + TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = 0x0008 + TLS_RSA_WITH_DES_CBC_SHA = 0x0009 + TLS_RSA_WITH_3DES_EDE_CBC_SHA = 0x000a + TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = 0x000b + TLS_DH_DSS_WITH_DES_CBC_SHA = 0x000c + TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = 0x000d + TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = 0x000e + TLS_DH_RSA_WITH_DES_CBC_SHA = 0x000f + TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = 0x0010 + TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = 0x0011 + TLS_DHE_DSS_WITH_DES_CBC_SHA = 0x0012 + TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = 0x0013 + TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = 0x0014 + TLS_DHE_RSA_WITH_DES_CBC_SHA = 0x0015 + TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = 0x0016 + TLS_DH_anon_EXPORT_WITH_RC4_40_MD5 = 0x0017 + TLS_DH_anon_WITH_RC4_128_MD5 = 0x0018 + TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA = 0x0019 + TLS_DH_anon_WITH_DES_CBC_SHA = 0x001a + TLS_DH_anon_WITH_3DES_EDE_CBC_SHA = 0x001b + TLS_KRB5_WITH_DES_CBC_SHA = 0x001e + TLS_KRB5_WITH_3DES_EDE_CBC_SHA = 0x001f + TLS_KRB5_WITH_RC4_128_SHA = 0x0020 + TLS_KRB5_WITH_IDEA_CBC_SHA = 0x0021 + TLS_KRB5_WITH_DES_CBC_MD5 = 0x0022 + TLS_KRB5_WITH_3DES_EDE_CBC_MD5 = 0x0023 + TLS_KRB5_WITH_RC4_128_MD5 = 0x0024 + TLS_KRB5_WITH_IDEA_CBC_MD5 = 0x0025 + TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA = 0x0026 + TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA = 0x0027 + TLS_KRB5_EXPORT_WITH_RC4_40_SHA = 0x0028 + TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 = 0x0029 + TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 = 0x002a + TLS_KRB5_EXPORT_WITH_RC4_40_MD5 = 0x002b + TLS_PSK_WITH_NULL_SHA = 0x002c + TLS_DHE_PSK_WITH_NULL_SHA = 0x002d + TLS_RSA_PSK_WITH_NULL_SHA = 0x002e + TLS_RSA_WITH_AES_128_CBC_SHA = 0x002f + TLS_DH_DSS_WITH_AES_128_CBC_SHA = 0x0030 + TLS_DH_RSA_WITH_AES_128_CBC_SHA = 0x0031 + TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 0x0032 + TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 0x0033 + TLS_DH_anon_WITH_AES_128_CBC_SHA = 0x0034 + TLS_RSA_WITH_AES_256_CBC_SHA = 0x0035 + TLS_DH_DSS_WITH_AES_256_CBC_SHA = 0x0036 + TLS_DH_RSA_WITH_AES_256_CBC_SHA = 0x0037 + TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 0x0038 + TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 0x0039 + TLS_DH_anon_WITH_AES_256_CBC_SHA = 0x003a + TLS_RSA_WITH_NULL_SHA256 = 0x003b + TLS_RSA_WITH_AES_128_CBC_SHA256 = 0x003c + TLS_RSA_WITH_AES_256_CBC_SHA256 = 0x003d + TLS_DH_DSS_WITH_AES_128_CBC_SHA256 = 0x003e + TLS_DH_RSA_WITH_AES_128_CBC_SHA256 = 0x003f + TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = 0x0040 + TLS_RSA_WITH_CAMELLIA_128_CBC_SHA = 0x0041 + TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA = 0x0042 + TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA = 0x0043 + TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA = 0x0044 + TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA = 0x0045 + TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA = 0x0046 + TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 0x0067 + TLS_DH_DSS_WITH_AES_256_CBC_SHA256 = 0x0068 + TLS_DH_RSA_WITH_AES_256_CBC_SHA256 = 0x0069 + TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = 0x006a + TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 0x006b + TLS_DH_anon_WITH_AES_128_CBC_SHA256 = 0x006c + TLS_DH_anon_WITH_AES_256_CBC_SHA256 = 0x006d + TLS_RSA_WITH_CAMELLIA_256_CBC_SHA = 0x0084 + TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA = 0x0085 + TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA = 0x0086 + TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA = 0x0087 + TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA = 0x0088 + TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA = 0x0089 + TLS_PSK_WITH_RC4_128_SHA = 0x008a + TLS_PSK_WITH_3DES_EDE_CBC_SHA = 0x008b + TLS_PSK_WITH_AES_128_CBC_SHA = 0x008c + TLS_PSK_WITH_AES_256_CBC_SHA = 0x008d + TLS_DHE_PSK_WITH_RC4_128_SHA = 0x008e + TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = 0x008f + TLS_DHE_PSK_WITH_AES_128_CBC_SHA = 0x0090 + TLS_DHE_PSK_WITH_AES_256_CBC_SHA = 0x0091 + TLS_RSA_PSK_WITH_RC4_128_SHA = 0x0092 + TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = 0x0093 + TLS_RSA_PSK_WITH_AES_128_CBC_SHA = 0x0094 + TLS_RSA_PSK_WITH_AES_256_CBC_SHA = 0x0095 + TLS_RSA_WITH_SEED_CBC_SHA = 0x0096 + TLS_DH_DSS_WITH_SEED_CBC_SHA = 0x0097 + TLS_DH_RSA_WITH_SEED_CBC_SHA = 0x0098 + TLS_DHE_DSS_WITH_SEED_CBC_SHA = 0x0099 + TLS_DHE_RSA_WITH_SEED_CBC_SHA = 0x009a + TLS_DH_anon_WITH_SEED_CBC_SHA = 0x009b + TLS_RSA_WITH_AES_128_GCM_SHA256 = 0x009c + TLS_RSA_WITH_AES_256_GCM_SHA384 = 0x009d + TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = 0x009e + TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = 0x009f + TLS_DH_RSA_WITH_AES_128_GCM_SHA256 = 0x00a0 + TLS_DH_RSA_WITH_AES_256_GCM_SHA384 = 0x00a1 + TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = 0x00a2 + TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = 0x00a3 + TLS_DH_DSS_WITH_AES_128_GCM_SHA256 = 0x00a4 + TLS_DH_DSS_WITH_AES_256_GCM_SHA384 = 0x00a5 + TLS_DH_anon_WITH_AES_128_GCM_SHA256 = 0x00a6 + TLS_DH_anon_WITH_AES_256_GCM_SHA384 = 0x00a7 + TLS_PSK_WITH_AES_128_GCM_SHA256 = 0x00a8 + TLS_PSK_WITH_AES_256_GCM_SHA384 = 0x00a9 + TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 = 0x00aa + TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 = 0x00ab + TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 = 0x00ac + TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 = 0x00ad + TLS_PSK_WITH_AES_128_CBC_SHA256 = 0x00ae + TLS_PSK_WITH_AES_256_CBC_SHA384 = 0x00af + TLS_PSK_WITH_NULL_SHA256 = 0x00b0 + TLS_PSK_WITH_NULL_SHA384 = 0x00b1 + TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 = 0x00b2 + TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 = 0x00b3 + TLS_DHE_PSK_WITH_NULL_SHA256 = 0x00b4 + TLS_DHE_PSK_WITH_NULL_SHA384 = 0x00b5 + TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 = 0x00b6 + TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 = 0x00b7 + TLS_RSA_PSK_WITH_NULL_SHA256 = 0x00b8 + TLS_RSA_PSK_WITH_NULL_SHA384 = 0x00b9 + TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 0x00ba + TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 = 0x00bb + TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 0x00bc + TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 = 0x00bd + TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 0x00be + TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256 = 0x00bf + TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 0x00c0 + TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 = 0x00c1 + TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 0x00c2 + TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 = 0x00c3 + TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 0x00c4 + TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256 = 0x00c5 + TLS_SM4_GCM_SM3 = 0x00c6 + TLS_SM4_CCM_SM3 = 0x00c7 + TLS_EMPTY_RENEGOTIATION_INFO_SCSV = 0x00ff + TLS_AES_128_GCM_SHA256 = 0x1301 + TLS_AES_256_GCM_SHA384 = 0x1302 + TLS_CHACHA20_POLY1305_SHA256 = 0x1303 + TLS_AES_128_CCM_SHA256 = 0x1304 + TLS_AES_128_CCM_8_SHA256 = 0x1305 + TLS_AEGIS_256_SHA384 = 0x1306 + TLS_AEGIS_128L_SHA256 = 0x1307 + TLS_FALLBACK_SCSV = 0x5600 + TLS_ECDH_ECDSA_WITH_NULL_SHA = 0xc001 + TLS_ECDH_ECDSA_WITH_RC4_128_SHA = 0xc002 + TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA = 0xc003 + TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA = 0xc004 + TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA = 0xc005 + TLS_ECDHE_ECDSA_WITH_NULL_SHA = 0xc006 + TLS_ECDHE_ECDSA_WITH_RC4_128_SHA = 0xc007 + TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA = 0xc008 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 0xc009 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 0xc00a + TLS_ECDH_RSA_WITH_NULL_SHA = 0xc00b + TLS_ECDH_RSA_WITH_RC4_128_SHA = 0xc00c + TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA = 0xc00d + TLS_ECDH_RSA_WITH_AES_128_CBC_SHA = 0xc00e + TLS_ECDH_RSA_WITH_AES_256_CBC_SHA = 0xc00f + TLS_ECDHE_RSA_WITH_NULL_SHA = 0xc010 + TLS_ECDHE_RSA_WITH_RC4_128_SHA = 0xc011 + TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA = 0xc012 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 0xc013 + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 0xc014 + TLS_ECDH_anon_WITH_NULL_SHA = 0xc015 + TLS_ECDH_anon_WITH_RC4_128_SHA = 0xc016 + TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA = 0xc017 + TLS_ECDH_anon_WITH_AES_128_CBC_SHA = 0xc018 + TLS_ECDH_anon_WITH_AES_256_CBC_SHA = 0xc019 + TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA = 0xc01a + TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA = 0xc01b + TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA = 0xc01c + TLS_SRP_SHA_WITH_AES_128_CBC_SHA = 0xc01d + TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA = 0xc01e + TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA = 0xc01f + TLS_SRP_SHA_WITH_AES_256_CBC_SHA = 0xc020 + TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA = 0xc021 + TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA = 0xc022 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = 0xc023 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = 0xc024 + TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 = 0xc025 + TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 = 0xc026 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = 0xc027 + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = 0xc028 + TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 = 0xc029 + TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 = 0xc02a + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 0xc02b + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 0xc02c + TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 = 0xc02d + TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 = 0xc02e + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 0xc02f + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 0xc030 + TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 = 0xc031 + TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 = 0xc032 + TLS_ECDHE_PSK_WITH_RC4_128_SHA = 0xc033 + TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA = 0xc034 + TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA = 0xc035 + TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA = 0xc036 + TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 = 0xc037 + TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 = 0xc038 + TLS_ECDHE_PSK_WITH_NULL_SHA = 0xc039 + TLS_ECDHE_PSK_WITH_NULL_SHA256 = 0xc03a + TLS_ECDHE_PSK_WITH_NULL_SHA384 = 0xc03b + TLS_RSA_WITH_ARIA_128_CBC_SHA256 = 0xc03c + TLS_RSA_WITH_ARIA_256_CBC_SHA384 = 0xc03d + TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 = 0xc03e + TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 = 0xc03f + TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 = 0xc040 + TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 = 0xc041 + TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 = 0xc042 + TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 = 0xc043 + TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 = 0xc044 + TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 = 0xc045 + TLS_DH_anon_WITH_ARIA_128_CBC_SHA256 = 0xc046 + TLS_DH_anon_WITH_ARIA_256_CBC_SHA384 = 0xc047 + TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 = 0xc048 + TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 = 0xc049 + TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 = 0xc04a + TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 = 0xc04b + TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 = 0xc04c + TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 = 0xc04d + TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 = 0xc04e + TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 = 0xc04f + TLS_RSA_WITH_ARIA_128_GCM_SHA256 = 0xc050 + TLS_RSA_WITH_ARIA_256_GCM_SHA384 = 0xc051 + TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 = 0xc052 + TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 = 0xc053 + TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 = 0xc054 + TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 = 0xc055 + TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 = 0xc056 + TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 = 0xc057 + TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 = 0xc058 + TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 = 0xc059 + TLS_DH_anon_WITH_ARIA_128_GCM_SHA256 = 0xc05a + TLS_DH_anon_WITH_ARIA_256_GCM_SHA384 = 0xc05b + TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 = 0xc05c + TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 = 0xc05d + TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 = 0xc05e + TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 = 0xc05f + TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 = 0xc060 + TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 = 0xc061 + TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 = 0xc062 + TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 = 0xc063 + TLS_PSK_WITH_ARIA_128_CBC_SHA256 = 0xc064 + TLS_PSK_WITH_ARIA_256_CBC_SHA384 = 0xc065 + TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 = 0xc066 + TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 = 0xc067 + TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 = 0xc068 + TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 = 0xc069 + TLS_PSK_WITH_ARIA_128_GCM_SHA256 = 0xc06a + TLS_PSK_WITH_ARIA_256_GCM_SHA384 = 0xc06b + TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 = 0xc06c + TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 = 0xc06d + TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 = 0xc06e + TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 = 0xc06f + TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 = 0xc070 + TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 = 0xc071 + TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = 0xc072 + TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = 0xc073 + TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = 0xc074 + TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = 0xc075 + TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 0xc076 + TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 = 0xc077 + TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 0xc078 + TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 = 0xc079 + TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xc07a + TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xc07b + TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xc07c + TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xc07d + TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xc07e + TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xc07f + TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 = 0xc080 + TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 = 0xc081 + TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 = 0xc082 + TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 = 0xc083 + TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256 = 0xc084 + TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384 = 0xc085 + TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xc086 + TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xc087 + TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xc088 + TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xc089 + TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xc08a + TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xc08b + TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xc08c + TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xc08d + TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 0xc08e + TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 0xc08f + TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 0xc090 + TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 0xc091 + TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 0xc092 + TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 0xc093 + TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 0xc094 + TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 0xc095 + TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 0xc096 + TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 0xc097 + TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 0xc098 + TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 0xc099 + TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 0xc09a + TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 0xc09b + TLS_RSA_WITH_AES_128_CCM = 0xc09c + TLS_RSA_WITH_AES_256_CCM = 0xc09d + TLS_DHE_RSA_WITH_AES_128_CCM = 0xc09e + TLS_DHE_RSA_WITH_AES_256_CCM = 0xc09f + TLS_RSA_WITH_AES_128_CCM_8 = 0xc0a0 + TLS_RSA_WITH_AES_256_CCM_8 = 0xc0a1 + TLS_DHE_RSA_WITH_AES_128_CCM_8 = 0xc0a2 + TLS_DHE_RSA_WITH_AES_256_CCM_8 = 0xc0a3 + TLS_PSK_WITH_AES_128_CCM = 0xc0a4 + TLS_PSK_WITH_AES_256_CCM = 0xc0a5 + TLS_DHE_PSK_WITH_AES_128_CCM = 0xc0a6 + TLS_DHE_PSK_WITH_AES_256_CCM = 0xc0a7 + TLS_PSK_WITH_AES_128_CCM_8 = 0xc0a8 + TLS_PSK_WITH_AES_256_CCM_8 = 0xc0a9 + TLS_PSK_DHE_WITH_AES_128_CCM_8 = 0xc0aa + TLS_PSK_DHE_WITH_AES_256_CCM_8 = 0xc0ab + TLS_ECDHE_ECDSA_WITH_AES_128_CCM = 0xc0ac + TLS_ECDHE_ECDSA_WITH_AES_256_CCM = 0xc0ad + TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 = 0xc0ae + TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 = 0xc0af + TLS_ECCPWD_WITH_AES_128_GCM_SHA256 = 0xc0b0 + TLS_ECCPWD_WITH_AES_256_GCM_SHA384 = 0xc0b1 + TLS_ECCPWD_WITH_AES_128_CCM_SHA256 = 0xc0b2 + TLS_ECCPWD_WITH_AES_256_CCM_SHA384 = 0xc0b3 + TLS_SHA256_SHA256 = 0xc0b4 + TLS_SHA384_SHA384 = 0xc0b5 + TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC = 0xc100 + TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC = 0xc101 + TLS_GOSTR341112_256_WITH_28147_CNT_IMIT = 0xc102 + TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L = 0xc103 + TLS_GOSTR341112_256_WITH_MAGMA_MGM_L = 0xc104 + TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S = 0xc105 + TLS_GOSTR341112_256_WITH_MAGMA_MGM_S = 0xc106 + TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 0xcca8 + TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 0xcca9 + TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 0xccaa + TLS_PSK_WITH_CHACHA20_POLY1305_SHA256 = 0xccab + TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = 0xccac + TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256 = 0xccad + TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256 = 0xccae + TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 = 0xd001 + TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384 = 0xd002 + TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256 = 0xd003 + TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256 = 0xd005 + TLS_GOSTR341094_WITH_28147_CNT_IMIT = 0x0080 + TLS_GOSTR341001_WITH_28147_CNT_IMIT = 0x0081 + TLS_GOSTR341094_WITH_NULL_GOSTR3411 = 0x0082 + TLS_GOSTR341001_WITH_NULL_GOSTR3411 = 0x0083 + SSL_RSA_FIPS_WITH_DES_CBC_SHA = 0xfefe + SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA = 0xfeff + SSL_CK_RC4_128_WITH_MD5 = 0x010080 + SSL_CK_RC4_128_EXPORT40_WITH_MD5 = 0x020080 + SSL_CK_RC2_128_CBC_WITH_MD5 = 0x030080 + SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5 = 0x040080 + SSL_CK_IDEA_128_CBC_WITH_MD5 = 0x050080 + SSL_CK_DES_64_CBC_WITH_MD5 = 0x060040 + SSL_CK_DES_64_CBC_WITH_SHA = 0x060140 + SSL_CK_DES_192_EDE3_CBC_WITH_MD5 = 0x0700c0 + SSL_CK_DES_192_EDE3_CBC_WITH_SHA = 0x0701c0 + SSL_CK_RC4_64_WITH_MD5 = 0x080080 + SSL_CK_DES_64_CFB64_WITH_MD5_1 = 0xff0800 + SSL_CK_NULL = 0xff0810 +) + +type Suit struct { + Name string + Protocol Protocol + KeyAgreement KeyAgreement + Cipher Cipher + Hash Hash +} + +var Suits = map[int]Suit{ + TLS_NULL_WITH_NULL_NULL: {Name: "TLS_NULL_WITH_NULL_NULL", Protocol: TLS, KeyAgreement: NULL_KeyAgreement, Cipher: NULL_Cipher, Hash: NULL_Hash}, + TLS_RSA_WITH_NULL_MD5: {Name: "TLS_RSA_WITH_NULL_MD5", Protocol: TLS, KeyAgreement: RSA, Cipher: NULL_Cipher, Hash: MD5}, + TLS_RSA_WITH_NULL_SHA: {Name: "TLS_RSA_WITH_NULL_SHA", Protocol: TLS, KeyAgreement: RSA, Cipher: NULL_Cipher, Hash: SHA}, + TLS_RSA_EXPORT_WITH_RC4_40_MD5: {Name: "TLS_RSA_EXPORT_WITH_RC4_40_MD5", Protocol: TLS, KeyAgreement: RSA_EXPORT, Cipher: RC4_40, Hash: MD5}, + TLS_RSA_WITH_RC4_128_MD5: {Name: "TLS_RSA_WITH_RC4_128_MD5", Protocol: TLS, KeyAgreement: RSA, Cipher: RC4_128, Hash: MD5}, + TLS_RSA_WITH_RC4_128_SHA: {Name: "TLS_RSA_WITH_RC4_128_SHA", Protocol: TLS, KeyAgreement: RSA, Cipher: RC4_128, Hash: SHA}, + TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5: {Name: "TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5", Protocol: TLS, KeyAgreement: RSA_EXPORT, Cipher: RC2_CBC_40, Hash: MD5}, + TLS_RSA_WITH_IDEA_CBC_SHA: {Name: "TLS_RSA_WITH_IDEA_CBC_SHA", Protocol: TLS, KeyAgreement: RSA, Cipher: IDEA_CBC, Hash: SHA}, + TLS_RSA_EXPORT_WITH_DES40_CBC_SHA: {Name: "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA", Protocol: TLS, KeyAgreement: RSA_EXPORT, Cipher: DES40_CBC, Hash: SHA}, + TLS_RSA_WITH_DES_CBC_SHA: {Name: "TLS_RSA_WITH_DES_CBC_SHA", Protocol: TLS, KeyAgreement: RSA, Cipher: DES_CBC, Hash: SHA}, + TLS_RSA_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_RSA_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: RSA, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA: {Name: "TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA", Protocol: TLS, KeyAgreement: DH_DSS_EXPORT, Cipher: DES40_CBC, Hash: SHA}, + TLS_DH_DSS_WITH_DES_CBC_SHA: {Name: "TLS_DH_DSS_WITH_DES_CBC_SHA", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: DES_CBC, Hash: SHA}, + TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA: {Name: "TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA", Protocol: TLS, KeyAgreement: DH_RSA_EXPORT, Cipher: DES40_CBC, Hash: SHA}, + TLS_DH_RSA_WITH_DES_CBC_SHA: {Name: "TLS_DH_RSA_WITH_DES_CBC_SHA", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: DES_CBC, Hash: SHA}, + TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA: {Name: "TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_DSS_EXPORT, Cipher: DES40_CBC, Hash: SHA}, + TLS_DHE_DSS_WITH_DES_CBC_SHA: {Name: "TLS_DHE_DSS_WITH_DES_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: DES_CBC, Hash: SHA}, + TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA: {Name: "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_RSA_EXPORT, Cipher: DES40_CBC, Hash: SHA}, + TLS_DHE_RSA_WITH_DES_CBC_SHA: {Name: "TLS_DHE_RSA_WITH_DES_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: DES_CBC, Hash: SHA}, + TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_DH_anon_EXPORT_WITH_RC4_40_MD5: {Name: "TLS_DH_anon_EXPORT_WITH_RC4_40_MD5", Protocol: TLS, KeyAgreement: DH_anon_EXPORT, Cipher: RC4_40, Hash: MD5}, + TLS_DH_anon_WITH_RC4_128_MD5: {Name: "TLS_DH_anon_WITH_RC4_128_MD5", Protocol: TLS, KeyAgreement: DH_anon, Cipher: RC4_128, Hash: MD5}, + TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA: {Name: "TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA", Protocol: TLS, KeyAgreement: DH_anon_EXPORT, Cipher: DES40_CBC, Hash: SHA}, + TLS_DH_anon_WITH_DES_CBC_SHA: {Name: "TLS_DH_anon_WITH_DES_CBC_SHA", Protocol: TLS, KeyAgreement: DH_anon, Cipher: DES_CBC, Hash: SHA}, + TLS_DH_anon_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_DH_anon_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: DH_anon, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_KRB5_WITH_DES_CBC_SHA: {Name: "TLS_KRB5_WITH_DES_CBC_SHA", Protocol: TLS, KeyAgreement: KRB5, Cipher: DES_CBC, Hash: SHA}, + TLS_KRB5_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_KRB5_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: KRB5, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_KRB5_WITH_RC4_128_SHA: {Name: "TLS_KRB5_WITH_RC4_128_SHA", Protocol: TLS, KeyAgreement: KRB5, Cipher: RC4_128, Hash: SHA}, + TLS_KRB5_WITH_IDEA_CBC_SHA: {Name: "TLS_KRB5_WITH_IDEA_CBC_SHA", Protocol: TLS, KeyAgreement: KRB5, Cipher: IDEA_CBC, Hash: SHA}, + TLS_KRB5_WITH_DES_CBC_MD5: {Name: "TLS_KRB5_WITH_DES_CBC_MD5", Protocol: TLS, KeyAgreement: KRB5, Cipher: DES_CBC, Hash: MD5}, + TLS_KRB5_WITH_3DES_EDE_CBC_MD5: {Name: "TLS_KRB5_WITH_3DES_EDE_CBC_MD5", Protocol: TLS, KeyAgreement: KRB5, Cipher: _3DES_EDE_CBC, Hash: MD5}, + TLS_KRB5_WITH_RC4_128_MD5: {Name: "TLS_KRB5_WITH_RC4_128_MD5", Protocol: TLS, KeyAgreement: KRB5, Cipher: RC4_128, Hash: MD5}, + TLS_KRB5_WITH_IDEA_CBC_MD5: {Name: "TLS_KRB5_WITH_IDEA_CBC_MD5", Protocol: TLS, KeyAgreement: KRB5, Cipher: IDEA_CBC, Hash: MD5}, + TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA: {Name: "TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA", Protocol: TLS, KeyAgreement: KRB5_EXPORT, Cipher: DES_CBC_40, Hash: SHA}, + TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA: {Name: "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA", Protocol: TLS, KeyAgreement: KRB5_EXPORT, Cipher: RC2_CBC_40, Hash: SHA}, + TLS_KRB5_EXPORT_WITH_RC4_40_SHA: {Name: "TLS_KRB5_EXPORT_WITH_RC4_40_SHA", Protocol: TLS, KeyAgreement: KRB5_EXPORT, Cipher: RC4_40, Hash: SHA}, + TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5: {Name: "TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5", Protocol: TLS, KeyAgreement: KRB5_EXPORT, Cipher: DES_CBC_40, Hash: MD5}, + TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5: {Name: "TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5", Protocol: TLS, KeyAgreement: KRB5_EXPORT, Cipher: RC2_CBC_40, Hash: MD5}, + TLS_KRB5_EXPORT_WITH_RC4_40_MD5: {Name: "TLS_KRB5_EXPORT_WITH_RC4_40_MD5", Protocol: TLS, KeyAgreement: KRB5_EXPORT, Cipher: RC4_40, Hash: MD5}, + TLS_PSK_WITH_NULL_SHA: {Name: "TLS_PSK_WITH_NULL_SHA", Protocol: TLS, KeyAgreement: PSK, Cipher: NULL_Cipher, Hash: SHA}, + TLS_DHE_PSK_WITH_NULL_SHA: {Name: "TLS_DHE_PSK_WITH_NULL_SHA", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: NULL_Cipher, Hash: SHA}, + TLS_RSA_PSK_WITH_NULL_SHA: {Name: "TLS_RSA_PSK_WITH_NULL_SHA", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: NULL_Cipher, Hash: SHA}, + TLS_RSA_WITH_AES_128_CBC_SHA: {Name: "TLS_RSA_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: RSA, Cipher: AES_128_CBC, Hash: SHA}, + TLS_DH_DSS_WITH_AES_128_CBC_SHA: {Name: "TLS_DH_DSS_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: AES_128_CBC, Hash: SHA}, + TLS_DH_RSA_WITH_AES_128_CBC_SHA: {Name: "TLS_DH_RSA_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: AES_128_CBC, Hash: SHA}, + TLS_DHE_DSS_WITH_AES_128_CBC_SHA: {Name: "TLS_DHE_DSS_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: AES_128_CBC, Hash: SHA}, + TLS_DHE_RSA_WITH_AES_128_CBC_SHA: {Name: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: AES_128_CBC, Hash: SHA}, + TLS_DH_anon_WITH_AES_128_CBC_SHA: {Name: "TLS_DH_anon_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: DH_anon, Cipher: AES_128_CBC, Hash: SHA}, + TLS_RSA_WITH_AES_256_CBC_SHA: {Name: "TLS_RSA_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: RSA, Cipher: AES_256_CBC, Hash: SHA}, + TLS_DH_DSS_WITH_AES_256_CBC_SHA: {Name: "TLS_DH_DSS_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: AES_256_CBC, Hash: SHA}, + TLS_DH_RSA_WITH_AES_256_CBC_SHA: {Name: "TLS_DH_RSA_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: AES_256_CBC, Hash: SHA}, + TLS_DHE_DSS_WITH_AES_256_CBC_SHA: {Name: "TLS_DHE_DSS_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: AES_256_CBC, Hash: SHA}, + TLS_DHE_RSA_WITH_AES_256_CBC_SHA: {Name: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: AES_256_CBC, Hash: SHA}, + TLS_DH_anon_WITH_AES_256_CBC_SHA: {Name: "TLS_DH_anon_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: DH_anon, Cipher: AES_256_CBC, Hash: SHA}, + TLS_RSA_WITH_NULL_SHA256: {Name: "TLS_RSA_WITH_NULL_SHA256", Protocol: TLS, KeyAgreement: RSA, Cipher: NULL_Cipher, Hash: SHA256}, + TLS_RSA_WITH_AES_128_CBC_SHA256: {Name: "TLS_RSA_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: RSA, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_RSA_WITH_AES_256_CBC_SHA256: {Name: "TLS_RSA_WITH_AES_256_CBC_SHA256", Protocol: TLS, KeyAgreement: RSA, Cipher: AES_256_CBC, Hash: SHA256}, + TLS_DH_DSS_WITH_AES_128_CBC_SHA256: {Name: "TLS_DH_DSS_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_DH_RSA_WITH_AES_128_CBC_SHA256: {Name: "TLS_DH_RSA_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_DHE_DSS_WITH_AES_128_CBC_SHA256: {Name: "TLS_DHE_DSS_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_RSA_WITH_CAMELLIA_128_CBC_SHA: {Name: "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA", Protocol: TLS, KeyAgreement: RSA, Cipher: CAMELLIA_128_CBC, Hash: SHA}, + TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA: {Name: "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: CAMELLIA_128_CBC, Hash: SHA}, + TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA: {Name: "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: CAMELLIA_128_CBC, Hash: SHA}, + TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA: {Name: "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: CAMELLIA_128_CBC, Hash: SHA}, + TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA: {Name: "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: CAMELLIA_128_CBC, Hash: SHA}, + TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA: {Name: "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA", Protocol: TLS, KeyAgreement: DH_anon, Cipher: CAMELLIA_128_CBC, Hash: SHA}, + TLS_DHE_RSA_WITH_AES_128_CBC_SHA256: {Name: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_DH_DSS_WITH_AES_256_CBC_SHA256: {Name: "TLS_DH_DSS_WITH_AES_256_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: AES_256_CBC, Hash: SHA256}, + TLS_DH_RSA_WITH_AES_256_CBC_SHA256: {Name: "TLS_DH_RSA_WITH_AES_256_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: AES_256_CBC, Hash: SHA256}, + TLS_DHE_DSS_WITH_AES_256_CBC_SHA256: {Name: "TLS_DHE_DSS_WITH_AES_256_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: AES_256_CBC, Hash: SHA256}, + TLS_DHE_RSA_WITH_AES_256_CBC_SHA256: {Name: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: AES_256_CBC, Hash: SHA256}, + TLS_DH_anon_WITH_AES_128_CBC_SHA256: {Name: "TLS_DH_anon_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_anon, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_DH_anon_WITH_AES_256_CBC_SHA256: {Name: "TLS_DH_anon_WITH_AES_256_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_anon, Cipher: AES_256_CBC, Hash: SHA256}, + TLS_RSA_WITH_CAMELLIA_256_CBC_SHA: {Name: "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA", Protocol: TLS, KeyAgreement: RSA, Cipher: CAMELLIA_256_CBC, Hash: SHA}, + TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA: {Name: "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: CAMELLIA_256_CBC, Hash: SHA}, + TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA: {Name: "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: CAMELLIA_256_CBC, Hash: SHA}, + TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA: {Name: "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: CAMELLIA_256_CBC, Hash: SHA}, + TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA: {Name: "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: CAMELLIA_256_CBC, Hash: SHA}, + TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA: {Name: "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA", Protocol: TLS, KeyAgreement: DH_anon, Cipher: CAMELLIA_256_CBC, Hash: SHA}, + TLS_PSK_WITH_RC4_128_SHA: {Name: "TLS_PSK_WITH_RC4_128_SHA", Protocol: TLS, KeyAgreement: PSK, Cipher: RC4_128, Hash: SHA}, + TLS_PSK_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_PSK_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: PSK, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_PSK_WITH_AES_128_CBC_SHA: {Name: "TLS_PSK_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: PSK, Cipher: AES_128_CBC, Hash: SHA}, + TLS_PSK_WITH_AES_256_CBC_SHA: {Name: "TLS_PSK_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: PSK, Cipher: AES_256_CBC, Hash: SHA}, + TLS_DHE_PSK_WITH_RC4_128_SHA: {Name: "TLS_DHE_PSK_WITH_RC4_128_SHA", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: RC4_128, Hash: SHA}, + TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_DHE_PSK_WITH_AES_128_CBC_SHA: {Name: "TLS_DHE_PSK_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: AES_128_CBC, Hash: SHA}, + TLS_DHE_PSK_WITH_AES_256_CBC_SHA: {Name: "TLS_DHE_PSK_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: AES_256_CBC, Hash: SHA}, + TLS_RSA_PSK_WITH_RC4_128_SHA: {Name: "TLS_RSA_PSK_WITH_RC4_128_SHA", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: RC4_128, Hash: SHA}, + TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_RSA_PSK_WITH_AES_128_CBC_SHA: {Name: "TLS_RSA_PSK_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: AES_128_CBC, Hash: SHA}, + TLS_RSA_PSK_WITH_AES_256_CBC_SHA: {Name: "TLS_RSA_PSK_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: AES_256_CBC, Hash: SHA}, + TLS_RSA_WITH_SEED_CBC_SHA: {Name: "TLS_RSA_WITH_SEED_CBC_SHA", Protocol: TLS, KeyAgreement: RSA, Cipher: SEED_CBC, Hash: SHA}, + TLS_DH_DSS_WITH_SEED_CBC_SHA: {Name: "TLS_DH_DSS_WITH_SEED_CBC_SHA", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: SEED_CBC, Hash: SHA}, + TLS_DH_RSA_WITH_SEED_CBC_SHA: {Name: "TLS_DH_RSA_WITH_SEED_CBC_SHA", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: SEED_CBC, Hash: SHA}, + TLS_DHE_DSS_WITH_SEED_CBC_SHA: {Name: "TLS_DHE_DSS_WITH_SEED_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: SEED_CBC, Hash: SHA}, + TLS_DHE_RSA_WITH_SEED_CBC_SHA: {Name: "TLS_DHE_RSA_WITH_SEED_CBC_SHA", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: SEED_CBC, Hash: SHA}, + TLS_DH_anon_WITH_SEED_CBC_SHA: {Name: "TLS_DH_anon_WITH_SEED_CBC_SHA", Protocol: TLS, KeyAgreement: DH_anon, Cipher: SEED_CBC, Hash: SHA}, + TLS_RSA_WITH_AES_128_GCM_SHA256: {Name: "TLS_RSA_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: RSA, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_RSA_WITH_AES_256_GCM_SHA384: {Name: "TLS_RSA_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: RSA, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_DHE_RSA_WITH_AES_128_GCM_SHA256: {Name: "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_DHE_RSA_WITH_AES_256_GCM_SHA384: {Name: "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_DH_RSA_WITH_AES_128_GCM_SHA256: {Name: "TLS_DH_RSA_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_DH_RSA_WITH_AES_256_GCM_SHA384: {Name: "TLS_DH_RSA_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_DHE_DSS_WITH_AES_128_GCM_SHA256: {Name: "TLS_DHE_DSS_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_DHE_DSS_WITH_AES_256_GCM_SHA384: {Name: "TLS_DHE_DSS_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_DH_DSS_WITH_AES_128_GCM_SHA256: {Name: "TLS_DH_DSS_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_DH_DSS_WITH_AES_256_GCM_SHA384: {Name: "TLS_DH_DSS_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_DH_anon_WITH_AES_128_GCM_SHA256: {Name: "TLS_DH_anon_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DH_anon, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_DH_anon_WITH_AES_256_GCM_SHA384: {Name: "TLS_DH_anon_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DH_anon, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_PSK_WITH_AES_128_GCM_SHA256: {Name: "TLS_PSK_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: PSK, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_PSK_WITH_AES_256_GCM_SHA384: {Name: "TLS_PSK_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: PSK, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_DHE_PSK_WITH_AES_128_GCM_SHA256: {Name: "TLS_DHE_PSK_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_DHE_PSK_WITH_AES_256_GCM_SHA384: {Name: "TLS_DHE_PSK_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_RSA_PSK_WITH_AES_128_GCM_SHA256: {Name: "TLS_RSA_PSK_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_RSA_PSK_WITH_AES_256_GCM_SHA384: {Name: "TLS_RSA_PSK_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_PSK_WITH_AES_128_CBC_SHA256: {Name: "TLS_PSK_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: PSK, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_PSK_WITH_AES_256_CBC_SHA384: {Name: "TLS_PSK_WITH_AES_256_CBC_SHA384", Protocol: TLS, KeyAgreement: PSK, Cipher: AES_256_CBC, Hash: SHA384}, + TLS_PSK_WITH_NULL_SHA256: {Name: "TLS_PSK_WITH_NULL_SHA256", Protocol: TLS, KeyAgreement: PSK, Cipher: NULL_Cipher, Hash: SHA256}, + TLS_PSK_WITH_NULL_SHA384: {Name: "TLS_PSK_WITH_NULL_SHA384", Protocol: TLS, KeyAgreement: PSK, Cipher: NULL_Cipher, Hash: SHA384}, + TLS_DHE_PSK_WITH_AES_128_CBC_SHA256: {Name: "TLS_DHE_PSK_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_DHE_PSK_WITH_AES_256_CBC_SHA384: {Name: "TLS_DHE_PSK_WITH_AES_256_CBC_SHA384", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: AES_256_CBC, Hash: SHA384}, + TLS_DHE_PSK_WITH_NULL_SHA256: {Name: "TLS_DHE_PSK_WITH_NULL_SHA256", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: NULL_Cipher, Hash: SHA256}, + TLS_DHE_PSK_WITH_NULL_SHA384: {Name: "TLS_DHE_PSK_WITH_NULL_SHA384", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: NULL_Cipher, Hash: SHA384}, + TLS_RSA_PSK_WITH_AES_128_CBC_SHA256: {Name: "TLS_RSA_PSK_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_RSA_PSK_WITH_AES_256_CBC_SHA384: {Name: "TLS_RSA_PSK_WITH_AES_256_CBC_SHA384", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: AES_256_CBC, Hash: SHA384}, + TLS_RSA_PSK_WITH_NULL_SHA256: {Name: "TLS_RSA_PSK_WITH_NULL_SHA256", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: NULL_Cipher, Hash: SHA256}, + TLS_RSA_PSK_WITH_NULL_SHA384: {Name: "TLS_RSA_PSK_WITH_NULL_SHA384", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: NULL_Cipher, Hash: SHA384}, + TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: RSA, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_anon, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256: {Name: "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256", Protocol: TLS, KeyAgreement: RSA, Cipher: CAMELLIA_256_CBC, Hash: SHA256}, + TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256: {Name: "TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: CAMELLIA_256_CBC, Hash: SHA256}, + TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256: {Name: "TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: CAMELLIA_256_CBC, Hash: SHA256}, + TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256: {Name: "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: CAMELLIA_256_CBC, Hash: SHA256}, + TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256: {Name: "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: CAMELLIA_256_CBC, Hash: SHA256}, + TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256: {Name: "TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_anon, Cipher: CAMELLIA_256_CBC, Hash: SHA256}, + TLS_SM4_GCM_SM3: {Name: "TLS_SM4_GCM_SM3", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_SM4_CCM_SM3: {Name: "TLS_SM4_CCM_SM3", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_EMPTY_RENEGOTIATION_INFO_SCSV: {Name: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_AES_128_GCM_SHA256: {Name: "TLS_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_AES_256_GCM_SHA384: {Name: "TLS_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_CHACHA20_POLY1305_SHA256: {Name: "TLS_CHACHA20_POLY1305_SHA256", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_AES_128_CCM_SHA256: {Name: "TLS_AES_128_CCM_SHA256", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_AES_128_CCM_8_SHA256: {Name: "TLS_AES_128_CCM_8_SHA256", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_AEGIS_256_SHA384: {Name: "TLS_AEGIS_256_SHA384", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_AEGIS_128L_SHA256: {Name: "TLS_AEGIS_128L_SHA256", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_FALLBACK_SCSV: {Name: "TLS_FALLBACK_SCSV", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_ECDH_ECDSA_WITH_NULL_SHA: {Name: "TLS_ECDH_ECDSA_WITH_NULL_SHA", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: NULL_Cipher, Hash: SHA}, + TLS_ECDH_ECDSA_WITH_RC4_128_SHA: {Name: "TLS_ECDH_ECDSA_WITH_RC4_128_SHA", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: RC4_128, Hash: SHA}, + TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA: {Name: "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: AES_128_CBC, Hash: SHA}, + TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA: {Name: "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: AES_256_CBC, Hash: SHA}, + TLS_ECDHE_ECDSA_WITH_NULL_SHA: {Name: "TLS_ECDHE_ECDSA_WITH_NULL_SHA", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: NULL_Cipher, Hash: SHA}, + TLS_ECDHE_ECDSA_WITH_RC4_128_SHA: {Name: "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: RC4_128, Hash: SHA}, + TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA: {Name: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: AES_128_CBC, Hash: SHA}, + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA: {Name: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: AES_256_CBC, Hash: SHA}, + TLS_ECDH_RSA_WITH_NULL_SHA: {Name: "TLS_ECDH_RSA_WITH_NULL_SHA", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: NULL_Cipher, Hash: SHA}, + TLS_ECDH_RSA_WITH_RC4_128_SHA: {Name: "TLS_ECDH_RSA_WITH_RC4_128_SHA", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: RC4_128, Hash: SHA}, + TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_ECDH_RSA_WITH_AES_128_CBC_SHA: {Name: "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: AES_128_CBC, Hash: SHA}, + TLS_ECDH_RSA_WITH_AES_256_CBC_SHA: {Name: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: AES_256_CBC, Hash: SHA}, + TLS_ECDHE_RSA_WITH_NULL_SHA: {Name: "TLS_ECDHE_RSA_WITH_NULL_SHA", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: NULL_Cipher, Hash: SHA}, + TLS_ECDHE_RSA_WITH_RC4_128_SHA: {Name: "TLS_ECDHE_RSA_WITH_RC4_128_SHA", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: RC4_128, Hash: SHA}, + TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA: {Name: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: AES_128_CBC, Hash: SHA}, + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA: {Name: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: AES_256_CBC, Hash: SHA}, + TLS_ECDH_anon_WITH_NULL_SHA: {Name: "TLS_ECDH_anon_WITH_NULL_SHA", Protocol: TLS, KeyAgreement: ECDH_anon, Cipher: NULL_Cipher, Hash: SHA}, + TLS_ECDH_anon_WITH_RC4_128_SHA: {Name: "TLS_ECDH_anon_WITH_RC4_128_SHA", Protocol: TLS, KeyAgreement: ECDH_anon, Cipher: RC4_128, Hash: SHA}, + TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: ECDH_anon, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_ECDH_anon_WITH_AES_128_CBC_SHA: {Name: "TLS_ECDH_anon_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: ECDH_anon, Cipher: AES_128_CBC, Hash: SHA}, + TLS_ECDH_anon_WITH_AES_256_CBC_SHA: {Name: "TLS_ECDH_anon_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: ECDH_anon, Cipher: AES_256_CBC, Hash: SHA}, + TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: SRP_SHA, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: SRP_SHA_RSA, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: SRP_SHA_DSS, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_SRP_SHA_WITH_AES_128_CBC_SHA: {Name: "TLS_SRP_SHA_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: SRP_SHA, Cipher: AES_128_CBC, Hash: SHA}, + TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA: {Name: "TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: SRP_SHA_RSA, Cipher: AES_128_CBC, Hash: SHA}, + TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA: {Name: "TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: SRP_SHA_DSS, Cipher: AES_128_CBC, Hash: SHA}, + TLS_SRP_SHA_WITH_AES_256_CBC_SHA: {Name: "TLS_SRP_SHA_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: SRP_SHA, Cipher: AES_256_CBC, Hash: SHA}, + TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA: {Name: "TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: SRP_SHA_RSA, Cipher: AES_256_CBC, Hash: SHA}, + TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA: {Name: "TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: SRP_SHA_DSS, Cipher: AES_256_CBC, Hash: SHA}, + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256: {Name: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384: {Name: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: AES_256_CBC, Hash: SHA384}, + TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256: {Name: "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384: {Name: "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: AES_256_CBC, Hash: SHA384}, + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256: {Name: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384: {Name: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: AES_256_CBC, Hash: SHA384}, + TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256: {Name: "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384: {Name: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: AES_256_CBC, Hash: SHA384}, + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256: {Name: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384: {Name: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256: {Name: "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384: {Name: "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256: {Name: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384: {Name: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256: {Name: "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384: {Name: "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_ECDHE_PSK_WITH_RC4_128_SHA: {Name: "TLS_ECDHE_PSK_WITH_RC4_128_SHA", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: RC4_128, Hash: SHA}, + TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA: {Name: "TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: _3DES_EDE_CBC, Hash: SHA}, + TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA: {Name: "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: AES_128_CBC, Hash: SHA}, + TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA: {Name: "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: AES_256_CBC, Hash: SHA}, + TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256: {Name: "TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: AES_128_CBC, Hash: SHA256}, + TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384: {Name: "TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: AES_256_CBC, Hash: SHA384}, + TLS_ECDHE_PSK_WITH_NULL_SHA: {Name: "TLS_ECDHE_PSK_WITH_NULL_SHA", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: NULL_Cipher, Hash: SHA}, + TLS_ECDHE_PSK_WITH_NULL_SHA256: {Name: "TLS_ECDHE_PSK_WITH_NULL_SHA256", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: NULL_Cipher, Hash: SHA256}, + TLS_ECDHE_PSK_WITH_NULL_SHA384: {Name: "TLS_ECDHE_PSK_WITH_NULL_SHA384", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: NULL_Cipher, Hash: SHA384}, + TLS_RSA_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_RSA_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: RSA, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_RSA_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_RSA_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: RSA, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_DH_anon_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_DH_anon_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DH_anon, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_DH_anon_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_DH_anon_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: DH_anon, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_RSA_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_RSA_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: RSA, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_RSA_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_RSA_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: RSA, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_DH_anon_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_DH_anon_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DH_anon, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_DH_anon_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_DH_anon_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DH_anon, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_PSK_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_PSK_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: PSK, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_PSK_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_PSK_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: PSK, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_PSK_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_PSK_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: PSK, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_PSK_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_PSK_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: PSK, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256: {Name: "TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: ARIA_128_GCM, Hash: SHA256}, + TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384: {Name: "TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: ARIA_256_GCM, Hash: SHA384}, + TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256: {Name: "TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: ARIA_128_CBC, Hash: SHA256}, + TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384: {Name: "TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: ARIA_256_CBC, Hash: SHA384}, + TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384: {Name: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: CAMELLIA_256_CBC, Hash: SHA384}, + TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384: {Name: "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: CAMELLIA_256_CBC, Hash: SHA384}, + TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384: {Name: "TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: CAMELLIA_256_CBC, Hash: SHA384}, + TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384: {Name: "TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: CAMELLIA_256_CBC, Hash: SHA384}, + TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: RSA, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: RSA, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DH_RSA, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DHE_DSS, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DH_DSS, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DH_anon, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DH_anon, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDH_ECDSA, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDH_RSA, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: PSK, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: PSK, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256: {Name: "TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: CAMELLIA_128_GCM, Hash: SHA256}, + TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384: {Name: "TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: CAMELLIA_256_GCM, Hash: SHA384}, + TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: PSK, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384: {Name: "TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: PSK, Cipher: CAMELLIA_256_CBC, Hash: SHA384}, + TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384: {Name: "TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: CAMELLIA_256_CBC, Hash: SHA384}, + TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384: {Name: "TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: CAMELLIA_256_CBC, Hash: SHA384}, + TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256: {Name: "TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: CAMELLIA_128_CBC, Hash: SHA256}, + TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384: {Name: "TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: CAMELLIA_256_CBC, Hash: SHA384}, + TLS_RSA_WITH_AES_128_CCM: {Name: "TLS_RSA_WITH_AES_128_CCM", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_RSA_WITH_AES_256_CCM: {Name: "TLS_RSA_WITH_AES_256_CCM", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_DHE_RSA_WITH_AES_128_CCM: {Name: "TLS_DHE_RSA_WITH_AES_128_CCM", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_DHE_RSA_WITH_AES_256_CCM: {Name: "TLS_DHE_RSA_WITH_AES_256_CCM", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_RSA_WITH_AES_128_CCM_8: {Name: "TLS_RSA_WITH_AES_128_CCM_8", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_RSA_WITH_AES_256_CCM_8: {Name: "TLS_RSA_WITH_AES_256_CCM_8", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_DHE_RSA_WITH_AES_128_CCM_8: {Name: "TLS_DHE_RSA_WITH_AES_128_CCM_8", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_DHE_RSA_WITH_AES_256_CCM_8: {Name: "TLS_DHE_RSA_WITH_AES_256_CCM_8", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_PSK_WITH_AES_128_CCM: {Name: "TLS_PSK_WITH_AES_128_CCM", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_PSK_WITH_AES_256_CCM: {Name: "TLS_PSK_WITH_AES_256_CCM", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_DHE_PSK_WITH_AES_128_CCM: {Name: "TLS_DHE_PSK_WITH_AES_128_CCM", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_DHE_PSK_WITH_AES_256_CCM: {Name: "TLS_DHE_PSK_WITH_AES_256_CCM", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_PSK_WITH_AES_128_CCM_8: {Name: "TLS_PSK_WITH_AES_128_CCM_8", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_PSK_WITH_AES_256_CCM_8: {Name: "TLS_PSK_WITH_AES_256_CCM_8", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_PSK_DHE_WITH_AES_128_CCM_8: {Name: "TLS_PSK_DHE_WITH_AES_128_CCM_8", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_PSK_DHE_WITH_AES_256_CCM_8: {Name: "TLS_PSK_DHE_WITH_AES_256_CCM_8", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_ECDHE_ECDSA_WITH_AES_128_CCM: {Name: "TLS_ECDHE_ECDSA_WITH_AES_128_CCM", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_ECDHE_ECDSA_WITH_AES_256_CCM: {Name: "TLS_ECDHE_ECDSA_WITH_AES_256_CCM", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8: {Name: "TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8: {Name: "TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_ECCPWD_WITH_AES_128_GCM_SHA256: {Name: "TLS_ECCPWD_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECCPWD, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_ECCPWD_WITH_AES_256_GCM_SHA384: {Name: "TLS_ECCPWD_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECCPWD, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_ECCPWD_WITH_AES_128_CCM_SHA256: {Name: "TLS_ECCPWD_WITH_AES_128_CCM_SHA256", Protocol: TLS, KeyAgreement: ECCPWD, Cipher: AES_128_CCM, Hash: SHA256}, + TLS_ECCPWD_WITH_AES_256_CCM_SHA384: {Name: "TLS_ECCPWD_WITH_AES_256_CCM_SHA384", Protocol: TLS, KeyAgreement: ECCPWD, Cipher: AES_256_CCM, Hash: SHA384}, + TLS_SHA256_SHA256: {Name: "TLS_SHA256_SHA256", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_SHA384_SHA384: {Name: "TLS_SHA384_SHA384", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC: {Name: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC: {Name: "TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_GOSTR341112_256_WITH_28147_CNT_IMIT: {Name: "TLS_GOSTR341112_256_WITH_28147_CNT_IMIT", Protocol: TLS, KeyAgreement: GOSTR341112_256, Cipher: _28147_CNT, Hash: IMIT}, + TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L: {Name: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_GOSTR341112_256_WITH_MAGMA_MGM_L: {Name: "TLS_GOSTR341112_256_WITH_MAGMA_MGM_L", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S: {Name: "TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_GOSTR341112_256_WITH_MAGMA_MGM_S: {Name: "TLS_GOSTR341112_256_WITH_MAGMA_MGM_S", Protocol: TLS, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256: {Name: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256", Protocol: TLS, KeyAgreement: ECDHE_RSA, Cipher: CHACHA20_POLY1305, Hash: SHA256}, + TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256: {Name: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256", Protocol: TLS, KeyAgreement: ECDHE_ECDSA, Cipher: CHACHA20_POLY1305, Hash: SHA256}, + TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256: {Name: "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256", Protocol: TLS, KeyAgreement: DHE_RSA, Cipher: CHACHA20_POLY1305, Hash: SHA256}, + TLS_PSK_WITH_CHACHA20_POLY1305_SHA256: {Name: "TLS_PSK_WITH_CHACHA20_POLY1305_SHA256", Protocol: TLS, KeyAgreement: PSK, Cipher: CHACHA20_POLY1305, Hash: SHA256}, + TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256: {Name: "TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: CHACHA20_POLY1305, Hash: SHA256}, + TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256: {Name: "TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256", Protocol: TLS, KeyAgreement: DHE_PSK, Cipher: CHACHA20_POLY1305, Hash: SHA256}, + TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256: {Name: "TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256", Protocol: TLS, KeyAgreement: RSA_PSK, Cipher: CHACHA20_POLY1305, Hash: SHA256}, + TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256: {Name: "TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: AES_128_GCM, Hash: SHA256}, + TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384: {Name: "TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: AES_256_GCM, Hash: SHA384}, + TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256: {Name: "TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: AES_128_CCM_8, Hash: SHA256}, + TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256: {Name: "TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256", Protocol: TLS, KeyAgreement: ECDHE_PSK, Cipher: AES_128_CCM, Hash: SHA256}, + TLS_GOSTR341094_WITH_28147_CNT_IMIT: {Name: "TLS_GOSTR341094_WITH_28147_CNT_IMIT", Protocol: TLS, KeyAgreement: GOSTR341094, Cipher: _28147_CNT, Hash: IMIT}, + TLS_GOSTR341001_WITH_28147_CNT_IMIT: {Name: "TLS_GOSTR341001_WITH_28147_CNT_IMIT", Protocol: TLS, KeyAgreement: GOSTR341001, Cipher: _28147_CNT, Hash: IMIT}, + TLS_GOSTR341094_WITH_NULL_GOSTR3411: {Name: "TLS_GOSTR341094_WITH_NULL_GOSTR3411", Protocol: TLS, KeyAgreement: GOSTR341094, Cipher: NULL_Cipher, Hash: GOSTR3411}, + TLS_GOSTR341001_WITH_NULL_GOSTR3411: {Name: "TLS_GOSTR341001_WITH_NULL_GOSTR3411", Protocol: TLS, KeyAgreement: GOSTR341001, Cipher: NULL_Cipher, Hash: GOSTR3411}, + SSL_RSA_FIPS_WITH_DES_CBC_SHA: {Name: "SSL_RSA_FIPS_WITH_DES_CBC_SHA", Protocol: SSL, KeyAgreement: RSA_FIPS, Cipher: DES_CBC, Hash: SHA}, + SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA: {Name: "SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA", Protocol: SSL, KeyAgreement: RSA_FIPS, Cipher: _3DES_EDE_CBC, Hash: SHA}, + SSL_CK_RC4_128_WITH_MD5: {Name: "SSL_CK_RC4_128_WITH_MD5", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + SSL_CK_RC4_128_EXPORT40_WITH_MD5: {Name: "SSL_CK_RC4_128_EXPORT40_WITH_MD5", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + SSL_CK_RC2_128_CBC_WITH_MD5: {Name: "SSL_CK_RC2_128_CBC_WITH_MD5", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5: {Name: "SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + SSL_CK_IDEA_128_CBC_WITH_MD5: {Name: "SSL_CK_IDEA_128_CBC_WITH_MD5", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + SSL_CK_DES_64_CBC_WITH_MD5: {Name: "SSL_CK_DES_64_CBC_WITH_MD5", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + SSL_CK_DES_64_CBC_WITH_SHA: {Name: "SSL_CK_DES_64_CBC_WITH_SHA", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + SSL_CK_DES_192_EDE3_CBC_WITH_MD5: {Name: "SSL_CK_DES_192_EDE3_CBC_WITH_MD5", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + SSL_CK_DES_192_EDE3_CBC_WITH_SHA: {Name: "SSL_CK_DES_192_EDE3_CBC_WITH_SHA", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + SSL_CK_RC4_64_WITH_MD5: {Name: "SSL_CK_RC4_64_WITH_MD5", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + SSL_CK_DES_64_CFB64_WITH_MD5_1: {Name: "SSL_CK_DES_64_CFB64_WITH_MD5_1", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, + SSL_CK_NULL: {Name: "SSL_CK_NULL", Protocol: SSL, KeyAgreement: UNKNOWN_KeyAgreement, Cipher: UNKNOWN_Cipher, Hash: UNKNOWN_Hash}, +} diff --git a/format/tls/ciphersuites/other.csv b/format/tls/ciphersuites/other.csv new file mode 100644 index 00000000..f0891770 --- /dev/null +++ b/format/tls/ciphersuites/other.csv @@ -0,0 +1,21 @@ +# GOST +"0x00,0x80",TLS_GOSTR341094_WITH_28147_CNT_IMIT,,, +"0x00,0x81",TLS_GOSTR341001_WITH_28147_CNT_IMIT,,, +"0x00,0x82",TLS_GOSTR341094_WITH_NULL_GOSTR3411,,, +"0x00,0x83",TLS_GOSTR341001_WITH_NULL_GOSTR3411,,, +# SSL +"0xfe,0xfe",SSL_RSA_FIPS_WITH_DES_CBC_SHA,,, +"0xfe,0xff",SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA,,, +# SSL and other rare ones +"0x01,0x00,0x80",SSL_CK_RC4_128_WITH_MD5,,, +"0x02,0x00,0x80",SSL_CK_RC4_128_EXPORT40_WITH_MD5,,, +"0x03,0x00,0x80",SSL_CK_RC2_128_CBC_WITH_MD5,,, +"0x04,0x00,0x80",SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5,,, +"0x05,0x00,0x80",SSL_CK_IDEA_128_CBC_WITH_MD5,,, +"0x06,0x00,0x40",SSL_CK_DES_64_CBC_WITH_MD5,,, +"0x06,0x01,0x40",SSL_CK_DES_64_CBC_WITH_SHA,,, +"0x07,0x00,0xc0",SSL_CK_DES_192_EDE3_CBC_WITH_MD5,,, +"0x07,0x01,0xc0",SSL_CK_DES_192_EDE3_CBC_WITH_SHA,,, +"0x08,0x00,0x80",SSL_CK_RC4_64_WITH_MD5,,, +"0xff,0x08,0x00",SSL_CK_DES_64_CFB64_WITH_MD5_1,,, +"0xff,0x08,0x10",SSL_CK_NULL,,, \ No newline at end of file diff --git a/format/tls/ciphersuites/tls-parameters-4.csv b/format/tls/ciphersuites/tls-parameters-4.csv new file mode 100644 index 00000000..4f645a77 --- /dev/null +++ b/format/tls/ciphersuites/tls-parameters-4.csv @@ -0,0 +1,449 @@ +Value,Description,DTLS-OK,Recommended,Reference +"0x00,0x00",TLS_NULL_WITH_NULL_NULL,Y,N,[RFC5246] +"0x00,0x01",TLS_RSA_WITH_NULL_MD5,Y,N,[RFC5246] +"0x00,0x02",TLS_RSA_WITH_NULL_SHA,Y,N,[RFC5246] +"0x00,0x03",TLS_RSA_EXPORT_WITH_RC4_40_MD5,N,N,[RFC4346][RFC6347] +"0x00,0x04",TLS_RSA_WITH_RC4_128_MD5,N,N,[RFC5246][RFC6347] +"0x00,0x05",TLS_RSA_WITH_RC4_128_SHA,N,N,[RFC5246][RFC6347] +"0x00,0x06",TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5,Y,N,[RFC4346] +"0x00,0x07",TLS_RSA_WITH_IDEA_CBC_SHA,Y,N,[RFC5469][status-change-tls-des-idea-ciphers-to-historic] +"0x00,0x08",TLS_RSA_EXPORT_WITH_DES40_CBC_SHA,Y,N,[RFC4346] +"0x00,0x09",TLS_RSA_WITH_DES_CBC_SHA,Y,N,[RFC5469][status-change-tls-des-idea-ciphers-to-historic] +"0x00,0x0A",TLS_RSA_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC5246] +"0x00,0x0B",TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA,Y,N,[RFC4346] +"0x00,0x0C",TLS_DH_DSS_WITH_DES_CBC_SHA,Y,N,[RFC5469][status-change-tls-des-idea-ciphers-to-historic] +"0x00,0x0D",TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC5246] +"0x00,0x0E",TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA,Y,N,[RFC4346] +"0x00,0x0F",TLS_DH_RSA_WITH_DES_CBC_SHA,Y,N,[RFC5469][status-change-tls-des-idea-ciphers-to-historic] +"0x00,0x10",TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC5246] +"0x00,0x11",TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA,Y,N,[RFC4346] +"0x00,0x12",TLS_DHE_DSS_WITH_DES_CBC_SHA,Y,N,[RFC5469][status-change-tls-des-idea-ciphers-to-historic] +"0x00,0x13",TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC5246] +"0x00,0x14",TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA,Y,N,[RFC4346] +"0x00,0x15",TLS_DHE_RSA_WITH_DES_CBC_SHA,Y,N,[RFC5469][status-change-tls-des-idea-ciphers-to-historic] +"0x00,0x16",TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC5246] +"0x00,0x17",TLS_DH_anon_EXPORT_WITH_RC4_40_MD5,N,N,[RFC4346][RFC6347] +"0x00,0x18",TLS_DH_anon_WITH_RC4_128_MD5,N,N,[RFC5246][RFC6347] +"0x00,0x19",TLS_DH_anon_EXPORT_WITH_DES40_CBC_SHA,Y,N,[RFC4346] +"0x00,0x1A",TLS_DH_anon_WITH_DES_CBC_SHA,Y,N,[RFC5469][status-change-tls-des-idea-ciphers-to-historic] +"0x00,0x1B",TLS_DH_anon_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC5246] +"0x00,0x1C-1D",Reserved to avoid conflicts with SSLv3,,,[RFC5246] +"0x00,0x1E",TLS_KRB5_WITH_DES_CBC_SHA,Y,N,[RFC2712] +"0x00,0x1F",TLS_KRB5_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC2712] +"0x00,0x20",TLS_KRB5_WITH_RC4_128_SHA,N,N,[RFC2712][RFC6347] +"0x00,0x21",TLS_KRB5_WITH_IDEA_CBC_SHA,Y,N,[RFC2712] +"0x00,0x22",TLS_KRB5_WITH_DES_CBC_MD5,Y,N,[RFC2712] +"0x00,0x23",TLS_KRB5_WITH_3DES_EDE_CBC_MD5,Y,N,[RFC2712] +"0x00,0x24",TLS_KRB5_WITH_RC4_128_MD5,N,N,[RFC2712][RFC6347] +"0x00,0x25",TLS_KRB5_WITH_IDEA_CBC_MD5,Y,N,[RFC2712] +"0x00,0x26",TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA,Y,N,[RFC2712] +"0x00,0x27",TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA,Y,N,[RFC2712] +"0x00,0x28",TLS_KRB5_EXPORT_WITH_RC4_40_SHA,N,N,[RFC2712][RFC6347] +"0x00,0x29",TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5,Y,N,[RFC2712] +"0x00,0x2A",TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5,Y,N,[RFC2712] +"0x00,0x2B",TLS_KRB5_EXPORT_WITH_RC4_40_MD5,N,N,[RFC2712][RFC6347] +"0x00,0x2C",TLS_PSK_WITH_NULL_SHA,Y,N,[RFC4785] +"0x00,0x2D",TLS_DHE_PSK_WITH_NULL_SHA,Y,N,[RFC4785] +"0x00,0x2E",TLS_RSA_PSK_WITH_NULL_SHA,Y,N,[RFC4785] +"0x00,0x2F",TLS_RSA_WITH_AES_128_CBC_SHA,Y,N,[RFC5246] +"0x00,0x30",TLS_DH_DSS_WITH_AES_128_CBC_SHA,Y,N,[RFC5246] +"0x00,0x31",TLS_DH_RSA_WITH_AES_128_CBC_SHA,Y,N,[RFC5246] +"0x00,0x32",TLS_DHE_DSS_WITH_AES_128_CBC_SHA,Y,N,[RFC5246] +"0x00,0x33",TLS_DHE_RSA_WITH_AES_128_CBC_SHA,Y,N,[RFC5246] +"0x00,0x34",TLS_DH_anon_WITH_AES_128_CBC_SHA,Y,N,[RFC5246] +"0x00,0x35",TLS_RSA_WITH_AES_256_CBC_SHA,Y,N,[RFC5246] +"0x00,0x36",TLS_DH_DSS_WITH_AES_256_CBC_SHA,Y,N,[RFC5246] +"0x00,0x37",TLS_DH_RSA_WITH_AES_256_CBC_SHA,Y,N,[RFC5246] +"0x00,0x38",TLS_DHE_DSS_WITH_AES_256_CBC_SHA,Y,N,[RFC5246] +"0x00,0x39",TLS_DHE_RSA_WITH_AES_256_CBC_SHA,Y,N,[RFC5246] +"0x00,0x3A",TLS_DH_anon_WITH_AES_256_CBC_SHA,Y,N,[RFC5246] +"0x00,0x3B",TLS_RSA_WITH_NULL_SHA256,Y,N,[RFC5246] +"0x00,0x3C",TLS_RSA_WITH_AES_128_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x3D",TLS_RSA_WITH_AES_256_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x3E",TLS_DH_DSS_WITH_AES_128_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x3F",TLS_DH_RSA_WITH_AES_128_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x40",TLS_DHE_DSS_WITH_AES_128_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x41",TLS_RSA_WITH_CAMELLIA_128_CBC_SHA,Y,N,[RFC5932] +"0x00,0x42",TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA,Y,N,[RFC5932] +"0x00,0x43",TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA,Y,N,[RFC5932] +"0x00,0x44",TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA,Y,N,[RFC5932] +"0x00,0x45",TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA,Y,N,[RFC5932] +"0x00,0x46",TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA,Y,N,[RFC5932] +"0x00,0x47-4F","Reserved to avoid conflicts with +deployed implementations",,,[Pasi_Eronen] +"0x00,0x50-58",Reserved to avoid conflicts,,,"[Pasi Eronen, , 2008-04-04. 2008-04-04]" +"0x00,0x59-5C","Reserved to avoid conflicts with +deployed implementations",,,[Pasi_Eronen] +"0x00,0x5D-5F",Unassigned,,, +"0x00,0x60-66","Reserved to avoid conflicts with +widely deployed implementations",,,[Pasi_Eronen] +"0x00,0x67",TLS_DHE_RSA_WITH_AES_128_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x68",TLS_DH_DSS_WITH_AES_256_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x69",TLS_DH_RSA_WITH_AES_256_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x6A",TLS_DHE_DSS_WITH_AES_256_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x6B",TLS_DHE_RSA_WITH_AES_256_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x6C",TLS_DH_anon_WITH_AES_128_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x6D",TLS_DH_anon_WITH_AES_256_CBC_SHA256,Y,N,[RFC5246] +"0x00,0x6E-83",Unassigned,,, +"0x00,0x84",TLS_RSA_WITH_CAMELLIA_256_CBC_SHA,Y,N,[RFC5932] +"0x00,0x85",TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA,Y,N,[RFC5932] +"0x00,0x86",TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA,Y,N,[RFC5932] +"0x00,0x87",TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA,Y,N,[RFC5932] +"0x00,0x88",TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA,Y,N,[RFC5932] +"0x00,0x89",TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA,Y,N,[RFC5932] +"0x00,0x8A",TLS_PSK_WITH_RC4_128_SHA,N,N,[RFC4279][RFC6347] +"0x00,0x8B",TLS_PSK_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC4279] +"0x00,0x8C",TLS_PSK_WITH_AES_128_CBC_SHA,Y,N,[RFC4279] +"0x00,0x8D",TLS_PSK_WITH_AES_256_CBC_SHA,Y,N,[RFC4279] +"0x00,0x8E",TLS_DHE_PSK_WITH_RC4_128_SHA,N,N,[RFC4279][RFC6347] +"0x00,0x8F",TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC4279] +"0x00,0x90",TLS_DHE_PSK_WITH_AES_128_CBC_SHA,Y,N,[RFC4279] +"0x00,0x91",TLS_DHE_PSK_WITH_AES_256_CBC_SHA,Y,N,[RFC4279] +"0x00,0x92",TLS_RSA_PSK_WITH_RC4_128_SHA,N,N,[RFC4279][RFC6347] +"0x00,0x93",TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC4279] +"0x00,0x94",TLS_RSA_PSK_WITH_AES_128_CBC_SHA,Y,N,[RFC4279] +"0x00,0x95",TLS_RSA_PSK_WITH_AES_256_CBC_SHA,Y,N,[RFC4279] +"0x00,0x96",TLS_RSA_WITH_SEED_CBC_SHA,Y,N,[RFC4162] +"0x00,0x97",TLS_DH_DSS_WITH_SEED_CBC_SHA,Y,N,[RFC4162] +"0x00,0x98",TLS_DH_RSA_WITH_SEED_CBC_SHA,Y,N,[RFC4162] +"0x00,0x99",TLS_DHE_DSS_WITH_SEED_CBC_SHA,Y,N,[RFC4162] +"0x00,0x9A",TLS_DHE_RSA_WITH_SEED_CBC_SHA,Y,N,[RFC4162] +"0x00,0x9B",TLS_DH_anon_WITH_SEED_CBC_SHA,Y,N,[RFC4162] +"0x00,0x9C",TLS_RSA_WITH_AES_128_GCM_SHA256,Y,N,[RFC5288] +"0x00,0x9D",TLS_RSA_WITH_AES_256_GCM_SHA384,Y,N,[RFC5288] +"0x00,0x9E",TLS_DHE_RSA_WITH_AES_128_GCM_SHA256,Y,Y,[RFC5288] +"0x00,0x9F",TLS_DHE_RSA_WITH_AES_256_GCM_SHA384,Y,Y,[RFC5288] +"0x00,0xA0",TLS_DH_RSA_WITH_AES_128_GCM_SHA256,Y,N,[RFC5288] +"0x00,0xA1",TLS_DH_RSA_WITH_AES_256_GCM_SHA384,Y,N,[RFC5288] +"0x00,0xA2",TLS_DHE_DSS_WITH_AES_128_GCM_SHA256,Y,N,[RFC5288] +"0x00,0xA3",TLS_DHE_DSS_WITH_AES_256_GCM_SHA384,Y,N,[RFC5288] +"0x00,0xA4",TLS_DH_DSS_WITH_AES_128_GCM_SHA256,Y,N,[RFC5288] +"0x00,0xA5",TLS_DH_DSS_WITH_AES_256_GCM_SHA384,Y,N,[RFC5288] +"0x00,0xA6",TLS_DH_anon_WITH_AES_128_GCM_SHA256,Y,N,[RFC5288] +"0x00,0xA7",TLS_DH_anon_WITH_AES_256_GCM_SHA384,Y,N,[RFC5288] +"0x00,0xA8",TLS_PSK_WITH_AES_128_GCM_SHA256,Y,N,[RFC5487] +"0x00,0xA9",TLS_PSK_WITH_AES_256_GCM_SHA384,Y,N,[RFC5487] +"0x00,0xAA",TLS_DHE_PSK_WITH_AES_128_GCM_SHA256,Y,Y,[RFC5487] +"0x00,0xAB",TLS_DHE_PSK_WITH_AES_256_GCM_SHA384,Y,Y,[RFC5487] +"0x00,0xAC",TLS_RSA_PSK_WITH_AES_128_GCM_SHA256,Y,N,[RFC5487] +"0x00,0xAD",TLS_RSA_PSK_WITH_AES_256_GCM_SHA384,Y,N,[RFC5487] +"0x00,0xAE",TLS_PSK_WITH_AES_128_CBC_SHA256,Y,N,[RFC5487] +"0x00,0xAF",TLS_PSK_WITH_AES_256_CBC_SHA384,Y,N,[RFC5487] +"0x00,0xB0",TLS_PSK_WITH_NULL_SHA256,Y,N,[RFC5487] +"0x00,0xB1",TLS_PSK_WITH_NULL_SHA384,Y,N,[RFC5487] +"0x00,0xB2",TLS_DHE_PSK_WITH_AES_128_CBC_SHA256,Y,N,[RFC5487] +"0x00,0xB3",TLS_DHE_PSK_WITH_AES_256_CBC_SHA384,Y,N,[RFC5487] +"0x00,0xB4",TLS_DHE_PSK_WITH_NULL_SHA256,Y,N,[RFC5487] +"0x00,0xB5",TLS_DHE_PSK_WITH_NULL_SHA384,Y,N,[RFC5487] +"0x00,0xB6",TLS_RSA_PSK_WITH_AES_128_CBC_SHA256,Y,N,[RFC5487] +"0x00,0xB7",TLS_RSA_PSK_WITH_AES_256_CBC_SHA384,Y,N,[RFC5487] +"0x00,0xB8",TLS_RSA_PSK_WITH_NULL_SHA256,Y,N,[RFC5487] +"0x00,0xB9",TLS_RSA_PSK_WITH_NULL_SHA384,Y,N,[RFC5487] +"0x00,0xBA",TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xBB",TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xBC",TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xBD",TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xBE",TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xBF",TLS_DH_anon_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xC0",TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xC1",TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xC2",TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xC3",TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xC4",TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xC5",TLS_DH_anon_WITH_CAMELLIA_256_CBC_SHA256,Y,N,[RFC5932] +"0x00,0xC6",TLS_SM4_GCM_SM3,N,N,[RFC8998] +"0x00,0xC7",TLS_SM4_CCM_SM3,N,N,[RFC8998] +"0x00,0xC8-FE",Unassigned,,, +"0x00,0xFF",TLS_EMPTY_RENEGOTIATION_INFO_SCSV,Y,N,[RFC5746] +"0x01-09,*",Unassigned,,, +"0x0A,0x00-09",Unassigned,,, +"0x0A,0x0A",Reserved,Y,N,[RFC8701] +"0x0A,0x0B-FF",Unassigned,,, +"0x0B-12,*",Unassigned,,, +"0x13,0x00",Unassigned,,, +"0x13,0x01",TLS_AES_128_GCM_SHA256,Y,Y,[RFC8446] +"0x13,0x02",TLS_AES_256_GCM_SHA384,Y,Y,[RFC8446] +"0x13,0x03",TLS_CHACHA20_POLY1305_SHA256,Y,Y,[RFC8446] +"0x13,0x04",TLS_AES_128_CCM_SHA256,Y,Y,[RFC8446] +"0x13,0x05",TLS_AES_128_CCM_8_SHA256,Y,N,[RFC8446][IESG Action 2018-08-16] +"0x13,0x06",TLS_AEGIS_256_SHA384,Y,N,[draft-irtf-cfrg-aegis-aead-00] +"0x13,0x07",TLS_AEGIS_128L_SHA256,Y,N,[draft-irtf-cfrg-aegis-aead-00] +"0x13,0x08-FF",Unassigned,,, +"0x14-19,*",Unassigned,,, +"0x1A,0x00-19",Unassigned,,, +"0x1A,0x1A",Reserved,Y,N,[RFC8701] +"0x1A,0x1B-FF",Unassigned,,, +"0x1B-29,*",Unassigned,,, +"0x2A,0x00-29",Unassigned,,, +"0x2A,0x2A",Reserved,Y,N,[RFC8701] +"0x2A,0x2B-FF",Unassigned,,, +"0x2B-39,*",Unassigned,,, +"0x3A,0x00-39",Unassigned,,, +"0x3A,0x3A",Reserved,Y,N,[RFC8701] +"0x3A,0x3B-FF",Unassigned,,, +"0x3B-49,*",Unassigned,,, +"0x4A,0x00-49",Unassigned,,, +"0x4A,0x4A",Reserved,Y,N,[RFC8701] +"0x4A,0x4B-FF",Unassigned,,, +"0x4B-55,*",Unassigned,,, +"0x56,0x00",TLS_FALLBACK_SCSV,Y,N,[RFC7507] +"0x56,0x01-FF",Unassigned,,, +"0x57-59,*",Unassigned,,, +"0x5A,0x00-59",Unassigned,,, +"0x5A,0x5A",Reserved,Y,N,[RFC8701] +"0x5A,0x5B-FF",Unassigned,,, +"0x5B-69,*",Unassigned,,, +"0x6A,0x00-69",Unassigned,,, +"0x6A,0x6A",Reserved,Y,N,[RFC8701] +"0x6A,0x6B-FF",Unassigned,,, +"0x6B-79,*",Unassigned,,, +"0x7A,0x00-79",Unassigned,,, +"0x7A,0x7A",Reserved,Y,N,[RFC8701] +"0x7A,0x7B-FF",Unassigned,,, +"0x7B-89,*",Unassigned,,, +"0x8A,0x00-89",Unassigned,,, +"0x8A,0x8A",Reserved,Y,N,[RFC8701] +"0x8A,0x8B-FF",Unassigned,,, +"0x8B-99,*",Unassigned,,, +"0x9A,0x00-99",Unassigned,,, +"0x9A,0x9A",Reserved,Y,N,[RFC8701] +"0x9A,0x9B-FF",Unassigned,,, +"0x9B-A9,*",Unassigned,,, +"0xAA,0x00-A9",Unassigned,,, +"0xAA,0xAA",Reserved,Y,N,[RFC8701] +"0xAA,0xAB-FF",Unassigned,,, +"0xAB-B9,*",Unassigned,,, +"0xBA,0x00-B9",Unassigned,,, +"0xBA,0xBA",Reserved,Y,N,[RFC8701] +"0xBA,0xBB-FF",Unassigned,,, +"0xBB-BF,*",Unassigned,,, +"0xC0,0x00",Unassigned,,, +"0xC0,0x01",TLS_ECDH_ECDSA_WITH_NULL_SHA,Y,N,[RFC8422] +"0xC0,0x02",TLS_ECDH_ECDSA_WITH_RC4_128_SHA,N,N,[RFC8422][RFC6347] +"0xC0,0x03",TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x04",TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x05",TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x06",TLS_ECDHE_ECDSA_WITH_NULL_SHA,Y,N,[RFC8422] +"0xC0,0x07",TLS_ECDHE_ECDSA_WITH_RC4_128_SHA,N,N,[RFC8422][RFC6347] +"0xC0,0x08",TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x09",TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x0A",TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x0B",TLS_ECDH_RSA_WITH_NULL_SHA,Y,N,[RFC8422] +"0xC0,0x0C",TLS_ECDH_RSA_WITH_RC4_128_SHA,N,N,[RFC8422][RFC6347] +"0xC0,0x0D",TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x0E",TLS_ECDH_RSA_WITH_AES_128_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x0F",TLS_ECDH_RSA_WITH_AES_256_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x10",TLS_ECDHE_RSA_WITH_NULL_SHA,Y,N,[RFC8422] +"0xC0,0x11",TLS_ECDHE_RSA_WITH_RC4_128_SHA,N,N,[RFC8422][RFC6347] +"0xC0,0x12",TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x13",TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x14",TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x15",TLS_ECDH_anon_WITH_NULL_SHA,Y,N,[RFC8422] +"0xC0,0x16",TLS_ECDH_anon_WITH_RC4_128_SHA,N,N,[RFC8422][RFC6347] +"0xC0,0x17",TLS_ECDH_anon_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x18",TLS_ECDH_anon_WITH_AES_128_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x19",TLS_ECDH_anon_WITH_AES_256_CBC_SHA,Y,N,[RFC8422] +"0xC0,0x1A",TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC5054] +"0xC0,0x1B",TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC5054] +"0xC0,0x1C",TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC5054] +"0xC0,0x1D",TLS_SRP_SHA_WITH_AES_128_CBC_SHA,Y,N,[RFC5054] +"0xC0,0x1E",TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA,Y,N,[RFC5054] +"0xC0,0x1F",TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA,Y,N,[RFC5054] +"0xC0,0x20",TLS_SRP_SHA_WITH_AES_256_CBC_SHA,Y,N,[RFC5054] +"0xC0,0x21",TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA,Y,N,[RFC5054] +"0xC0,0x22",TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA,Y,N,[RFC5054] +"0xC0,0x23",TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256,Y,N,[RFC5289] +"0xC0,0x24",TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384,Y,N,[RFC5289] +"0xC0,0x25",TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256,Y,N,[RFC5289] +"0xC0,0x26",TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384,Y,N,[RFC5289] +"0xC0,0x27",TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256,Y,N,[RFC5289] +"0xC0,0x28",TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384,Y,N,[RFC5289] +"0xC0,0x29",TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256,Y,N,[RFC5289] +"0xC0,0x2A",TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384,Y,N,[RFC5289] +"0xC0,0x2B",TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,Y,Y,[RFC5289] +"0xC0,0x2C",TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,Y,Y,[RFC5289] +"0xC0,0x2D",TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256,Y,N,[RFC5289] +"0xC0,0x2E",TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384,Y,N,[RFC5289] +"0xC0,0x2F",TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,Y,Y,[RFC5289] +"0xC0,0x30",TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,Y,Y,[RFC5289] +"0xC0,0x31",TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256,Y,N,[RFC5289] +"0xC0,0x32",TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384,Y,N,[RFC5289] +"0xC0,0x33",TLS_ECDHE_PSK_WITH_RC4_128_SHA,N,N,[RFC5489][RFC6347] +"0xC0,0x34",TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA,Y,N,[RFC5489] +"0xC0,0x35",TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA,Y,N,[RFC5489] +"0xC0,0x36",TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA,Y,N,[RFC5489] +"0xC0,0x37",TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256,Y,N,[RFC5489] +"0xC0,0x38",TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384,Y,N,[RFC5489] +"0xC0,0x39",TLS_ECDHE_PSK_WITH_NULL_SHA,Y,N,[RFC5489] +"0xC0,0x3A",TLS_ECDHE_PSK_WITH_NULL_SHA256,Y,N,[RFC5489] +"0xC0,0x3B",TLS_ECDHE_PSK_WITH_NULL_SHA384,Y,N,[RFC5489] +"0xC0,0x3C",TLS_RSA_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x3D",TLS_RSA_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x3E",TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x3F",TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x40",TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x41",TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x42",TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x43",TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x44",TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x45",TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x46",TLS_DH_anon_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x47",TLS_DH_anon_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x48",TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x49",TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x4A",TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x4B",TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x4C",TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x4D",TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x4E",TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x4F",TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x50",TLS_RSA_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x51",TLS_RSA_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x52",TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x53",TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x54",TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x55",TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x56",TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x57",TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x58",TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x59",TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x5A",TLS_DH_anon_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x5B",TLS_DH_anon_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x5C",TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x5D",TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x5E",TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x5F",TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x60",TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x61",TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x62",TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x63",TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x64",TLS_PSK_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x65",TLS_PSK_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x66",TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x67",TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x68",TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x69",TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x6A",TLS_PSK_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x6B",TLS_PSK_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x6C",TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x6D",TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x6E",TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256,Y,N,[RFC6209] +"0xC0,0x6F",TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384,Y,N,[RFC6209] +"0xC0,0x70",TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256,Y,N,[RFC6209] +"0xC0,0x71",TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384,Y,N,[RFC6209] +"0xC0,0x72",TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC6367] +"0xC0,0x73",TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,Y,N,[RFC6367] +"0xC0,0x74",TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC6367] +"0xC0,0x75",TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384,Y,N,[RFC6367] +"0xC0,0x76",TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC6367] +"0xC0,0x77",TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384,Y,N,[RFC6367] +"0xC0,0x78",TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC6367] +"0xC0,0x79",TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384,Y,N,[RFC6367] +"0xC0,0x7A",TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x7B",TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x7C",TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x7D",TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x7E",TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x7F",TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x80",TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x81",TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x82",TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x83",TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x84",TLS_DH_anon_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x85",TLS_DH_anon_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x86",TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x87",TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x88",TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x89",TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x8A",TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x8B",TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x8C",TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x8D",TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x8E",TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x8F",TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x90",TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x91",TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x92",TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256,Y,N,[RFC6367] +"0xC0,0x93",TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384,Y,N,[RFC6367] +"0xC0,0x94",TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC6367] +"0xC0,0x95",TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384,Y,N,[RFC6367] +"0xC0,0x96",TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC6367] +"0xC0,0x97",TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,Y,N,[RFC6367] +"0xC0,0x98",TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC6367] +"0xC0,0x99",TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384,Y,N,[RFC6367] +"0xC0,0x9A",TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256,Y,N,[RFC6367] +"0xC0,0x9B",TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384,Y,N,[RFC6367] +"0xC0,0x9C",TLS_RSA_WITH_AES_128_CCM,Y,N,[RFC6655] +"0xC0,0x9D",TLS_RSA_WITH_AES_256_CCM,Y,N,[RFC6655] +"0xC0,0x9E",TLS_DHE_RSA_WITH_AES_128_CCM,Y,Y,[RFC6655] +"0xC0,0x9F",TLS_DHE_RSA_WITH_AES_256_CCM,Y,Y,[RFC6655] +"0xC0,0xA0",TLS_RSA_WITH_AES_128_CCM_8,Y,N,[RFC6655] +"0xC0,0xA1",TLS_RSA_WITH_AES_256_CCM_8,Y,N,[RFC6655] +"0xC0,0xA2",TLS_DHE_RSA_WITH_AES_128_CCM_8,Y,N,[RFC6655] +"0xC0,0xA3",TLS_DHE_RSA_WITH_AES_256_CCM_8,N,N,[RFC6655] +"0xC0,0xA4",TLS_PSK_WITH_AES_128_CCM,Y,N,[RFC6655] +"0xC0,0xA5",TLS_PSK_WITH_AES_256_CCM,Y,N,[RFC6655] +"0xC0,0xA6",TLS_DHE_PSK_WITH_AES_128_CCM,Y,Y,[RFC6655] +"0xC0,0xA7",TLS_DHE_PSK_WITH_AES_256_CCM,Y,Y,[RFC6655] +"0xC0,0xA8",TLS_PSK_WITH_AES_128_CCM_8,Y,N,[RFC6655] +"0xC0,0xA9",TLS_PSK_WITH_AES_256_CCM_8,Y,N,[RFC6655] +"0xC0,0xAA",TLS_PSK_DHE_WITH_AES_128_CCM_8,Y,N,[RFC6655] +"0xC0,0xAB",TLS_PSK_DHE_WITH_AES_256_CCM_8,Y,N,[RFC6655] +"0xC0,0xAC",TLS_ECDHE_ECDSA_WITH_AES_128_CCM,Y,N,[RFC7251] +"0xC0,0xAD",TLS_ECDHE_ECDSA_WITH_AES_256_CCM,Y,N,[RFC7251] +"0xC0,0xAE",TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8,Y,N,[RFC7251] +"0xC0,0xAF",TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8,Y,N,[RFC7251] +"0xC0,0xB0",TLS_ECCPWD_WITH_AES_128_GCM_SHA256,Y,N,[RFC8492] +"0xC0,0xB1",TLS_ECCPWD_WITH_AES_256_GCM_SHA384,Y,N,[RFC8492] +"0xC0,0xB2",TLS_ECCPWD_WITH_AES_128_CCM_SHA256,Y,N,[RFC8492] +"0xC0,0xB3",TLS_ECCPWD_WITH_AES_256_CCM_SHA384,Y,N,[RFC8492] +"0xC0,0xB4",TLS_SHA256_SHA256,Y,N,[RFC9150] +"0xC0,0xB5",TLS_SHA384_SHA384,Y,N,[RFC9150] +"0xC0,0xB6-FF",Unassigned,,, +"0xC1,0x00",TLS_GOSTR341112_256_WITH_KUZNYECHIK_CTR_OMAC,N,N,[RFC9189] +"0xC1,0x01",TLS_GOSTR341112_256_WITH_MAGMA_CTR_OMAC,N,N,[RFC9189] +"0xC1,0x02",TLS_GOSTR341112_256_WITH_28147_CNT_IMIT,N,N,[RFC9189] +"0xC1,0x03",TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_L,N,N,[RFC9367] +"0xC1,0x04",TLS_GOSTR341112_256_WITH_MAGMA_MGM_L,N,N,[RFC9367] +"0xC1,0x05",TLS_GOSTR341112_256_WITH_KUZNYECHIK_MGM_S,N,N,[RFC9367] +"0xC1,0x06",TLS_GOSTR341112_256_WITH_MAGMA_MGM_S,N,N,[RFC9367] +"0xC1,0x07-FF",Unassigned,,, +"0xC2-C9,*",Unassigned,,, +"0xCA,0x00-C9",Unassigned,,, +"0xCA,0xCA",Reserved,Y,N,[RFC8701] +"0xCA,0xCB-FF",Unassigned,,, +"0xCB,*",Unassigned,,, +"0xCC,0x00-A7",Unassigned,,, +"0xCC,0xA8",TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,Y,Y,[RFC7905] +"0xCC,0xA9",TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,Y,Y,[RFC7905] +"0xCC,0xAA",TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256,Y,Y,[RFC7905] +"0xCC,0xAB",TLS_PSK_WITH_CHACHA20_POLY1305_SHA256,Y,N,[RFC7905] +"0xCC,0xAC",TLS_ECDHE_PSK_WITH_CHACHA20_POLY1305_SHA256,Y,Y,[RFC7905] +"0xCC,0xAD",TLS_DHE_PSK_WITH_CHACHA20_POLY1305_SHA256,Y,Y,[RFC7905] +"0xCC,0xAE",TLS_RSA_PSK_WITH_CHACHA20_POLY1305_SHA256,Y,N,[RFC7905] +"0xCC,0xAF-FF",Unassigned,,, +"0xCD-CF,*",Unassigned,,, +"0xD0,0x00",Unassigned,,, +"0xD0,0x01",TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256,Y,Y,[RFC8442] +"0xD0,0x02",TLS_ECDHE_PSK_WITH_AES_256_GCM_SHA384,Y,Y,[RFC8442] +"0xD0,0x03",TLS_ECDHE_PSK_WITH_AES_128_CCM_8_SHA256,Y,N,[RFC8442] +"0xD0,0x04",Unassigned,,, +"0xD0,0x05",TLS_ECDHE_PSK_WITH_AES_128_CCM_SHA256,Y,Y,[RFC8442] +"0xD0,0x06-FF",Unassigned,,, +"0xD1-D9,*",Unassigned,,, +"0xDA,0x00-D9",Unassigned,,, +"0xDA,0xDA",Reserved,Y,N,[RFC8701] +"0xDA,0xDB-FF",Unassigned,,, +"0xDB-E9,*",Unassigned,,, +"0xEA,0x00-E9",Unassigned,,, +"0xEA,0xEA",Reserved,Y,N,[RFC8701] +"0xEA,0xEB-FF",Unassigned,,, +"0xEB-F9,*",Unassigned,,, +"0xFA,0x00-C9",Unassigned,,, +"0xFA,0xFA",Reserved,Y,N,[RFC8701] +"0xFA,0xFB-FF",Unassigned,,, +"0xFB-FD,*",Unassigned,,, +"0xFE,0x00-FD",Unassigned,,, +"0xFE,0xFE-FF","Reserved to avoid conflicts with +widely deployed implementations",,,[Pasi_Eronen] +"0xFF,0x00-FF",Reserved for Private Use,,,[RFC8446] diff --git a/format/tls/extensions.go b/format/tls/extensions.go new file mode 100644 index 00000000..51d2bc9f --- /dev/null +++ b/format/tls/extensions.go @@ -0,0 +1,132 @@ +package tls + +import "github.com/wader/fq/pkg/scalar" + +// https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values-1.csv + +//nolint:revive +const ( + // fq -d csv -r '.[1:][] | select(.[1] | test("unassigned|reserved";"i") | not) | "extension\(.[1]) = \(.[0] | .[0:4] + . [7:] | ascii_downcase)"' tls-extensiontype-values-1.csv + extensionServerName = 0 + extensionMaxFragmentLength = 1 + extensionClientCertificateUrl = 2 + extensionTrustedCaKeys = 3 + extensionTruncatedHmac = 4 + extensionStatusRequest = 5 + extensionUserMapping = 6 + extensionClientAuthz = 7 + extensionServerAuthz = 8 + extensionCertType = 9 + extensionSupportedGroups = 10 + extensionEcPointFormats = 11 + extensionSrp = 12 + extensionSignatureAlgorithms = 13 + extensionUseSrtp = 14 + extensionHeartbeat = 15 + extensionApplicationLayerProtocolNegotiation = 16 + extensionStatusRequestV2 = 17 + extensionSignedCertificateTimestamp = 18 + extensionClientCertificateType = 19 + extensionServerCertificateType = 20 + extensionPadding = 21 + extensionEncryptThenMac = 22 + extensionExtendedMasterSecret = 23 + extensionTokenBinding = 24 + extensionCachedInfo = 25 + extensionTlsLts = 26 + extensionCompressCertificate = 27 + extensionRecordSizeLimit = 28 + extensionPwdProtect = 29 + extensionPwdClear = 30 + extensionPasswordSalt = 31 + extensionTicketPinning = 32 + extensionTlsCertWithExternPsk = 33 + extensionDelegatedCredentials = 34 + extensionSessionTicket = 35 + extensionTLMSP = 36 + extensionTLMSPProxying = 37 + extensionTLMSPDelegate = 38 + extensionSupportedEktCiphers = 39 + extensionPreSharedKey = 41 + extensionEarlyData = 42 + extensionSupportedVersions = 43 + extensionCookie = 44 + extensionPskKeyExchangeModes = 45 + extensionCertificateAuthorities = 47 + extensionOidFilters = 48 + extensionPostHandshakeAuth = 49 + extensionSignatureAlgorithmsCert = 50 + extensionKeyShare = 51 + extensionTransparencyInfo = 52 + extensionConnectionId53 = 53 // deprecated + extensionConnectionId = 54 + extensionExternalIdHash = 55 + extensionExternalSessionId = 56 + extensionQuicTransportParameters = 57 + extensionTicketRequest = 58 + extensionDnssecChain = 59 + extensionRenegotiationInfo = 65281 +) + +var extensionNames = scalar.UintMapSymStr{ + // fq -d csv -r '.[1:][] | select(.[1] | test("unassigned|reserved";"i") | not) | "extension\(.[1] | gsub(`(?(?:^|_).)`; .c[-1:] | ascii_upcase)) = \(.[0] | .[0:4] + . [7:] | ascii_downcase)"' tls-extensiontype-values-1.csv + extensionServerName: "server_name", + extensionMaxFragmentLength: "max_fragment_length", + extensionClientCertificateUrl: "client_certificate_url", + extensionTrustedCaKeys: "trusted_ca_keys", + extensionTruncatedHmac: "truncated_hmac", + extensionStatusRequest: "status_request", + extensionUserMapping: "user_mapping", + extensionClientAuthz: "client_authz", + extensionServerAuthz: "server_authz", + extensionCertType: "cert_type", + extensionSupportedGroups: "supported_groups", + extensionEcPointFormats: "ec_point_formats", + extensionSrp: "srp", + extensionSignatureAlgorithms: "signature_algorithms", + extensionUseSrtp: "use_srtp", + extensionHeartbeat: "heartbeat", + extensionApplicationLayerProtocolNegotiation: "application_layer_protocol_negotiation", + extensionStatusRequestV2: "status_request_v2", + extensionSignedCertificateTimestamp: "signed_certificate_timestamp", + extensionClientCertificateType: "client_certificate_type", + extensionServerCertificateType: "server_certificate_type", + extensionPadding: "padding", + extensionEncryptThenMac: "encrypt_then_mac", + extensionExtendedMasterSecret: "extended_master_secret", + extensionTokenBinding: "token_binding", + extensionCachedInfo: "cached_info", + extensionTlsLts: "tls_lts", + extensionCompressCertificate: "compress_certificate", + extensionRecordSizeLimit: "record_size_limit", + extensionPwdProtect: "pwd_protect", + extensionPwdClear: "pwd_clear", + extensionPasswordSalt: "password_salt", + extensionTicketPinning: "ticket_pinning", + extensionTlsCertWithExternPsk: "tls_cert_with_extern_psk", + extensionDelegatedCredentials: "delegated_credentials", + extensionSessionTicket: "session_ticket", + extensionTLMSP: "tlmsp", + extensionTLMSPProxying: "tlmsp_proxying", + extensionTLMSPDelegate: "tlmsp_delegate", + extensionSupportedEktCiphers: "supported_ekt_ciphers", + extensionPreSharedKey: "pre_shared_key", + extensionEarlyData: "early_data", + extensionSupportedVersions: "supported_versions", + extensionCookie: "cookie", + extensionPskKeyExchangeModes: "psk_key_exchange_modes", + extensionCertificateAuthorities: "certificate_authorities", + extensionOidFilters: "oid_filters", + extensionPostHandshakeAuth: "post_handshake_auth", + extensionSignatureAlgorithmsCert: "signature_algorithms_cert", + extensionKeyShare: "key_share", + extensionTransparencyInfo: "transparency_info", + extensionConnectionId53: "connection_id53", + extensionConnectionId: "connection_id", + extensionExternalIdHash: "external_id_hash", + extensionExternalSessionId: "external_session_id", + extensionQuicTransportParameters: "quic_transport_parameters", + extensionTicketRequest: "ticket_request", + extensionDnssecChain: "dnssec_chain", + extensionRenegotiationInfo: "renegotiation_info", +} diff --git a/format/tls/keylog/keylog.go b/format/tls/keylog/keylog.go new file mode 100644 index 00000000..cee7fc74 --- /dev/null +++ b/format/tls/keylog/keylog.go @@ -0,0 +1,101 @@ +// Package keylog parses NSS key log format +// https://firefox-source-docs.mozilla.org/security/nss/legacy/key_log_format/index.html +//

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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..db61d1ce --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest @@ -0,0 +1,456 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xeac-NA (0) + | | | client{}: 0xeac-NA (0) + | | | ip: "127.0.0.1" 0xeac-NA (0) + | | | port: 56718 0xeac-NA (0) + | | | has_start: true 0xeac-NA (0) + | | | has_end: false 0xeac-NA (0) + | | | skipped_bytes: 0 0xeac-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x175.7 (374) + | | | records[0:6]: 0x0-0x175.7 (374) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000| 3e| >| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|a5 f4 08 5f 49 3a 4c 59 64 a9 a9 6b aa 38 39 7c|..._I:LYd..k.89|| + 0x002|c6 25 c5 14 be e6 2b f1 af b1 db |.%....+.... | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x002| 00 87| ..| [0]: "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA" (0x87) cipher_suit 0x2e-0x2f.7 (2) + 0x003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xb0.7 (75) + 0x006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x006| 00 46 | .F | length: 70 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xb0.7 (70) + 0x006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x006| 00 00 42 | ..B | length: 66 0x6c-0x6e.7 (3) + | | | public{}: 0x6f-NA (0) + 0x006| 00| .| length: 64 0x6f-0x70.7 (2) + 0x007|40 |@ | + 0x007| 45 af 35 e7 c1 42 00 09 b1 30 13 55 78 1c c6| E.5..B...0.Ux..| data: raw bits 0x71-0xb0.7 (64) + 0x008|f0 92 7f e1 db 76 c4 ad 86 82 7d 2b 0a 50 a3 55|.....v....}+.P.U| + * |until 0xb0.7 (64) | | + | | | [2]{}: record 0xb1-0xb6.7 (6) + 0x00b| 14 | . | type: "change_cipher_spec" (20) (valid) 0xb1-0xb1.7 (1) + 0x00b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb2-0xb3.7 (2) + 0x00b| 00 01 | .. | length: 1 0xb4-0xb5.7 (2) + | | | message{}: 0xb6-0xb6.7 (1) + 0x00b| 01 | . | type: 1 0xb6-0xb6.7 (1) + | | | [3]{}: record 0xb7-0xfb.7 (69) + 0x00b| 16 | . | type: "handshake" (22) (valid) 0xb7-0xb7.7 (1) + 0x00b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb8-0xb9.7 (2) + 0x00b| 00 40 | .@ | length: 64 0xba-0xbb.7 (2) + 0x00b| e4 3e 93 f6| .>..| encrypted_data: raw bits 0xbc-0xfb.7 (64) + 0x00c|5a 81 99 2d cf e9 13 fb b3 d9 d9 11 cf 86 b2 f0|Z..-............| + * |until 0xfb.7 (64) | | + | | | [4]{}: record 0xfc-0x140.7 (69) + 0x00f| 17 | . | type: "application_data" (23) (valid) 0xfc-0xfc.7 (1) + 0x00f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xfd-0xfe.7 (2) + 0x00f| 00| .| length: 64 0xff-0x100.7 (2) + 0x010|40 |@ | + 0x010| 39 f0 5f 1e 84 b3 9e e8 27 6d c0 32 1b ac b7| 9._.....'m.2...| encrypted_data: raw bits 0x101-0x140.7 (64) + 0x011|c9 6f 3e 56 9d 24 6b 25 6a 1f 4d 60 3e 53 eb 23|.o>V.$k%j.M`>S.#| + * |until 0x140.7 (64) | | + | | | [5]{}: record 0x141-0x175.7 (53) + 0x014| 15 | . | type: "alert" (21) (valid) 0x141-0x141.7 (1) + 0x014| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x142-0x143.7 (2) + 0x014| 00 30 | .0 | length: 48 0x144-0x145.7 (2) + 0x014| e2 cb 1e 06 a7 f6 20 a0 96 e3| ...... ...| encrypted_data: raw bits 0x146-0x175.7 (48) + 0x015|98 c8 8c 99 dd c7 dc 0a 8c a9 14 c6 d1 f0 46 b2|..............F.| + * |until 0x175.7 (end) (48) | | + | | | server{}: 0xeac-NA (0) + | | | ip: "127.0.0.1" 0xeac-NA (0) + | | | port: 4433 0xeac-NA (0) + | | | has_start: true 0xeac-NA (0) + | | | has_end: true 0xeac-NA (0) + | | | skipped_bytes: 0 0xeac-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x91d.7 (2334) + | | | records[0:8]: 0x0-0x91d.7 (2334) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000| f5| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|a5 96 40 19 55 d9 ce 5a 12 a0 c2 69 df 79 f7 3b|..@.U..Z...i.y.;| + 0x002|1d b7 9d 44 05 df 15 de f5 b9 73 |...D......s | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 87 | .. | cipher_suit: "TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA" (0x87) 0x2c-0x2d.7 (2) + 0x002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x2c3.7 (645) + 0x003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x004| 02 80 | .. | length: 640 0x42-0x43.7 (2) + | | | message{}: 0x44-0x2c3.7 (640) + 0x004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x004| 00 02 7c | ..| | length: 636 0x45-0x47.7 (3) + 0x004| 00 02 79 | ..y | certificates_length: 633 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x2c3.7 (633) + | | | [0]{}: certificate 0x4b-0x2c3.7 (633) + 0x004| 00 02 76 | ..v | length: 630 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x2c3.7 (630) + 0x004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x004| 82| .| length: 626 0x4f-0x51.7 (3) + 0x005|02 72 |.r | + | | | constructed[0:3]: 0x52-0x2c3.7 (626) + | | | [0]{}: object 0x52-0x287.7 (566) + 0x005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x005| 82 02 32 | ..2 | length: 562 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x287.7 (562) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x005| 00 c6 85 8b d3 08 d4 32| .......2| value: 14304993529914733277 0x58-0x60.7 (9) + 0x006|dd |. | + | | | [1]{}: object 0x61-0x6b.7 (11) + 0x006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x006| 09 | . | length: 9 0x62-0x62.7 (1) + | | | constructed[0:1]: 0x63-0x6b.7 (9) + | | | [0]{}: object 0x63-0x6b.7 (9) + 0x006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x006| 07 | . | length: 7 0x64-0x64.7 (1) + | | | value[0:6]: 0x65-0x6b.7 (7) + 0x006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x006| ce 38 | .8 | [3]: 10040 oid 0x68-0x69.7 (2) + 0x006| 04 | . | [4]: 4 oid 0x6a-0x6a.7 (1) + 0x006| 03 | . | [5]: 3 oid 0x6b-0x6b.7 (1) + | | | [2]{}: object 0x6c-0x8c.7 (33) + 0x006| 30 | 0 | class: "universal" (0) 0x6c-0x6c.1 (0.2) + 0x006| 30 | 0 | form: "constructed" (1) 0x6c.2-0x6c.2 (0.1) + 0x006| 30 | 0 | tag: "sequence" (0x10) 0x6c.3-0x6c.7 (0.5) + 0x006| 1f | . | length: 31 0x6d-0x6d.7 (1) + | | | constructed[0:1]: 0x6e-0x8c.7 (31) + | | | [0]{}: object 0x6e-0x8c.7 (31) + 0x006| 31 | 1 | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x006| 31 | 1 | form: "constructed" (1) 0x6e.2-0x6e.2 (0.1) + 0x006| 31 | 1 | tag: "set" (0x11) 0x6e.3-0x6e.7 (0.5) + 0x006| 1d| .| length: 29 0x6f-0x6f.7 (1) + | | | constructed[0:1]: 0x70-0x8c.7 (29) + | | | [0]{}: object 0x70-0x8c.7 (29) + 0x007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x007| 1b | . | length: 27 0x71-0x71.7 (1) + | | | constructed[0:2]: 0x72-0x8c.7 (27) + | | | [0]{}: object 0x72-0x76.7 (5) + 0x007| 06 | . | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x007| 06 | . | form: "primitive" (0) 0x72.2-0x72.2 (0.1) + 0x007| 06 | . | tag: "object_identifier" (0x6) 0x72.3-0x72.7 (0.5) + 0x007| 03 | . | length: 3 0x73-0x73.7 (1) + | | | value[0:4]: 0x74-0x76.7 (3) + 0x007| 55 | U | [0]: 2 oid 0x74-0x74.7 (1) + 0x007| 55 | U | [1]: 5 oid 0x74-0x74.7 (1) + 0x007| 04 | . | [2]: 4 oid 0x75-0x75.7 (1) + 0x007| 03 | . | [3]: 3 oid 0x76-0x76.7 (1) + | | | [1]{}: object 0x77-0x8c.7 (22) + 0x007| 0c | . | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x007| 0c | . | form: "primitive" (0) 0x77.2-0x77.2 (0.1) + 0x007| 0c | . | tag: "utf8_string" (0xc) 0x77.3-0x77.7 (0.5) + 0x007| 14 | . | length: 20 0x78-0x78.7 (1) + 0x007| 54 65 73 74 20 43 65| Test Ce| value: "Test Certificate DSS" 0x79-0x8c.7 (20) + 0x008|72 74 69 66 69 63 61 74 65 20 44 53 53 |rtificate DSS | + | | | [3]{}: object 0x8d-0xac.7 (32) + 0x008| 30 | 0 | class: "universal" (0) 0x8d-0x8d.1 (0.2) + 0x008| 30 | 0 | form: "constructed" (1) 0x8d.2-0x8d.2 (0.1) + 0x008| 30 | 0 | tag: "sequence" (0x10) 0x8d.3-0x8d.7 (0.5) + 0x008| 1e | . | length: 30 0x8e-0x8e.7 (1) + | | | constructed[0:2]: 0x8f-0xac.7 (30) + | | | [0]{}: object 0x8f-0x9d.7 (15) + 0x008| 17| .| class: "universal" (0) 0x8f-0x8f.1 (0.2) + 0x008| 17| .| form: "primitive" (0) 0x8f.2-0x8f.2 (0.1) + 0x008| 17| .| tag: "utc_time" (0x17) 0x8f.3-0x8f.7 (0.5) + 0x009|0d |. | length: 13 0x90-0x90.7 (1) + 0x009| 31 33 30 39 31 35 32 31 35 31 31 30 5a | 130915215110Z | value: "130915215110Z" 0x91-0x9d.7 (13) + | | | [1]{}: object 0x9e-0xac.7 (15) + 0x009| 17 | . | class: "universal" (0) 0x9e-0x9e.1 (0.2) + 0x009| 17 | . | form: "primitive" (0) 0x9e.2-0x9e.2 (0.1) + 0x009| 17 | . | tag: "utc_time" (0x17) 0x9e.3-0x9e.7 (0.5) + 0x009| 0d| .| length: 13 0x9f-0x9f.7 (1) + 0x00a|32 33 30 39 31 33 32 31 35 31 31 30 5a |230913215110Z | value: "230913215110Z" 0xa0-0xac.7 (13) + | | | [4]{}: object 0xad-0xcd.7 (33) + 0x00a| 30 | 0 | class: "universal" (0) 0xad-0xad.1 (0.2) + 0x00a| 30 | 0 | form: "constructed" (1) 0xad.2-0xad.2 (0.1) + 0x00a| 30 | 0 | tag: "sequence" (0x10) 0xad.3-0xad.7 (0.5) + 0x00a| 1f | . | length: 31 0xae-0xae.7 (1) + | | | constructed[0:1]: 0xaf-0xcd.7 (31) + | | | [0]{}: object 0xaf-0xcd.7 (31) + 0x00a| 31| 1| class: "universal" (0) 0xaf-0xaf.1 (0.2) + 0x00a| 31| 1| form: "constructed" (1) 0xaf.2-0xaf.2 (0.1) + 0x00a| 31| 1| tag: "set" (0x11) 0xaf.3-0xaf.7 (0.5) + 0x00b|1d |. | length: 29 0xb0-0xb0.7 (1) + | | | constructed[0:1]: 0xb1-0xcd.7 (29) + | | | [0]{}: object 0xb1-0xcd.7 (29) + 0x00b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00b| 1b | . | length: 27 0xb2-0xb2.7 (1) + | | | constructed[0:2]: 0xb3-0xcd.7 (27) + | | | [0]{}: object 0xb3-0xb7.7 (5) + 0x00b| 06 | . | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00b| 06 | . | form: "primitive" (0) 0xb3.2-0xb3.2 (0.1) + 0x00b| 06 | . | tag: "object_identifier" (0x6) 0xb3.3-0xb3.7 (0.5) + 0x00b| 03 | . | length: 3 0xb4-0xb4.7 (1) + | | | value[0:4]: 0xb5-0xb7.7 (3) + 0x00b| 55 | U | [0]: 2 oid 0xb5-0xb5.7 (1) + 0x00b| 55 | U | [1]: 5 oid 0xb5-0xb5.7 (1) + 0x00b| 04 | . | [2]: 4 oid 0xb6-0xb6.7 (1) + 0x00b| 03 | . | [3]: 3 oid 0xb7-0xb7.7 (1) + | | | [1]{}: object 0xb8-0xcd.7 (22) + 0x00b| 0c | . | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00b| 0c | . | form: "primitive" (0) 0xb8.2-0xb8.2 (0.1) + 0x00b| 0c | . | tag: "utf8_string" (0xc) 0xb8.3-0xb8.7 (0.5) + 0x00b| 14 | . | length: 20 0xb9-0xb9.7 (1) + 0x00b| 54 65 73 74 20 43| Test C| value: "Test Certificate DSS" 0xba-0xcd.7 (20) + 0x00c|65 72 74 69 66 69 63 61 74 65 20 44 53 53 |ertificate DSS | + | | | [5]{}: object 0xce-0x287.7 (442) + 0x00c| 30 | 0 | class: "universal" (0) 0xce-0xce.1 (0.2) + 0x00c| 30 | 0 | form: "constructed" (1) 0xce.2-0xce.2 (0.1) + 0x00c| 30 | 0 | tag: "sequence" (0x10) 0xce.3-0xce.7 (0.5) + 0x00c| 82| .| length: 438 0xcf-0xd1.7 (3) + 0x00d|01 b6 |.. | + | | | constructed[0:2]: 0xd2-0x287.7 (438) + | | | [0]{}: object 0xd2-0x200.7 (303) + 0x00d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00d| 82 01 2b | ..+ | length: 299 0xd3-0xd5.7 (3) + | | | constructed[0:2]: 0xd6-0x200.7 (299) + | | | [0]{}: object 0xd6-0xde.7 (9) + 0x00d| 06 | . | class: "universal" (0) 0xd6-0xd6.1 (0.2) + 0x00d| 06 | . | form: "primitive" (0) 0xd6.2-0xd6.2 (0.1) + 0x00d| 06 | . | tag: "object_identifier" (0x6) 0xd6.3-0xd6.7 (0.5) + 0x00d| 07 | . | length: 7 0xd7-0xd7.7 (1) + | | | value[0:6]: 0xd8-0xde.7 (7) + 0x00d| 2a | * | [0]: 1 oid 0xd8-0xd8.7 (1) + 0x00d| 2a | * | [1]: 2 oid 0xd8-0xd8.7 (1) + 0x00d| 86 48 | .H | [2]: 840 oid 0xd9-0xda.7 (2) + 0x00d| ce 38 | .8 | [3]: 10040 oid 0xdb-0xdc.7 (2) + 0x00d| 04 | . | [4]: 4 oid 0xdd-0xdd.7 (1) + 0x00d| 01 | . | [5]: 1 oid 0xde-0xde.7 (1) + | | | [1]{}: object 0xdf-0x200.7 (290) + 0x00d| 30| 0| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00d| 30| 0| form: "constructed" (1) 0xdf.2-0xdf.2 (0.1) + 0x00d| 30| 0| tag: "sequence" (0x10) 0xdf.3-0xdf.7 (0.5) + 0x00e|82 01 1e |... | length: 286 0xe0-0xe2.7 (3) + | | | constructed[0:3]: 0xe3-0x200.7 (286) + | | | [0]{}: object 0xe3-0x166.7 (132) + 0x00e| 02 | . | class: "universal" (0) 0xe3-0xe3.1 (0.2) + 0x00e| 02 | . | form: "primitive" (0) 0xe3.2-0xe3.2 (0.1) + 0x00e| 02 | . | tag: "integer" (0x2) 0xe3.3-0xe3.7 (0.5) + 0x00e| 81 81 | .. | length: 129 0xe4-0xe5.7 (2) + 0x00e| 00 c2 f7 7e e9 70 e7 89 12 0a| ...~.p....| value: 136910329070488299378327259524927038161733379470505356730121232091090086514834553845968989920849620435345775777167290535699239055131308141952489888965222417689471480719820943713033298825729988988452440118426146804292912092805770067484684608296506113124192386094297682201884209532959834970982669442066672091881 0xe6-0x166.7 (129) + 0x00f|a5 78 26 24 fc cd 49 7e c2 d3 9f 22 8d 27 e6 ca|.x&$..I~...".'..| + * |until 0x166.7 (129) | | + | | | [1]{}: object 0x167-0x17d.7 (23) + 0x016| 02 | . | class: "universal" (0) 0x167-0x167.1 (0.2) + 0x016| 02 | . | form: "primitive" (0) 0x167.2-0x167.2 (0.1) + 0x016| 02 | . | tag: "integer" (0x2) 0x167.3-0x167.7 (0.5) + 0x016| 15 | . | length: 21 0x168-0x168.7 (1) + 0x016| 00 98 58 f2 62 6b b6| ..X.bk.| value: 869750177406735357517327538899360394175585208387 0x169-0x17d.7 (21) + 0x017|3c 03 14 47 dd 8e 68 4a 3d 1c fe 4c 48 43 |<..G..hJ=..LHC | + | | | [2]{}: object 0x17e-0x200.7 (131) + 0x017| 02 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2) + 0x017| 02 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1) + 0x017| 02 | . | tag: "integer" (0x2) 0x17e.3-0x17e.7 (0.5) + 0x017| 81| .| length: 128 0x17f-0x180.7 (2) + 0x018|80 |. | + 0x018| 3f 02 ab 4e 43 f4 41 32 34 ad cd 98 49 8f c2| ?..NC.A24...I..| value: 44247426170402622087425518647469060177168515448383480108707357314914924071046359553790624375303209327971525248666708548293595274064224162982232337674914654715681152890905955591957342867846032291315547979242473713074351452275228730099918471850426035459597093784807208832673341150587615416898207576073482022832 0x181-0x200.7 (128) + 0x019|91 c9 3e 91 3b e8 6d 99 17 fc e1 51 de d5 b6 fa|..>.;.m....Q....| + * |until 0x200.7 (128) | | + | | | [1]{}: object 0x201-0x287.7 (135) + 0x020| 03 | . | class: "universal" (0) 0x201-0x201.1 (0.2) + 0x020| 03 | . | form: "primitive" (0) 0x201.2-0x201.2 (0.1) + 0x020| 03 | . | tag: "bit_string" (0x3) 0x201.3-0x201.7 (0.5) + 0x020| 81 84 | .. | length: 132 0x202-0x203.7 (2) + 0x020| 00 | . | unused_bits_count: 0 0x204-0x204.7 (1) + 0x020| 02 81 80 7f 19 87 d0 34 72 de 66| .......4r.f| value: raw bits 0x205-0x287.7 (131) + 0x021|cd 51 0f 99 aa da fb 56 89 94 64 4d 94 47 a1 b6|.Q.....V..dM.G..| + * |until 0x287.7 (131) | | + | | | [1]{}: object 0x288-0x292.7 (11) + 0x028| 30 | 0 | class: "universal" (0) 0x288-0x288.1 (0.2) + 0x028| 30 | 0 | form: "constructed" (1) 0x288.2-0x288.2 (0.1) + 0x028| 30 | 0 | tag: "sequence" (0x10) 0x288.3-0x288.7 (0.5) + 0x028| 09 | . | length: 9 0x289-0x289.7 (1) + | | | constructed[0:1]: 0x28a-0x292.7 (9) + | | | [0]{}: object 0x28a-0x292.7 (9) + 0x028| 06 | . | class: "universal" (0) 0x28a-0x28a.1 (0.2) + 0x028| 06 | . | form: "primitive" (0) 0x28a.2-0x28a.2 (0.1) + 0x028| 06 | . | tag: "object_identifier" (0x6) 0x28a.3-0x28a.7 (0.5) + 0x028| 07 | . | length: 7 0x28b-0x28b.7 (1) + | | | value[0:6]: 0x28c-0x292.7 (7) + 0x028| 2a | * | [0]: 1 oid 0x28c-0x28c.7 (1) + 0x028| 2a | * | [1]: 2 oid 0x28c-0x28c.7 (1) + 0x028| 86 48 | .H | [2]: 840 oid 0x28d-0x28e.7 (2) + 0x028| ce| .| [3]: 10040 oid 0x28f-0x290.7 (2) + 0x029|38 |8 | + 0x029| 04 | . | [4]: 4 oid 0x291-0x291.7 (1) + 0x029| 03 | . | [5]: 3 oid 0x292-0x292.7 (1) + | | | [2]{}: object 0x293-0x2c3.7 (49) + 0x029| 03 | . | class: "universal" (0) 0x293-0x293.1 (0.2) + 0x029| 03 | . | form: "primitive" (0) 0x293.2-0x293.2 (0.1) + 0x029| 03 | . | tag: "bit_string" (0x3) 0x293.3-0x293.7 (0.5) + 0x029| 2f | / | length: 47 0x294-0x294.7 (1) + 0x029| 00 | . | unused_bits_count: 0 0x295-0x295.7 (1) + 0x029| 30 2c 02 14 52 31 f8 06 82 70| 0,..R1...p| value: raw bits 0x296-0x2c3.7 (46) + 0x02a|cd 8e ed dd be 72 ec 66 5d 79 45 c1 49 7f 02 14|.....r.f]yE.I...| + * |until 0x2c3.7 (46) | | + | | | [2]{}: record 0x2c4-0x385.7 (194) + 0x02c| 16 | . | type: "handshake" (22) (valid) 0x2c4-0x2c4.7 (1) + 0x02c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c5-0x2c6.7 (2) + 0x02c| 00 bd | .. | length: 189 0x2c7-0x2c8.7 (2) + | | | message{}: 0x2c9-0x385.7 (189) + 0x02c| 0c | . | type: "server_key_exchange" (12) 0x2c9-0x2c9.7 (1) + 0x02c| 00 00 b9 | ... | length: 185 0x2ca-0x2cc.7 (3) + 0x02c| 00 40 da| .@.| data: raw bits 0x2cd-0x385.7 (185) + 0x02d|58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c ca 92 dd|X<..."....uoL...| + * |until 0x385.7 (185) | | + | | | [3]{}: record 0x386-0x38e.7 (9) + 0x038| 16 | . | type: "handshake" (22) (valid) 0x386-0x386.7 (1) + 0x038| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x387-0x388.7 (2) + 0x038| 00 04 | .. | length: 4 0x389-0x38a.7 (2) + | | | message{}: 0x38b-0x38e.7 (4) + 0x038| 0e | . | type: "server_hello_done" (14) 0x38b-0x38b.7 (1) + 0x038| 00 00 00 | ... | length: 0 0x38c-0x38e.7 (3) + | | | data: raw bits 0x38f-NA (0) + | | | [4]{}: record 0x38f-0x43d.7 (175) + 0x038| 16| .| type: "handshake" (22) (valid) 0x38f-0x38f.7 (1) + 0x039|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x390-0x391.7 (2) + 0x039| 00 aa | .. | length: 170 0x392-0x393.7 (2) + | | | message{}: 0x394-0x43d.7 (170) + 0x039| 04 | . | type: "new_session_ticket" (4) 0x394-0x394.7 (1) + 0x039| 00 00 a6 | ... | length: 166 0x395-0x397.7 (3) + 0x039| 00 00 01 2c | ..., | lifetime_hint: 300 0x398-0x39b.7 (4) + 0x039| 00 a0 | .. | ticket_length: 160 0x39c-0x39d.7 (2) + 0x039| 22 07| ".| ticket: raw bits 0x39e-0x43d.7 (160) + 0x03a|b4 d8 97 c7 0f f3 0f f1 4b c1 4b d0 cb 8e 56 91|........K.K...V.| + * |until 0x43d.7 (160) | | + | | | [5]{}: record 0x43e-0x443.7 (6) + 0x043| 14 | . | type: "change_cipher_spec" (20) (valid) 0x43e-0x43e.7 (1) + 0x043| 03| .| version: "tls1.2" (0x303) (valid) 0x43f-0x440.7 (2) + 0x044|03 |. | + 0x044| 00 01 | .. | length: 1 0x441-0x442.7 (2) + | | | message{}: 0x443-0x443.7 (1) + 0x044| 01 | . | type: 1 0x443-0x443.7 (1) + | | | [6]{}: record 0x444-0x488.7 (69) + 0x044| 16 | . | type: "handshake" (22) (valid) 0x444-0x444.7 (1) + 0x044| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x445-0x446.7 (2) + 0x044| 00 40 | .@ | length: 64 0x447-0x448.7 (2) + 0x044| 43 cd 85 87 41 fa 2f| C...A./| encrypted_data: raw bits 0x449-0x488.7 (64) + 0x045|28 f5 97 e3 a4 62 b3 fd 28 25 45 85 1f 25 47 56|(....b..(%E..%GV| + * |until 0x488.7 (64) | | + | | | [7]{}: record 0x489-0x91d.7 (1173) + 0x048| 17 | . | type: "application_data" (23) (valid) 0x489-0x489.7 (1) + 0x048| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48a-0x48b.7 (2) + 0x048| 04 90 | .. | length: 1168 0x48c-0x48d.7 (2) + 0x048| c1 76| .v| encrypted_data: raw bits 0x48e-0x91d.7 (1168) + 0x049|b1 03 59 45 27 b5 d8 5d 4f de bd c0 a1 d3 04 5c|..YE'..]O......\| + * |until 0x91d.7 (end) (1168) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_DES_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_DES_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..77ad4e71f5358c306623d0e2828bced8c649af50 GIT binary patch literal 3709 zcmai%2{=@38^@nHGe+6THe`vCHDl~GWJ!`G^1dQU7$hx5*2tQWK@uS?l-H7E$r7Th z$xD=w$WkQ6zGMmCIhgON@9q1(=eq85<~i57e$W5DpZoluYuc*wQy_o=w6V4Zz!%yC zz7sb?2mWa_q5(9py>I*hKq1jn&2CZ~DMLYCzYk?)t>OWIFl!wcXbS^fG}!@pjzXj9 zkvlSeW&wb(h@~_ZyGc*A`>2`(%!|Cw@lO`Q`uRU5Hg!e9Jjnny zl-a5{tOK>7iKYwDle8HyBgu-o&baVf1~1Hr`jx?rMgbcX04LDsqe{~3`0Z&n-RIRG zEZQ?CD%Du=R9z=NfmVzn*MCqhEP3dOkB;m@<{I6_l&;THz1JE@Fh6scD z<+lttThz1v%oYvyLI5ajWIM7SpBu#=KKk9gOw)FxeQ$H}_3#Os-E6|weWn56KmnFD z6oADe$s%cR!)XOD0>~FY-T?Bz2SKiI5TLD~E+pdJmNr5Uek+z<^6H^x6$~0LBqxC9 z$D;qlpqV)Tu)pXgtZnb==H%dHXX9ose8AKcFUZ3zCy!T^QzXbK%E{r6^Dq;Tsr=^j z{{wz{KazYMG?4{ZUl(pRPmEF4|b;w&O3 zh60t#GmO$JsIy1(52le+ACBiKAFZdRxiYd-*k4`!#NFG^|BdhZXmEJYH;4-)m`~d} z7ZK5%x;;^+536loH8`XV1qSSg9vNxRY7!J4HznvrSH(1_$Lt$Em&o&@-{jN#qNNse z990(s*)kK=`|f~(vX#T;8u15~^hsB#nj$$Px7(7iVop)90Y#UJP0m*qXZPeMg*9-Q z4mc0qFE+!e=j|fj6iTAEKeB4p?LXtPs<=}dw|7WCxsB!Gi;TU?6xm#K;1vMN@W+L= zD7b!dXfk0<%<5V;3%^M+ys4W~0*x+nBKL<7k?@u;PuwpUyuQ(+KPX>< zS!Nx(Igxzr0DA1$LF0E$i6138Ja#*$zH8$c;GOLe++r}_3DkXc-G=1>3IZDEEvQrZ z#Ic3rk+_zzo%RI&aVxZZdXjgfZrD_LuB?FBtc=w4JyP1Om0o4~#1POn$`RSU9J4z- zgS{l=`M#G}2*~1PAWo|kRs69>e2cTX=@x9wF*9~nP!`+>(K8`CJ&)hR1%C@}YG)a& z;4oq-K~li5tUJQS4G!vqZ*~KFOdG53s%7>Bw!b;vKn7!==_$! z3p0xT?F){GlOlo+vH_q4G~_@ddwgnx0OMlAJ9~213vOnTGsd~AH0%ob{t2H$VVR_v z%xyErS6@VX=bp(tJgOq`K`RHBs$0XiKhPJt5X%Xp)|~>V1d`{7QufCp1JZ!j(QCPq zJr%Fr7C2l>_7%z`RMi&dG3IH})l@#Qk`^d(p13XEspM+rr05;0NK1oDw?o|{_FewA)hk|yOt#ug3Gb9IEa#Du{KBYu%C45n)FIf3uP^jXLO#v9I3dmJOIz&vLm4b zFwYE*AOc3mXaY92O*0$bwhCn1pqzgQzy$bxjFT~p9T{m3_gr|{D0ppuSz&L!iB{c` zK8vjGE>9cClD|%-q@ZnVdrZOsj+-F(pkUR4p}#}Klh(+~lAJ&057l=av&$JL>ZtFs z74ecf+sv z2$(KzXE(RL?CdOG*qq-<|Gnatn4AJOyfh(6slRzeIr&JQ2#S+r0(SL zHNnyOw_&>E0Y9IxGXhVIoQ}N@s9@gy5^nDxhbxKJL>wkS9}b%s*Mja6HCY7hSNn4scB*r zYu^^B-pwAS<2I0;fQI%bdin=0EuY9->bRTC&z7oncaSBxXnr8v?=;(%`GGkaP^$mQ0%7TCoRdtyYwmX{ zN5Bj5W!aEpTmLR^)lMmh{>rrU^Y~F z)M6q=R(gDNj+?-qb9eQeDFaXC#mC2)7|i_pZrBm%>v-*&@HpN}Wx=ulpfP^ZK?vZ5b^Q6Op>n~FE?!3I9t>5`DX43VsZ3Rnj;M=AF@Jr) ygQuT_yevG..e..6.\..| + 0x000002|90 3c af 02 fd 4e d7 7d f3 d7 78 |.<...N.}..x | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 12| ..| [0]: "TLS_DHE_DSS_WITH_DES_CBC_SHA" (0x12) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xb0.7 (75) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 46 | .F | length: 70 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xb0.7 (70) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 42 | ..B | length: 66 0x6c-0x6e.7 (3) + | | | public{}: 0x6f-NA (0) + 0x000006| 00| .| length: 64 0x6f-0x70.7 (2) + 0x000007|40 |@ | + 0x000007| 31 00 cb 11 96 a2 c9 1d 0b f9 c9 d3 65 71 da| 1...........eq.| data: raw bits 0x71-0xb0.7 (64) + 0x000008|c0 16 0d 64 6b 04 6b da ba 88 84 71 a0 5d 7b 48|...dk.k....q.]{H| + * |until 0xb0.7 (64) | | + | | | [2]{}: record 0xb1-0xb6.7 (6) + 0x00000b| 14 | . | type: "change_cipher_spec" (20) (valid) 0xb1-0xb1.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb2-0xb3.7 (2) + 0x00000b| 00 01 | .. | length: 1 0xb4-0xb5.7 (2) + | | | message{}: 0xb6-0xb6.7 (1) + 0x00000b| 01 | . | type: 1 0xb6-0xb6.7 (1) + | | | [3]{}: record 0xb7-0xf3.7 (61) + 0x00000b| 16 | . | type: "handshake" (22) (valid) 0xb7-0xb7.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb8-0xb9.7 (2) + 0x00000b| 00 38 | .8 | length: 56 0xba-0xbb.7 (2) + 0x00000b| 81 71 f5 3c| .q.<| encrypted_data: raw bits 0xbc-0xf3.7 (56) + 0x00000c|2b 65 57 8d 80 a5 00 42 52 8a b0 2a dd be ca 74|+eW....BR..*...t| + * |until 0xf3.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| ed ad 63 8e 0d fe 7a 6a 3c c8 5f 6b| ..c...zj<._k| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0xf4-0x130.7 (61) + 0x00000f| 17 | . | type: "application_data" (23) (valid) 0xf4-0xf4.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf5-0xf6.7 (2) + 0x00000f| 00 38 | .8 | length: 56 0xf7-0xf8.7 (2) + 0x00000f| e5 66 49 ce 7e 01 37| .fI.~.7| encrypted_data: raw bits 0xf9-0x130.7 (56) + 0x000010|a7 98 63 30 6d 25 aa d4 2b 1a 97 97 74 e5 da fb|..c0m%..+...t...| + * |until 0x130.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x131-0x15d.7 (45) + 0x000013| 15 | . | type: "alert" (21) (valid) 0x131-0x131.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x132-0x133.7 (2) + 0x000013| 00 28 | .( | length: 40 0x134-0x135.7 (2) + 0x000013| bb 8c dc e5 87 34 45 b3 c6 cb| .....4E...| encrypted_data: raw bits 0x136-0x15d.7 (40) + 0x000014|91 bf a2 34 2c 8b c6 96 01 0d e7 a3 17 30 07 f0|...4,........0..| + 0x000015|02 78 59 76 6d ff e8 ec 4b 82 2e e7 23 d6| |.xYvm...K...#.| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xe7d-NA (0) + | | | ip: "127.0.0.1" 0xe7d-NA (0) + | | | port: 4433 0xe7d-NA (0) + | | | has_start: true 0xe7d-NA (0) + | | | has_end: true 0xe7d-NA (0) + | | | skipped_bytes: 0 0xe7d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x906.7 (2311) + | | | records[0:8]: 0x0-0x906.7 (2311) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| ea| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|3f 30 b0 8e 1b 89 eb f7 75 bb 41 62 ea d6 3a ce|?0......u.Ab..:.| + 0x000002|9c 90 89 ef 61 27 10 20 90 7b f2 |....a'. .{. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 12 | .. | cipher_suit: "TLS_DHE_DSS_WITH_DES_CBC_SHA" (0x12) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x2c3.7 (645) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 02 80 | .. | length: 640 0x42-0x43.7 (2) + | | | message{}: 0x44-0x2c3.7 (640) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 02 7c | ..| | length: 636 0x45-0x47.7 (3) + 0x000004| 00 02 79 | ..y | certificates_length: 633 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x2c3.7 (633) + | | | [0]{}: certificate 0x4b-0x2c3.7 (633) + 0x000004| 00 02 76 | ..v | length: 630 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x2c3.7 (630) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 626 0x4f-0x51.7 (3) + 0x000005|02 72 |.r | + | | | constructed[0:3]: 0x52-0x2c3.7 (626) + | | | [0]{}: object 0x52-0x287.7 (566) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 02 32 | ..2 | length: 562 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x287.7 (562) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 c6 85 8b d3 08 d4 32| .......2| value: 14304993529914733277 0x58-0x60.7 (9) + 0x000006|dd |. | + | | | [1]{}: object 0x61-0x6b.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 09 | . | length: 9 0x62-0x62.7 (1) + | | | constructed[0:1]: 0x63-0x6b.7 (9) + | | | [0]{}: object 0x63-0x6b.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 07 | . | length: 7 0x64-0x64.7 (1) + | | | value[0:6]: 0x65-0x6b.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| ce 38 | .8 | [3]: 10040 oid 0x68-0x69.7 (2) + 0x000006| 04 | . | [4]: 4 oid 0x6a-0x6a.7 (1) + 0x000006| 03 | . | [5]: 3 oid 0x6b-0x6b.7 (1) + | | | [2]{}: object 0x6c-0x8c.7 (33) + 0x000006| 30 | 0 | class: "universal" (0) 0x6c-0x6c.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x6c.2-0x6c.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x6c.3-0x6c.7 (0.5) + 0x000006| 1f | . | length: 31 0x6d-0x6d.7 (1) + | | | constructed[0:1]: 0x6e-0x8c.7 (31) + | | | [0]{}: object 0x6e-0x8c.7 (31) + 0x000006| 31 | 1 | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 31 | 1 | form: "constructed" (1) 0x6e.2-0x6e.2 (0.1) + 0x000006| 31 | 1 | tag: "set" (0x11) 0x6e.3-0x6e.7 (0.5) + 0x000006| 1d| .| length: 29 0x6f-0x6f.7 (1) + | | | constructed[0:1]: 0x70-0x8c.7 (29) + | | | [0]{}: object 0x70-0x8c.7 (29) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1b | . | length: 27 0x71-0x71.7 (1) + | | | constructed[0:2]: 0x72-0x8c.7 (27) + | | | [0]{}: object 0x72-0x76.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x72.2-0x72.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x72.3-0x72.7 (0.5) + 0x000007| 03 | . | length: 3 0x73-0x73.7 (1) + | | | value[0:4]: 0x74-0x76.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x74-0x74.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x74-0x74.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x75-0x75.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x76-0x76.7 (1) + | | | [1]{}: object 0x77-0x8c.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x77.2-0x77.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x77.3-0x77.7 (0.5) + 0x000007| 14 | . | length: 20 0x78-0x78.7 (1) + 0x000007| 54 65 73 74 20 43 65| Test Ce| value: "Test Certificate DSS" 0x79-0x8c.7 (20) + 0x000008|72 74 69 66 69 63 61 74 65 20 44 53 53 |rtificate DSS | + | | | [3]{}: object 0x8d-0xac.7 (32) + 0x000008| 30 | 0 | class: "universal" (0) 0x8d-0x8d.1 (0.2) + 0x000008| 30 | 0 | form: "constructed" (1) 0x8d.2-0x8d.2 (0.1) + 0x000008| 30 | 0 | tag: "sequence" (0x10) 0x8d.3-0x8d.7 (0.5) + 0x000008| 1e | . | length: 30 0x8e-0x8e.7 (1) + | | | constructed[0:2]: 0x8f-0xac.7 (30) + | | | [0]{}: object 0x8f-0x9d.7 (15) + 0x000008| 17| .| class: "universal" (0) 0x8f-0x8f.1 (0.2) + 0x000008| 17| .| form: "primitive" (0) 0x8f.2-0x8f.2 (0.1) + 0x000008| 17| .| tag: "utc_time" (0x17) 0x8f.3-0x8f.7 (0.5) + 0x000009|0d |. | length: 13 0x90-0x90.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31 30 5a | 130915215110Z | value: "130915215110Z" 0x91-0x9d.7 (13) + | | | [1]{}: object 0x9e-0xac.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x9e-0x9e.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x9e.2-0x9e.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x9e.3-0x9e.7 (0.5) + 0x000009| 0d| .| length: 13 0x9f-0x9f.7 (1) + 0x00000a|32 33 30 39 31 33 32 31 35 31 31 30 5a |230913215110Z | value: "230913215110Z" 0xa0-0xac.7 (13) + | | | [4]{}: object 0xad-0xcd.7 (33) + 0x00000a| 30 | 0 | class: "universal" (0) 0xad-0xad.1 (0.2) + 0x00000a| 30 | 0 | form: "constructed" (1) 0xad.2-0xad.2 (0.1) + 0x00000a| 30 | 0 | tag: "sequence" (0x10) 0xad.3-0xad.7 (0.5) + 0x00000a| 1f | . | length: 31 0xae-0xae.7 (1) + | | | constructed[0:1]: 0xaf-0xcd.7 (31) + | | | [0]{}: object 0xaf-0xcd.7 (31) + 0x00000a| 31| 1| class: "universal" (0) 0xaf-0xaf.1 (0.2) + 0x00000a| 31| 1| form: "constructed" (1) 0xaf.2-0xaf.2 (0.1) + 0x00000a| 31| 1| tag: "set" (0x11) 0xaf.3-0xaf.7 (0.5) + 0x00000b|1d |. | length: 29 0xb0-0xb0.7 (1) + | | | constructed[0:1]: 0xb1-0xcd.7 (29) + | | | [0]{}: object 0xb1-0xcd.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb2-0xb2.7 (1) + | | | constructed[0:2]: 0xb3-0xcd.7 (27) + | | | [0]{}: object 0xb3-0xb7.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb4-0xb4.7 (1) + | | | value[0:4]: 0xb5-0xb7.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb5-0xb5.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb5-0xb5.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xb6-0xb6.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xb7-0xb7.7 (1) + | | | [1]{}: object 0xb8-0xcd.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 14 | . | length: 20 0xb9-0xb9.7 (1) + 0x00000b| 54 65 73 74 20 43| Test C| value: "Test Certificate DSS" 0xba-0xcd.7 (20) + 0x00000c|65 72 74 69 66 69 63 61 74 65 20 44 53 53 |ertificate DSS | + | | | [5]{}: object 0xce-0x287.7 (442) + 0x00000c| 30 | 0 | class: "universal" (0) 0xce-0xce.1 (0.2) + 0x00000c| 30 | 0 | form: "constructed" (1) 0xce.2-0xce.2 (0.1) + 0x00000c| 30 | 0 | tag: "sequence" (0x10) 0xce.3-0xce.7 (0.5) + 0x00000c| 82| .| length: 438 0xcf-0xd1.7 (3) + 0x00000d|01 b6 |.. | + | | | constructed[0:2]: 0xd2-0x287.7 (438) + | | | [0]{}: object 0xd2-0x200.7 (303) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 82 01 2b | ..+ | length: 299 0xd3-0xd5.7 (3) + | | | constructed[0:2]: 0xd6-0x200.7 (299) + | | | [0]{}: object 0xd6-0xde.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xd6-0xd6.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd6.2-0xd6.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd6.3-0xd6.7 (0.5) + 0x00000d| 07 | . | length: 7 0xd7-0xd7.7 (1) + | | | value[0:6]: 0xd8-0xde.7 (7) + 0x00000d| 2a | * | [0]: 1 oid 0xd8-0xd8.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd8-0xd8.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xd9-0xda.7 (2) + 0x00000d| ce 38 | .8 | [3]: 10040 oid 0xdb-0xdc.7 (2) + 0x00000d| 04 | . | [4]: 4 oid 0xdd-0xdd.7 (1) + 0x00000d| 01 | . | [5]: 1 oid 0xde-0xde.7 (1) + | | | [1]{}: object 0xdf-0x200.7 (290) + 0x00000d| 30| 0| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00000d| 30| 0| form: "constructed" (1) 0xdf.2-0xdf.2 (0.1) + 0x00000d| 30| 0| tag: "sequence" (0x10) 0xdf.3-0xdf.7 (0.5) + 0x00000e|82 01 1e |... | length: 286 0xe0-0xe2.7 (3) + | | | constructed[0:3]: 0xe3-0x200.7 (286) + | | | [0]{}: object 0xe3-0x166.7 (132) + 0x00000e| 02 | . | class: "universal" (0) 0xe3-0xe3.1 (0.2) + 0x00000e| 02 | . | form: "primitive" (0) 0xe3.2-0xe3.2 (0.1) + 0x00000e| 02 | . | tag: "integer" (0x2) 0xe3.3-0xe3.7 (0.5) + 0x00000e| 81 81 | .. | length: 129 0xe4-0xe5.7 (2) + 0x00000e| 00 c2 f7 7e e9 70 e7 89 12 0a| ...~.p....| value: 136910329070488299378327259524927038161733379470505356730121232091090086514834553845968989920849620435345775777167290535699239055131308141952489888965222417689471480719820943713033298825729988988452440118426146804292912092805770067484684608296506113124192386094297682201884209532959834970982669442066672091881 0xe6-0x166.7 (129) + 0x00000f|a5 78 26 24 fc cd 49 7e c2 d3 9f 22 8d 27 e6 ca|.x&$..I~...".'..| + * |until 0x166.7 (129) | | + | | | [1]{}: object 0x167-0x17d.7 (23) + 0x000016| 02 | . | class: "universal" (0) 0x167-0x167.1 (0.2) + 0x000016| 02 | . | form: "primitive" (0) 0x167.2-0x167.2 (0.1) + 0x000016| 02 | . | tag: "integer" (0x2) 0x167.3-0x167.7 (0.5) + 0x000016| 15 | . | length: 21 0x168-0x168.7 (1) + 0x000016| 00 98 58 f2 62 6b b6| ..X.bk.| value: 869750177406735357517327538899360394175585208387 0x169-0x17d.7 (21) + 0x000017|3c 03 14 47 dd 8e 68 4a 3d 1c fe 4c 48 43 |<..G..hJ=..LHC | + | | | [2]{}: object 0x17e-0x200.7 (131) + 0x000017| 02 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2) + 0x000017| 02 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1) + 0x000017| 02 | . | tag: "integer" (0x2) 0x17e.3-0x17e.7 (0.5) + 0x000017| 81| .| length: 128 0x17f-0x180.7 (2) + 0x000018|80 |. | + 0x000018| 3f 02 ab 4e 43 f4 41 32 34 ad cd 98 49 8f c2| ?..NC.A24...I..| value: 44247426170402622087425518647469060177168515448383480108707357314914924071046359553790624375303209327971525248666708548293595274064224162982232337674914654715681152890905955591957342867846032291315547979242473713074351452275228730099918471850426035459597093784807208832673341150587615416898207576073482022832 0x181-0x200.7 (128) + 0x000019|91 c9 3e 91 3b e8 6d 99 17 fc e1 51 de d5 b6 fa|..>.;.m....Q....| + * |until 0x200.7 (128) | | + | | | [1]{}: object 0x201-0x287.7 (135) + 0x000020| 03 | . | class: "universal" (0) 0x201-0x201.1 (0.2) + 0x000020| 03 | . | form: "primitive" (0) 0x201.2-0x201.2 (0.1) + 0x000020| 03 | . | tag: "bit_string" (0x3) 0x201.3-0x201.7 (0.5) + 0x000020| 81 84 | .. | length: 132 0x202-0x203.7 (2) + 0x000020| 00 | . | unused_bits_count: 0 0x204-0x204.7 (1) + 0x000020| 02 81 80 7f 19 87 d0 34 72 de 66| .......4r.f| value: raw bits 0x205-0x287.7 (131) + 0x000021|cd 51 0f 99 aa da fb 56 89 94 64 4d 94 47 a1 b6|.Q.....V..dM.G..| + * |until 0x287.7 (131) | | + | | | [1]{}: object 0x288-0x292.7 (11) + 0x000028| 30 | 0 | class: "universal" (0) 0x288-0x288.1 (0.2) + 0x000028| 30 | 0 | form: "constructed" (1) 0x288.2-0x288.2 (0.1) + 0x000028| 30 | 0 | tag: "sequence" (0x10) 0x288.3-0x288.7 (0.5) + 0x000028| 09 | . | length: 9 0x289-0x289.7 (1) + | | | constructed[0:1]: 0x28a-0x292.7 (9) + | | | [0]{}: object 0x28a-0x292.7 (9) + 0x000028| 06 | . | class: "universal" (0) 0x28a-0x28a.1 (0.2) + 0x000028| 06 | . | form: "primitive" (0) 0x28a.2-0x28a.2 (0.1) + 0x000028| 06 | . | tag: "object_identifier" (0x6) 0x28a.3-0x28a.7 (0.5) + 0x000028| 07 | . | length: 7 0x28b-0x28b.7 (1) + | | | value[0:6]: 0x28c-0x292.7 (7) + 0x000028| 2a | * | [0]: 1 oid 0x28c-0x28c.7 (1) + 0x000028| 2a | * | [1]: 2 oid 0x28c-0x28c.7 (1) + 0x000028| 86 48 | .H | [2]: 840 oid 0x28d-0x28e.7 (2) + 0x000028| ce| .| [3]: 10040 oid 0x28f-0x290.7 (2) + 0x000029|38 |8 | + 0x000029| 04 | . | [4]: 4 oid 0x291-0x291.7 (1) + 0x000029| 03 | . | [5]: 3 oid 0x292-0x292.7 (1) + | | | [2]{}: object 0x293-0x2c3.7 (49) + 0x000029| 03 | . | class: "universal" (0) 0x293-0x293.1 (0.2) + 0x000029| 03 | . | form: "primitive" (0) 0x293.2-0x293.2 (0.1) + 0x000029| 03 | . | tag: "bit_string" (0x3) 0x293.3-0x293.7 (0.5) + 0x000029| 2f | / | length: 47 0x294-0x294.7 (1) + 0x000029| 00 | . | unused_bits_count: 0 0x295-0x295.7 (1) + 0x000029| 30 2c 02 14 52 31 f8 06 82 70| 0,..R1...p| value: raw bits 0x296-0x2c3.7 (46) + 0x00002a|cd 8e ed dd be 72 ec 66 5d 79 45 c1 49 7f 02 14|.....r.f]yE.I...| + * |until 0x2c3.7 (46) | | + | | | [2]{}: record 0x2c4-0x386.7 (195) + 0x00002c| 16 | . | type: "handshake" (22) (valid) 0x2c4-0x2c4.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c5-0x2c6.7 (2) + 0x00002c| 00 be | .. | length: 190 0x2c7-0x2c8.7 (2) + | | | message{}: 0x2c9-0x386.7 (190) + 0x00002c| 0c | . | type: "server_key_exchange" (12) 0x2c9-0x2c9.7 (1) + 0x00002c| 00 00 ba | ... | length: 186 0x2ca-0x2cc.7 (3) + 0x00002c| 00 40 da| .@.| data: raw bits 0x2cd-0x386.7 (186) + 0x00002d|58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c ca 92 dd|X<..."....uoL...| + * |until 0x386.7 (186) | | + | | | [3]{}: record 0x387-0x38f.7 (9) + 0x000038| 16 | . | type: "handshake" (22) (valid) 0x387-0x387.7 (1) + 0x000038| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x388-0x389.7 (2) + 0x000038| 00 04 | .. | length: 4 0x38a-0x38b.7 (2) + | | | message{}: 0x38c-0x38f.7 (4) + 0x000038| 0e | . | type: "server_hello_done" (14) 0x38c-0x38c.7 (1) + 0x000038| 00 00 00| ...| length: 0 0x38d-0x38f.7 (3) + | | | data: raw bits 0x390-NA (0) + | | | [4]{}: record 0x390-0x43e.7 (175) + 0x000039|16 |. | type: "handshake" (22) (valid) 0x390-0x390.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x391-0x392.7 (2) + 0x000039| 00 aa | .. | length: 170 0x393-0x394.7 (2) + | | | message{}: 0x395-0x43e.7 (170) + 0x000039| 04 | . | type: "new_session_ticket" (4) 0x395-0x395.7 (1) + 0x000039| 00 00 a6 | ... | length: 166 0x396-0x398.7 (3) + 0x000039| 00 00 01 2c | ..., | lifetime_hint: 300 0x399-0x39c.7 (4) + 0x000039| 00 a0 | .. | ticket_length: 160 0x39d-0x39e.7 (2) + 0x000039| 22| "| ticket: raw bits 0x39f-0x43e.7 (160) + 0x00003a|07 b4 d8 97 c7 0f f3 0f f1 4b c1 4b d0 cb 8e c3|.........K.K....| + * |until 0x43e.7 (160) | | + | | | [5]{}: record 0x43f-0x444.7 (6) + 0x000043| 14| .| type: "change_cipher_spec" (20) (valid) 0x43f-0x43f.7 (1) + 0x000044|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x440-0x441.7 (2) + 0x000044| 00 01 | .. | length: 1 0x442-0x443.7 (2) + | | | message{}: 0x444-0x444.7 (1) + 0x000044| 01 | . | type: 1 0x444-0x444.7 (1) + | | | [6]{}: record 0x445-0x481.7 (61) + 0x000044| 16 | . | type: "handshake" (22) (valid) 0x445-0x445.7 (1) + 0x000044| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x446-0x447.7 (2) + 0x000044| 00 38 | .8 | length: 56 0x448-0x449.7 (2) + 0x000044| fc f5 40 e1 8e 2d| ..@..-| encrypted_data: raw bits 0x44a-0x481.7 (56) + 0x000045|2d 46 6f 20 03 d7 8b 64 c9 b0 96 cb ed 26 cd 07|-Fo ...d.....&..| + * |until 0x481.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 5d 22 06 be fa 45 eb 21 0c c5 54 9b| ]"...E.!..T.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x482-0x906.7 (1157) + 0x000048| 17 | . | type: "application_data" (23) (valid) 0x482-0x482.7 (1) + 0x000048| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x483-0x484.7 (2) + 0x000048| 04 80 | .. | length: 1152 0x485-0x486.7 (2) + 0x000048| 7e db 95 2d 4d 93 ea ea ce| ~..-M....| encrypted_data: raw bits 0x487-0x906.7 (1152) + 0x000049|89 77 f8 c1 cb 1e 8a 3f bb b5 df b2 51 42 c6 fa|.w.....?....QB..| + * |until 0x906.7 (end) (1152) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x112c.7 (4397) + * |until 0x112c.7 (end) (4397) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x112c.7 (4397) + * |until 0x112c.7 (end) (4397) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_SEED_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_SEED_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..ce87ff0749b2b5873abfe5241a1a8b7acd803d6e GIT binary patch literal 3758 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 omfO_FB~00^{DVPyhe` literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_SEED_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_SEED_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..73b22215 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_DHE_DSS_WITH_SEED_CBC_SHA.pcap.fqtest @@ -0,0 +1,454 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_DHE_DSS_WITH_SEED_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xeae-NA (0) + | | | client{}: 0xeae-NA (0) + | | | ip: "127.0.0.1" 0xeae-NA (0) + | | | port: 56749 0xeae-NA (0) + | | | has_start: true 0xeae-NA (0) + | | | has_end: false 0xeae-NA (0) + | | | skipped_bytes: 0 0xeae-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x175.7 (374) + | | | records[0:6]: 0x0-0x175.7 (374) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000| bc| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|7a c8 e3 03 96 d3 9b 15 19 d1 c7 d3 68 a3 1b 2f|z...........h../| + 0x002|ec 54 28 c0 63 dd aa 30 4e 7d 58 |.T(.c..0N}X | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x002| 00 99| ..| [0]: "TLS_DHE_DSS_WITH_SEED_CBC_SHA" (0x99) cipher_suit 0x2e-0x2f.7 (2) + 0x003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xb0.7 (75) + 0x006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x006| 00 46 | .F | length: 70 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xb0.7 (70) + 0x006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x006| 00 00 42 | ..B | length: 66 0x6c-0x6e.7 (3) + | | | public{}: 0x6f-NA (0) + 0x006| 00| .| length: 64 0x6f-0x70.7 (2) + 0x007|40 |@ | + 0x007| a5 70 c4 70 9b ce cc 7e e8 b2 72 5e 60 eb 36| .p.p...~..r^`.6| data: raw bits 0x71-0xb0.7 (64) + 0x008|31 15 54 7b 8e e8 26 73 b9 26 51 06 fe 2c e9 59|1.T{..&s.&Q..,.Y| + * |until 0xb0.7 (64) | | + | | | [2]{}: record 0xb1-0xb6.7 (6) + 0x00b| 14 | . | type: "change_cipher_spec" (20) (valid) 0xb1-0xb1.7 (1) + 0x00b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb2-0xb3.7 (2) + 0x00b| 00 01 | .. | length: 1 0xb4-0xb5.7 (2) + | | | message{}: 0xb6-0xb6.7 (1) + 0x00b| 01 | . | type: 1 0xb6-0xb6.7 (1) + | | | [3]{}: record 0xb7-0xfb.7 (69) + 0x00b| 16 | . | type: "handshake" (22) (valid) 0xb7-0xb7.7 (1) + 0x00b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb8-0xb9.7 (2) + 0x00b| 00 40 | .@ | length: 64 0xba-0xbb.7 (2) + 0x00b| 16 64 67 74| .dgt| encrypted_data: raw bits 0xbc-0xfb.7 (64) + 0x00c|d6 18 cd 73 78 81 af 6f 59 4a 6d cc 08 b1 88 75|...sx..oYJm....u| + * |until 0xfb.7 (64) | | + | | | [4]{}: record 0xfc-0x140.7 (69) + 0x00f| 17 | . | type: "application_data" (23) (valid) 0xfc-0xfc.7 (1) + 0x00f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xfd-0xfe.7 (2) + 0x00f| 00| .| length: 64 0xff-0x100.7 (2) + 0x010|40 |@ | + 0x010| 3f 4a e3 c0 f8 e5 a4 23 04 52 ad 9d c6 ea 50| ?J.....#.R....P| encrypted_data: raw bits 0x101-0x140.7 (64) + 0x011|1a 77 18 c9 32 53 f1 17 cb a6 f7 9e d9 dd 9a 8f|.w..2S..........| + * |until 0x140.7 (64) | | + | | | [5]{}: record 0x141-0x175.7 (53) + 0x014| 15 | . | type: "alert" (21) (valid) 0x141-0x141.7 (1) + 0x014| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x142-0x143.7 (2) + 0x014| 00 30 | .0 | length: 48 0x144-0x145.7 (2) + 0x014| a5 5a 1c db 9f 6d a9 ac 93 8f| .Z...m....| encrypted_data: raw bits 0x146-0x175.7 (48) + 0x015|c4 20 72 3e 10 2c 06 a3 b5 ce 6c 49 e8 33 22 f6|. r>.,....lI.3".| + * |until 0x175.7 (end) (48) | | + | | | server{}: 0xeae-NA (0) + | | | ip: "127.0.0.1" 0xeae-NA (0) + | | | port: 4433 0xeae-NA (0) + | | | has_start: true 0xeae-NA (0) + | | | has_end: true 0xeae-NA (0) + | | | skipped_bytes: 0 0xeae-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x91f.7 (2336) + | | | records[0:8]: 0x0-0x91f.7 (2336) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000| b0| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|c9 7a 93 cd c9 0c 33 11 00 39 93 c7 77 ac 30 f2|.z....3..9..w.0.| + 0x002|38 cb dd f0 58 51 1a e8 c4 87 88 |8...XQ..... | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 99 | .. | cipher_suit: "TLS_DHE_DSS_WITH_SEED_CBC_SHA" (0x99) 0x2c-0x2d.7 (2) + 0x002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x2c3.7 (645) + 0x003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x004| 02 80 | .. | length: 640 0x42-0x43.7 (2) + | | | message{}: 0x44-0x2c3.7 (640) + 0x004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x004| 00 02 7c | ..| | length: 636 0x45-0x47.7 (3) + 0x004| 00 02 79 | ..y | certificates_length: 633 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x2c3.7 (633) + | | | [0]{}: certificate 0x4b-0x2c3.7 (633) + 0x004| 00 02 76 | ..v | length: 630 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x2c3.7 (630) + 0x004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x004| 82| .| length: 626 0x4f-0x51.7 (3) + 0x005|02 72 |.r | + | | | constructed[0:3]: 0x52-0x2c3.7 (626) + | | | [0]{}: object 0x52-0x287.7 (566) + 0x005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x005| 82 02 32 | ..2 | length: 562 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x287.7 (562) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x005| 00 c6 85 8b d3 08 d4 32| .......2| value: 14304993529914733277 0x58-0x60.7 (9) + 0x006|dd |. | + | | | [1]{}: object 0x61-0x6b.7 (11) + 0x006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x006| 09 | . | length: 9 0x62-0x62.7 (1) + | | | constructed[0:1]: 0x63-0x6b.7 (9) + | | | [0]{}: object 0x63-0x6b.7 (9) + 0x006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x006| 07 | . | length: 7 0x64-0x64.7 (1) + | | | value[0:6]: 0x65-0x6b.7 (7) + 0x006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x006| ce 38 | .8 | [3]: 10040 oid 0x68-0x69.7 (2) + 0x006| 04 | . | [4]: 4 oid 0x6a-0x6a.7 (1) + 0x006| 03 | . | [5]: 3 oid 0x6b-0x6b.7 (1) + | | | [2]{}: object 0x6c-0x8c.7 (33) + 0x006| 30 | 0 | class: "universal" (0) 0x6c-0x6c.1 (0.2) + 0x006| 30 | 0 | form: "constructed" (1) 0x6c.2-0x6c.2 (0.1) + 0x006| 30 | 0 | tag: "sequence" (0x10) 0x6c.3-0x6c.7 (0.5) + 0x006| 1f | . | length: 31 0x6d-0x6d.7 (1) + | | | constructed[0:1]: 0x6e-0x8c.7 (31) + | | | [0]{}: object 0x6e-0x8c.7 (31) + 0x006| 31 | 1 | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x006| 31 | 1 | form: "constructed" (1) 0x6e.2-0x6e.2 (0.1) + 0x006| 31 | 1 | tag: "set" (0x11) 0x6e.3-0x6e.7 (0.5) + 0x006| 1d| .| length: 29 0x6f-0x6f.7 (1) + | | | constructed[0:1]: 0x70-0x8c.7 (29) + | | | [0]{}: object 0x70-0x8c.7 (29) + 0x007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x007| 1b | . | length: 27 0x71-0x71.7 (1) + | | | constructed[0:2]: 0x72-0x8c.7 (27) + | | | [0]{}: object 0x72-0x76.7 (5) + 0x007| 06 | . | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x007| 06 | . | form: "primitive" (0) 0x72.2-0x72.2 (0.1) + 0x007| 06 | . | tag: "object_identifier" (0x6) 0x72.3-0x72.7 (0.5) + 0x007| 03 | . | length: 3 0x73-0x73.7 (1) + | | | value[0:4]: 0x74-0x76.7 (3) + 0x007| 55 | U | [0]: 2 oid 0x74-0x74.7 (1) + 0x007| 55 | U | [1]: 5 oid 0x74-0x74.7 (1) + 0x007| 04 | . | [2]: 4 oid 0x75-0x75.7 (1) + 0x007| 03 | . | [3]: 3 oid 0x76-0x76.7 (1) + | | | [1]{}: object 0x77-0x8c.7 (22) + 0x007| 0c | . | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x007| 0c | . | form: "primitive" (0) 0x77.2-0x77.2 (0.1) + 0x007| 0c | . | tag: "utf8_string" (0xc) 0x77.3-0x77.7 (0.5) + 0x007| 14 | . | length: 20 0x78-0x78.7 (1) + 0x007| 54 65 73 74 20 43 65| Test Ce| value: "Test Certificate DSS" 0x79-0x8c.7 (20) + 0x008|72 74 69 66 69 63 61 74 65 20 44 53 53 |rtificate DSS | + | | | [3]{}: object 0x8d-0xac.7 (32) + 0x008| 30 | 0 | class: "universal" (0) 0x8d-0x8d.1 (0.2) + 0x008| 30 | 0 | form: "constructed" (1) 0x8d.2-0x8d.2 (0.1) + 0x008| 30 | 0 | tag: "sequence" (0x10) 0x8d.3-0x8d.7 (0.5) + 0x008| 1e | . | length: 30 0x8e-0x8e.7 (1) + | | | constructed[0:2]: 0x8f-0xac.7 (30) + | | | [0]{}: object 0x8f-0x9d.7 (15) + 0x008| 17| .| class: "universal" (0) 0x8f-0x8f.1 (0.2) + 0x008| 17| .| form: "primitive" (0) 0x8f.2-0x8f.2 (0.1) + 0x008| 17| .| tag: "utc_time" (0x17) 0x8f.3-0x8f.7 (0.5) + 0x009|0d |. | length: 13 0x90-0x90.7 (1) + 0x009| 31 33 30 39 31 35 32 31 35 31 31 30 5a | 130915215110Z | value: "130915215110Z" 0x91-0x9d.7 (13) + | | | [1]{}: object 0x9e-0xac.7 (15) + 0x009| 17 | . | class: "universal" (0) 0x9e-0x9e.1 (0.2) + 0x009| 17 | . | form: "primitive" (0) 0x9e.2-0x9e.2 (0.1) + 0x009| 17 | . | tag: "utc_time" (0x17) 0x9e.3-0x9e.7 (0.5) + 0x009| 0d| .| length: 13 0x9f-0x9f.7 (1) + 0x00a|32 33 30 39 31 33 32 31 35 31 31 30 5a |230913215110Z | value: "230913215110Z" 0xa0-0xac.7 (13) + | | | [4]{}: object 0xad-0xcd.7 (33) + 0x00a| 30 | 0 | class: "universal" (0) 0xad-0xad.1 (0.2) + 0x00a| 30 | 0 | form: "constructed" (1) 0xad.2-0xad.2 (0.1) + 0x00a| 30 | 0 | tag: "sequence" (0x10) 0xad.3-0xad.7 (0.5) + 0x00a| 1f | . | length: 31 0xae-0xae.7 (1) + | | | constructed[0:1]: 0xaf-0xcd.7 (31) + | | | [0]{}: object 0xaf-0xcd.7 (31) + 0x00a| 31| 1| class: "universal" (0) 0xaf-0xaf.1 (0.2) + 0x00a| 31| 1| form: "constructed" (1) 0xaf.2-0xaf.2 (0.1) + 0x00a| 31| 1| tag: "set" (0x11) 0xaf.3-0xaf.7 (0.5) + 0x00b|1d |. | length: 29 0xb0-0xb0.7 (1) + | | | constructed[0:1]: 0xb1-0xcd.7 (29) + | | | [0]{}: object 0xb1-0xcd.7 (29) + 0x00b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00b| 1b | . | length: 27 0xb2-0xb2.7 (1) + | | | constructed[0:2]: 0xb3-0xcd.7 (27) + | | | [0]{}: object 0xb3-0xb7.7 (5) + 0x00b| 06 | . | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00b| 06 | . | form: "primitive" (0) 0xb3.2-0xb3.2 (0.1) + 0x00b| 06 | . | tag: "object_identifier" (0x6) 0xb3.3-0xb3.7 (0.5) + 0x00b| 03 | . | length: 3 0xb4-0xb4.7 (1) + | | | value[0:4]: 0xb5-0xb7.7 (3) + 0x00b| 55 | U | [0]: 2 oid 0xb5-0xb5.7 (1) + 0x00b| 55 | U | [1]: 5 oid 0xb5-0xb5.7 (1) + 0x00b| 04 | . | [2]: 4 oid 0xb6-0xb6.7 (1) + 0x00b| 03 | . | [3]: 3 oid 0xb7-0xb7.7 (1) + | | | [1]{}: object 0xb8-0xcd.7 (22) + 0x00b| 0c | . | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00b| 0c | . | form: "primitive" (0) 0xb8.2-0xb8.2 (0.1) + 0x00b| 0c | . | tag: "utf8_string" (0xc) 0xb8.3-0xb8.7 (0.5) + 0x00b| 14 | . | length: 20 0xb9-0xb9.7 (1) + 0x00b| 54 65 73 74 20 43| Test C| value: "Test Certificate DSS" 0xba-0xcd.7 (20) + 0x00c|65 72 74 69 66 69 63 61 74 65 20 44 53 53 |ertificate DSS | + | | | [5]{}: object 0xce-0x287.7 (442) + 0x00c| 30 | 0 | class: "universal" (0) 0xce-0xce.1 (0.2) + 0x00c| 30 | 0 | form: "constructed" (1) 0xce.2-0xce.2 (0.1) + 0x00c| 30 | 0 | tag: "sequence" (0x10) 0xce.3-0xce.7 (0.5) + 0x00c| 82| .| length: 438 0xcf-0xd1.7 (3) + 0x00d|01 b6 |.. | + | | | constructed[0:2]: 0xd2-0x287.7 (438) + | | | [0]{}: object 0xd2-0x200.7 (303) + 0x00d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00d| 82 01 2b | ..+ | length: 299 0xd3-0xd5.7 (3) + | | | constructed[0:2]: 0xd6-0x200.7 (299) + | | | [0]{}: object 0xd6-0xde.7 (9) + 0x00d| 06 | . | class: "universal" (0) 0xd6-0xd6.1 (0.2) + 0x00d| 06 | . | form: "primitive" (0) 0xd6.2-0xd6.2 (0.1) + 0x00d| 06 | . | tag: "object_identifier" (0x6) 0xd6.3-0xd6.7 (0.5) + 0x00d| 07 | . | length: 7 0xd7-0xd7.7 (1) + | | | value[0:6]: 0xd8-0xde.7 (7) + 0x00d| 2a | * | [0]: 1 oid 0xd8-0xd8.7 (1) + 0x00d| 2a | * | [1]: 2 oid 0xd8-0xd8.7 (1) + 0x00d| 86 48 | .H | [2]: 840 oid 0xd9-0xda.7 (2) + 0x00d| ce 38 | .8 | [3]: 10040 oid 0xdb-0xdc.7 (2) + 0x00d| 04 | . | [4]: 4 oid 0xdd-0xdd.7 (1) + 0x00d| 01 | . | [5]: 1 oid 0xde-0xde.7 (1) + | | | [1]{}: object 0xdf-0x200.7 (290) + 0x00d| 30| 0| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00d| 30| 0| form: "constructed" (1) 0xdf.2-0xdf.2 (0.1) + 0x00d| 30| 0| tag: "sequence" (0x10) 0xdf.3-0xdf.7 (0.5) + 0x00e|82 01 1e |... | length: 286 0xe0-0xe2.7 (3) + | | | constructed[0:3]: 0xe3-0x200.7 (286) + | | | [0]{}: object 0xe3-0x166.7 (132) + 0x00e| 02 | . | class: "universal" (0) 0xe3-0xe3.1 (0.2) + 0x00e| 02 | . | form: "primitive" (0) 0xe3.2-0xe3.2 (0.1) + 0x00e| 02 | . | tag: "integer" (0x2) 0xe3.3-0xe3.7 (0.5) + 0x00e| 81 81 | .. | length: 129 0xe4-0xe5.7 (2) + 0x00e| 00 c2 f7 7e e9 70 e7 89 12 0a| ...~.p....| value: 136910329070488299378327259524927038161733379470505356730121232091090086514834553845968989920849620435345775777167290535699239055131308141952489888965222417689471480719820943713033298825729988988452440118426146804292912092805770067484684608296506113124192386094297682201884209532959834970982669442066672091881 0xe6-0x166.7 (129) + 0x00f|a5 78 26 24 fc cd 49 7e c2 d3 9f 22 8d 27 e6 ca|.x&$..I~...".'..| + * |until 0x166.7 (129) | | + | | | [1]{}: object 0x167-0x17d.7 (23) + 0x016| 02 | . | class: "universal" (0) 0x167-0x167.1 (0.2) + 0x016| 02 | . | form: "primitive" (0) 0x167.2-0x167.2 (0.1) + 0x016| 02 | . | tag: "integer" (0x2) 0x167.3-0x167.7 (0.5) + 0x016| 15 | . | length: 21 0x168-0x168.7 (1) + 0x016| 00 98 58 f2 62 6b b6| ..X.bk.| value: 869750177406735357517327538899360394175585208387 0x169-0x17d.7 (21) + 0x017|3c 03 14 47 dd 8e 68 4a 3d 1c fe 4c 48 43 |<..G..hJ=..LHC | + | | | [2]{}: object 0x17e-0x200.7 (131) + 0x017| 02 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2) + 0x017| 02 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1) + 0x017| 02 | . | tag: "integer" (0x2) 0x17e.3-0x17e.7 (0.5) + 0x017| 81| .| length: 128 0x17f-0x180.7 (2) + 0x018|80 |. | + 0x018| 3f 02 ab 4e 43 f4 41 32 34 ad cd 98 49 8f c2| ?..NC.A24...I..| value: 44247426170402622087425518647469060177168515448383480108707357314914924071046359553790624375303209327971525248666708548293595274064224162982232337674914654715681152890905955591957342867846032291315547979242473713074351452275228730099918471850426035459597093784807208832673341150587615416898207576073482022832 0x181-0x200.7 (128) + 0x019|91 c9 3e 91 3b e8 6d 99 17 fc e1 51 de d5 b6 fa|..>.;.m....Q....| + * |until 0x200.7 (128) | | + | | | [1]{}: object 0x201-0x287.7 (135) + 0x020| 03 | . | class: "universal" (0) 0x201-0x201.1 (0.2) + 0x020| 03 | . | form: "primitive" (0) 0x201.2-0x201.2 (0.1) + 0x020| 03 | . | tag: "bit_string" (0x3) 0x201.3-0x201.7 (0.5) + 0x020| 81 84 | .. | length: 132 0x202-0x203.7 (2) + 0x020| 00 | . | unused_bits_count: 0 0x204-0x204.7 (1) + 0x020| 02 81 80 7f 19 87 d0 34 72 de 66| .......4r.f| value: raw bits 0x205-0x287.7 (131) + 0x021|cd 51 0f 99 aa da fb 56 89 94 64 4d 94 47 a1 b6|.Q.....V..dM.G..| + * |until 0x287.7 (131) | | + | | | [1]{}: object 0x288-0x292.7 (11) + 0x028| 30 | 0 | class: "universal" (0) 0x288-0x288.1 (0.2) + 0x028| 30 | 0 | form: "constructed" (1) 0x288.2-0x288.2 (0.1) + 0x028| 30 | 0 | tag: "sequence" (0x10) 0x288.3-0x288.7 (0.5) + 0x028| 09 | . | length: 9 0x289-0x289.7 (1) + | | | constructed[0:1]: 0x28a-0x292.7 (9) + | | | [0]{}: object 0x28a-0x292.7 (9) + 0x028| 06 | . | class: "universal" (0) 0x28a-0x28a.1 (0.2) + 0x028| 06 | . | form: "primitive" (0) 0x28a.2-0x28a.2 (0.1) + 0x028| 06 | . | tag: "object_identifier" (0x6) 0x28a.3-0x28a.7 (0.5) + 0x028| 07 | . | length: 7 0x28b-0x28b.7 (1) + | | | value[0:6]: 0x28c-0x292.7 (7) + 0x028| 2a | * | [0]: 1 oid 0x28c-0x28c.7 (1) + 0x028| 2a | * | [1]: 2 oid 0x28c-0x28c.7 (1) + 0x028| 86 48 | .H | [2]: 840 oid 0x28d-0x28e.7 (2) + 0x028| ce| .| [3]: 10040 oid 0x28f-0x290.7 (2) + 0x029|38 |8 | + 0x029| 04 | . | [4]: 4 oid 0x291-0x291.7 (1) + 0x029| 03 | . | [5]: 3 oid 0x292-0x292.7 (1) + | | | [2]{}: object 0x293-0x2c3.7 (49) + 0x029| 03 | . | class: "universal" (0) 0x293-0x293.1 (0.2) + 0x029| 03 | . | form: "primitive" (0) 0x293.2-0x293.2 (0.1) + 0x029| 03 | . | tag: "bit_string" (0x3) 0x293.3-0x293.7 (0.5) + 0x029| 2f | / | length: 47 0x294-0x294.7 (1) + 0x029| 00 | . | unused_bits_count: 0 0x295-0x295.7 (1) + 0x029| 30 2c 02 14 52 31 f8 06 82 70| 0,..R1...p| value: raw bits 0x296-0x2c3.7 (46) + 0x02a|cd 8e ed dd be 72 ec 66 5d 79 45 c1 49 7f 02 14|.....r.f]yE.I...| + * |until 0x2c3.7 (46) | | + | | | [2]{}: record 0x2c4-0x387.7 (196) + 0x02c| 16 | . | type: "handshake" (22) (valid) 0x2c4-0x2c4.7 (1) + 0x02c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c5-0x2c6.7 (2) + 0x02c| 00 bf | .. | length: 191 0x2c7-0x2c8.7 (2) + | | | message{}: 0x2c9-0x387.7 (191) + 0x02c| 0c | . | type: "server_key_exchange" (12) 0x2c9-0x2c9.7 (1) + 0x02c| 00 00 bb | ... | length: 187 0x2ca-0x2cc.7 (3) + 0x02c| 00 40 da| .@.| data: raw bits 0x2cd-0x387.7 (187) + 0x02d|58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c ca 92 dd|X<..."....uoL...| + * |until 0x387.7 (187) | | + | | | [3]{}: record 0x388-0x390.7 (9) + 0x038| 16 | . | type: "handshake" (22) (valid) 0x388-0x388.7 (1) + 0x038| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x389-0x38a.7 (2) + 0x038| 00 04 | .. | length: 4 0x38b-0x38c.7 (2) + | | | message{}: 0x38d-0x390.7 (4) + 0x038| 0e | . | type: "server_hello_done" (14) 0x38d-0x38d.7 (1) + 0x038| 00 00| ..| length: 0 0x38e-0x390.7 (3) + 0x039|00 |. | + | | | data: raw bits 0x391-NA (0) + | | | [4]{}: record 0x391-0x43f.7 (175) + 0x039| 16 | . | type: "handshake" (22) (valid) 0x391-0x391.7 (1) + 0x039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x392-0x393.7 (2) + 0x039| 00 aa | .. | length: 170 0x394-0x395.7 (2) + | | | message{}: 0x396-0x43f.7 (170) + 0x039| 04 | . | type: "new_session_ticket" (4) 0x396-0x396.7 (1) + 0x039| 00 00 a6 | ... | length: 166 0x397-0x399.7 (3) + 0x039| 00 00 01 2c | ..., | lifetime_hint: 300 0x39a-0x39d.7 (4) + 0x039| 00 a0| ..| ticket_length: 160 0x39e-0x39f.7 (2) + 0x03a|22 07 b4 d8 97 c7 0f f3 0f f1 4b c1 4b d0 cb 8e|".........K.K...| ticket: raw bits 0x3a0-0x43f.7 (160) + * |until 0x43f.7 (160) | | + | | | [5]{}: record 0x440-0x445.7 (6) + 0x044|14 |. | type: "change_cipher_spec" (20) (valid) 0x440-0x440.7 (1) + 0x044| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x441-0x442.7 (2) + 0x044| 00 01 | .. | length: 1 0x443-0x444.7 (2) + | | | message{}: 0x445-0x445.7 (1) + 0x044| 01 | . | type: 1 0x445-0x445.7 (1) + | | | [6]{}: record 0x446-0x48a.7 (69) + 0x044| 16 | . | type: "handshake" (22) (valid) 0x446-0x446.7 (1) + 0x044| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x447-0x448.7 (2) + 0x044| 00 40 | .@ | length: 64 0x449-0x44a.7 (2) + 0x044| d2 b9 8c 04 00| .....| encrypted_data: raw bits 0x44b-0x48a.7 (64) + 0x045|30 19 4c 86 bb 3a 6f ad be fd 04 54 24 49 88 1d|0.L..:o....T$I..| + * |until 0x48a.7 (64) | | + | | | [7]{}: record 0x48b-0x91f.7 (1173) + 0x048| 17 | . | type: "application_data" (23) (valid) 0x48b-0x48b.7 (1) + 0x048| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48c-0x48d.7 (2) + 0x048| 04 90| ..| length: 1168 0x48e-0x48f.7 (2) + 0x049|c5 94 61 94 58 b2 1c 06 08 07 99 5f fc ca 4f 91|..a.X......_..O.| encrypted_data: raw bits 0x490-0x91f.7 (1168) + * |until 0x91f.7 (end) (1168) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..99009b05daca9f181f74e7f0b64d5c0f640e7af8 GIT binary patch literal 3601 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..a75441c5 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest @@ -0,0 +1,467 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xe11-NA (0) + | | | client{}: 0xe11-NA (0) + | | | ip: "127.0.0.1" 0xe11-NA (0) + | | | port: 39032 0xe11-NA (0) + | | | has_start: true 0xe11-NA (0) + | | | has_end: false 0xe11-NA (0) + | | | skipped_bytes: 0 0xe11-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x15d.7 (350) + | | | records[0:6]: 0x0-0x15d.7 (350) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| ed| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|30 9b 0d f7 1e 97 f6 fe 7a 56 30 11 5a 73 a0 31|0.......zV0.Zs.1| + 0x000002|a8 66 00 44 ac 05 34 93 45 e0 78 |.f.D..4.E.x | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 14| ..| [0]: "TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA" (0x14) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xb0.7 (75) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 46 | .F | length: 70 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xb0.7 (70) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 42 | ..B | length: 66 0x6c-0x6e.7 (3) + 0x000006| 00| .| data: raw bits 0x6f-0xb0.7 (66) + 0x000007|40 d6 77 9f 62 48 6f ee ef b0 aa 9b 7b 54 df b3|@.w.bHo.....{T..| + * |until 0xb0.7 (66) | | + | | | [2]{}: record 0xb1-0xb6.7 (6) + 0x00000b| 14 | . | type: "change_cipher_spec" (20) (valid) 0xb1-0xb1.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb2-0xb3.7 (2) + 0x00000b| 00 01 | .. | length: 1 0xb4-0xb5.7 (2) + | | | message{}: 0xb6-0xb6.7 (1) + 0x00000b| 01 | . | type: 1 0xb6-0xb6.7 (1) + | | | [3]{}: record 0xb7-0xf3.7 (61) + 0x00000b| 16 | . | type: "handshake" (22) (valid) 0xb7-0xb7.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb8-0xb9.7 (2) + 0x00000b| 00 38 | .8 | length: 56 0xba-0xbb.7 (2) + 0x00000b| 82 db 08 8f| ....| encrypted_data: raw bits 0xbc-0xf3.7 (56) + 0x00000c|4b bb 7d 6c 94 3a 09 e4 4b c3 cc 0a 8d c6 71 01|K.}l.:..K.....q.| + * |until 0xf3.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| a4 28 37 aa eb 85 0d 20 47 fe b6 17| .(7.... G...| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0xf4-0x130.7 (61) + 0x00000f| 17 | . | type: "application_data" (23) (valid) 0xf4-0xf4.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf5-0xf6.7 (2) + 0x00000f| 00 38 | .8 | length: 56 0xf7-0xf8.7 (2) + 0x00000f| 29 32 64 3c bb 0d dc| )2d<...| encrypted_data: raw bits 0xf9-0x130.7 (56) + 0x000010|68 e2 e4 be ca 62 5e 88 cd 68 b6 7d 2a 42 e5 3d|h....b^..h.}*B.=| + * |until 0x130.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x131-0x15d.7 (45) + 0x000013| 15 | . | type: "alert" (21) (valid) 0x131-0x131.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x132-0x133.7 (2) + 0x000013| 00 28 | .( | length: 40 0x134-0x135.7 (2) + 0x000013| d9 02 83 1f 73 af 66 f1 93 e5| ....s.f...| encrypted_data: raw bits 0x136-0x15d.7 (40) + 0x000014|a3 98 93 03 1d dc 96 8c f7 41 1e a8 cd ca b6 6c|.........A.....l| + 0x000015|fe 93 85 0f b7 02 fd 9a f6 98 bd fb 25 11| |............%.| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xe11-NA (0) + | | | ip: "127.0.0.1" 0xe11-NA (0) + | | | port: 4430 0xe11-NA (0) + | | | has_start: true 0xe11-NA (0) + | | | has_end: true 0xe11-NA (0) + | | | skipped_bytes: 0 0xe11-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x89a.7 (2203) + | | | records[0:8]: 0x0-0x89a.7 (2203) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| c0| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|3c 59 90 2c ba 81 31 da 7b 1d d9 1a 63 c2 18 56|..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x000020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x000020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x000021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x000031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x000031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x000031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x000032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x000032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x000032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x000032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x000032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x000032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x000032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x000032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x000033|2c |, | + 0x000033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x000033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x000034|a1 7e 31 e7 7f e0 8f 45 e6 d0 61 07 fe 7f 70 b7|.~1....E..a...p.| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x00003d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x00003d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x00003d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x415.7 (61) + 0x00003d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x00003d| 00 38 | .8 | length: 56 0x3dc-0x3dd.7 (2) + 0x00003d| 65 45| eE| encrypted_data: raw bits 0x3de-0x415.7 (56) + 0x00003e|28 3f 6f 8c d7 57 38 19 87 9f 9f c2 4a 6c 83 ca|(?o..W8.....Jl..| + * |until 0x415.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 6a 8f 70 d9 85 d9 30 c1 18 c9 ff 79| j.p...0....y| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x416-0x89a.7 (1157) + 0x000041| 17 | . | type: "application_data" (23) (valid) 0x416-0x416.7 (1) + 0x000041| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x417-0x418.7 (2) + 0x000041| 04 80 | .. | length: 1152 0x419-0x41a.7 (2) + 0x000041| 21 ee 3c 13 d5| !.<..| encrypted_data: raw bits 0x41b-0x89a.7 (1152) + 0x000042|48 45 40 1e 80 a2 7a 66 ca 5a e7 42 d5 f8 01 5b|HE@...zf.Z.B...[| + * |until 0x89a.7 (end) (1152) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x113e.7 (4415) + * |until 0x113e.7 (end) (4415) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x113e.7 (4415) + * |until 0x113e.7 (end) (4415) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..69d53fcb4276f09784933a8c01a493dec0c4b1b8 GIT binary patch literal 3601 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 hNTQ+tJ^)..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x000020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x000020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x000021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x000031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x000031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x000031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x000032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x000032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x000032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x000032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x000032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x000032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x000032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x000032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x000033|2c |, | + 0x000033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x000033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x000034|a1 7e 31 d3 58 5e 2a be 0b 3d 2f da ba 0f e8 fa|.~1.X^*..=/.....| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x00003d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x00003d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x00003d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x415.7 (61) + 0x00003d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x00003d| 00 38 | .8 | length: 56 0x3dc-0x3dd.7 (2) + 0x00003d| e8 b9| ..| encrypted_data: raw bits 0x3de-0x415.7 (56) + 0x00003e|94 85 57 e4 b9 6a 16 4b 1e d3 3e 04 b5 d4 0b ca|..W..j.K..>.....| + * |until 0x415.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 84 c7 25 35 57 4c 10 3c dd c8 71 b9| ..%5WL.<..q.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x416-0x89a.7 (1157) + 0x000041| 17 | . | type: "application_data" (23) (valid) 0x416-0x416.7 (1) + 0x000041| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x417-0x418.7 (2) + 0x000041| 04 80 | .. | length: 1152 0x419-0x41a.7 (2) + 0x000041| 49 2e 34 91 24| I.4.$| encrypted_data: raw bits 0x41b-0x89a.7 (1152) + 0x000042|91 fd e6 24 de 56 6d aa 98 b7 fe a7 f5 a5 55 77|...$.Vm.......Uw| + * |until 0x89a.7 (end) (1152) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1135.7 (4406) + * |until 0x1135.7 (end) (4406) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1135.7 (4406) + * |until 0x1135.7 (end) (4406) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..e8516f3528af43737136b090aef552caf18ecd6b GIT binary patch literal 3649 zcmai%2{=@38^@nBGe}JKrR<{+VK4>}gDfR`ma-+;D!Y;;*~*$_Ohh7;HEohgZ$*|6 zCP}hKwooG365ly$-cR4#_kHKO?s?90u5b$0SusBtE&JE(I)Vy z_A7MYTe3I_km!raX8?eZxM;^_bc^~y5qbRzsS76IlV0qY`=CDwFh&{)585n&!Kj1{t6 zk$`nTKQ+;GA$l@@1kkA2WYXLcg!S6xK z_BRHcEoAtg*`mQt6ad7Z*(M(@@94g-3h<}(v|06-EcGoD&K37JFiGv?vIRf^0-IJL z0Ef+$8XTOivuwyacx$I>%Op3^@!kA)yQI)E3F z6TtJ)qb)FKX3qW2e*VJR&c6QcF78f_{?5W?=9+jx9;}=KUPVq(UQSU?4u6mbE00VS zeog;BAUtRNnh+g8ho1-d@K{uMI4Dt+Og&R;%zLpk=gN1&$Y6YShi(ePJN>vq?f9k2 z)d!934%SbHWQFZh-a4Hfu5z4ifbhKOH#ed5-DBEFU#yX%bPa4jM2|zOzvS$ zVN4sz9B>(qIwE^@-v^NrtrL?8ALlx=NiPLZ)d_B2q;&c3iL0F0Bw5p$RbFNY_a8v( z<-sLE!@69x_Z41OpWu_1@Q&}ESed@(t#W~&AU3tX9Je^oK2m)$ZMcfl(I)Tt@zIef zAU64zzWBFYelA=}S;f)mQ@Ac`)5i)Q>veaxHe6P0a-rK^cErJBKm@DfRzk1MHBeVm zU$#_D__0UjB@T+i6HM-GwFo}$VLPX=<@j7c{*Fv}q>n7j0Ad29E^9UJ&a=4KS3|c? zc_ZkcB49A@PBirMi_+z>`aYhsWk@pBZC)aJpJcc)nx@h z3y^NSX?A4;v7Yp#>O-s_4nM~0KF;I$$ZNI5=IetDP5DB@ z70?nMHLl9^^{#}4o~KVJC!E{b=>?=lW8FvXdkHn_IsNR%Zg~wY6fMN@&xkEq6lq#~ zC)N9ib?L-kbuexGfvHSLxKErR9HgAz8n66k*8&qavdT-$l3o(TW@rU~EJ`$HZRrlQsYxe$Hy)4y5 zDZS#K16PmaTZR{?BM-Mko94Nm ztdl8fQm;A|@#c#&sX}V}PO=h~=j@s4Vg6Csyc>0)2cq{7XT3f*vb$Y6-8a`SYFWO!D^u%oSr(AtpdRHpu%a zW%{Krr*XwxR|bektIgGjk27mK=-G6lvAsDqC(JyC6+7<7=P2c?Xq}dy`FeMis;%G2 z9rknEVhbK=CZ5`Gg}L`O`owLMR1$TYjM(8DOUY?j!J!-#hTQDJyh(JO)jf-xGHOAZ zoo?*bbe>-3AAzQ3z^!@Q9_$(AO?L+NRqPTyqD0g%*MXL%pN??&Q9@a^V@gcmn$Ad=xq${mpDG}f1z7PW1mRbu9245&JT(dgS#^x_(`R*H_vaj z8-K@z-P%TFaLD#kiydyrLO)RSC9L&9UD4~}w^$f|5+c2TkydsoS&}bvqXg~+U+4A~U22UMN31bl<=E=~S%CBdJ&sN1P#9VI@88YwaS zpVd>Cc}%ZqNL+}#riS&t$&$P`?s9#Lg9Bfv2C9Fa-qhs4j@x;8yq3*EfRS8QJ9BJXSGXHGB-Wj)wB`lADy746!Sn^@HS zJZ^`6ZtJMf;ETxXlnpW&>hBO3nYU2(A8+;|#~$r{DRPkcD$fOrAp3`>8$%X88VM_! zlREmBk9OH{-kKyixS}4Ld+^a!q0?h4(ltDz0S*HQoZX%Q%X-{JrxKMG-dX1@ya}vs z+L=?kD7VW;`ut!$mULeB3tyqo6Xojf%zP{kXMI@<0|#0ZuNOaL7yI%-T8&cae`v2u zXq5Njc|*mhs`p!|AJd-o?2pjXSEFe76&|$T;?9R-P}CorvJ4-mlTtn0 z6TU&?Y4Vrc>&EPVW#1K-yhN_y{lS{_%8~;geVq8>z~@M79;$(#Qs6Ro-=0~A{>Iu4 z$&jGIB#jH&vxKejCN>14va2O(+I`JB`qfkAe342r<1Y;s{W8bZR4>gi_FWTP(^T7h)<8B? zOI-7$=tH`gOH39)*Vuv^t0FEfBrLI0jGn~v-%#NyaVjbpu`xjF*{)x1y#0?d8U&n}UITJu9g=1;M8aTBu)1(chq91SApgFg?7GCLKNioZl>ck#t= zofCMM_QjCEJZLFbbU%XZA~;~0QhH; literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..0b93d926 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest @@ -0,0 +1,472 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_DHE_RSA_WITH_AES_128_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xe41-NA (0) + | | | client{}: 0xe41-NA (0) + | | | ip: "127.0.0.1" 0xe41-NA (0) + | | | port: 39005 0xe41-NA (0) + | | | has_start: true 0xe41-NA (0) + | | | has_end: false 0xe41-NA (0) + | | | skipped_bytes: 0 0xe41-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x175.7 (374) + | | | records[0:6]: 0x0-0x175.7 (374) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| eb| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|bd 2d 07 96 81 54 9d fd d3 16 1f 69 4b fc c2 c6|.-...T.....iK...| + 0x000002|a7 6a f6 c7 fe 8f 4c e8 ce d3 f7 |.j....L.... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 33| .3| [0]: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" (0x33) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xb0.7 (75) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 46 | .F | length: 70 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xb0.7 (70) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 42 | ..B | length: 66 0x6c-0x6e.7 (3) + | | | public{}: 0x6f-NA (0) + 0x000006| 00| .| length: 64 0x6f-0x70.7 (2) + 0x000007|40 |@ | + 0x000007| ab d4 cd 68 c7 67 b2 79 a4 f2 c7 6a 66 d9 04| ...h.g.y...jf..| data: raw bits 0x71-0xb0.7 (64) + 0x000008|f1 a6 70 cd e3 57 26 dc 97 8f c3 60 10 e3 62 bb|..p..W&....`..b.| + * |until 0xb0.7 (64) | | + | | | [2]{}: record 0xb1-0xb6.7 (6) + 0x00000b| 14 | . | type: "change_cipher_spec" (20) (valid) 0xb1-0xb1.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb2-0xb3.7 (2) + 0x00000b| 00 01 | .. | length: 1 0xb4-0xb5.7 (2) + | | | message{}: 0xb6-0xb6.7 (1) + 0x00000b| 01 | . | type: 1 0xb6-0xb6.7 (1) + | | | [3]{}: record 0xb7-0xfb.7 (69) + 0x00000b| 16 | . | type: "handshake" (22) (valid) 0xb7-0xb7.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb8-0xb9.7 (2) + 0x00000b| 00 40 | .@ | length: 64 0xba-0xbb.7 (2) + 0x00000b| ca 4f 46 b9| .OF.| encrypted_data: raw bits 0xbc-0xfb.7 (64) + 0x00000c|d5 4a 34 c4 3e 9f df 12 6b ae 6f e4 f8 a9 f8 8a|.J4.>...k.o.....| + * |until 0xfb.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 86 92 16 88 1a d7 da e7 4c 28 06 da| ........L(..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0xfc-0x140.7 (69) + 0x00000f| 17 | . | type: "application_data" (23) (valid) 0xfc-0xfc.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xfd-0xfe.7 (2) + 0x00000f| 00| .| length: 64 0xff-0x100.7 (2) + 0x000010|40 |@ | + 0x000010| 72 b4 30 1d c6 92 e5 ce 87 51 a5 67 76 c6 2e| r.0......Q.gv..| encrypted_data: raw bits 0x101-0x140.7 (64) + 0x000011|a9 cc 3e c1 6b 82 d4 f0 65 40 ba 2b ea b0 90 37|..>.k...e@.+...7| + * |until 0x140.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x141-0x175.7 (53) + 0x000014| 15 | . | type: "alert" (21) (valid) 0x141-0x141.7 (1) + 0x000014| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x142-0x143.7 (2) + 0x000014| 00 30 | .0 | length: 48 0x144-0x145.7 (2) + 0x000014| 02 41 77 da 9f 6d fd 26 82 07| .Aw..m.&..| encrypted_data: raw bits 0x146-0x175.7 (48) + 0x000015|06 28 e5 56 51 e3 f8 11 93 92 cc 0d c1 0a 68 cf|.(.VQ.........h.| + * |until 0x175.7 (end) (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xe41-NA (0) + | | | ip: "127.0.0.1" 0xe41-NA (0) + | | | port: 4430 0xe41-NA (0) + | | | has_start: true 0xe41-NA (0) + | | | has_end: true 0xe41-NA (0) + | | | skipped_bytes: 0 0xe41-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x8b2.7 (2227) + | | | records[0:8]: 0x0-0x8b2.7 (2227) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 90| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|62 b6 d7 db b5 3b 00 30 7d 47 43 10 47 0b 56 48|b....;.0}GC.G.VH| + 0x000002|56 8c 86 aa df c9 0b 2b 3a 15 5c |V......+:.\ | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 33 | .3 | cipher_suit: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" (0x33) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x000020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x000020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x000021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x000031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x000031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x000031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x000032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x000032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x000032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x000032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x000032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x000032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x000032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x000032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x000033|2c |, | + 0x000033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x000033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x000034|a1 7e 31 55 06 5b 20 e2 7d 0b d1 21 f1 12 71 e5|.~1U.[ .}..!..q.| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x00003d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x00003d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x00003d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x41d.7 (69) + 0x00003d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x00003d| 00 40 | .@ | length: 64 0x3dc-0x3dd.7 (2) + 0x00003d| 58 ac| X.| encrypted_data: raw bits 0x3de-0x41d.7 (64) + 0x00003e|e8 9e d5 37 ac 22 1f 53 6d c4 72 a0 16 2e 7e cc|...7.".Sm.r...~.| + * |until 0x41d.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 03 22 75 55 48 a7 97 60 fd cc a0 5e| ."uUH..`...^| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x41e-0x8b2.7 (1173) + 0x000041| 17 | . | type: "application_data" (23) (valid) 0x41e-0x41e.7 (1) + 0x000041| 03| .| version: "tls1.2" (0x303) (valid) 0x41f-0x420.7 (2) + 0x000042|03 |. | + 0x000042| 04 90 | .. | length: 1168 0x421-0x422.7 (2) + 0x000042| fb e1 04 a0 4f 51 1f 0b 00 92 6b e2 18| ....OQ....k..| encrypted_data: raw bits 0x423-0x8b2.7 (1168) + 0x000043|ed 91 f1 cb 72 14 4f ba f6 da 99 00 82 96 c5 a1|....r.O.........| + * |until 0x8b2.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x112f.7 (4400) + * |until 0x112f.7 (end) (4400) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x112f.7 (4400) + * |until 0x112f.7 (end) (4400) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_CBC_SHA256.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_CBC_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..9da462a14576ee3c1bd4906a1abbdf039841c9ec GIT binary patch literal 3729 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..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x000020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x000020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x000021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x000031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x000031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x000031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x000032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x000032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x000032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x000032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x000032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x000032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x000032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x000032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x000033|2c |, | + 0x000033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x000033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x000034|a1 7e 31 68 7e 49 65 ec d4 38 22 54 64 88 4a b6|.~1h~Ie..8"Td.J.| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x00003d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x00003d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x00003d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x42d.7 (85) + 0x00003d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x00003d| 00 50 | .P | length: 80 0x3dc-0x3dd.7 (2) + 0x00003d| 15 2b| .+| encrypted_data: raw bits 0x3de-0x42d.7 (80) + 0x00003e|f3 72 b5 50 62 f7 fa 25 eb cc 6d d7 aa 9f ae 7d|.r.Pb..%..m....}| + * |until 0x42d.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 12 fc ff 80 2c 48 92 2b 50 57 0a a5| ....,H.+PW..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x42e-0x8d2.7 (1189) + 0x000042| 17 | . | type: "application_data" (23) (valid) 0x42e-0x42e.7 (1) + 0x000042| 03| .| version: "tls1.2" (0x303) (valid) 0x42f-0x430.7 (2) + 0x000043|03 |. | + 0x000043| 04 a0 | .. | length: 1184 0x431-0x432.7 (2) + 0x000043| 11 a2 df 75 bb f9 ba aa fe 8f 7e 99 52| ...u......~.R| encrypted_data: raw bits 0x433-0x8d2.7 (1184) + 0x000044|3b bb e6 a4 ab 68 6b 2b a1 9d d9 4f 9e 5c 07 0a|;....hk+...O.\..| + * |until 0x8d2.7 (end) (1184) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1138.7 (4409) + * |until 0x1138.7 (end) (4409) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1138.7 (4409) + * |until 0x1138.7 (end) (4409) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_GCM_SHA256.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_128_GCM_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..e81ca723bcccab8974e5d51fb921bbf7d21d5280 GIT binary patch literal 3567 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..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x000020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x000020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x000021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x000031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x000031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x000031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x000032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x000032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x000032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x000032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x000032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x000032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x000032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x000032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x000033|2c |, | + 0x000033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x000033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x000034|a1 7e 31 ad 44 60 af ee 5f 0e 8b dc df 9d 3b 75|.~1.D`.._.....;u| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x00003d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x00003d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x00003d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x40e.7 (54) + 0x00003d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x00003d| 00 31 | .1 | length: 49 0x3dc-0x3dd.7 (2) + 0x00003d| bd ee| ..| encrypted_data: raw bits 0x3de-0x40e.7 (49) + 0x00003e|60 a8 40 ac eb c8 73 59 4e 6a 4f 37 88 e4 37 d1|`.@...sYNjO7..7.| + * |until 0x40e.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 71 5b 6d bd b9 d8 4c 2d cd 37 d0 ac| q[m...L-.7..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x40f-0x88f.7 (1153) + 0x000040| 17| .| type: "application_data" (23) (valid) 0x40f-0x40f.7 (1) + 0x000041|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x410-0x411.7 (2) + 0x000041| 04 7c | .| | length: 1148 0x412-0x413.7 (2) + 0x000041| bd ee 60 a8 40 ac eb c9 3d ea fd 1f| ..`.@...=...| encrypted_data: raw bits 0x414-0x88f.7 (1148) + 0x000042|e2 ff 8b 2e c4 cd 89 bf b3 ff 80 a7 e8 da b3 93|................| + * |until 0x88f.7 (end) (1148) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1144.7 (4421) + * |until 0x1144.7 (end) (4421) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1144.7 (4421) + * |until 0x1144.7 (end) (4421) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..d36491f5e3d2486bd54bab39b5d6cc40db5e8050 GIT binary patch literal 3649 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..1cfbb0e4 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest @@ -0,0 +1,472 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_DHE_RSA_WITH_AES_256_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xe41-NA (0) + | | | client{}: 0xe41-NA (0) + | | | ip: "127.0.0.1" 0xe41-NA (0) + | | | port: 38974 0xe41-NA (0) + | | | has_start: true 0xe41-NA (0) + | | | has_end: false 0xe41-NA (0) + | | | skipped_bytes: 0 0xe41-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x175.7 (374) + | | | records[0:6]: 0x0-0x175.7 (374) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 71| q| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|ed fc 0b 34 3a 50 33 26 a7 d2 17 73 9e d8 26 2f|...4:P3&...s..&/| + 0x000002|c4 74 8d 49 4e 38 31 f1 28 58 94 |.t.IN81.(X. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 39| .9| [0]: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" (0x39) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xb0.7 (75) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 46 | .F | length: 70 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xb0.7 (70) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 42 | ..B | length: 66 0x6c-0x6e.7 (3) + | | | public{}: 0x6f-NA (0) + 0x000006| 00| .| length: 64 0x6f-0x70.7 (2) + 0x000007|40 |@ | + 0x000007| 71 42 ed de f2 e9 d1 cc b0 d6 0c 12 69 60 ac| qB..........i`.| data: raw bits 0x71-0xb0.7 (64) + 0x000008|7d 22 bd 65 b6 e6 1d 83 f1 0b 74 c9 18 fd c2 96|}".e......t.....| + * |until 0xb0.7 (64) | | + | | | [2]{}: record 0xb1-0xb6.7 (6) + 0x00000b| 14 | . | type: "change_cipher_spec" (20) (valid) 0xb1-0xb1.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb2-0xb3.7 (2) + 0x00000b| 00 01 | .. | length: 1 0xb4-0xb5.7 (2) + | | | message{}: 0xb6-0xb6.7 (1) + 0x00000b| 01 | . | type: 1 0xb6-0xb6.7 (1) + | | | [3]{}: record 0xb7-0xfb.7 (69) + 0x00000b| 16 | . | type: "handshake" (22) (valid) 0xb7-0xb7.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb8-0xb9.7 (2) + 0x00000b| 00 40 | .@ | length: 64 0xba-0xbb.7 (2) + 0x00000b| f9 2e 46 07| ..F.| encrypted_data: raw bits 0xbc-0xfb.7 (64) + 0x00000c|0b d3 5d b8 28 6f f5 0a ff 06 30 47 a0 cc 34 42|..].(o....0G..4B| + * |until 0xfb.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 90 85 65 83 47 88 c2 d8 d0 34 4f aa| ..e.G....4O.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0xfc-0x140.7 (69) + 0x00000f| 17 | . | type: "application_data" (23) (valid) 0xfc-0xfc.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xfd-0xfe.7 (2) + 0x00000f| 00| .| length: 64 0xff-0x100.7 (2) + 0x000010|40 |@ | + 0x000010| a2 bc 4d 82 9a af 67 43 8a 83 e6 03 6d ce 47| ..M...gC....m.G| encrypted_data: raw bits 0x101-0x140.7 (64) + 0x000011|80 cf cb ac e1 ae ed a3 6d c2 dc 59 2b 6a 93 82|........m..Y+j..| + * |until 0x140.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x141-0x175.7 (53) + 0x000014| 15 | . | type: "alert" (21) (valid) 0x141-0x141.7 (1) + 0x000014| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x142-0x143.7 (2) + 0x000014| 00 30 | .0 | length: 48 0x144-0x145.7 (2) + 0x000014| ad e4 ab 3a 44 ce e9 85 c5 8e| ...:D.....| encrypted_data: raw bits 0x146-0x175.7 (48) + 0x000015|ae cd 52 48 f9 f8 de 23 29 4e be a1 41 59 50 2a|..RH...#)N..AYP*| + * |until 0x175.7 (end) (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xe41-NA (0) + | | | ip: "127.0.0.1" 0xe41-NA (0) + | | | port: 4430 0xe41-NA (0) + | | | has_start: true 0xe41-NA (0) + | | | has_end: true 0xe41-NA (0) + | | | skipped_bytes: 0 0xe41-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x8b2.7 (2227) + | | | records[0:8]: 0x0-0x8b2.7 (2227) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| af| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|bd 2d 19 74 cd 2f 1d 49 16 82 5c 3b 8b 10 af 81|.-.t./.I..\;....| + 0x000002|f4 3a 1c 06 97 06 c2 11 e6 77 c6 |.:.......w. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 39 | .9 | cipher_suit: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" (0x39) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x000020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x000020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x000021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x000031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x000031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x000031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x000032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x000032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x000032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x000032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x000032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x000032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x000032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x000032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x000033|2c |, | + 0x000033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x000033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x000034|a1 7e 31 ac 0b ef c8 6a a9 e0 0d 7b 3e 38 eb 86|.~1....j...{>8..| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x00003d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x00003d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x00003d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x41d.7 (69) + 0x00003d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x00003d| 00 40 | .@ | length: 64 0x3dc-0x3dd.7 (2) + 0x00003d| c7 83| ..| encrypted_data: raw bits 0x3de-0x41d.7 (64) + 0x00003e|ab a5 4c 4b ba 6c 94 ac b0 76 03 e0 9a ce 2c 45|..LK.l...v....,E| + * |until 0x41d.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| d4 20 2d 36 96 8d 51 1a 99 db da 53| . -6..Q....S| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x41e-0x8b2.7 (1173) + 0x000041| 17 | . | type: "application_data" (23) (valid) 0x41e-0x41e.7 (1) + 0x000041| 03| .| version: "tls1.2" (0x303) (valid) 0x41f-0x420.7 (2) + 0x000042|03 |. | + 0x000042| 04 90 | .. | length: 1168 0x421-0x422.7 (2) + 0x000042| b0 8a c0 99 5b dc fd 9e d9 2d bd 64 71| ....[....-.dq| encrypted_data: raw bits 0x423-0x8b2.7 (1168) + 0x000043|4d 9f 8b ff 20 2c e0 5f 7a 26 7d fb 7e 87 1e fd|M... ,._z&}.~...| + * |until 0x8b2.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x112f.7 (4400) + * |until 0x112f.7 (end) (4400) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x112f.7 (4400) + * |until 0x112f.7 (end) (4400) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..7ac697670e0b7e8638fd738ffdcf3e0bd58f432a GIT binary patch literal 3729 zcmai%2{=@38^_O?8Dq;5l4MKvCi`GAFJmiYFC~dkmQaK#Tb4qWSD`Fp-wN?2%cP_* z_KGZJi^vk8N!gO+JBQ}|bbasleb05>bDndqXMX2@-_LX3_jS4{rCA671<=OE1^|rF zZlEjvm+3&$#9jhGKAr^k#ry(f)0rS zQ3wL*W{{ly(|lwQ7TL~ zY>5Q~>F5AiK{$)s4*8idw1Jc-;Ed#^U*yj1ZsN56$@!aT2)%e33{fte4^|igz!Mxzn%mvfP@B z{A!QGB>G$OjNXn|#)Jvdh{O1eb28Zmqx*_9y=S7Q7W>i(FZmIaXs53S4)c|Xibg3<%ZDy1K@UfP)LxFE=Mhc{9Lu^z48+7Q3KQKb7k(hyNU{8)Z=8~A0uxkD8z*E zS}xnud3COzCa8ee%rjl_g+DwUb}6S8h9^>m`z=hX6sDRFYj?DyVP84WNtU0paU0pk zqT^JA*4j1FSl?W}LQ!1P!@U#+BV`p$N<_^4T-~e|6?k12uiV3sJF&$;Qwbu@(k22n6L+n3&ki3w#Ub5fIQF`QXUCGRI}_ z&U<(+@VqJ|pi0rmMCFQd>tJ`|+xJ`zexc7L$9~S4QLOLfbz)SiBTNru5v$)-s&XDb z`ewqkBK7pe%%sKE4$hgs@)>+%LvsWJW$|Ik-AsaV)oxp5g7YkohUteUutAlnKk@x0 zL;W8aJP@Ppw_MGG1s!Gw08M}Z64<19=RG11Rjk}6I+2Cnt&axXdTqPEX(~Cg@QPOk zSZz<45mLl7@Ak=2|0wx}sA}6bHT@1yeI)d03 z|AOg2Y{JSHfwi?8^cYpDL{H2BW@jWJ*zQ9=Z@Ac**X`qB_cVT(D|K^anF;di4DNMI zB}hmcb+)=)R+LWFpFL0WR1GQa!0eg*8XH)iJs|CS=Z#EoMwd1GH72{RgEt^s45g*8au_>riXjnJ(U?x z81{(!Xy3x|S9A+!I=^Ypj^nJ?B^WCRSt`XN>{UM}{O#KGUzWeI=8?T3wsK^e(d>)J zkc#MfZQRdmY+kw6;f?~~ZfdMeNobz4liogckF=D(Ut4@nQzBsIN5x?r82+(qnE3a|x*tWP zcP>=fi` z3?`QEwnanqB28Eyv`w(-0I0r-x3I8~BQ#-K+uV{1ZSxSk&4_;==zDNdK*CU&X$E{B z=*JbKmU4A=7gUr0@$9qYM}`3fFHe`7pgjaLx|^Rf43?K`GJBczU6AtqZ0UWKKar$> zFn!b$k^c004r{M^J%7!r)lU3V-f)a`Q#@8u@?(NA`_x%(GBsv}iZwU7IyPDy91^7Z zG)FgH@6$I+JA;_#Y(q^tKug^TpO zO0fFeB@$!)NOSdOf&HlhwmTE(#|9cis{e^t_JfVmR{5;Iwm+Q7b7-+Um-ZvD(KG8`_{{Qo$Yx?NV@IxY0arun z3#M9T{e|1>N^2gkr6f~oZ*i`ogQMFO!uE!=_8GRpb%-Zm;k%ceJ@nqi&NN>WCKkl1+K{_iLB{qm)Hmh!6Y1@ZK5kypa~sJFS7J+FtpfQ(tvI^A9GmuF81pQksNe5#ytEDK4ziT5xZ zdeYEAC~X=QGh#GPX-Kp(6sFi<%mXGV4!18;vsNNK$`= zW3e;M7?}RCuTSQ}$XhECU9y$)!Q#JE_Vrpn$X!CpO&G6*yy%R#y!pDyOzaN$y>IKeh?3&!|m@*u&HAg)CmZ~Hcnkn?(`%Nhs4yrnUA7SWuIPp z)!6>r$@3wz63UO#s5tQAdri)HC+lO>p}QYHDQT2^;6_LcbjB_j`yjdq literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.pcap.fqtest b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.pcap.fqtest new file mode 100644 index 00000000..4de56314 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.pcap.fqtest @@ -0,0 +1,472 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_DHE_RSA_WITH_AES_256_CBC_SHA256.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xe91-NA (0) + | | | client{}: 0xe91-NA (0) + | | | ip: "127.0.0.1" 0xe91-NA (0) + | | | port: 38972 0xe91-NA (0) + | | | has_start: true 0xe91-NA (0) + | | | has_end: false 0xe91-NA (0) + | | | skipped_bytes: 0 0xe91-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1a5.7 (422) + | | | records[0:6]: 0x0-0x1a5.7 (422) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 29| )| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|0c 68 b9 82 37 44 f8 a8 27 1f 85 ff a8 ec c0 18|.h..7D..'.......| + 0x000002|ed 36 12 c4 2c ea d9 97 76 d8 fa |.6..,...v.. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 6b| .k| [0]: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256" (0x6b) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xb0.7 (75) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 46 | .F | length: 70 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xb0.7 (70) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 42 | ..B | length: 66 0x6c-0x6e.7 (3) + | | | public{}: 0x6f-NA (0) + 0x000006| 00| .| length: 64 0x6f-0x70.7 (2) + 0x000007|40 |@ | + 0x000007| 01 40 0f 2e 1a f4 71 8a 3a b5 fa a7 76 68 b6| .@....q.:...vh.| data: raw bits 0x71-0xb0.7 (64) + 0x000008|22 d6 fe e3 80 8f cd 61 23 c7 e9 99 8a aa 77 74|"......a#.....wt| + * |until 0xb0.7 (64) | | + | | | [2]{}: record 0xb1-0xb6.7 (6) + 0x00000b| 14 | . | type: "change_cipher_spec" (20) (valid) 0xb1-0xb1.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb2-0xb3.7 (2) + 0x00000b| 00 01 | .. | length: 1 0xb4-0xb5.7 (2) + | | | message{}: 0xb6-0xb6.7 (1) + 0x00000b| 01 | . | type: 1 0xb6-0xb6.7 (1) + | | | [3]{}: record 0xb7-0x10b.7 (85) + 0x00000b| 16 | . | type: "handshake" (22) (valid) 0xb7-0xb7.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb8-0xb9.7 (2) + 0x00000b| 00 50 | .P | length: 80 0xba-0xbb.7 (2) + 0x00000b| 71 42 24 57| qB$W| encrypted_data: raw bits 0xbc-0x10b.7 (80) + 0x00000c|bd 39 d3 08 ad e3 45 1f 35 8e 7c a9 eb 7f 35 96|.9....E.5.|...5.| + * |until 0x10b.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| f8 1d 53 5a 50 7b 11 95 2b b3 3a 4b| ..SZP{..+.:K| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x10c-0x160.7 (85) + 0x000010| 17 | . | type: "application_data" (23) (valid) 0x10c-0x10c.7 (1) + 0x000010| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x10d-0x10e.7 (2) + 0x000010| 00| .| length: 80 0x10f-0x110.7 (2) + 0x000011|50 |P | + 0x000011| 0c 63 87 53 29 c8 c9 3a 2c 1d e4 7e 2c 93 dc| .c.S)..:,..~,..| encrypted_data: raw bits 0x111-0x160.7 (80) + 0x000012|03 c2 f9 ac 9a d6 6b 33 39 6c 39 8c 0e 61 05 aa|......k39l9..a..| + * |until 0x160.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x161-0x1a5.7 (69) + 0x000016| 15 | . | type: "alert" (21) (valid) 0x161-0x161.7 (1) + 0x000016| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x162-0x163.7 (2) + 0x000016| 00 40 | .@ | length: 64 0x164-0x165.7 (2) + 0x000016| e0 5f 68 d3 b9 94 d7 99 e0 82| ._h.......| encrypted_data: raw bits 0x166-0x1a5.7 (64) + 0x000017|8e c1 d0 f4 8b c3 ef 30 ba 6f cc c6 cf be 68 73|.......0.o....hs| + * |until 0x1a5.7 (end) (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xe91-NA (0) + | | | ip: "127.0.0.1" 0xe91-NA (0) + | | | port: 4430 0xe91-NA (0) + | | | has_start: true 0xe91-NA (0) + | | | has_end: true 0xe91-NA (0) + | | | skipped_bytes: 0 0xe91-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x8d2.7 (2259) + | | | records[0:8]: 0x0-0x8d2.7 (2259) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| bf| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|2c 1e f4 6b 0a cf 58 1b b3 f9 8c 7a 85 72 91 b2|,..k..X....z.r..| + 0x000002|60 a4 9a 26 20 00 7a 8b f7 cd eb |`..& .z.... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 6b | .k | cipher_suit: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256" (0x6b) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x000020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x000020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x000021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x000031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x000031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x000031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x000032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x000032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x000032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x000032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x000032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x000032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x000032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x000032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x000033|2c |, | + 0x000033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x000033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x000034|a1 7e 31 8b 68 ec 20 60 08 44 83 3b 3b 93 aa 2d|.~1.h. `.D.;;..-| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x00003d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x00003d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x00003d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x42d.7 (85) + 0x00003d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x00003d| 00 50 | .P | length: 80 0x3dc-0x3dd.7 (2) + 0x00003d| 63 1f| c.| encrypted_data: raw bits 0x3de-0x42d.7 (80) + 0x00003e|bc e0 97 60 d3 0b a9 e7 92 7f 70 44 9e 5c cc a9|...`......pD.\..| + * |until 0x42d.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 34 f7 99 84 c3 ec 39 26 b3 e4 ed 77| 4.....9&...w| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x42e-0x8d2.7 (1189) + 0x000042| 17 | . | type: "application_data" (23) (valid) 0x42e-0x42e.7 (1) + 0x000042| 03| .| version: "tls1.2" (0x303) (valid) 0x42f-0x430.7 (2) + 0x000043|03 |. | + 0x000043| 04 a0 | .. | length: 1184 0x431-0x432.7 (2) + 0x000043| 9d 4c 1c df 07 e5 34 8b f7 a4 45 17 a9| .L....4...E..| encrypted_data: raw bits 0x433-0x8d2.7 (1184) + 0x000044|b5 b0 00 93 10 ed b6 b1 4d 7d a9 cb 5b b4 50 06|........M}..[.P.| + * |until 0x8d2.7 (end) (1184) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1138.7 (4409) + * |until 0x1138.7 (end) (4409) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1138.7 (4409) + * |until 0x1138.7 (end) (4409) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_GCM_SHA384.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_GCM_SHA384.pcap new file mode 100644 index 0000000000000000000000000000000000000000..910c6f953a26bbb52576cfc304b526dc65da8383 GIT binary patch literal 3563 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest new file mode 100644 index 00000000..6333b86b --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest @@ -0,0 +1,471 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_DHE_RSA_WITH_AES_256_GCM_SHA384.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xdeb-NA (0) + | | | client{}: 0xdeb-NA (0) + | | | ip: "127.0.0.1" 0xdeb-NA (0) + | | | port: 38971 0xdeb-NA (0) + | | | has_start: true 0xdeb-NA (0) + | | | has_end: false 0xdeb-NA (0) + | | | skipped_bytes: 0 0xdeb-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x145.7 (326) + | | | records[0:6]: 0x0-0x145.7 (326) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 91| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|5a 44 47 0a 8e d3 31 d7 d3 be 3b c0 05 bf b1 86|ZDG...1...;.....| + 0x000002|9f da 5d 96 b1 22 f9 00 20 b0 56 |..]..".. .V | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 9f| ..| [0]: "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384" (0x9f) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xb0.7 (75) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 46 | .F | length: 70 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xb0.7 (70) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 42 | ..B | length: 66 0x6c-0x6e.7 (3) + | | | public{}: 0x6f-NA (0) + 0x000006| 00| .| length: 64 0x6f-0x70.7 (2) + 0x000007|40 |@ | + 0x000007| 17 69 70 90 76 dd f2 2d 34 05 7b 0e 8e b6 c5| .ip.v..-4.{....| data: raw bits 0x71-0xb0.7 (64) + 0x000008|15 9a 49 d5 6d 3a 86 73 5a a5 e7 d9 c6 5d ec dc|..I.m:.sZ....]..| + * |until 0xb0.7 (64) | | + | | | [2]{}: record 0xb1-0xb6.7 (6) + 0x00000b| 14 | . | type: "change_cipher_spec" (20) (valid) 0xb1-0xb1.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb2-0xb3.7 (2) + 0x00000b| 00 01 | .. | length: 1 0xb4-0xb5.7 (2) + | | | message{}: 0xb6-0xb6.7 (1) + 0x00000b| 01 | . | type: 1 0xb6-0xb6.7 (1) + | | | [3]{}: record 0xb7-0xeb.7 (53) + 0x00000b| 16 | . | type: "handshake" (22) (valid) 0xb7-0xb7.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb8-0xb9.7 (2) + 0x00000b| 00 30 | .0 | length: 48 0xba-0xbb.7 (2) + 0x00000b| 8b dc 1b 06| ....| encrypted_data: raw bits 0xbc-0xeb.7 (48) + 0x00000c|37 de 02 d1 8d 04 f0 a2 91 46 62 fd 46 d1 0a 38|7........Fb.F..8| + * |until 0xeb.7 (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| b6 27 3d 2b 73 8e bb a6 49 3b 1e 3b| .'=+s...I;.;| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0xec-0x120.7 (53) + 0x00000e| 17 | . | type: "application_data" (23) (valid) 0xec-0xec.7 (1) + 0x00000e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xed-0xee.7 (2) + 0x00000e| 00| .| length: 48 0xef-0xf0.7 (2) + 0x00000f|30 |0 | + 0x00000f| 8b dc 1b 06 37 de 02 d2 f2 42 85 10 cf 22 d6| ....7....B...".| encrypted_data: raw bits 0xf1-0x120.7 (48) + 0x000010|9f 31 f0 c4 da 6d c4 2d 1b 41 0d ad d9 1b 57 20|.1...m.-.A....W | + * |until 0x120.7 (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x121-0x145.7 (37) + 0x000012| 15 | . | type: "alert" (21) (valid) 0x121-0x121.7 (1) + 0x000012| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x122-0x123.7 (2) + 0x000012| 00 20 | . | length: 32 0x124-0x125.7 (2) + 0x000012| 8b dc 1b 06 37 de 02 d3 38 cd| ....7...8.| encrypted_data: raw bits 0x126-0x145.7 (32) + 0x000013|82 da 84 73 f9 1b 03 fb c9 89 ed b8 89 9a d4 d2|...s............| + 0x000014|36 a1 33 a1 46 e9| |6.3.F.| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xdeb-NA (0) + | | | ip: "127.0.0.1" 0xdeb-NA (0) + | | | port: 4430 0xdeb-NA (0) + | | | has_start: true 0xdeb-NA (0) + | | | has_end: true 0xdeb-NA (0) + | | | skipped_bytes: 0 0xdeb-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x88c.7 (2189) + | | | records[0:8]: 0x0-0x88c.7 (2189) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 51| Q| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|7b b5 ca 80 a2 fb 76 ca 07 91 08 e3 62 2a 81 e5|{.....v.....b*..| + 0x000002|1a c6 80 f8 f5 9d 23 c0 93 0e bd |......#.... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 9f | .. | cipher_suit: "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384" (0x9f) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x000020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x000020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x000021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x000031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x000031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x000031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x000032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x000032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x000032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x000032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x000032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x000032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x000032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x000032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x000033|2c |, | + 0x000033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x000033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x000034|a1 7e 31 c1 02 1c 56 25 93 e2 93 99 01 aa 9d 69|.~1...V%.......i| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x00003d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x00003d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x00003d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x40e.7 (54) + 0x00003d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x00003d| 00 31 | .1 | length: 49 0x3dc-0x3dd.7 (2) + 0x00003d| df e2| ..| encrypted_data: raw bits 0x3de-0x40e.7 (49) + 0x00003e|34 b3 ce 10 0c 85 96 f4 15 68 f8 58 c4 e3 c3 6f|4........h.X...o| + * |until 0x40e.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| ba d1 56 0d d7 e2 8b d2 f5 7f 1f d0| ..V.........| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x40f-0x88c.7 (1150) + 0x000040| 17| .| type: "application_data" (23) (valid) 0x40f-0x40f.7 (1) + 0x000041|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x410-0x411.7 (2) + 0x000041| 04 79 | .y | length: 1145 0x412-0x413.7 (2) + 0x000041| df e2 34 b3 ce 10 0c 86 80 d6 de 73| ..4........s| encrypted_data: raw bits 0x414-0x88c.7 (1145) + 0x000042|77 fe 9a 6b c1 4d bc 4d db f4 97 75 d7 47 5b ff|w..k.M.M...u.G[.| + * |until 0x88c.7 (end) (1145) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1144.7 (4421) + * |until 0x1144.7 (end) (4421) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1144.7 (4421) + * |until 0x1144.7 (end) (4421) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..72e903d81e7393d6fea381993e76b37b13cdf3d8 GIT binary patch literal 3649 zcmai%2{@G7AIIN!W{7G~S))vnEo);fWwH|uvL#CxBFf&v(Acw$T(V`)mW0c2g`zBp z(sk|IO~}3$ikSJoZ}NZi|9AiY_j!JE-t#`^`JC_Xch32qXFBUkGZ6p^*nVg<02tfu zK&|4BP=j8HemDR}Uw7&b0Dy2LTJJl5ixq7R56?gp6i_7r0D+?Qpb!kZ>7w0u;qM?4 zxeIRLXD15)V3uOlHf!JcMC*j&_xB;5O~(HJX2HCjENO@b2c%1yc;~w=eC&VEC%wR`?fHepJ7D%Lltmr=F+z#Gj z%!@N)TD;Y7WLwlj<35|1w&u0Fl5^PssJvxtck-1R(KnvTz#gP;T{m0I(JSYXI=6WB^zW#bE>^u$(8+F}WevAc>}D6baD``GN*P zIyyj-SL%=?H$Bn_h1|<(Xy@UHQL%IPbhLN0wf3~b7+g3jd6)w&g_Ts0k~twIBPAti z#(_QocduQ*6?|(Sy2k5o#D9FjYJDl^ zrSru20w6G3qbay@+QXhrE~OweVS%sTRKFTK)vT`C{yJ6WjXj+(gb{b0+F~9gax@!aX+xow7PQ_m6Nc4;^OES?vYR z5H&m}u>gnwa2<^fF$J?+$M50&0-sSRcMXE_7jXGUucRt49JtwnK~e`8)Do{Gt~j6* zh1qO#_(;ymhw#!X5&U|zzbyn_Gth$o>H54J9!poH)jj2(9j)L-FPvq`{-C{jF0+3P zd+|Ws#*uMUMOuk3)j9MT`GJB7ukrk@Ojk}yuD`cg!kG3O}iPPQv-4{o=J zl?Lx-ZHTu2X#CHjANCfxQp`{7K@3B@B-&{?(lCueGbP;fxb)ItpS?o5w<$>4+-&;NZ^ zF|fPAg49_6KpDW@ddF&+laMFWDE7D`fD(e{!KbrwmOAMd@)s1Tc~Gd zBGXT*>e1fZ#3TGg_Ehtxuu^Nq+9$k$y{k_?ji%r~bm8`8bLO>GZ0M!)Wj$eJz|XT9 z+zz5Xl0WcnX?@>`Fpb0I9kF}FLtD8U)_AJG*M6=Z2UI=WO~t@~ z4f728rn$I`X8dbggF&|%%knoz{P2x34)>cE%m&Mr7e&a9YoniClDWbU)G9rH7pcqI9>Rwgvi*!dB zkM_%Q7h{Bo0Zq|rL8RPFv5v|#^Gx@#(zhQc2vU~-<@w;jxEBewx>@dj^gN+mqqjPh zrYR-*x6P+FF3Qev47#M%ROOe3?Qi+g0_WG&C9^}?wfW8`y}YT~!mJz8 zG3HynYY_guVnia=$5Vu`n@^a;&XS!*hW_F+vmh+-MC=#p zNEF{>@v3cMYV%(FDqzu4IoDepR$az}*b_a4T) zete-zd1M;kr@o+;HDFq)eVs*;asnCxvcqVv)rD1`JYH2a`s&{^n@``#Ia#aMJkVyT zja{zJGSuh~7ne6sBzNJNo5JSmBzgl)sCV8vX#dWgGRSbh>$RP$ zwsvT(XpCWK8ofCqaha{}^r>!gF_(&n zw{jKD}uFbkThGyhewaOxj)=FaO-7wK2FZr3fK^_w{aYg%u`1957^VI}3-RLnf3m)!e z?WKax22TS&qJ>(+t|nNfb+%WG#qxDkJ}ogPNRciNG(5sK81Sp<#n}sdrQQ_fyf_$X zRIth?oBRpNQ-L+o*CH!RSK$laSGF%>x7F8L-wr;-*i{{U7<=}Bx;dFyedMd#VBlG| z5Zbk5o%ecsWUooQ8lF7RmKk*rk;sJ0E3aZe#e`?9W6k9){yL67RJXTA*015Q#`y08 z&Dpi=Y?^-8qhm$=uznXK+Ozi{6Io=i_F~;%diwOAAnl{Hz6Tq58cgp6keZTYCF=lJ!?NpQjP?`MH_oO~#4ck3-{mFe?qL&Bkm6xh zhvV7u(eYYsg4dr56jjQEeD;cbnnzxvYIo>(#(*j3Ac_!agG@eUh4RP>zyWZj&QL&!kLVb7Vp1^3E0bUbA j`?h%KzY+ikG%?h`6DziDPrT*qliKiDJ;?p.\.>..O..iV..De| + 0x002|c0 70 5a 6b 71 a8 6c 75 7b 84 2a |.pZkq.lu{.* | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 45 | .E | cipher_suit: "TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA" (0x45) 0x2c-0x2d.7 (2) + 0x002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x033|2c |, | + 0x033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x034|a1 7e 31 ba a9 0c a6 98 21 24 ae 66 fe 5c c6 89|.~1.....!$.f.\..| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x03d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x03d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x03d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x03d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x41d.7 (69) + 0x03d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x03d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x03d| 00 40 | .@ | length: 64 0x3dc-0x3dd.7 (2) + 0x03d| 96 60| .`| encrypted_data: raw bits 0x3de-0x41d.7 (64) + 0x03e|9d fe 28 02 b2 fd bd 3f 7e e2 64 7d 71 34 87 7a|..(....?~.d}q4.z| + * |until 0x41d.7 (64) | | + | | | [7]{}: record 0x41e-0x8b2.7 (1173) + 0x041| 17 | . | type: "application_data" (23) (valid) 0x41e-0x41e.7 (1) + 0x041| 03| .| version: "tls1.2" (0x303) (valid) 0x41f-0x420.7 (2) + 0x042|03 |. | + 0x042| 04 90 | .. | length: 1168 0x421-0x422.7 (2) + 0x042| ba d8 c1 9f 69 35 73 d1 60 37 59 91 28| ....i5s.`7Y.(| encrypted_data: raw bits 0x423-0x8b2.7 (1168) + 0x043|7c 82 c6 8f 45 84 80 a6 a1 2d d3 b8 9e 5c a1 72||...E....-...\.r| + * |until 0x8b2.7 (end) (1168) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..3b1606065726e9724f03d7250b6e08f3b1f98ef5 GIT binary patch literal 3649 zcmai%2|ScrAIG0(#>l>tgzQ^ltRZTm5s`fvBv)CB?0ebwxsiy`wU#ZBT_qWV+$>#6 zVQ3?hJz28V<$WH@`_cP$-}ihz|9O_r`Fzjs|3Bya&NHuDtMd^66|mbjHvwR5_W`=9 z?*taQ#g$_WM_GY^n2P@T8+f}+#Ic2DF(f=!391;NFzye6zVm!>y z=KLiC$`(BPpV=Y-H3R@CZ)eNO7d+%hTAlO#tf(Z<-#PJH8+TvITROFTxdRFqVHl)&3d!D1d`+(B~^+M*1 zE<*}!`sdptPLyZ|**p551j{u2W`3VsCg)(f_z&Y&08a`>c=G2M$W3QJqyi0 z0Pd9sl>`ata@Nu>DL6iTP+r0lKRmrLU*oBIOHn~=&a7T&ZRE}8R{wMgiNoHeu*Gfs z^Bf>H)2Ji7f`W&l8X05gPB=OV`lCG?I} z_<87e-h8J=QFui4oq0BGE-UdAa@JDYsLwTXSaQH${PLZ?*KDKQOYit;^p^*L<5y4n zPAC8%0>Jb=b4e+kIdJ%fVQAFT+S+)N=#n{1iLi6FDh+!;rvP$emYBuH{z zEEEcN)8sQ${Dv1X+I(*-)E!EstG{F zw6#mOfA;QGTm`((#@KfE*^V2>!X zVr~?BW7^C4IvC@V#;NmGd)G_4_-JiUtKZbqy*txSi+9vXI3z)ow{Z@) zF?o@su@QSavdp(sBlA&%aa&&ksy%`a-E-?nS1hXE*hkFG#qLEY%eeih8FSYRHGd&} zQqKI?%vi?XVL4{=HbeSjFP_P?25DIoGf8BhZI=#-+_YGv2`*mZiP7nLfp%QmQ$6nX z$_;~l&PR8j;3di$a3VV1dk z7DNvgG>~253Yf!;ufFHG^)SN+ogO{thpwtqU%TC8cCLpn`X+Wfm7!v=hzy4=$N?5g5Z(!A_VD5;=fOUssa;!eq{f)QU z!+9EmgrlS5wZf$vBIKcgK08pKa8I^oQq*pKR?4ANfM6^EO>Bgan9Qf{&j zdkS4*N0@nsg>9})u?e;^P56p7fW*8eT?SeYwt!Ge3dW-KqnV4z2A%Z^8?k#VEPz7+ zf3oq%vc%-`d%(;7w9{P?6`f0MwF?-L7~PU{ZuiaJ5%4(fRdha!>nrN-%6<7B1!^LH z%?sRV|00S}7|?1HO1Mi7`gS-$lM1+Ssga4EQ1^!SeK7BzxWm$%Dp{z&Q5x#TcsBaX zrL3?5m$_1`xgdC>Y}L5kS0yknZcr9CT`}y>{F>xBd(PcOoNG-yj+0a~+n;f5dZyfi z5JaqW)|v>pEOhl%Lu+{Fj8O|tKJ#)wU{$0uXI@^omw8=(0^8r9T`1R6`sSzkt>mO&GScR{ zI_>)vIg97=es(Itl;+F)LFHNU8WnoZyo#2gv!*VU*iOn+()D2}wyHDNcv&Sk4y{jH z_oWn^d#^wIQ6^gVu?5db=H7YT5_?7O^`ru~_>(36BhA@L-hrw76bsXiQ$eDnBi840R-6mfDo1l?9hMszT2H*pys6Qx^4-ya z{cSqy6+-2_6z2rN(z;9Y;5(rrF}t@fMcMX^DUvq@PhUyxcyp*baIxV-u9JrfJAsBH z>b-F)R(qcStt>z2cR|p&Z(*tFO!p1B+(ogB^1s^LIISvqtLn3RWT-Z?OzpKcZr$U3 z5v=)}dSYPgth`|p`}E7|XLMvE+0s;-A%mvg7_Y*~=wr+({ql-2{kIlZmL;kablwV| z#is{rtT3)0BSyt?r5H{mTHn9_<+3N!bfoBhzRAg`xiqa}hAV7=(lzZy*(`Ss7Jny? ze?+H8WWK(lSEl^<%Oj`cs3_5|l7lx;D=m$jrqI{@cH4V;FXCZi(^dZ2*zl8E#>NVs z-*b9zoln1F;HqK981pV;$EEFZ>F`tGEXd7&Vz@#uI3TBY#no&%J^7amZYp5I_GhQ( zgq$9oI>r_~T($6K?ql-$JW1SfB6xY_5R!RiWs kZEQ8@zY+ikG%$352Uh=Uci?Sj$4|i>jUe}bXAJ=V0>}t-00000 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..059e9d26 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap.fqtest @@ -0,0 +1,449 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xe41-NA (0) + | | | client{}: 0xe41-NA (0) + | | | ip: "127.0.0.1" 0xe41-NA (0) + | | | port: 38976 0xe41-NA (0) + | | | has_start: true 0xe41-NA (0) + | | | has_end: false 0xe41-NA (0) + | | | skipped_bytes: 0 0xe41-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x175.7 (374) + | | | records[0:6]: 0x0-0x175.7 (374) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000| 7b| {| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|28 cf ec 4c 36 b8 12 8b 63 c1 38 85 4e a0 fb de|(..L6...c.8.N...| + 0x002|98 fd 4f 3f 14 e0 fe 19 5d 61 96 |..O?....]a. | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x002| 00 88| ..| [0]: "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA" (0x88) cipher_suit 0x2e-0x2f.7 (2) + 0x003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xb0.7 (75) + 0x006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x006| 00 46 | .F | length: 70 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xb0.7 (70) + 0x006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x006| 00 00 42 | ..B | length: 66 0x6c-0x6e.7 (3) + | | | public{}: 0x6f-NA (0) + 0x006| 00| .| length: 64 0x6f-0x70.7 (2) + 0x007|40 |@ | + 0x007| 71 26 09 ed f6 3a d4 cf c6 a8 70 8b c9 00 35| q&...:....p...5| data: raw bits 0x71-0xb0.7 (64) + 0x008|c1 48 20 23 05 0f 24 3c 8b 70 72 d3 5f 7e e1 30|.H #..$<.pr._~.0| + * |until 0xb0.7 (64) | | + | | | [2]{}: record 0xb1-0xb6.7 (6) + 0x00b| 14 | . | type: "change_cipher_spec" (20) (valid) 0xb1-0xb1.7 (1) + 0x00b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb2-0xb3.7 (2) + 0x00b| 00 01 | .. | length: 1 0xb4-0xb5.7 (2) + | | | message{}: 0xb6-0xb6.7 (1) + 0x00b| 01 | . | type: 1 0xb6-0xb6.7 (1) + | | | [3]{}: record 0xb7-0xfb.7 (69) + 0x00b| 16 | . | type: "handshake" (22) (valid) 0xb7-0xb7.7 (1) + 0x00b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb8-0xb9.7 (2) + 0x00b| 00 40 | .@ | length: 64 0xba-0xbb.7 (2) + 0x00b| e0 28 a4 e7| .(..| encrypted_data: raw bits 0xbc-0xfb.7 (64) + 0x00c|45 45 8a 77 72 73 3f ad d3 72 4a 42 59 3e 5f 93|EE.wrs?..rJBY>_.| + * |until 0xfb.7 (64) | | + | | | [4]{}: record 0xfc-0x140.7 (69) + 0x00f| 17 | . | type: "application_data" (23) (valid) 0xfc-0xfc.7 (1) + 0x00f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xfd-0xfe.7 (2) + 0x00f| 00| .| length: 64 0xff-0x100.7 (2) + 0x010|40 |@ | + 0x010| f6 16 73 f2 25 1b a4 ba d9 68 87 a4 0f 7f 51| ..s.%....h....Q| encrypted_data: raw bits 0x101-0x140.7 (64) + 0x011|7c de 1a 95 b7 97 73 30 96 84 d8 75 30 b1 b5 3c||.....s0...u0..<| + * |until 0x140.7 (64) | | + | | | [5]{}: record 0x141-0x175.7 (53) + 0x014| 15 | . | type: "alert" (21) (valid) 0x141-0x141.7 (1) + 0x014| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x142-0x143.7 (2) + 0x014| 00 30 | .0 | length: 48 0x144-0x145.7 (2) + 0x014| 93 e4 12 84 db b1 f2 d5 ef e0| ..........| encrypted_data: raw bits 0x146-0x175.7 (48) + 0x015|8f fa f1 bf 31 59 05 9e 61 94 c4 af ed 19 84 8b|....1Y..a.......| + * |until 0x175.7 (end) (48) | | + | | | server{}: 0xe41-NA (0) + | | | ip: "127.0.0.1" 0xe41-NA (0) + | | | port: 4430 0xe41-NA (0) + | | | has_start: true 0xe41-NA (0) + | | | has_end: true 0xe41-NA (0) + | | | skipped_bytes: 0 0xe41-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x8b2.7 (2227) + | | | records[0:8]: 0x0-0x8b2.7 (2227) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000| 11| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|1d 7a da 65 c1 f8 ef 74 e6 34 35 32 1e ca e8 60|.z.e...t.452...`| + 0x002|c4 18 d3 91 dc 0a 3a a1 31 81 22 |......:.1." | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 88 | .. | cipher_suit: "TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA" (0x88) 0x2c-0x2d.7 (2) + 0x002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x033|2c |, | + 0x033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x034|a1 7e 31 ec c3 b5 38 88 f1 85 c6 ad 1d c9 0d 88|.~1...8.........| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x03d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x03d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x03d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x03d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x41d.7 (69) + 0x03d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x03d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x03d| 00 40 | .@ | length: 64 0x3dc-0x3dd.7 (2) + 0x03d| 18 c6| ..| encrypted_data: raw bits 0x3de-0x41d.7 (64) + 0x03e|b0 fe 4e d6 15 b8 a3 bd 8b 9d 7c 0e 11 81 c1 68|..N.......|....h| + * |until 0x41d.7 (64) | | + | | | [7]{}: record 0x41e-0x8b2.7 (1173) + 0x041| 17 | . | type: "application_data" (23) (valid) 0x41e-0x41e.7 (1) + 0x041| 03| .| version: "tls1.2" (0x303) (valid) 0x41f-0x420.7 (2) + 0x042|03 |. | + 0x042| 04 90 | .. | length: 1168 0x421-0x422.7 (2) + 0x042| 14 4d ec 4e cc ea 5f b4 6e 31 6b 83 1c| .M.N.._.n1k..| encrypted_data: raw bits 0x423-0x8b2.7 (1168) + 0x043|dc f7 5e c9 db 19 67 b7 fa e5 34 26 a6 3c 1e 5c|..^...g...4&.<.\| + * |until 0x8b2.7 (end) (1168) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_DES_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_DES_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..334e924f7012dd4873a4d92dc8687b3d0e919431 GIT binary patch literal 3601 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_DES_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_DES_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..34734207 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_DES_CBC_SHA.pcap.fqtest @@ -0,0 +1,470 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_DHE_RSA_WITH_DES_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xe11-NA (0) + | | | client{}: 0xe11-NA (0) + | | | ip: "127.0.0.1" 0xe11-NA (0) + | | | port: 39029 0xe11-NA (0) + | | | has_start: true 0xe11-NA (0) + | | | has_end: false 0xe11-NA (0) + | | | skipped_bytes: 0 0xe11-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x15d.7 (350) + | | | records[0:6]: 0x0-0x15d.7 (350) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| ad| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|0b ec 20 a9 c9 6a 45 ba 08 59 37 e3 81 55 dc 14|.. ..jE..Y7..U..| + 0x000002|cf 43 71 5c eb 5c 5c 9a 5f 9f 02 |.Cq\.\\._.. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 15| ..| [0]: "TLS_DHE_RSA_WITH_DES_CBC_SHA" (0x15) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xb0.7 (75) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 46 | .F | length: 70 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xb0.7 (70) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 42 | ..B | length: 66 0x6c-0x6e.7 (3) + | | | public{}: 0x6f-NA (0) + 0x000006| 00| .| length: 64 0x6f-0x70.7 (2) + 0x000007|40 |@ | + 0x000007| d6 07 6e cb 9e c3 08 3f 7f 5a 35 a4 63 88 3f| ..n....?.Z5.c.?| data: raw bits 0x71-0xb0.7 (64) + 0x000008|ba 51 d4 4f 8d c0 db 59 6d d5 05 d3 32 e6 24 3f|.Q.O...Ym...2.$?| + * |until 0xb0.7 (64) | | + | | | [2]{}: record 0xb1-0xb6.7 (6) + 0x00000b| 14 | . | type: "change_cipher_spec" (20) (valid) 0xb1-0xb1.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb2-0xb3.7 (2) + 0x00000b| 00 01 | .. | length: 1 0xb4-0xb5.7 (2) + | | | message{}: 0xb6-0xb6.7 (1) + 0x00000b| 01 | . | type: 1 0xb6-0xb6.7 (1) + | | | [3]{}: record 0xb7-0xf3.7 (61) + 0x00000b| 16 | . | type: "handshake" (22) (valid) 0xb7-0xb7.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb8-0xb9.7 (2) + 0x00000b| 00 38 | .8 | length: 56 0xba-0xbb.7 (2) + 0x00000b| 5d 50 95 3a| ]P.:| encrypted_data: raw bits 0xbc-0xf3.7 (56) + 0x00000c|35 96 df 21 f1 b9 eb ff fd d2 e5 74 a6 4d 72 65|5..!.......t.Mre| + * |until 0xf3.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| ef 69 39 2c 73 51 23 2e 92 5e 87 fc| .i9,sQ#..^..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0xf4-0x130.7 (61) + 0x00000f| 17 | . | type: "application_data" (23) (valid) 0xf4-0xf4.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf5-0xf6.7 (2) + 0x00000f| 00 38 | .8 | length: 56 0xf7-0xf8.7 (2) + 0x00000f| 40 27 63 d9 2d 6f b1| @'c.-o.| encrypted_data: raw bits 0xf9-0x130.7 (56) + 0x000010|26 98 49 fe ec 78 47 61 ae e3 d0 8b 90 99 32 26|&.I..xGa......2&| + * |until 0x130.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x131-0x15d.7 (45) + 0x000013| 15 | . | type: "alert" (21) (valid) 0x131-0x131.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x132-0x133.7 (2) + 0x000013| 00 28 | .( | length: 40 0x134-0x135.7 (2) + 0x000013| 05 fc 61 56 db cb 01 00 fc fa| ..aV......| encrypted_data: raw bits 0x136-0x15d.7 (40) + 0x000014|a7 4a 3f 76 c5 02 a9 31 be c8 c0 90 06 05 c6 81|.J?v...1........| + 0x000015|be a0 9d 5a 9e be 35 84 5f ce 54 46 8d 86| |...Z..5._.TF..| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xe11-NA (0) + | | | ip: "127.0.0.1" 0xe11-NA (0) + | | | port: 4430 0xe11-NA (0) + | | | has_start: true 0xe11-NA (0) + | | | has_end: true 0xe11-NA (0) + | | | skipped_bytes: 0 0xe11-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x89a.7 (2203) + | | | records[0:8]: 0x0-0x89a.7 (2203) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 43| C| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|bb fc c9 05 cc 74 9b 71 67 44 db 0d a3 d2 0c e7|.....t.qgD......| + 0x000002|3e 6d 36 22 07 53 04 1d 40 40 cd |>m6".S..@@. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 15 | .. | cipher_suit: "TLS_DHE_RSA_WITH_DES_CBC_SHA" (0x15) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x000020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x000020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x000021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x000031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x000031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x000031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x000032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x000032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x000032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x000032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x000032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x000032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x000032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x000032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x000033|2c |, | + 0x000033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x000033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x000034|a1 7e 31 5f 7d 11 f8 98 f9 29 88 97 4a 66 cf 9b|.~1_}....)..Jf..| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x00003d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x00003d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x00003d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x415.7 (61) + 0x00003d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x00003d| 00 38 | .8 | length: 56 0x3dc-0x3dd.7 (2) + 0x00003d| 82 9a| ..| encrypted_data: raw bits 0x3de-0x415.7 (56) + 0x00003e|70 64 60 a1 06 6f 0a e3 7f 1a f8 58 9e 23 65 46|pd`..o.....X.#eF| + * |until 0x415.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 49 76 51 fd 5a a8 fb 04 3a d2 f6 bc| IvQ.Z...:...| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x416-0x89a.7 (1157) + 0x000041| 17 | . | type: "application_data" (23) (valid) 0x416-0x416.7 (1) + 0x000041| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x417-0x418.7 (2) + 0x000041| 04 80 | .. | length: 1152 0x419-0x41a.7 (2) + 0x000041| c8 84 c6 62 9f| ...b.| encrypted_data: raw bits 0x41b-0x89a.7 (1152) + 0x000042|b2 1e 18 2e 35 9e ee 10 96 0e 0c 61 4f a6 ad 8d|....5......aO...| + * |until 0x89a.7 (end) (1152) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1132.7 (4403) + * |until 0x1132.7 (end) (4403) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1132.7 (4403) + * |until 0x1132.7 (end) (4403) | | diff --git a/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_SEED_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_DHE_RSA_WITH_SEED_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..393339bf8c3b5a8df15fee4fcf3e18f724b4ce1e GIT binary patch literal 3649 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....{fq| + * |until 0xfb.7 (64) | | + | | | [4]{}: record 0xfc-0x140.7 (69) + 0x00f| 17 | . | type: "application_data" (23) (valid) 0xfc-0xfc.7 (1) + 0x00f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xfd-0xfe.7 (2) + 0x00f| 00| .| length: 64 0xff-0x100.7 (2) + 0x010|40 |@ | + 0x010| 8c d3 b1 4c bf e2 d2 df 63 b8 07 a7 ce ad b4| ...L....c......| encrypted_data: raw bits 0x101-0x140.7 (64) + 0x011|46 50 41 2a 7e f2 13 53 c7 3e 1e 72 e3 67 e2 20|FPA*~..S.>.r.g. | + * |until 0x140.7 (64) | | + | | | [5]{}: record 0x141-0x175.7 (53) + 0x014| 15 | . | type: "alert" (21) (valid) 0x141-0x141.7 (1) + 0x014| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x142-0x143.7 (2) + 0x014| 00 30 | .0 | length: 48 0x144-0x145.7 (2) + 0x014| fe 10 cf 24 e4 24 ec a4 2f 5d| ...$.$../]| encrypted_data: raw bits 0x146-0x175.7 (48) + 0x015|27 cb dd 9e 86 db c6 df 8c 12 77 a3 b4 75 4b 2d|'.........w..uK-| + * |until 0x175.7 (end) (48) | | + | | | server{}: 0xe41-NA (0) + | | | ip: "127.0.0.1" 0xe41-NA (0) + | | | port: 4430 0xe41-NA (0) + | | | has_start: true 0xe41-NA (0) + | | | has_end: true 0xe41-NA (0) + | | | skipped_bytes: 0 0xe41-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x8b2.7 (2227) + | | | records[0:8]: 0x0-0x8b2.7 (2227) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000| b0| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|f1 38 fa 28 bc 29 90 3e 6d 65 de 70 24 56 23 c5|.8.(.).>me.p$V#.| + 0x002|d2 82 06 3a da f6 60 6c d1 86 8f |...:..`l... | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 9a | .. | cipher_suit: "TLS_DHE_RSA_WITH_SEED_CBC_SHA" (0x9a) 0x2c-0x2d.7 (2) + 0x002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x31a.7 (276) + 0x020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x020| 01 0f | .. | length: 271 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x31a.7 (271) + 0x020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x020| 00 01 0b| ...| length: 267 0x20d-0x20f.7 (3) + 0x021|00 40 da 58 3c 16 d9 85 22 89 d0 e4 af 75 6f 4c|.@.X<..."....uoL| data: raw bits 0x210-0x31a.7 (267) + * |until 0x31a.7 (267) | | + | | | [3]{}: record 0x31b-0x323.7 (9) + 0x031| 16 | . | type: "handshake" (22) (valid) 0x31b-0x31b.7 (1) + 0x031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31c-0x31d.7 (2) + 0x031| 00 04| ..| length: 4 0x31e-0x31f.7 (2) + | | | message{}: 0x320-0x323.7 (4) + 0x032|0e |. | type: "server_hello_done" (14) 0x320-0x320.7 (1) + 0x032| 00 00 00 | ... | length: 0 0x321-0x323.7 (3) + | | | data: raw bits 0x324-NA (0) + | | | [4]{}: record 0x324-0x3d2.7 (175) + 0x032| 16 | . | type: "handshake" (22) (valid) 0x324-0x324.7 (1) + 0x032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x325-0x326.7 (2) + 0x032| 00 aa | .. | length: 170 0x327-0x328.7 (2) + | | | message{}: 0x329-0x3d2.7 (170) + 0x032| 04 | . | type: "new_session_ticket" (4) 0x329-0x329.7 (1) + 0x032| 00 00 a6 | ... | length: 166 0x32a-0x32c.7 (3) + 0x032| 00 00 01| ...| lifetime_hint: 300 0x32d-0x330.7 (4) + 0x033|2c |, | + 0x033| 00 a0 | .. | ticket_length: 160 0x331-0x332.7 (2) + 0x033| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x333-0x3d2.7 (160) + 0x034|a1 7e 31 ae 35 a0 d5 67 d1 9b b6 7a 6c bf a0 ad|.~1.5..g...zl...| + * |until 0x3d2.7 (160) | | + | | | [5]{}: record 0x3d3-0x3d8.7 (6) + 0x03d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x3d3-0x3d3.7 (1) + 0x03d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d4-0x3d5.7 (2) + 0x03d| 00 01 | .. | length: 1 0x3d6-0x3d7.7 (2) + | | | message{}: 0x3d8-0x3d8.7 (1) + 0x03d| 01 | . | type: 1 0x3d8-0x3d8.7 (1) + | | | [6]{}: record 0x3d9-0x41d.7 (69) + 0x03d| 16 | . | type: "handshake" (22) (valid) 0x3d9-0x3d9.7 (1) + 0x03d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3da-0x3db.7 (2) + 0x03d| 00 40 | .@ | length: 64 0x3dc-0x3dd.7 (2) + 0x03d| 2f d7| /.| encrypted_data: raw bits 0x3de-0x41d.7 (64) + 0x03e|e9 c8 69 b1 4e 7f d7 c9 25 fc 19 cd 63 54 a5 13|..i.N...%...cT..| + * |until 0x41d.7 (64) | | + | | | [7]{}: record 0x41e-0x8b2.7 (1173) + 0x041| 17 | . | type: "application_data" (23) (valid) 0x41e-0x41e.7 (1) + 0x041| 03| .| version: "tls1.2" (0x303) (valid) 0x41f-0x420.7 (2) + 0x042|03 |. | + 0x042| 04 90 | .. | length: 1168 0x421-0x422.7 (2) + 0x042| 69 68 06 53 b4 f2 44 4a 5f 6b 36 46 dd| ih.S..DJ_k6F.| encrypted_data: raw bits 0x423-0x8b2.7 (1168) + 0x043|d2 54 78 b5 8b 60 95 f9 42 d1 f2 ef 0e 48 97 79|.Tx..`..B....H.y| + * |until 0x8b2.7 (end) (1168) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..4ac15d3d6f185d86b81d22623dc8595e50af95c0 GIT binary patch literal 3518 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..P.z..q| + 0x000002|3a 9b 1a be 19 ff 48 02 bd 2b f0 |:.....H..+. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 08| ..| [0]: "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA" (0xc008) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0xf0.7 (75) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 46 | .F | length: 70 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0xf0.7 (70) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 42 | ..B | length: 66 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 41| A| length: 65 0xaf-0xaf.7 (1) + 0x00000b|04 2f a6 2a 1b f3 80 0e e2 a0 a4 ba e1 6d 65 ee|./.*.........me.| data: raw bits 0xb0-0xf0.7 (65) + * |until 0xf0.7 (65) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x133.7 (61) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 38 | .8 | length: 56 0xfa-0xfb.7 (2) + 0x00000f| 23 dc b5 e5| #...| encrypted_data: raw bits 0xfc-0x133.7 (56) + 0x000010|49 b2 a5 8e 00 b0 7e b8 e1 b3 c1 0a 84 75 85 6e|I.....~......u.n| + * |until 0x133.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 0d bd b1 a9 5b 8b 49 a6 f6 fc 36 24| ....[.I...6$| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x134-0x170.7 (61) + 0x000013| 17 | . | type: "application_data" (23) (valid) 0x134-0x134.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x135-0x136.7 (2) + 0x000013| 00 38 | .8 | length: 56 0x137-0x138.7 (2) + 0x000013| f2 5c 3a 43 60 57 ac| .\:C`W.| encrypted_data: raw bits 0x139-0x170.7 (56) + 0x000014|ab 39 38 e4 6d bb 09 9f 0b c9 fb 54 76 f8 d1 a3|.98.m......Tv...| + * |until 0x170.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x171-0x19d.7 (45) + 0x000017| 15 | . | type: "alert" (21) (valid) 0x171-0x171.7 (1) + 0x000017| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x172-0x173.7 (2) + 0x000017| 00 28 | .( | length: 40 0x174-0x175.7 (2) + 0x000017| 78 b2 aa 46 27 24 fc 0c e6 b2| x..F'$....| encrypted_data: raw bits 0x176-0x19d.7 (40) + 0x000018|5b 9e c2 0d 1b f9 c8 93 fb 28 a9 12 1f ff 76 e4|[........(....v.| + 0x000019|0c c7 4b b5 57 e6 55 8b e5 cc 88 a1 c7 4c| |..K.W.U......L| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xdbe-NA (0) + | | | ip: "127.0.0.1" 0xdbe-NA (0) + | | | port: 4431 0xdbe-NA (0) + | | | has_start: true 0xdbe-NA (0) + | | | has_end: true 0xdbe-NA (0) + | | | skipped_bytes: 0 0xdbe-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x807.7 (2056) + | | | records[0:8]: 0x0-0x807.7 (2056) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 65| e| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|a2 22 f1 cf c0 61 d3 31 e9 df 12 7b 7f fb bd 83|."...a.1...{....| + 0x000002|20 f1 81 05 3a dc dc 25 62 8e 51 | ...:..%b.Q | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 08 | .. | cipher_suit: "TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA" (0xc008) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x27f.7 (185) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 b4 | .. | length: 180 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x27f.7 (180) + 0x00001c| 0c | . | type: "server_key_exchange" (12) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 b0| ...| length: 176 0x1cd-0x1cf.7 (3) + | | | curve_params{}: 0x1d0-NA (0) + 0x00001d|03 |. | curve_type: 3 0x1d0-0x1d0.7 (1) + 0x00001d| 00 17 | .. | named_curve: 23 0x1d1-0x1d2.7 (2) + | | | public{}: 0x1d3-NA (0) + 0x00001d| 41 | A | length: 65 0x1d3-0x1d3.7 (1) + 0x00001d| 04 34 e1 a2 85 ef 39 47 4b 97 2b e9| .4....9GK.+.| data: raw bits 0x1d4-0x214.7 (65) + 0x00001e|9d e3 c7 4c 70 31 95 87 36 67 64 8d a9 b2 4a d8|...Lp1..6gd...J.| + * |until 0x214.7 (65) | | + | | | signature_algorithm{}: 0x215-NA (0) + 0x000021| 06 | . | hash: "sha512" (6) 0x215-0x215.7 (1) + 0x000021| 03 | . | signature: "ecdsa" (3) 0x216-0x216.7 (1) + 0x000021| 00 67 | .g | length: 103 0x217-0x218.7 (2) + 0x000021| 30 65 02 30 0b b3 9f| 0e.0...| data: raw bits 0x219-0x27f.7 (103) + 0x000022|a5 b6 bc 87 14 b4 0e e1 a9 49 4a 12 31 9f 13 cb|.........IJ.1...| + * |until 0x27f.7 (103) | | + | | | [3]{}: record 0x280-0x288.7 (9) + 0x000028|16 |. | type: "handshake" (22) (valid) 0x280-0x280.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x281-0x282.7 (2) + 0x000028| 00 04 | .. | length: 4 0x283-0x284.7 (2) + | | | message{}: 0x285-0x288.7 (4) + 0x000028| 0e | . | type: "server_hello_done" (14) 0x285-0x285.7 (1) + 0x000028| 00 00 00 | ... | length: 0 0x286-0x288.7 (3) + | | | data: raw bits 0x289-NA (0) + | | | [4]{}: record 0x289-0x337.7 (175) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x289-0x289.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x28a-0x28b.7 (2) + 0x000028| 00 aa | .. | length: 170 0x28c-0x28d.7 (2) + | | | message{}: 0x28e-0x337.7 (170) + 0x000028| 04 | . | type: "new_session_ticket" (4) 0x28e-0x28e.7 (1) + 0x000028| 00| .| length: 166 0x28f-0x291.7 (3) + 0x000029|00 a6 |.. | + 0x000029| 00 00 01 2c | ..., | lifetime_hint: 300 0x292-0x295.7 (4) + 0x000029| 00 a0 | .. | ticket_length: 160 0x296-0x297.7 (2) + 0x000029| 6f 7d e1 6c 67 99 7a b0| o}.lg.z.| ticket: raw bits 0x298-0x337.7 (160) + 0x00002a|7e f2 61 6e a4 37 9e 3d b8 72 f7 71 0e cd ab b6|~.an.7.=.r.q....| + * |until 0x337.7 (160) | | + | | | [5]{}: record 0x338-0x33d.7 (6) + 0x000033| 14 | . | type: "change_cipher_spec" (20) (valid) 0x338-0x338.7 (1) + 0x000033| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x339-0x33a.7 (2) + 0x000033| 00 01 | .. | length: 1 0x33b-0x33c.7 (2) + | | | message{}: 0x33d-0x33d.7 (1) + 0x000033| 01 | . | type: 1 0x33d-0x33d.7 (1) + | | | [6]{}: record 0x33e-0x37a.7 (61) + 0x000033| 16 | . | type: "handshake" (22) (valid) 0x33e-0x33e.7 (1) + 0x000033| 03| .| version: "tls1.2" (0x303) (valid) 0x33f-0x340.7 (2) + 0x000034|03 |. | + 0x000034| 00 38 | .8 | length: 56 0x341-0x342.7 (2) + 0x000034| e3 d1 64 f8 1e 46 e0 2d 2b b3 a0 a9 cb| ..d..F.-+....| encrypted_data: raw bits 0x343-0x37a.7 (56) + 0x000035|d3 94 a7 d8 b1 64 d9 20 d6 4c d2 12 82 49 28 9f|.....d. .L...I(.| + * |until 0x37a.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 75 6f 38 c4 e7 39 1f 64 64 55 5c 05| uo8..9.ddU\.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x37b-0x807.7 (1165) + 0x000037| 17 | . | type: "application_data" (23) (valid) 0x37b-0x37b.7 (1) + 0x000037| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x37c-0x37d.7 (2) + 0x000037| 04 88| ..| length: 1160 0x37e-0x37f.7 (2) + 0x000038|1e fd 34 cc 82 1c cf 04 52 b0 4c e8 63 8c 9a 64|..4.....R.L.c..d| encrypted_data: raw bits 0x380-0x807.7 (1160) + * |until 0x807.7 (end) (1160) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x114f.7 (4432) + * |until 0x114f.7 (end) (4432) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x114f.7 (4432) + * |until 0x114f.7 (end) (4432) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..51c35eee530468d8dd8767ae1796e2a0245a5b46 GIT binary patch literal 3558 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..eca93760 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.pcap.fqtest @@ -0,0 +1,520 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xde6-NA (0) + | | | client{}: 0xde6-NA (0) + | | | ip: "127.0.0.1" 0xde6-NA (0) + | | | port: 42411 0xde6-NA (0) + | | | has_start: true 0xde6-NA (0) + | | | has_end: false 0xde6-NA (0) + | | | skipped_bytes: 0 0xde6-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1b5.7 (438) + | | | records[0:6]: 0x0-0x1b5.7 (438) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| e2| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|f4 40 1b 52 af f4 7a 34 56 52 65 24 d1 88 da 30|.@.R..z4VRe$...0| + 0x000002|dd 21 37 1c c4 79 23 fb 13 62 1b |.!7..y#..b. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 09| ..| [0]: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" (0xc009) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0xf0.7 (75) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 46 | .F | length: 70 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0xf0.7 (70) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 42 | ..B | length: 66 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 41| A| length: 65 0xaf-0xaf.7 (1) + 0x00000b|04 85 ac 71 38 92 4f 93 f0 f5 8b 62 ac 25 d1 18|...q8.O....b.%..| data: raw bits 0xb0-0xf0.7 (65) + * |until 0xf0.7 (65) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x13b.7 (69) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 40 | .@ | length: 64 0xfa-0xfb.7 (2) + 0x00000f| ff 5b c9 65| .[.e| encrypted_data: raw bits 0xfc-0x13b.7 (64) + 0x000010|08 c3 50 0c 18 51 0f 08 81 50 46 81 ba 30 e1 8c|..P..Q...PF..0..| + * |until 0x13b.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| ad f9 6e b9 07 d9 03 8b fd 92 be d3| ..n.........| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x13c-0x180.7 (69) + 0x000013| 17 | . | type: "application_data" (23) (valid) 0x13c-0x13c.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x13d-0x13e.7 (2) + 0x000013| 00| .| length: 64 0x13f-0x140.7 (2) + 0x000014|40 |@ | + 0x000014| b5 37 7c d6 06 19 f5 9e 8f 4a ab 30 fb b9 0a| .7|......J.0...| encrypted_data: raw bits 0x141-0x180.7 (64) + 0x000015|a5 7c 84 3b db 39 ac 2d b2 2a 59 c1 9f 52 8d 61|.|.;.9.-.*Y..R.a| + * |until 0x180.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x181-0x1b5.7 (53) + 0x000018| 15 | . | type: "alert" (21) (valid) 0x181-0x181.7 (1) + 0x000018| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x182-0x183.7 (2) + 0x000018| 00 30 | .0 | length: 48 0x184-0x185.7 (2) + 0x000018| 60 0f bb ed 8a 17 46 77 d7 5b| `.....Fw.[| encrypted_data: raw bits 0x186-0x1b5.7 (48) + 0x000019|e5 0d c5 0d 22 6b ca 32 4e 94 06 f5 18 e0 f7 a4|...."k.2N.......| + * |until 0x1b5.7 (end) (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xde6-NA (0) + | | | ip: "127.0.0.1" 0xde6-NA (0) + | | | port: 4431 0xde6-NA (0) + | | | has_start: true 0xde6-NA (0) + | | | has_end: true 0xde6-NA (0) + | | | skipped_bytes: 0 0xde6-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x817.7 (2072) + | | | records[0:8]: 0x0-0x817.7 (2072) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 0c| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|5e 36 ec 30 4e df 89 7e 1a ec 3a 2a 33 de 9c 85|^6.0N..~..:*3...| + 0x000002|c9 33 1a 52 ff 71 5e f4 f5 a8 fd |.3.R.q^.... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 09 | .. | cipher_suit: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" (0xc009) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x27f.7 (185) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 b4 | .. | length: 180 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x27f.7 (180) + 0x00001c| 0c | . | type: "server_key_exchange" (12) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 b0| ...| length: 176 0x1cd-0x1cf.7 (3) + | | | curve_params{}: 0x1d0-NA (0) + 0x00001d|03 |. | curve_type: 3 0x1d0-0x1d0.7 (1) + 0x00001d| 00 17 | .. | named_curve: 23 0x1d1-0x1d2.7 (2) + | | | public{}: 0x1d3-NA (0) + 0x00001d| 41 | A | length: 65 0x1d3-0x1d3.7 (1) + 0x00001d| 04 34 e1 a2 85 ef 39 47 4b 97 2b e9| .4....9GK.+.| data: raw bits 0x1d4-0x214.7 (65) + 0x00001e|9d e3 c7 4c 70 31 95 87 36 67 64 8d a9 b2 4a d8|...Lp1..6gd...J.| + * |until 0x214.7 (65) | | + | | | signature_algorithm{}: 0x215-NA (0) + 0x000021| 06 | . | hash: "sha512" (6) 0x215-0x215.7 (1) + 0x000021| 03 | . | signature: "ecdsa" (3) 0x216-0x216.7 (1) + 0x000021| 00 67 | .g | length: 103 0x217-0x218.7 (2) + 0x000021| 30 65 02 31 00 ac a8| 0e.1...| data: raw bits 0x219-0x27f.7 (103) + 0x000022|6f f1 8c 03 4c c8 ed 4e 03 fe 43 67 13 f2 e8 b3|o...L..N..Cg....| + * |until 0x27f.7 (103) | | + | | | [3]{}: record 0x280-0x288.7 (9) + 0x000028|16 |. | type: "handshake" (22) (valid) 0x280-0x280.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x281-0x282.7 (2) + 0x000028| 00 04 | .. | length: 4 0x283-0x284.7 (2) + | | | message{}: 0x285-0x288.7 (4) + 0x000028| 0e | . | type: "server_hello_done" (14) 0x285-0x285.7 (1) + 0x000028| 00 00 00 | ... | length: 0 0x286-0x288.7 (3) + | | | data: raw bits 0x289-NA (0) + | | | [4]{}: record 0x289-0x337.7 (175) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x289-0x289.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x28a-0x28b.7 (2) + 0x000028| 00 aa | .. | length: 170 0x28c-0x28d.7 (2) + | | | message{}: 0x28e-0x337.7 (170) + 0x000028| 04 | . | type: "new_session_ticket" (4) 0x28e-0x28e.7 (1) + 0x000028| 00| .| length: 166 0x28f-0x291.7 (3) + 0x000029|00 a6 |.. | + 0x000029| 00 00 01 2c | ..., | lifetime_hint: 300 0x292-0x295.7 (4) + 0x000029| 00 a0 | .. | ticket_length: 160 0x296-0x297.7 (2) + 0x000029| 6f 7d e1 6c 67 99 7a b0| o}.lg.z.| ticket: raw bits 0x298-0x337.7 (160) + 0x00002a|7e f2 61 6e a4 37 9e 3d 83 ef de 05 02 82 fe 70|~.an.7.=.......p| + * |until 0x337.7 (160) | | + | | | [5]{}: record 0x338-0x33d.7 (6) + 0x000033| 14 | . | type: "change_cipher_spec" (20) (valid) 0x338-0x338.7 (1) + 0x000033| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x339-0x33a.7 (2) + 0x000033| 00 01 | .. | length: 1 0x33b-0x33c.7 (2) + | | | message{}: 0x33d-0x33d.7 (1) + 0x000033| 01 | . | type: 1 0x33d-0x33d.7 (1) + | | | [6]{}: record 0x33e-0x382.7 (69) + 0x000033| 16 | . | type: "handshake" (22) (valid) 0x33e-0x33e.7 (1) + 0x000033| 03| .| version: "tls1.2" (0x303) (valid) 0x33f-0x340.7 (2) + 0x000034|03 |. | + 0x000034| 00 40 | .@ | length: 64 0x341-0x342.7 (2) + 0x000034| 28 9c a7 37 1e ef d3 11 f2 44 63 2c 09| (..7.....Dc,.| encrypted_data: raw bits 0x343-0x382.7 (64) + 0x000035|bc c9 68 c5 2e 3b 6d 7a f4 fb 4c 09 5b 52 c6 b2|..h..;mz..L.[R..| + * |until 0x382.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| cf d0 70 f2 71 55 23 cd 00 33 ff 0b| ..p.qU#..3..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x383-0x817.7 (1173) + 0x000038| 17 | . | type: "application_data" (23) (valid) 0x383-0x383.7 (1) + 0x000038| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x384-0x385.7 (2) + 0x000038| 04 90 | .. | length: 1168 0x386-0x387.7 (2) + 0x000038| 3f b8 e5 59 00 82 4c 44| ?..Y..LD| encrypted_data: raw bits 0x388-0x817.7 (1168) + 0x000039|36 18 b9 a0 e1 f7 18 2c 1a 4d 41 df 40 db 9e a6|6......,.MA.@...| + * |until 0x817.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1149.7 (4426) + * |until 0x1149.7 (end) (4426) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1149.7 (4426) + * |until 0x1149.7 (end) (4426) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..b0cb51b61f76bbef03fa736d85acc90a2ec8d2b8 GIT binary patch literal 3638 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 | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| b6| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|40 ff ec 8b a8 a0 97 e0 30 55 bf d2 dd ff 81 c7|@.......0U......| + 0x000002|87 1d ca f5 ae 9f 83 d9 7b 38 51 |........{8Q | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 23 | .# | cipher_suit: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" (0xc023) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x27f.7 (185) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 b4 | .. | length: 180 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x27f.7 (180) + 0x00001c| 0c | . | type: "server_key_exchange" (12) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 b0| ...| length: 176 0x1cd-0x1cf.7 (3) + | | | curve_params{}: 0x1d0-NA (0) + 0x00001d|03 |. | curve_type: 3 0x1d0-0x1d0.7 (1) + 0x00001d| 00 17 | .. | named_curve: 23 0x1d1-0x1d2.7 (2) + | | | public{}: 0x1d3-NA (0) + 0x00001d| 41 | A | length: 65 0x1d3-0x1d3.7 (1) + 0x00001d| 04 34 e1 a2 85 ef 39 47 4b 97 2b e9| .4....9GK.+.| data: raw bits 0x1d4-0x214.7 (65) + 0x00001e|9d e3 c7 4c 70 31 95 87 36 67 64 8d a9 b2 4a d8|...Lp1..6gd...J.| + * |until 0x214.7 (65) | | + | | | signature_algorithm{}: 0x215-NA (0) + 0x000021| 06 | . | hash: "sha512" (6) 0x215-0x215.7 (1) + 0x000021| 03 | . | signature: "ecdsa" (3) 0x216-0x216.7 (1) + 0x000021| 00 67 | .g | length: 103 0x217-0x218.7 (2) + 0x000021| 30 65 02 30 36 a8 a5| 0e.06..| data: raw bits 0x219-0x27f.7 (103) + 0x000022|c1 b1 f1 b8 ef 6a 60 64 d5 9a 45 54 6e 58 c0 55|.....j`d..ETnX.U| + * |until 0x27f.7 (103) | | + | | | [3]{}: record 0x280-0x288.7 (9) + 0x000028|16 |. | type: "handshake" (22) (valid) 0x280-0x280.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x281-0x282.7 (2) + 0x000028| 00 04 | .. | length: 4 0x283-0x284.7 (2) + | | | message{}: 0x285-0x288.7 (4) + 0x000028| 0e | . | type: "server_hello_done" (14) 0x285-0x285.7 (1) + 0x000028| 00 00 00 | ... | length: 0 0x286-0x288.7 (3) + | | | data: raw bits 0x289-NA (0) + | | | [4]{}: record 0x289-0x337.7 (175) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x289-0x289.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x28a-0x28b.7 (2) + 0x000028| 00 aa | .. | length: 170 0x28c-0x28d.7 (2) + | | | message{}: 0x28e-0x337.7 (170) + 0x000028| 04 | . | type: "new_session_ticket" (4) 0x28e-0x28e.7 (1) + 0x000028| 00| .| length: 166 0x28f-0x291.7 (3) + 0x000029|00 a6 |.. | + 0x000029| 00 00 01 2c | ..., | lifetime_hint: 300 0x292-0x295.7 (4) + 0x000029| 00 a0 | .. | ticket_length: 160 0x296-0x297.7 (2) + 0x000029| 6f 7d e1 6c 67 99 7a b0| o}.lg.z.| ticket: raw bits 0x298-0x337.7 (160) + 0x00002a|7e f2 61 6e a4 37 9e 3d f1 35 8b 5f 16 cc 87 d8|~.an.7.=.5._....| + * |until 0x337.7 (160) | | + | | | [5]{}: record 0x338-0x33d.7 (6) + 0x000033| 14 | . | type: "change_cipher_spec" (20) (valid) 0x338-0x338.7 (1) + 0x000033| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x339-0x33a.7 (2) + 0x000033| 00 01 | .. | length: 1 0x33b-0x33c.7 (2) + | | | message{}: 0x33d-0x33d.7 (1) + 0x000033| 01 | . | type: 1 0x33d-0x33d.7 (1) + | | | [6]{}: record 0x33e-0x392.7 (85) + 0x000033| 16 | . | type: "handshake" (22) (valid) 0x33e-0x33e.7 (1) + 0x000033| 03| .| version: "tls1.2" (0x303) (valid) 0x33f-0x340.7 (2) + 0x000034|03 |. | + 0x000034| 00 50 | .P | length: 80 0x341-0x342.7 (2) + 0x000034| 15 7f 70 e5 7c 01 45 a7 56 a3 17 26 86| ..p.|.E.V..&.| encrypted_data: raw bits 0x343-0x392.7 (80) + 0x000035|05 70 c8 9e a5 3a 9d 4a 25 66 52 ea 25 1a 2d d8|.p...:.J%fR.%.-.| + * |until 0x392.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| d5 cb ba 05 1e b7 eb 4f 60 c8 39 ec| .......O`.9.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x393-0x837.7 (1189) + 0x000039| 17 | . | type: "application_data" (23) (valid) 0x393-0x393.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x394-0x395.7 (2) + 0x000039| 04 a0 | .. | length: 1184 0x396-0x397.7 (2) + 0x000039| 07 4f 3b 08 ed 62 1f c0| .O;..b..| encrypted_data: raw bits 0x398-0x837.7 (1184) + 0x00003a|81 5d 6e 2c 69 f1 28 6e c1 46 d2 5f 6e 20 6d 19|.]n,i.(n.F._n m.| + * |until 0x837.7 (end) (1184) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1152.7 (4435) + * |until 0x1152.7 (end) (4435) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1152.7 (4435) + * |until 0x1152.7 (end) (4435) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..eee115c6c240d1492b963aae14c636422f051d2d GIT binary patch literal 3481 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 encrypted_data: raw bits 0x167-0x186.7 (32) + 0x000017|58 7d 5d b7 43 c4 87 7b 6b b1 3d 52 d2 24 16 15|X}].C..{k.=R.$..| + 0x000018|da 51 55 90 55 06 e7| |.QU.U..| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd99-NA (0) + | | | ip: "127.0.0.1" 0xd99-NA (0) + | | | port: 4431 0xd99-NA (0) + | | | has_start: true 0xd99-NA (0) + | | | has_end: true 0xd99-NA (0) + | | | skipped_bytes: 0 0xd99-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x7f9.7 (2042) + | | | records[0:8]: 0x0-0x7f9.7 (2042) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 14| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|8d b7 d5 43 61 42 b4 99 e9 50 f4 5a 9a 81 cd 76|...CaB...P.Z...v| + 0x000002|ba c2 3b 6c 18 8e 4d 80 3f 9e f9 |..;l..M.?.. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 2b | .+ | cipher_suit: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" (0xc02b) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x27e.7 (184) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 b3 | .. | length: 179 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x27e.7 (179) + 0x00001c| 0c | . | type: "server_key_exchange" (12) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 af| ...| length: 175 0x1cd-0x1cf.7 (3) + | | | curve_params{}: 0x1d0-NA (0) + 0x00001d|03 |. | curve_type: 3 0x1d0-0x1d0.7 (1) + 0x00001d| 00 17 | .. | named_curve: 23 0x1d1-0x1d2.7 (2) + | | | public{}: 0x1d3-NA (0) + 0x00001d| 41 | A | length: 65 0x1d3-0x1d3.7 (1) + 0x00001d| 04 34 e1 a2 85 ef 39 47 4b 97 2b e9| .4....9GK.+.| data: raw bits 0x1d4-0x214.7 (65) + 0x00001e|9d e3 c7 4c 70 31 95 87 36 67 64 8d a9 b2 4a d8|...Lp1..6gd...J.| + * |until 0x214.7 (65) | | + | | | signature_algorithm{}: 0x215-NA (0) + 0x000021| 06 | . | hash: "sha512" (6) 0x215-0x215.7 (1) + 0x000021| 03 | . | signature: "ecdsa" (3) 0x216-0x216.7 (1) + 0x000021| 00 66 | .f | length: 102 0x217-0x218.7 (2) + 0x000021| 30 64 02 30 05 bb bf| 0d.0...| data: raw bits 0x219-0x27e.7 (102) + 0x000022|ba ae a6 87 61 2c 5e 36 70 da 4e 61 42 c9 a4 82|....a,^6p.NaB...| + * |until 0x27e.7 (102) | | + | | | [3]{}: record 0x27f-0x287.7 (9) + 0x000027| 16| .| type: "handshake" (22) (valid) 0x27f-0x27f.7 (1) + 0x000028|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x280-0x281.7 (2) + 0x000028| 00 04 | .. | length: 4 0x282-0x283.7 (2) + | | | message{}: 0x284-0x287.7 (4) + 0x000028| 0e | . | type: "server_hello_done" (14) 0x284-0x284.7 (1) + 0x000028| 00 00 00 | ... | length: 0 0x285-0x287.7 (3) + | | | data: raw bits 0x288-NA (0) + | | | [4]{}: record 0x288-0x336.7 (175) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x288-0x288.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x289-0x28a.7 (2) + 0x000028| 00 aa | .. | length: 170 0x28b-0x28c.7 (2) + | | | message{}: 0x28d-0x336.7 (170) + 0x000028| 04 | . | type: "new_session_ticket" (4) 0x28d-0x28d.7 (1) + 0x000028| 00 00| ..| length: 166 0x28e-0x290.7 (3) + 0x000029|a6 |. | + 0x000029| 00 00 01 2c | ..., | lifetime_hint: 300 0x291-0x294.7 (4) + 0x000029| 00 a0 | .. | ticket_length: 160 0x295-0x296.7 (2) + 0x000029| 6f 7d e1 6c 67 99 7a b0 7e| o}.lg.z.~| ticket: raw bits 0x297-0x336.7 (160) + 0x00002a|f2 61 6e a4 37 9e 3d f0 60 e0 f3 66 d0 d6 63 ac|.an.7.=.`..f..c.| + * |until 0x336.7 (160) | | + | | | [5]{}: record 0x337-0x33c.7 (6) + 0x000033| 14 | . | type: "change_cipher_spec" (20) (valid) 0x337-0x337.7 (1) + 0x000033| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x338-0x339.7 (2) + 0x000033| 00 01 | .. | length: 1 0x33a-0x33b.7 (2) + | | | message{}: 0x33c-0x33c.7 (1) + 0x000033| 01 | . | type: 1 0x33c-0x33c.7 (1) + | | | [6]{}: record 0x33d-0x372.7 (54) + 0x000033| 16 | . | type: "handshake" (22) (valid) 0x33d-0x33d.7 (1) + 0x000033| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x33e-0x33f.7 (2) + 0x000034|00 31 |.1 | length: 49 0x340-0x341.7 (2) + 0x000034| dc e7 76 90 4a bf b2 af df 9f 66 09 97 c5| ..v.J.....f...| encrypted_data: raw bits 0x342-0x372.7 (49) + 0x000035|8a 01 05 c3 76 45 9c 53 9e 61 84 b9 16 13 e4 85|....vE.S.a......| + * |until 0x372.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 38 04 c2 77 35 b8 d1 21 10 66 90 25| 8..w5..!.f.%| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x373-0x7f9.7 (1159) + 0x000037| 17 | . | type: "application_data" (23) (valid) 0x373-0x373.7 (1) + 0x000037| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x374-0x375.7 (2) + 0x000037| 04 82 | .. | length: 1154 0x376-0x377.7 (2) + 0x000037| dc e7 76 90 4a bf b2 b0| ..v.J...| encrypted_data: raw bits 0x378-0x7f9.7 (1154) + 0x000038|d9 86 84 c4 f5 7b 92 51 9c 66 a1 cf 32 a8 79 2a|.....{.Q.f..2.y*| + * |until 0x7f9.7 (end) (1154) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x115e.7 (4447) + * |until 0x115e.7 (end) (4447) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x115e.7 (4447) + * |until 0x115e.7 (end) (4447) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..b4038834eb41534e82845302079244eed4333801 GIT binary patch literal 3558 zcma)92{=@38-CBs7)!S7qMArr&=5lQjJ2B3MiDW_PL@K-Iw;%UV)-mtvXiAmD$!yY zA$y`?ge)NuDUJV}GT*QN@4K%5T-P)2ocDUq{oc?0KF@uw)Aj651`1#R<62n(V3=_O zkE*Ldfd5uyX#!1b2!8+o5E9u@>xpTsR1IW#I;x<6jt2mRS$Ty)v9K}4x+f#^5E{*l zjL5YX3jhR5^#KEGJuy3qq!{xa#?wsa`ClvqZ!MNQjE4lwOTH@mCofS3)+#Se7;iX` z8#+ec4)cJ1aboa7`1Gv?jL}z>gJ1-E{}Dq7#%TQ=LjVnd3C} zu)=c!KoGD1EMNwFfFC{;Ccp!D0R&J04Y&X|SP#Tu&Ky7t;II%Dg+((#OeiKa2Ew2) zXf%XIq0uM^g+ier2wo5WtX^x?q6Z+Es%tYcT~&S46Bw zzWaZ~5P~eho&Qz~4Yc8B)qkmVhJ(nHK4ot@ENhyfkvnp0a$8mczw-~v85U^+P|F4Z zffWeO`fst2q>*$4;2bZk1JHQ@c>(AwJ{WSr2hF2cLB|H_yhKg<0-hDiyfaL{RSg5- zx5#eBZ^WXHV$kdYM@XJtxcwv#F9$mZ8*48Tj<8?HR13dJkVAG4URhQ_PF6uy7H=-d zA&1=VS-t&#AkN{rSGPn#Sf*V;7$Al|12B2P?YV~%JVgzM)ECE#pJHNEogyB27L9ec z6|Tf;_gj}r2zkYZrf$N&iH~lpqQ6|vC3%>5ea3x2e`Sc^ei!$BP)?_;yrO=FDS)~b$6d2( zhgBW;rTnC86Z<46n%f3MJeCz~41Dci{Xsc90HtUksD+WIWm0C8^^6jBjisTdtYI5x00c&(xA(z0ka>Ax9jekfqcnWG$7+i zFpZDV#M(JZqF2UE*DsDyWk!3=y+e&QW*&8mwO^io{n+cxCJ8M!h*Hd5CHW~|B83%& z_c$O|on(EwNMDFukbv!@sVWb_2oCuph7gSL`0s{D zK`aO%q{|I}wif1I>COu^RVP_LvS%KEINTRJC^xqLplE=k_K=~Q z6fxj=8|H|uW^t*Sj(KotGd0=2UvIgY4~F{L8bFiW*JC&LiTj&)SY930IYF=iM>8N& zYb+9tKiQ7-Oi0Krh?H<)E+x^+ir8+-q!im&p}cu&&%+&@3SqnYbqwV=8x0rir!S=5 zvh2P;dXn0jU>~C%pM4?egsp;PMOdBt7WZRJ37^X<1RP&gA9Z;n(Rb^|{2KKpeC5L= z>&{%z!=bRsTJ@Jb35@~nWmLzw;FLiNQdkbvvLw<`Z2t6oF`jt4DT z)+HRb+YH9%WFxo1dr^Moh4ix6k%}Bzy?AE>kH+DzERD{`jpv^j34FSD?MC&R5kVQ} zS2iV{I$hOuM?Mm|KN}J?0pR!`xQawiFjOa*p+wrg?<(u`$950{D z#ps}H!tO!JAuF>v3E^elVc~Mg#4HuLmKCAmUgGcu{fU@?LY`^E$sW?qZ^zzRh{X!l zYp`AENscrar;^_AbbZ4<-YxfVUyqbX)=Y#j?$XkyU=X*?0p`r526 ziSu)U+GU=`Cky#K-`hk#^j_H<>vTmbt19_j*U6&Y3+E!XlMD{xMde|+ZDvhYTy;w?Q9cb{ zOr1T#IS&_b=Y?N#v2`7Zv7AeL_BMYDhYBH-*FKJ@Wl~x&U1jdAaPDG%dpORT6m1cm z%6GrXHJ@v2b|;%g*ie0Jiy+rl-Um9mdO}lkgZV}%yAt8zTx>%TlT*{~{uF64yQA=M zxbJ&f2PL_5nS5-CqT~IwQCm~VMki&XtgOYWyJH_I3$8+(g<0moa*qeCTaMwx(z7U^e5}_@yZHGv;{$<^6NUo}h6L>N4poIeou0 | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 62| b| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|0d 4f 12 a0 ed 68 53 e4 31 53 a1 3f a7 e5 a3 eb|.O...hS.1S.?....| + 0x000002|26 a4 97 15 6c fd 5e ef 08 2d 49 |&...l.^..-I | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 0a | .. | cipher_suit: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" (0xc00a) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x27f.7 (185) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 b4 | .. | length: 180 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x27f.7 (180) + 0x00001c| 0c | . | type: "server_key_exchange" (12) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 b0| ...| length: 176 0x1cd-0x1cf.7 (3) + | | | curve_params{}: 0x1d0-NA (0) + 0x00001d|03 |. | curve_type: 3 0x1d0-0x1d0.7 (1) + 0x00001d| 00 17 | .. | named_curve: 23 0x1d1-0x1d2.7 (2) + | | | public{}: 0x1d3-NA (0) + 0x00001d| 41 | A | length: 65 0x1d3-0x1d3.7 (1) + 0x00001d| 04 34 e1 a2 85 ef 39 47 4b 97 2b e9| .4....9GK.+.| data: raw bits 0x1d4-0x214.7 (65) + 0x00001e|9d e3 c7 4c 70 31 95 87 36 67 64 8d a9 b2 4a d8|...Lp1..6gd...J.| + * |until 0x214.7 (65) | | + | | | signature_algorithm{}: 0x215-NA (0) + 0x000021| 06 | . | hash: "sha512" (6) 0x215-0x215.7 (1) + 0x000021| 03 | . | signature: "ecdsa" (3) 0x216-0x216.7 (1) + 0x000021| 00 67 | .g | length: 103 0x217-0x218.7 (2) + 0x000021| 30 65 02 31 00 ec 8d| 0e.1...| data: raw bits 0x219-0x27f.7 (103) + 0x000022|4f c0 f3 85 98 74 a1 9e 6e f5 6a 8c b1 4b 37 5a|O....t..n.j..K7Z| + * |until 0x27f.7 (103) | | + | | | [3]{}: record 0x280-0x288.7 (9) + 0x000028|16 |. | type: "handshake" (22) (valid) 0x280-0x280.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x281-0x282.7 (2) + 0x000028| 00 04 | .. | length: 4 0x283-0x284.7 (2) + | | | message{}: 0x285-0x288.7 (4) + 0x000028| 0e | . | type: "server_hello_done" (14) 0x285-0x285.7 (1) + 0x000028| 00 00 00 | ... | length: 0 0x286-0x288.7 (3) + | | | data: raw bits 0x289-NA (0) + | | | [4]{}: record 0x289-0x337.7 (175) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x289-0x289.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x28a-0x28b.7 (2) + 0x000028| 00 aa | .. | length: 170 0x28c-0x28d.7 (2) + | | | message{}: 0x28e-0x337.7 (170) + 0x000028| 04 | . | type: "new_session_ticket" (4) 0x28e-0x28e.7 (1) + 0x000028| 00| .| length: 166 0x28f-0x291.7 (3) + 0x000029|00 a6 |.. | + 0x000029| 00 00 01 2c | ..., | lifetime_hint: 300 0x292-0x295.7 (4) + 0x000029| 00 a0 | .. | ticket_length: 160 0x296-0x297.7 (2) + 0x000029| 6f 7d e1 6c 67 99 7a b0| o}.lg.z.| ticket: raw bits 0x298-0x337.7 (160) + 0x00002a|7e f2 61 6e a4 37 9e 3d ed 4f 82 de a3 de 1d 7d|~.an.7.=.O.....}| + * |until 0x337.7 (160) | | + | | | [5]{}: record 0x338-0x33d.7 (6) + 0x000033| 14 | . | type: "change_cipher_spec" (20) (valid) 0x338-0x338.7 (1) + 0x000033| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x339-0x33a.7 (2) + 0x000033| 00 01 | .. | length: 1 0x33b-0x33c.7 (2) + | | | message{}: 0x33d-0x33d.7 (1) + 0x000033| 01 | . | type: 1 0x33d-0x33d.7 (1) + | | | [6]{}: record 0x33e-0x382.7 (69) + 0x000033| 16 | . | type: "handshake" (22) (valid) 0x33e-0x33e.7 (1) + 0x000033| 03| .| version: "tls1.2" (0x303) (valid) 0x33f-0x340.7 (2) + 0x000034|03 |. | + 0x000034| 00 40 | .@ | length: 64 0x341-0x342.7 (2) + 0x000034| ea 79 34 86 27 c5 62 7b 47 20 02 06 39| .y4.'.b{G ..9| encrypted_data: raw bits 0x343-0x382.7 (64) + 0x000035|41 c6 89 73 45 c8 7f 70 b1 c9 6a 95 82 9c b7 36|A..sE..p..j....6| + * |until 0x382.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 29 06 d3 55 ac 6e 42 40 23 87 25 ab| )..U.nB@#.%.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x383-0x817.7 (1173) + 0x000038| 17 | . | type: "application_data" (23) (valid) 0x383-0x383.7 (1) + 0x000038| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x384-0x385.7 (2) + 0x000038| 04 90 | .. | length: 1168 0x386-0x387.7 (2) + 0x000038| cd 07 04 06 b1 f6 b3 09| ........| encrypted_data: raw bits 0x388-0x817.7 (1168) + 0x000039|cb d4 28 aa 98 c6 cc 29 19 7d 54 81 8b f5 79 8c|..(....).}T...y.| + * |until 0x817.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1149.7 (4426) + * |until 0x1149.7 (end) (4426) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1149.7 (4426) + * |until 0x1149.7 (end) (4426) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384.pcap new file mode 100644 index 0000000000000000000000000000000000000000..79ffec355027aeeeac5b01dc0b610eec9f70b09a GIT binary patch literal 3718 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../b..| data: raw bits 0xb0-0xf0.7 (65) + * |until 0xf0.7 (65) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x15b.7 (101) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 60 | .` | length: 96 0xfa-0xfb.7 (2) + 0x00000f| af 62 32 52| .b2R| encrypted_data: raw bits 0xfc-0x15b.7 (96) + 0x000010|67 2a bd fe e3 ea 6c 99 00 47 17 7c a7 03 31 cd|g*....l..G.|..1.| + * |until 0x15b.7 (96) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| ba ba 7d a9 c6 27 29 a3 cd b7 48 af| ..}..')...H.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x15c-0x1c0.7 (101) + 0x000015| 17 | . | type: "application_data" (23) (valid) 0x15c-0x15c.7 (1) + 0x000015| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x15d-0x15e.7 (2) + 0x000015| 00| .| length: 96 0x15f-0x160.7 (2) + 0x000016|60 |` | + 0x000016| 89 96 1c fd 23 12 19 96 f6 d5 9d c7 01 68 72| ....#........hr| encrypted_data: raw bits 0x161-0x1c0.7 (96) + 0x000017|ce a6 0f ed 66 43 c1 d8 74 fe c5 2a b9 06 87 34|....fC..t..*...4| + * |until 0x1c0.7 (96) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x1c1-0x215.7 (85) + 0x00001c| 15 | . | type: "alert" (21) (valid) 0x1c1-0x1c1.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c2-0x1c3.7 (2) + 0x00001c| 00 50 | .P | length: 80 0x1c4-0x1c5.7 (2) + 0x00001c| a8 b2 67 cc 43 2b 6b 3c da de| ..g.C+k<..| encrypted_data: raw bits 0x1c6-0x215.7 (80) + 0x00001d|d5 60 94 73 6d 5b 32 c5 83 1d bb fd db ba 5b 47|.`.sm[2.......[G| + * |until 0x215.7 (end) (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xe86-NA (0) + | | | ip: "127.0.0.1" 0xe86-NA (0) + | | | port: 4431 0xe86-NA (0) + | | | has_start: true 0xe86-NA (0) + | | | has_end: true 0xe86-NA (0) + | | | skipped_bytes: 0 0xe86-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x857.7 (2136) + | | | records[0:8]: 0x0-0x857.7 (2136) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| b2| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|de a6 01 cf a4 6b e9 74 65 0e ef d0 ff 91 ae fc|.....k.te.......| + 0x000002|d9 db d6 fc f6 6f 25 82 b6 24 84 |.....o%..$. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 24 | .$ | cipher_suit: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" (0xc024) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x27f.7 (185) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 b4 | .. | length: 180 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x27f.7 (180) + 0x00001c| 0c | . | type: "server_key_exchange" (12) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 b0| ...| length: 176 0x1cd-0x1cf.7 (3) + | | | curve_params{}: 0x1d0-NA (0) + 0x00001d|03 |. | curve_type: 3 0x1d0-0x1d0.7 (1) + 0x00001d| 00 17 | .. | named_curve: 23 0x1d1-0x1d2.7 (2) + | | | public{}: 0x1d3-NA (0) + 0x00001d| 41 | A | length: 65 0x1d3-0x1d3.7 (1) + 0x00001d| 04 34 e1 a2 85 ef 39 47 4b 97 2b e9| .4....9GK.+.| data: raw bits 0x1d4-0x214.7 (65) + 0x00001e|9d e3 c7 4c 70 31 95 87 36 67 64 8d a9 b2 4a d8|...Lp1..6gd...J.| + * |until 0x214.7 (65) | | + | | | signature_algorithm{}: 0x215-NA (0) + 0x000021| 06 | . | hash: "sha512" (6) 0x215-0x215.7 (1) + 0x000021| 03 | . | signature: "ecdsa" (3) 0x216-0x216.7 (1) + 0x000021| 00 67 | .g | length: 103 0x217-0x218.7 (2) + 0x000021| 30 65 02 30 77 9b b9| 0e.0w..| data: raw bits 0x219-0x27f.7 (103) + 0x000022|3c 9a e5 3b 24 4a 72 45 43 3c 74 d1 52 07 f2 d4|<..;$JrECjLa7~uWuA^?CeD@o+DQmeX?ge@ORz>*%Ag3Ut+ z!itU9wH^xq3`_4e6N}HPB++>qGDq=}3pe~P7KXPTO9REj4CSTK&AQ6#JJuSnWE5{# zBrjyYtc3D_zHwsm!uSlX8HzF3&9;ic&*bw1h6sv5{}Dq7fj|)iKt6)lYN_%T@8b@q zGXnSI)A<91DXQYXS40`psk7n7qb_R$fNNF-D=@nHFyH_<1VAt#pzPHFH{b%I=o}{y z0qp3U5D*4z01sG!01!m8!U8q`egFX&Abm=pKgA z5&Dl9B9Jqv`L0$frnnG-03-BU{cmaw^F3QCJ7-ZM^y-%UyPr&Vgc47li|uK$3*#Qh z1kI`t5L$uIsK1Ma1&xJ+!a(6106GSsPyhuHqalA{)EvwX9*aGglfP3qPh`ilZjRqY z--&~W(j-Zu1Rk-&A)G=#dxV5a8G8hWdV6}ixrBO1nHrnyGbC;j<|1t)ZYOD~lQc;r z;(lQ+b?kN9+Ux%Vag@lr<`RbREGkhrAcMF9+~w%rvb~g$jh18jpI=|Si%Zk7LQ zeD$>F%1XM?kjpiBkn*N>!cPK>LxY4Lpy0D z7dWp}>o%pfIPn{CUKZ=v?iQPAb1Q9Kpoljhdcq{o?)7G;p!w+@g}H;LuU+1x=ylKB z$3KU_N0@(4^Q*9Gb}iH;?hC;ex7=_q*FZ+i(NCT)Og2^Pmho;eyxlR%;h1t+6Wr_a zQJLLot>-PM8n&f5cThggKw(5Ycu~{M;)Exb#yU;_su3V;h|?IQ#=YNezMG=*I)A)< zPar8fLCecMwY=7{-zY1W0a&^UAF3?$l=fEbxYGGl$1*^N;Xh@;8pd`cK&>EB;5;4y zo=q5W)=fFuCIq~c5E;E)0lhtTje*CoTrfwRo>H*u!sZ5v#^Z_%pdo*+tRxybG zh#`VvRDZ9BGzta5^%qnFu3UPKf4v;3 zFcF2LhF#}?lg_D;qyJ#=AO74VZ!Q13Z;Y_{{Mj=hUgiEeztvt(fy-dfAsLq&~0$gKIJLdR)Fw^n3JmDJ9Jk4Nvg8$osu`QQ|I>yDU zh1_@3pu+07TuZQ4{?tnu{~0TC?IAw-K`t6iTU4eYPnwz#I8ghMc;V4gT&5hAKu(60Wkn8Q6@Un&%JkKO+68x@) zH>YT;@OHTGPW32r+??@gBq48w6kKsShh%u^LbW4o;VhZvV1Bvs^+12VKkVV_{#shA zz{oQ3NSBglreRWkW8QIyoy*ms% zyR!Sw_X(Wv>UeNV&ElPoT;P^i%|5pIh&`V>`kfgcZtZ8|o@rWAc>aoS?863j&JT8k zF@sYBoC0NBC-LtmWx*lzRZtvgv1L@Dl4%yrYp0&jCtbTPZv5ln?5cr3NKR% zq|PI{hif;d@Cx}C=<88VwYrBpQfb?Bj$N%95Efai(|_Di!NW#Q{76;lZ@IA1haueR zTiwpbZa3HNbEFi8K(&rzWth}rvUURpLUZ9S<m=i%4Iaj+?TN`WJ40^D$>yGsxO9_4 zgMPSgZ)V-=lD*Nxc>YDOuwb^W{_v4=XHNE>P%<7_c9uIEbKld!VxZX3-cmDG;NbeRi%%)MRbS92((ieEtmw34Q@?Ss zva7qTp^kl9&{H*EmLmd_7v^U@I8_}LnZ4|XBbalwiQZuLvb82U<2=o79Lb9V>yF^n zUiMEIK^?2-))ywmw|>ZOyxI@>Ag_PJa6-W_Lz}r%H`gkUbSB0+9ww0@C=c`qSo@J! z1d6t O3AWZ6ZSa}>0Q?Q;4)v1& literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.pcap.fqtest new file mode 100644 index 00000000..d4ad2349 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.pcap.fqtest @@ -0,0 +1,518 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd9a-NA (0) + | | | client{}: 0xd9a-NA (0) + | | | ip: "127.0.0.1" 0xd9a-NA (0) + | | | port: 42376 0xd9a-NA (0) + | | | has_start: true 0xd9a-NA (0) + | | | has_end: false 0xd9a-NA (0) + | | | skipped_bytes: 0 0xd9a-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x186.7 (391) + | | | records[0:6]: 0x0-0x186.7 (391) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| a4| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|53 0e 7b ce e0 70 4c 9d ce 13 70 17 97 2c 1b be|S.{..pL...p..,..| + 0x000002|aa 81 43 ce a2 f1 7b 78 81 a8 37 |..C...{x..7 | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 2c| .,| [0]: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" (0xc02c) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0xf0.7 (75) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 46 | .F | length: 70 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0xf0.7 (70) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 42 | ..B | length: 66 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 41| A| length: 65 0xaf-0xaf.7 (1) + 0x00000b|04 fb 50 06 59 e7 73 56 26 64 95 d1 61 cc bf b4|..P.Y.sV&d..a...| data: raw bits 0xb0-0xf0.7 (65) + * |until 0xf0.7 (65) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x12c.7 (54) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 31 | .1 | length: 49 0xfa-0xfb.7 (2) + 0x00000f| 44 b9 9c 2c| D..,| encrypted_data: raw bits 0xfc-0x12c.7 (49) + 0x000010|6e ab a3 dd 06 e9 fe 80 26 e4 81 04 a2 7a b4 0b|n.......&....z..| + * |until 0x12c.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| eb e8 53 db bb 1a 13 e7 f5 d2 95 3b| ..S........;| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x12d-0x161.7 (53) + 0x000012| 17 | . | type: "application_data" (23) (valid) 0x12d-0x12d.7 (1) + 0x000012| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x12e-0x12f.7 (2) + 0x000013|00 30 |.0 | length: 48 0x130-0x131.7 (2) + 0x000013| 44 b9 9c 2c 6e ab a3 de 43 f6 55 da b4 e0| D..,n...C.U...| encrypted_data: raw bits 0x132-0x161.7 (48) + 0x000014|9f ba 09 fa 73 6f d6 8b 20 e0 32 97 ce e6 4c 25|....so.. .2...L%| + * |until 0x161.7 (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x162-0x186.7 (37) + 0x000016| 15 | . | type: "alert" (21) (valid) 0x162-0x162.7 (1) + 0x000016| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x163-0x164.7 (2) + 0x000016| 00 20 | . | length: 32 0x165-0x166.7 (2) + 0x000016| 44 b9 9c 2c 6e ab a3 df b1| D..,n....| encrypted_data: raw bits 0x167-0x186.7 (32) + 0x000017|77 04 a2 a4 3a 9a 08 1d e6 51 ac a0 5f ab 74 a7|w...:....Q.._.t.| + 0x000018|96 24 fe 62 fe e8 5e| |.$.b..^| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd9a-NA (0) + | | | ip: "127.0.0.1" 0xd9a-NA (0) + | | | port: 4431 0xd9a-NA (0) + | | | has_start: true 0xd9a-NA (0) + | | | has_end: true 0xd9a-NA (0) + | | | skipped_bytes: 0 0xd9a-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x7fa.7 (2043) + | | | records[0:8]: 0x0-0x7fa.7 (2043) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| dc| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|11 d7 fd a7 9a 49 a5 16 e8 b7 25 ee 3f 45 3b 74|.....I....%.?E;t| + 0x000002|30 7c 9a 84 d0 bd 55 7a 0e d9 92 |0|....Uz... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 2c | ., | cipher_suit: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" (0xc02c) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x27e.7 (184) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 b3 | .. | length: 179 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x27e.7 (179) + 0x00001c| 0c | . | type: "server_key_exchange" (12) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 af| ...| length: 175 0x1cd-0x1cf.7 (3) + | | | curve_params{}: 0x1d0-NA (0) + 0x00001d|03 |. | curve_type: 3 0x1d0-0x1d0.7 (1) + 0x00001d| 00 17 | .. | named_curve: 23 0x1d1-0x1d2.7 (2) + | | | public{}: 0x1d3-NA (0) + 0x00001d| 41 | A | length: 65 0x1d3-0x1d3.7 (1) + 0x00001d| 04 34 e1 a2 85 ef 39 47 4b 97 2b e9| .4....9GK.+.| data: raw bits 0x1d4-0x214.7 (65) + 0x00001e|9d e3 c7 4c 70 31 95 87 36 67 64 8d a9 b2 4a d8|...Lp1..6gd...J.| + * |until 0x214.7 (65) | | + | | | signature_algorithm{}: 0x215-NA (0) + 0x000021| 06 | . | hash: "sha512" (6) 0x215-0x215.7 (1) + 0x000021| 03 | . | signature: "ecdsa" (3) 0x216-0x216.7 (1) + 0x000021| 00 66 | .f | length: 102 0x217-0x218.7 (2) + 0x000021| 30 64 02 30 56 1f b6| 0d.0V..| data: raw bits 0x219-0x27e.7 (102) + 0x000022|72 b6 15 d8 dc cb 95 90 ea 1d 5a c5 7f e2 df 12|r.........Z.....| + * |until 0x27e.7 (102) | | + | | | [3]{}: record 0x27f-0x287.7 (9) + 0x000027| 16| .| type: "handshake" (22) (valid) 0x27f-0x27f.7 (1) + 0x000028|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x280-0x281.7 (2) + 0x000028| 00 04 | .. | length: 4 0x282-0x283.7 (2) + | | | message{}: 0x284-0x287.7 (4) + 0x000028| 0e | . | type: "server_hello_done" (14) 0x284-0x284.7 (1) + 0x000028| 00 00 00 | ... | length: 0 0x285-0x287.7 (3) + | | | data: raw bits 0x288-NA (0) + | | | [4]{}: record 0x288-0x336.7 (175) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x288-0x288.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x289-0x28a.7 (2) + 0x000028| 00 aa | .. | length: 170 0x28b-0x28c.7 (2) + | | | message{}: 0x28d-0x336.7 (170) + 0x000028| 04 | . | type: "new_session_ticket" (4) 0x28d-0x28d.7 (1) + 0x000028| 00 00| ..| length: 166 0x28e-0x290.7 (3) + 0x000029|a6 |. | + 0x000029| 00 00 01 2c | ..., | lifetime_hint: 300 0x291-0x294.7 (4) + 0x000029| 00 a0 | .. | ticket_length: 160 0x295-0x296.7 (2) + 0x000029| 6f 7d e1 6c 67 99 7a b0 7e| o}.lg.z.~| ticket: raw bits 0x297-0x336.7 (160) + 0x00002a|f2 61 6e a4 37 9e 3d 27 85 63 23 04 13 78 26 0d|.an.7.='.c#..x&.| + * |until 0x336.7 (160) | | + | | | [5]{}: record 0x337-0x33c.7 (6) + 0x000033| 14 | . | type: "change_cipher_spec" (20) (valid) 0x337-0x337.7 (1) + 0x000033| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x338-0x339.7 (2) + 0x000033| 00 01 | .. | length: 1 0x33a-0x33b.7 (2) + | | | message{}: 0x33c-0x33c.7 (1) + 0x000033| 01 | . | type: 1 0x33c-0x33c.7 (1) + | | | [6]{}: record 0x33d-0x372.7 (54) + 0x000033| 16 | . | type: "handshake" (22) (valid) 0x33d-0x33d.7 (1) + 0x000033| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x33e-0x33f.7 (2) + 0x000034|00 31 |.1 | length: 49 0x340-0x341.7 (2) + 0x000034| 51 57 46 0f de 10 c4 d5 f6 0f c1 a5 1d b9| QWF...........| encrypted_data: raw bits 0x342-0x372.7 (49) + 0x000035|a0 58 ac 40 eb 67 7b 98 ea 8c 38 52 52 d8 64 b2|.X.@.g{...8RR.d.| + * |until 0x372.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 0b e4 1e 3d 48 e0 8f a0 2e ec b4 4f| ...=H......O| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x373-0x7fa.7 (1160) + 0x000037| 17 | . | type: "application_data" (23) (valid) 0x373-0x373.7 (1) + 0x000037| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x374-0x375.7 (2) + 0x000037| 04 83 | .. | length: 1155 0x376-0x377.7 (2) + 0x000037| 51 57 46 0f de 10 c4 d6| QWF.....| encrypted_data: raw bits 0x378-0x7fa.7 (1155) + 0x000038|b6 40 aa 4f 78 24 c1 72 36 9d e6 e7 22 6d ed 4f|.@.Ox$.r6..."m.O| + * |until 0x7fa.7 (end) (1155) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x115e.7 (4447) + * |until 0x115e.7 (end) (4447) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x115e.7 (4447) + * |until 0x115e.7 (end) (4447) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_RC4_128_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_RC4_128_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..0b046f1a05670db35d1656b96e6151ee777f0f96 GIT binary patch literal 3462 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_RC4_128_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_RC4_128_SHA.pcap.fqtest new file mode 100644 index 00000000..b26e5399 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDHE_ECDSA_WITH_RC4_128_SHA.pcap.fqtest @@ -0,0 +1,518 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDHE_ECDSA_WITH_RC4_128_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd86-NA (0) + | | | client{}: 0xd86-NA (0) + | | | ip: "127.0.0.1" 0xd86-NA (0) + | | | port: 42435 0xd86-NA (0) + | | | has_start: true 0xd86-NA (0) + | | | has_end: false 0xd86-NA (0) + | | | skipped_bytes: 0 0xd86-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x17a.7 (379) + | | | records[0:6]: 0x0-0x17a.7 (379) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| f2| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|a5 03 6f 90 42 8c 9e 47 a0 4a 78 05 d5 aa 5a 92|..o.B..G.Jx...Z.| + 0x000002|3e 7d b7 f2 c9 27 9d 21 e2 11 58 |>}...'.!..X | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 07| ..| [0]: "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA" (0xc007) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0xf0.7 (75) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 46 | .F | length: 70 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0xf0.7 (70) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 42 | ..B | length: 66 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 41| A| length: 65 0xaf-0xaf.7 (1) + 0x00000b|04 e5 12 cc 7a 20 41 20 30 c4 3b b3 26 39 f9 7a|....z A 0.;.&9.z| data: raw bits 0xb0-0xf0.7 (65) + * |until 0xf0.7 (65) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x128.7 (50) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 2d | .- | length: 45 0xfa-0xfb.7 (2) + 0x00000f| 46 84 2a e9| F.*.| encrypted_data: raw bits 0xfc-0x128.7 (45) + 0x000010|a2 eb d2 87 88 a2 c2 a5 93 04 43 23 89 48 cb 92|..........C#.H..| + * |until 0x128.7 (45) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| f4 ee 40 64 32 22 37 c1 0b c2 64 5d| ..@d2"7...d]| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x129-0x159.7 (49) + 0x000012| 17 | . | type: "application_data" (23) (valid) 0x129-0x129.7 (1) + 0x000012| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x12a-0x12b.7 (2) + 0x000012| 00 2c | ., | length: 44 0x12c-0x12d.7 (2) + 0x000012| af 3d| .=| encrypted_data: raw bits 0x12e-0x159.7 (44) + 0x000013|a9 a9 dc b2 da c0 ac 72 b9 ce 6c d7 21 7a 5b 5a|.......r..l.!z[Z| + * |until 0x159.7 (44) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x15a-0x17a.7 (33) + 0x000015| 15 | . | type: "alert" (21) (valid) 0x15a-0x15a.7 (1) + 0x000015| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x15b-0x15c.7 (2) + 0x000015| 00 1c | .. | length: 28 0x15d-0x15e.7 (2) + 0x000015| 2f| /| encrypted_data: raw bits 0x15f-0x17a.7 (28) + 0x000016|3c 8c 30 d8 36 a1 bb 61 d3 96 f5 d9 39 0b 80 28|<.0.6..a....9..(| + 0x000017|c0 3f 29 e5 83 d7 57 d8 58 c3 62| |.?)...W.X.b| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd86-NA (0) + | | | ip: "127.0.0.1" 0xd86-NA (0) + | | | port: 4431 0xd86-NA (0) + | | | has_start: true 0xd86-NA (0) + | | | has_end: true 0xd86-NA (0) + | | | skipped_bytes: 0 0xd86-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x7f2.7 (2035) + | | | records[0:8]: 0x0-0x7f2.7 (2035) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 44| D| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|f5 cd d9 25 11 e3 19 0e 08 87 d3 f9 eb 80 eb 6b|...%...........k| + 0x000002|c6 0b a4 86 98 7b 93 37 55 28 14 |.....{.7U(. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 07 | .. | cipher_suit: "TLS_ECDHE_ECDSA_WITH_RC4_128_SHA" (0xc007) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x27e.7 (184) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 b3 | .. | length: 179 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x27e.7 (179) + 0x00001c| 0c | . | type: "server_key_exchange" (12) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 af| ...| length: 175 0x1cd-0x1cf.7 (3) + | | | curve_params{}: 0x1d0-NA (0) + 0x00001d|03 |. | curve_type: 3 0x1d0-0x1d0.7 (1) + 0x00001d| 00 17 | .. | named_curve: 23 0x1d1-0x1d2.7 (2) + | | | public{}: 0x1d3-NA (0) + 0x00001d| 41 | A | length: 65 0x1d3-0x1d3.7 (1) + 0x00001d| 04 34 e1 a2 85 ef 39 47 4b 97 2b e9| .4....9GK.+.| data: raw bits 0x1d4-0x214.7 (65) + 0x00001e|9d e3 c7 4c 70 31 95 87 36 67 64 8d a9 b2 4a d8|...Lp1..6gd...J.| + * |until 0x214.7 (65) | | + | | | signature_algorithm{}: 0x215-NA (0) + 0x000021| 06 | . | hash: "sha512" (6) 0x215-0x215.7 (1) + 0x000021| 03 | . | signature: "ecdsa" (3) 0x216-0x216.7 (1) + 0x000021| 00 66 | .f | length: 102 0x217-0x218.7 (2) + 0x000021| 30 64 02 30 6d bb c9| 0d.0m..| data: raw bits 0x219-0x27e.7 (102) + 0x000022|99 48 1e 30 be 74 0b 3a 19 1e c0 c7 ea 41 08 26|.H.0.t.:.....A.&| + * |until 0x27e.7 (102) | | + | | | [3]{}: record 0x27f-0x287.7 (9) + 0x000027| 16| .| type: "handshake" (22) (valid) 0x27f-0x27f.7 (1) + 0x000028|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x280-0x281.7 (2) + 0x000028| 00 04 | .. | length: 4 0x282-0x283.7 (2) + | | | message{}: 0x284-0x287.7 (4) + 0x000028| 0e | . | type: "server_hello_done" (14) 0x284-0x284.7 (1) + 0x000028| 00 00 00 | ... | length: 0 0x285-0x287.7 (3) + | | | data: raw bits 0x288-NA (0) + | | | [4]{}: record 0x288-0x336.7 (175) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x288-0x288.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x289-0x28a.7 (2) + 0x000028| 00 aa | .. | length: 170 0x28b-0x28c.7 (2) + | | | message{}: 0x28d-0x336.7 (170) + 0x000028| 04 | . | type: "new_session_ticket" (4) 0x28d-0x28d.7 (1) + 0x000028| 00 00| ..| length: 166 0x28e-0x290.7 (3) + 0x000029|a6 |. | + 0x000029| 00 00 01 2c | ..., | lifetime_hint: 300 0x291-0x294.7 (4) + 0x000029| 00 a0 | .. | ticket_length: 160 0x295-0x296.7 (2) + 0x000029| 6f 7d e1 6c 67 99 7a b0 7e| o}.lg.z.~| ticket: raw bits 0x297-0x336.7 (160) + 0x00002a|f2 61 6e a4 37 9e 3d 86 0d 19 28 83 37 ae 3d 68|.an.7.=...(.7.=h| + * |until 0x336.7 (160) | | + | | | [5]{}: record 0x337-0x33c.7 (6) + 0x000033| 14 | . | type: "change_cipher_spec" (20) (valid) 0x337-0x337.7 (1) + 0x000033| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x338-0x339.7 (2) + 0x000033| 00 01 | .. | length: 1 0x33a-0x33b.7 (2) + | | | message{}: 0x33c-0x33c.7 (1) + 0x000033| 01 | . | type: 1 0x33c-0x33c.7 (1) + | | | [6]{}: record 0x33d-0x36e.7 (50) + 0x000033| 16 | . | type: "handshake" (22) (valid) 0x33d-0x33d.7 (1) + 0x000033| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x33e-0x33f.7 (2) + 0x000034|00 2d |.- | length: 45 0x340-0x341.7 (2) + 0x000034| 07 d7 af c2 d4 6c bb 53 03 2c 01 b5 9e 68| .....l.S.,...h| encrypted_data: raw bits 0x342-0x36e.7 (45) + 0x000035|b8 91 09 01 47 53 e6 8d 6d 74 53 7a ed 01 78 6f|....GS..mtSz..xo| + 0x000036|7b 71 bb 4c 6c 92 4f ba 3e b0 c9 14 3a 19 a8 |{q.Ll.O.>...:.. | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| ee 3a bf bb ed 88 6e 04 a5 e7 08 b9| .:....n.....| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x36f-0x7f2.7 (1156) + 0x000036| 17| .| type: "application_data" (23) (valid) 0x36f-0x36f.7 (1) + 0x000037|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x370-0x371.7 (2) + 0x000037| 04 7f | .. | length: 1151 0x372-0x373.7 (2) + 0x000037| 96 37 c3 45 f3 c9 62 db c8 b5 7e 7f| .7.E..b...~.| encrypted_data: raw bits 0x374-0x7f2.7 (1151) + 0x000038|02 fe 03 19 47 fe 53 1f b6 89 04 21 1b eb 4e f3|....G.S....!..N.| + * |until 0x7f2.7 (end) (1151) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1140.7 (4417) + * |until 0x1140.7 (end) (4417) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1140.7 (4417) + * |until 0x1140.7 (end) (4417) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..8987125a0f42627ca5049bc04b98e0ba875cb047 GIT binary patch literal 3615 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..c6ac542f --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest @@ -0,0 +1,527 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xe1f-NA (0) + | | | client{}: 0xe1f-NA (0) + | | | ip: "127.0.0.1" 0xe1f-NA (0) + | | | port: 38988 0xe1f-NA (0) + | | | has_start: true 0xe1f-NA (0) + | | | has_end: false 0xe1f-NA (0) + | | | skipped_bytes: 0 0xe1f-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x19d.7 (414) + | | | records[0:6]: 0x0-0x19d.7 (414) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| c3| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|6a 0c 24 59 17 0e c5 0e c7 83 37 8f 88 12 5b 20|j.$Y......7...[ | + 0x000002|3a e3 c7 33 3e 6a 0e 62 44 05 3c |:..3>j.bD.< | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 12| ..| [0]: "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" (0xc012) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0xf0.7 (75) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 46 | .F | length: 70 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0xf0.7 (70) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 42 | ..B | length: 66 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 41| A| length: 65 0xaf-0xaf.7 (1) + 0x00000b|04 fc 60 49 0b 27 b5 aa 9f 94 d9 79 01 2e 27 f1|..`I.'.....y..'.| data: raw bits 0xb0-0xf0.7 (65) + * |until 0xf0.7 (65) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x133.7 (61) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 38 | .8 | length: 56 0xfa-0xfb.7 (2) + 0x00000f| 12 ba cc 4a| ...J| encrypted_data: raw bits 0xfc-0x133.7 (56) + 0x000010|ca b3 ab d2 51 68 57 1a 2a 47 13 f3 ab 67 ba 3a|....QhW.*G...g.:| + * |until 0x133.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| c3 08 23 4f f3 8a 7b 6a e9 8e e3 8c| ..#O..{j....| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x134-0x170.7 (61) + 0x000013| 17 | . | type: "application_data" (23) (valid) 0x134-0x134.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x135-0x136.7 (2) + 0x000013| 00 38 | .8 | length: 56 0x137-0x138.7 (2) + 0x000013| dc a3 05 d1 36 8f 16| ....6..| encrypted_data: raw bits 0x139-0x170.7 (56) + 0x000014|25 ba 61 e8 aa 9c 81 11 44 4e f3 71 1d ff 3f cb|%.a.....DN.q..?.| + * |until 0x170.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x171-0x19d.7 (45) + 0x000017| 15 | . | type: "alert" (21) (valid) 0x171-0x171.7 (1) + 0x000017| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x172-0x173.7 (2) + 0x000017| 00 28 | .( | length: 40 0x174-0x175.7 (2) + 0x000017| 15 12 06 de a9 32 e6 53 c7 81| .....2.S..| encrypted_data: raw bits 0x176-0x19d.7 (40) + 0x000018|dd ad d3 62 7c 13 ec 54 4f 99 d9 20 d1 26 4b fd|...b|..TO.. .&K.| + 0x000019|4d 1f ff 89 9b b9 65 6b 25 03 5f 25 ed 59| |M.....ek%._%.Y| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xe1f-NA (0) + | | | ip: "127.0.0.1" 0xe1f-NA (0) + | | | port: 4430 0xe1f-NA (0) + | | | has_start: true 0xe1f-NA (0) + | | | has_end: true 0xe1f-NA (0) + | | | skipped_bytes: 0 0xe1f-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x868.7 (2153) + | | | records[0:8]: 0x0-0x868.7 (2153) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| c5| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|d9 82 c1 53 94 f4 bb 6e 83 ff b5 1c aa d5 aa cd|...S...n........| + 0x000002|4a 69 ba ee 31 ed ff b2 df 89 90 |Ji..1...... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 12 | .. | cipher_suit: "TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA" (0xc012) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x20e.7 (456) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x20e.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 bf| ...| length: 447 0x4d-0x4f.7 (3) + 0x000005|00 01 bc |... | certificates_length: 444 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x20e.7 (444) + | | | [0]{}: certificate 0x53-0x20e.7 (444) + 0x000005| 00 01 b9 | ... | length: 441 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x20e.7 (441) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 b5 | ... | length: 437 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x20e.7 (437) + | | | [0]{}: object 0x5a-0x17b.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x5b-0x5d.7 (3) + | | | constructed[0:6]: 0x5e-0x17b.7 (286) + | | | [0]{}: object 0x5e-0x68.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5e-0x5e.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5e.2-0x5e.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5e.3-0x5e.7 (0.5) + 0x000005| 09| .| length: 9 0x5f-0x5f.7 (1) + 0x000006|00 f4 a7 2f d3 e8 fc 37 c4 |.../...7. | value: 17629111853558544324 0x60-0x68.7 (9) + | | | [1]{}: object 0x69-0x77.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x69-0x69.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x69.2-0x69.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x69.3-0x69.7 (0.5) + 0x000006| 0d | . | length: 13 0x6a-0x6a.7 (1) + | | | constructed[0:2]: 0x6b-0x77.7 (13) + | | | [0]{}: object 0x6b-0x75.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x6b-0x6b.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6b.2-0x6b.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6b.3-0x6b.7 (0.5) + 0x000006| 09 | . | length: 9 0x6c-0x6c.7 (1) + | | | value[0:7]: 0x6d-0x75.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6d-0x6d.7 (1) + 0x000006| 86 48| .H| [2]: 840 oid 0x6e-0x6f.7 (2) + 0x000007|86 f7 0d |... | [3]: 113549 oid 0x70-0x72.7 (3) + 0x000007| 01 | . | [4]: 1 oid 0x73-0x73.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x74-0x74.7 (1) + 0x000007| 05 | . | [6]: 5 oid 0x75-0x75.7 (1) + | | | [1]{}: object 0x76-0x77.7 (2) + 0x000007| 05 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 05 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 05 | . | tag: "null" (0x5) 0x76.3-0x76.7 (0.5) + 0x000007| 00 | . | length: "indefinite" (0) 0x77-0x77.7 (1) + | | | value: null 0x78-NA (0) + | | | [2]{}: object 0x78-0x98.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x78-0x78.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x78.2-0x78.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x78.3-0x78.7 (0.5) + 0x000007| 1f | . | length: 31 0x79-0x79.7 (1) + | | | constructed[0:1]: 0x7a-0x98.7 (31) + | | | [0]{}: object 0x7a-0x98.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x7a-0x7a.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x7a.2-0x7a.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x7a.3-0x7a.7 (0.5) + 0x000007| 1d | . | length: 29 0x7b-0x7b.7 (1) + | | | constructed[0:1]: 0x7c-0x98.7 (29) + | | | [0]{}: object 0x7c-0x98.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x7c.2-0x7c.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x7c.3-0x7c.7 (0.5) + 0x000007| 1b | . | length: 27 0x7d-0x7d.7 (1) + | | | constructed[0:2]: 0x7e-0x98.7 (27) + | | | [0]{}: object 0x7e-0x82.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x7e.3-0x7e.7 (0.5) + 0x000007| 03| .| length: 3 0x7f-0x7f.7 (1) + | | | value[0:4]: 0x80-0x82.7 (3) + 0x000008|55 |U | [0]: 2 oid 0x80-0x80.7 (1) + 0x000008|55 |U | [1]: 5 oid 0x80-0x80.7 (1) + 0x000008| 04 | . | [2]: 4 oid 0x81-0x81.7 (1) + 0x000008| 03 | . | [3]: 3 oid 0x82-0x82.7 (1) + | | | [1]{}: object 0x83-0x98.7 (22) + 0x000008| 0c | . | class: "universal" (0) 0x83-0x83.1 (0.2) + 0x000008| 0c | . | form: "primitive" (0) 0x83.2-0x83.2 (0.1) + 0x000008| 0c | . | tag: "utf8_string" (0xc) 0x83.3-0x83.7 (0.5) + 0x000008| 14 | . | length: 20 0x84-0x84.7 (1) + 0x000008| 54 65 73 74 20 43 65 72 74 69 66| Test Certif| value: "Test Certificate RSA" 0x85-0x98.7 (20) + 0x000009|69 63 61 74 65 20 52 53 41 |icate RSA | + | | | [3]{}: object 0x99-0xb8.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x99-0x99.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x99.2-0x99.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x99.3-0x99.7 (0.5) + 0x000009| 1e | . | length: 30 0x9a-0x9a.7 (1) + | | | constructed[0:2]: 0x9b-0xb8.7 (30) + | | | [0]{}: object 0x9b-0xa9.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x9b-0x9b.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x9b.2-0x9b.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x9b.3-0x9b.7 (0.5) + 0x000009| 0d | . | length: 13 0x9c-0x9c.7 (1) + 0x000009| 31 33 30| 130| value: "130915215110Z" 0x9d-0xa9.7 (13) + 0x00000a|39 31 35 32 31 35 31 31 30 5a |915215110Z | + | | | [1]{}: object 0xaa-0xb8.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xaa-0xaa.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xaa.2-0xaa.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xaa.3-0xaa.7 (0.5) + 0x00000a| 0d | . | length: 13 0xab-0xab.7 (1) + 0x00000a| 32 33 30 39| 2309| value: "230913215110Z" 0xac-0xb8.7 (13) + 0x00000b|31 33 32 31 35 31 31 30 5a |13215110Z | + | | | [4]{}: object 0xb9-0xd9.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb9-0xb9.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb9.2-0xb9.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb9.3-0xb9.7 (0.5) + 0x00000b| 1f | . | length: 31 0xba-0xba.7 (1) + | | | constructed[0:1]: 0xbb-0xd9.7 (31) + | | | [0]{}: object 0xbb-0xd9.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xbb-0xbb.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xbb.2-0xbb.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xbb.3-0xbb.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbc-0xbc.7 (1) + | | | constructed[0:1]: 0xbd-0xd9.7 (29) + | | | [0]{}: object 0xbd-0xd9.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 1b | . | length: 27 0xbe-0xbe.7 (1) + | | | constructed[0:2]: 0xbf-0xd9.7 (27) + | | | [0]{}: object 0xbf-0xc3.7 (5) + 0x00000b| 06| .| class: "universal" (0) 0xbf-0xbf.1 (0.2) + 0x00000b| 06| .| form: "primitive" (0) 0xbf.2-0xbf.2 (0.1) + 0x00000b| 06| .| tag: "object_identifier" (0x6) 0xbf.3-0xbf.7 (0.5) + 0x00000c|03 |. | length: 3 0xc0-0xc0.7 (1) + | | | value[0:4]: 0xc1-0xc3.7 (3) + 0x00000c| 55 | U | [0]: 2 oid 0xc1-0xc1.7 (1) + 0x00000c| 55 | U | [1]: 5 oid 0xc1-0xc1.7 (1) + 0x00000c| 04 | . | [2]: 4 oid 0xc2-0xc2.7 (1) + 0x00000c| 03 | . | [3]: 3 oid 0xc3-0xc3.7 (1) + | | | [1]{}: object 0xc4-0xd9.7 (22) + 0x00000c| 0c | . | class: "universal" (0) 0xc4-0xc4.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc4.2-0xc4.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc4.3-0xc4.7 (0.5) + 0x00000c| 14 | . | length: 20 0xc5-0xc5.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69| Test Certi| value: "Test Certificate RSA" 0xc6-0xd9.7 (20) + 0x00000d|66 69 63 61 74 65 20 52 53 41 |ficate RSA | + | | | [5]{}: object 0xda-0x17b.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xda-0xda.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xda.2-0xda.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xda.3-0xda.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xdb-0xdc.7 (2) + | | | constructed[0:2]: 0xdd-0x17b.7 (159) + | | | [0]{}: object 0xdd-0xeb.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 0d | . | length: 13 0xde-0xde.7 (1) + | | | constructed[0:2]: 0xdf-0xeb.7 (13) + | | | [0]{}: object 0xdf-0xe9.7 (11) + 0x00000d| 06| .| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00000d| 06| .| form: "primitive" (0) 0xdf.2-0xdf.2 (0.1) + 0x00000d| 06| .| tag: "object_identifier" (0x6) 0xdf.3-0xdf.7 (0.5) + 0x00000e|09 |. | length: 9 0xe0-0xe0.7 (1) + | | | value[0:7]: 0xe1-0xe9.7 (9) + 0x00000e| 2a | * | [0]: 1 oid 0xe1-0xe1.7 (1) + 0x00000e| 2a | * | [1]: 2 oid 0xe1-0xe1.7 (1) + 0x00000e| 86 48 | .H | [2]: 840 oid 0xe2-0xe3.7 (2) + 0x00000e| 86 f7 0d | ... | [3]: 113549 oid 0xe4-0xe6.7 (3) + 0x00000e| 01 | . | [4]: 1 oid 0xe7-0xe7.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe9-0xe9.7 (1) + | | | [1]{}: object 0xea-0xeb.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xea-0xea.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xea.2-0xea.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xea.3-0xea.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xeb-0xeb.7 (1) + | | | value: null 0xec-NA (0) + | | | [1]{}: object 0xec-0x17b.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xec-0xec.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xec.2-0xec.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xec.3-0xec.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xed-0xee.7 (2) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|30 81 89 02 81 81 00 ac 35 2a 93 7f c5 4f 18 98|0.......5*...O..| value: raw bits 0xf0-0x17b.7 (140) + * |until 0x17b.7 (140) | | + | | | [1]{}: object 0x17c-0x18a.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x17c-0x17c.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x17c.2-0x17c.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x17c.3-0x17c.7 (0.5) + 0x000017| 0d | . | length: 13 0x17d-0x17d.7 (1) + | | | constructed[0:2]: 0x17e-0x18a.7 (13) + | | | [0]{}: object 0x17e-0x188.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x17e.3-0x17e.7 (0.5) + 0x000017| 09| .| length: 9 0x17f-0x17f.7 (1) + | | | value[0:7]: 0x180-0x188.7 (9) + 0x000018|2a |* | [0]: 1 oid 0x180-0x180.7 (1) + 0x000018|2a |* | [1]: 2 oid 0x180-0x180.7 (1) + 0x000018| 86 48 | .H | [2]: 840 oid 0x181-0x182.7 (2) + 0x000018| 86 f7 0d | ... | [3]: 113549 oid 0x183-0x185.7 (3) + 0x000018| 01 | . | [4]: 1 oid 0x186-0x186.7 (1) + 0x000018| 01 | . | [5]: 1 oid 0x187-0x187.7 (1) + 0x000018| 05 | . | [6]: 5 oid 0x188-0x188.7 (1) + | | | [1]{}: object 0x189-0x18a.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x189-0x189.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x189.2-0x189.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x189.3-0x189.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x18a-0x18a.7 (1) + | | | value: null 0x18b-NA (0) + | | | [2]{}: object 0x18b-0x20e.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x18b-0x18b.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x18b.2-0x18b.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x18b.3-0x18b.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x18c-0x18d.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x18e-0x18e.7 (1) + 0x000018| 67| g| value: raw bits 0x18f-0x20e.7 (128) + 0x000019|43 4c a8 a4 3e eb 1b 32 28 70 8b db eb fe f1 b3|CL..>..2(p......| + * |until 0x20e.7 (128) | | + | | | [2]{}: record 0x20f-0x2e0.7 (210) + 0x000020| 16| .| type: "handshake" (22) (valid) 0x20f-0x20f.7 (1) + 0x000021|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x210-0x211.7 (2) + 0x000021| 00 cd | .. | length: 205 0x212-0x213.7 (2) + | | | message{}: 0x214-0x2e0.7 (205) + 0x000021| 0c | . | type: "server_key_exchange" (12) 0x214-0x214.7 (1) + 0x000021| 00 00 c9 | ... | length: 201 0x215-0x217.7 (3) + | | | curve_params{}: 0x218-NA (0) + 0x000021| 03 | . | curve_type: 3 0x218-0x218.7 (1) + 0x000021| 00 17 | .. | named_curve: 23 0x219-0x21a.7 (2) + | | | public{}: 0x21b-NA (0) + 0x000021| 41 | A | length: 65 0x21b-0x21b.7 (1) + 0x000021| 04 97 e0 a1| ....| data: raw bits 0x21c-0x25c.7 (65) + 0x000022|4e d7 18 a0 e8 17 bf e1 a0 c1 ad 25 65 fd 35 94|N..........%e.5.| + * |until 0x25c.7 (65) | | + | | | signature_algorithm{}: 0x25d-NA (0) + 0x000025| 06 | . | hash: "sha512" (6) 0x25d-0x25d.7 (1) + 0x000025| 01 | . | signature: "rsa" (1) 0x25e-0x25e.7 (1) + 0x000025| 00| .| length: 128 0x25f-0x260.7 (2) + 0x000026|80 |. | + 0x000026| 89 93 8b ae fd 84 b6 1c 95 f8 6d 7e 6b 1d 23| ..........m~k.#| data: raw bits 0x261-0x2e0.7 (128) + 0x000027|22 dc 50 47 cf 38 5d a6 e0 42 ea 15 ff 30 2f 52|".PG.8]..B...0/R| + * |until 0x2e0.7 (128) | | + | | | [3]{}: record 0x2e1-0x2e9.7 (9) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2e1-0x2e1.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2e2-0x2e3.7 (2) + 0x00002e| 00 04 | .. | length: 4 0x2e4-0x2e5.7 (2) + | | | message{}: 0x2e6-0x2e9.7 (4) + 0x00002e| 0e | . | type: "server_hello_done" (14) 0x2e6-0x2e6.7 (1) + 0x00002e| 00 00 00 | ... | length: 0 0x2e7-0x2e9.7 (3) + | | | data: raw bits 0x2ea-NA (0) + | | | [4]{}: record 0x2ea-0x398.7 (175) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2ea-0x2ea.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2eb-0x2ec.7 (2) + 0x00002e| 00 aa | .. | length: 170 0x2ed-0x2ee.7 (2) + | | | message{}: 0x2ef-0x398.7 (170) + 0x00002e| 04| .| type: "new_session_ticket" (4) 0x2ef-0x2ef.7 (1) + 0x00002f|00 00 a6 |... | length: 166 0x2f0-0x2f2.7 (3) + 0x00002f| 00 00 01 2c | ..., | lifetime_hint: 300 0x2f3-0x2f6.7 (4) + 0x00002f| 00 a0 | .. | ticket_length: 160 0x2f7-0x2f8.7 (2) + 0x00002f| c0 b4 67 52 a5 ca da| ..gR...| ticket: raw bits 0x2f9-0x398.7 (160) + 0x000030|99 7a 28 d7 eb e7 a1 7e 31 0d 29 7f 94 e8 66 50|.z(....~1.)...fP| + * |until 0x398.7 (160) | | + | | | [5]{}: record 0x399-0x39e.7 (6) + 0x000039| 14 | . | type: "change_cipher_spec" (20) (valid) 0x399-0x399.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x39a-0x39b.7 (2) + 0x000039| 00 01 | .. | length: 1 0x39c-0x39d.7 (2) + | | | message{}: 0x39e-0x39e.7 (1) + 0x000039| 01 | . | type: 1 0x39e-0x39e.7 (1) + | | | [6]{}: record 0x39f-0x3db.7 (61) + 0x000039| 16| .| type: "handshake" (22) (valid) 0x39f-0x39f.7 (1) + 0x00003a|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x3a0-0x3a1.7 (2) + 0x00003a| 00 38 | .8 | length: 56 0x3a2-0x3a3.7 (2) + 0x00003a| 04 c8 4f 39 dd 9a 97 90 0b 5b 9c 2a| ..O9.....[.*| encrypted_data: raw bits 0x3a4-0x3db.7 (56) + 0x00003b|c5 47 1a 24 1c 54 79 0f 77 6f e8 11 43 2f 8e de|.G.$.Ty.wo..C/..| + * |until 0x3db.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 37 79 61 4a 11 01 7f 63 89 5a 1e 3b| 7yaJ...c.Z.;| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x3dc-0x868.7 (1165) + 0x00003d| 17 | . | type: "application_data" (23) (valid) 0x3dc-0x3dc.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3dd-0x3de.7 (2) + 0x00003d| 04| .| length: 1160 0x3df-0x3e0.7 (2) + 0x00003e|88 |. | + 0x00003e| 70 81 24 17 cb 2a 19 18 04 6b 89 13 ae 1f e8| p.$..*...k.....| encrypted_data: raw bits 0x3e1-0x868.7 (1160) + 0x00003f|8f b4 be 91 0a 7c 9e 6e 2f 1d f1 eb e9 3a 78 dd|.....|.n/....:x.| + * |until 0x868.7 (end) (1160) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x113b.7 (4412) + * |until 0x113b.7 (end) (4412) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x113b.7 (4412) + * |until 0x113b.7 (end) (4412) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..bdf041b6bd7f8336d9d3ef5498676f1a8dd1b84b GIT binary patch literal 3655 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 W7B*;QExaN=1et3EcmI$K0R96bD^k7y literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..af504137 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest @@ -0,0 +1,527 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xe47-NA (0) + | | | client{}: 0xe47-NA (0) + | | | ip: "127.0.0.1" 0xe47-NA (0) + | | | port: 38999 0xe47-NA (0) + | | | has_start: true 0xe47-NA (0) + | | | has_end: false 0xe47-NA (0) + | | | skipped_bytes: 0 0xe47-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1b5.7 (438) + | | | records[0:6]: 0x0-0x1b5.7 (438) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 9f| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|dd 9f be 08 b5 a2 d4 33 b2 db 2c 39 ce 7a 1c 8d|.......3..,9.z..| + 0x000002|7c 6c fc 89 b2 eb bb 40 e3 be 89 ||l.....@... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 13| ..| [0]: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" (0xc013) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0xf0.7 (75) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 46 | .F | length: 70 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0xf0.7 (70) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 42 | ..B | length: 66 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 41| A| length: 65 0xaf-0xaf.7 (1) + 0x00000b|04 82 4a d2 1d 56 fa 7a a5 ff 2c f2 99 c2 ca 1d|..J..V.z..,.....| data: raw bits 0xb0-0xf0.7 (65) + * |until 0xf0.7 (65) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x13b.7 (69) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 40 | .@ | length: 64 0xfa-0xfb.7 (2) + 0x00000f| cb 64 39 c5| .d9.| encrypted_data: raw bits 0xfc-0x13b.7 (64) + 0x000010|6c 74 7d 68 da cb b6 95 01 54 45 36 9b 3e 5a ea|lt}h.....TE6.>Z.| + * |until 0x13b.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 13 26 4e e0 6e 08 17 f2 37 99 3f f0| .&N.n...7.?.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x13c-0x180.7 (69) + 0x000013| 17 | . | type: "application_data" (23) (valid) 0x13c-0x13c.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x13d-0x13e.7 (2) + 0x000013| 00| .| length: 64 0x13f-0x140.7 (2) + 0x000014|40 |@ | + 0x000014| b5 5f a7 fb 19 25 ed c0 f3 e4 ac e4 98 5b 51| ._...%.......[Q| encrypted_data: raw bits 0x141-0x180.7 (64) + 0x000015|35 6d fb ca 0c a6 18 d5 cc b8 e3 26 d2 66 e3 52|5m.........&.f.R| + * |until 0x180.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x181-0x1b5.7 (53) + 0x000018| 15 | . | type: "alert" (21) (valid) 0x181-0x181.7 (1) + 0x000018| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x182-0x183.7 (2) + 0x000018| 00 30 | .0 | length: 48 0x184-0x185.7 (2) + 0x000018| 03 c0 b3 54 8f 71 68 2f 6b 2f| ...T.qh/k/| encrypted_data: raw bits 0x186-0x1b5.7 (48) + 0x000019|62 f4 24 5f 24 1b 51 8c 81 ab 4c cd 26 ee 0e cf|b.$_$.Q...L.&...| + * |until 0x1b5.7 (end) (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xe47-NA (0) + | | | ip: "127.0.0.1" 0xe47-NA (0) + | | | port: 4430 0xe47-NA (0) + | | | has_start: true 0xe47-NA (0) + | | | has_end: true 0xe47-NA (0) + | | | skipped_bytes: 0 0xe47-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x878.7 (2169) + | | | records[0:8]: 0x0-0x878.7 (2169) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| d2| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|ee 1c cb 85 e5 2b 70 a0 88 9c 3e 4d 16 1e 7f 1e|.....+p...>M....| + 0x000002|2f 65 bc e5 e2 f8 12 0a 71 41 87 |/e......qA. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 13 | .. | cipher_suit: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" (0xc013) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x20e.7 (456) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x20e.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 bf| ...| length: 447 0x4d-0x4f.7 (3) + 0x000005|00 01 bc |... | certificates_length: 444 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x20e.7 (444) + | | | [0]{}: certificate 0x53-0x20e.7 (444) + 0x000005| 00 01 b9 | ... | length: 441 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x20e.7 (441) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 b5 | ... | length: 437 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x20e.7 (437) + | | | [0]{}: object 0x5a-0x17b.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x5b-0x5d.7 (3) + | | | constructed[0:6]: 0x5e-0x17b.7 (286) + | | | [0]{}: object 0x5e-0x68.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5e-0x5e.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5e.2-0x5e.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5e.3-0x5e.7 (0.5) + 0x000005| 09| .| length: 9 0x5f-0x5f.7 (1) + 0x000006|00 f4 a7 2f d3 e8 fc 37 c4 |.../...7. | value: 17629111853558544324 0x60-0x68.7 (9) + | | | [1]{}: object 0x69-0x77.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x69-0x69.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x69.2-0x69.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x69.3-0x69.7 (0.5) + 0x000006| 0d | . | length: 13 0x6a-0x6a.7 (1) + | | | constructed[0:2]: 0x6b-0x77.7 (13) + | | | [0]{}: object 0x6b-0x75.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x6b-0x6b.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6b.2-0x6b.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6b.3-0x6b.7 (0.5) + 0x000006| 09 | . | length: 9 0x6c-0x6c.7 (1) + | | | value[0:7]: 0x6d-0x75.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6d-0x6d.7 (1) + 0x000006| 86 48| .H| [2]: 840 oid 0x6e-0x6f.7 (2) + 0x000007|86 f7 0d |... | [3]: 113549 oid 0x70-0x72.7 (3) + 0x000007| 01 | . | [4]: 1 oid 0x73-0x73.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x74-0x74.7 (1) + 0x000007| 05 | . | [6]: 5 oid 0x75-0x75.7 (1) + | | | [1]{}: object 0x76-0x77.7 (2) + 0x000007| 05 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 05 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 05 | . | tag: "null" (0x5) 0x76.3-0x76.7 (0.5) + 0x000007| 00 | . | length: "indefinite" (0) 0x77-0x77.7 (1) + | | | value: null 0x78-NA (0) + | | | [2]{}: object 0x78-0x98.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x78-0x78.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x78.2-0x78.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x78.3-0x78.7 (0.5) + 0x000007| 1f | . | length: 31 0x79-0x79.7 (1) + | | | constructed[0:1]: 0x7a-0x98.7 (31) + | | | [0]{}: object 0x7a-0x98.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x7a-0x7a.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x7a.2-0x7a.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x7a.3-0x7a.7 (0.5) + 0x000007| 1d | . | length: 29 0x7b-0x7b.7 (1) + | | | constructed[0:1]: 0x7c-0x98.7 (29) + | | | [0]{}: object 0x7c-0x98.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x7c.2-0x7c.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x7c.3-0x7c.7 (0.5) + 0x000007| 1b | . | length: 27 0x7d-0x7d.7 (1) + | | | constructed[0:2]: 0x7e-0x98.7 (27) + | | | [0]{}: object 0x7e-0x82.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x7e.3-0x7e.7 (0.5) + 0x000007| 03| .| length: 3 0x7f-0x7f.7 (1) + | | | value[0:4]: 0x80-0x82.7 (3) + 0x000008|55 |U | [0]: 2 oid 0x80-0x80.7 (1) + 0x000008|55 |U | [1]: 5 oid 0x80-0x80.7 (1) + 0x000008| 04 | . | [2]: 4 oid 0x81-0x81.7 (1) + 0x000008| 03 | . | [3]: 3 oid 0x82-0x82.7 (1) + | | | [1]{}: object 0x83-0x98.7 (22) + 0x000008| 0c | . | class: "universal" (0) 0x83-0x83.1 (0.2) + 0x000008| 0c | . | form: "primitive" (0) 0x83.2-0x83.2 (0.1) + 0x000008| 0c | . | tag: "utf8_string" (0xc) 0x83.3-0x83.7 (0.5) + 0x000008| 14 | . | length: 20 0x84-0x84.7 (1) + 0x000008| 54 65 73 74 20 43 65 72 74 69 66| Test Certif| value: "Test Certificate RSA" 0x85-0x98.7 (20) + 0x000009|69 63 61 74 65 20 52 53 41 |icate RSA | + | | | [3]{}: object 0x99-0xb8.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x99-0x99.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x99.2-0x99.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x99.3-0x99.7 (0.5) + 0x000009| 1e | . | length: 30 0x9a-0x9a.7 (1) + | | | constructed[0:2]: 0x9b-0xb8.7 (30) + | | | [0]{}: object 0x9b-0xa9.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x9b-0x9b.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x9b.2-0x9b.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x9b.3-0x9b.7 (0.5) + 0x000009| 0d | . | length: 13 0x9c-0x9c.7 (1) + 0x000009| 31 33 30| 130| value: "130915215110Z" 0x9d-0xa9.7 (13) + 0x00000a|39 31 35 32 31 35 31 31 30 5a |915215110Z | + | | | [1]{}: object 0xaa-0xb8.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xaa-0xaa.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xaa.2-0xaa.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xaa.3-0xaa.7 (0.5) + 0x00000a| 0d | . | length: 13 0xab-0xab.7 (1) + 0x00000a| 32 33 30 39| 2309| value: "230913215110Z" 0xac-0xb8.7 (13) + 0x00000b|31 33 32 31 35 31 31 30 5a |13215110Z | + | | | [4]{}: object 0xb9-0xd9.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb9-0xb9.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb9.2-0xb9.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb9.3-0xb9.7 (0.5) + 0x00000b| 1f | . | length: 31 0xba-0xba.7 (1) + | | | constructed[0:1]: 0xbb-0xd9.7 (31) + | | | [0]{}: object 0xbb-0xd9.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xbb-0xbb.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xbb.2-0xbb.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xbb.3-0xbb.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbc-0xbc.7 (1) + | | | constructed[0:1]: 0xbd-0xd9.7 (29) + | | | [0]{}: object 0xbd-0xd9.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 1b | . | length: 27 0xbe-0xbe.7 (1) + | | | constructed[0:2]: 0xbf-0xd9.7 (27) + | | | [0]{}: object 0xbf-0xc3.7 (5) + 0x00000b| 06| .| class: "universal" (0) 0xbf-0xbf.1 (0.2) + 0x00000b| 06| .| form: "primitive" (0) 0xbf.2-0xbf.2 (0.1) + 0x00000b| 06| .| tag: "object_identifier" (0x6) 0xbf.3-0xbf.7 (0.5) + 0x00000c|03 |. | length: 3 0xc0-0xc0.7 (1) + | | | value[0:4]: 0xc1-0xc3.7 (3) + 0x00000c| 55 | U | [0]: 2 oid 0xc1-0xc1.7 (1) + 0x00000c| 55 | U | [1]: 5 oid 0xc1-0xc1.7 (1) + 0x00000c| 04 | . | [2]: 4 oid 0xc2-0xc2.7 (1) + 0x00000c| 03 | . | [3]: 3 oid 0xc3-0xc3.7 (1) + | | | [1]{}: object 0xc4-0xd9.7 (22) + 0x00000c| 0c | . | class: "universal" (0) 0xc4-0xc4.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc4.2-0xc4.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc4.3-0xc4.7 (0.5) + 0x00000c| 14 | . | length: 20 0xc5-0xc5.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69| Test Certi| value: "Test Certificate RSA" 0xc6-0xd9.7 (20) + 0x00000d|66 69 63 61 74 65 20 52 53 41 |ficate RSA | + | | | [5]{}: object 0xda-0x17b.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xda-0xda.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xda.2-0xda.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xda.3-0xda.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xdb-0xdc.7 (2) + | | | constructed[0:2]: 0xdd-0x17b.7 (159) + | | | [0]{}: object 0xdd-0xeb.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 0d | . | length: 13 0xde-0xde.7 (1) + | | | constructed[0:2]: 0xdf-0xeb.7 (13) + | | | [0]{}: object 0xdf-0xe9.7 (11) + 0x00000d| 06| .| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00000d| 06| .| form: "primitive" (0) 0xdf.2-0xdf.2 (0.1) + 0x00000d| 06| .| tag: "object_identifier" (0x6) 0xdf.3-0xdf.7 (0.5) + 0x00000e|09 |. | length: 9 0xe0-0xe0.7 (1) + | | | value[0:7]: 0xe1-0xe9.7 (9) + 0x00000e| 2a | * | [0]: 1 oid 0xe1-0xe1.7 (1) + 0x00000e| 2a | * | [1]: 2 oid 0xe1-0xe1.7 (1) + 0x00000e| 86 48 | .H | [2]: 840 oid 0xe2-0xe3.7 (2) + 0x00000e| 86 f7 0d | ... | [3]: 113549 oid 0xe4-0xe6.7 (3) + 0x00000e| 01 | . | [4]: 1 oid 0xe7-0xe7.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe9-0xe9.7 (1) + | | | [1]{}: object 0xea-0xeb.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xea-0xea.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xea.2-0xea.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xea.3-0xea.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xeb-0xeb.7 (1) + | | | value: null 0xec-NA (0) + | | | [1]{}: object 0xec-0x17b.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xec-0xec.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xec.2-0xec.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xec.3-0xec.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xed-0xee.7 (2) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|30 81 89 02 81 81 00 ac 35 2a 93 7f c5 4f 18 98|0.......5*...O..| value: raw bits 0xf0-0x17b.7 (140) + * |until 0x17b.7 (140) | | + | | | [1]{}: object 0x17c-0x18a.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x17c-0x17c.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x17c.2-0x17c.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x17c.3-0x17c.7 (0.5) + 0x000017| 0d | . | length: 13 0x17d-0x17d.7 (1) + | | | constructed[0:2]: 0x17e-0x18a.7 (13) + | | | [0]{}: object 0x17e-0x188.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x17e.3-0x17e.7 (0.5) + 0x000017| 09| .| length: 9 0x17f-0x17f.7 (1) + | | | value[0:7]: 0x180-0x188.7 (9) + 0x000018|2a |* | [0]: 1 oid 0x180-0x180.7 (1) + 0x000018|2a |* | [1]: 2 oid 0x180-0x180.7 (1) + 0x000018| 86 48 | .H | [2]: 840 oid 0x181-0x182.7 (2) + 0x000018| 86 f7 0d | ... | [3]: 113549 oid 0x183-0x185.7 (3) + 0x000018| 01 | . | [4]: 1 oid 0x186-0x186.7 (1) + 0x000018| 01 | . | [5]: 1 oid 0x187-0x187.7 (1) + 0x000018| 05 | . | [6]: 5 oid 0x188-0x188.7 (1) + | | | [1]{}: object 0x189-0x18a.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x189-0x189.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x189.2-0x189.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x189.3-0x189.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x18a-0x18a.7 (1) + | | | value: null 0x18b-NA (0) + | | | [2]{}: object 0x18b-0x20e.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x18b-0x18b.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x18b.2-0x18b.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x18b.3-0x18b.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x18c-0x18d.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x18e-0x18e.7 (1) + 0x000018| 67| g| value: raw bits 0x18f-0x20e.7 (128) + 0x000019|43 4c a8 a4 3e eb 1b 32 28 70 8b db eb fe f1 b3|CL..>..2(p......| + * |until 0x20e.7 (128) | | + | | | [2]{}: record 0x20f-0x2e0.7 (210) + 0x000020| 16| .| type: "handshake" (22) (valid) 0x20f-0x20f.7 (1) + 0x000021|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x210-0x211.7 (2) + 0x000021| 00 cd | .. | length: 205 0x212-0x213.7 (2) + | | | message{}: 0x214-0x2e0.7 (205) + 0x000021| 0c | . | type: "server_key_exchange" (12) 0x214-0x214.7 (1) + 0x000021| 00 00 c9 | ... | length: 201 0x215-0x217.7 (3) + | | | curve_params{}: 0x218-NA (0) + 0x000021| 03 | . | curve_type: 3 0x218-0x218.7 (1) + 0x000021| 00 17 | .. | named_curve: 23 0x219-0x21a.7 (2) + | | | public{}: 0x21b-NA (0) + 0x000021| 41 | A | length: 65 0x21b-0x21b.7 (1) + 0x000021| 04 97 e0 a1| ....| data: raw bits 0x21c-0x25c.7 (65) + 0x000022|4e d7 18 a0 e8 17 bf e1 a0 c1 ad 25 65 fd 35 94|N..........%e.5.| + * |until 0x25c.7 (65) | | + | | | signature_algorithm{}: 0x25d-NA (0) + 0x000025| 06 | . | hash: "sha512" (6) 0x25d-0x25d.7 (1) + 0x000025| 01 | . | signature: "rsa" (1) 0x25e-0x25e.7 (1) + 0x000025| 00| .| length: 128 0x25f-0x260.7 (2) + 0x000026|80 |. | + 0x000026| 72 90 20 0c 08 ca 65 08 59 16 02 7f 9a 98 41| r. ...e.Y.....A| data: raw bits 0x261-0x2e0.7 (128) + 0x000027|53 db 1a 21 2e d8 f3 62 19 a5 34 b9 b4 72 a0 fb|S..!...b..4..r..| + * |until 0x2e0.7 (128) | | + | | | [3]{}: record 0x2e1-0x2e9.7 (9) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2e1-0x2e1.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2e2-0x2e3.7 (2) + 0x00002e| 00 04 | .. | length: 4 0x2e4-0x2e5.7 (2) + | | | message{}: 0x2e6-0x2e9.7 (4) + 0x00002e| 0e | . | type: "server_hello_done" (14) 0x2e6-0x2e6.7 (1) + 0x00002e| 00 00 00 | ... | length: 0 0x2e7-0x2e9.7 (3) + | | | data: raw bits 0x2ea-NA (0) + | | | [4]{}: record 0x2ea-0x398.7 (175) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2ea-0x2ea.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2eb-0x2ec.7 (2) + 0x00002e| 00 aa | .. | length: 170 0x2ed-0x2ee.7 (2) + | | | message{}: 0x2ef-0x398.7 (170) + 0x00002e| 04| .| type: "new_session_ticket" (4) 0x2ef-0x2ef.7 (1) + 0x00002f|00 00 a6 |... | length: 166 0x2f0-0x2f2.7 (3) + 0x00002f| 00 00 01 2c | ..., | lifetime_hint: 300 0x2f3-0x2f6.7 (4) + 0x00002f| 00 a0 | .. | ticket_length: 160 0x2f7-0x2f8.7 (2) + 0x00002f| c0 b4 67 52 a5 ca da| ..gR...| ticket: raw bits 0x2f9-0x398.7 (160) + 0x000030|99 7a 28 d7 eb e7 a1 7e 31 3a 66 5d ac b0 c6 46|.z(....~1:f]...F| + * |until 0x398.7 (160) | | + | | | [5]{}: record 0x399-0x39e.7 (6) + 0x000039| 14 | . | type: "change_cipher_spec" (20) (valid) 0x399-0x399.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x39a-0x39b.7 (2) + 0x000039| 00 01 | .. | length: 1 0x39c-0x39d.7 (2) + | | | message{}: 0x39e-0x39e.7 (1) + 0x000039| 01 | . | type: 1 0x39e-0x39e.7 (1) + | | | [6]{}: record 0x39f-0x3e3.7 (69) + 0x000039| 16| .| type: "handshake" (22) (valid) 0x39f-0x39f.7 (1) + 0x00003a|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x3a0-0x3a1.7 (2) + 0x00003a| 00 40 | .@ | length: 64 0x3a2-0x3a3.7 (2) + 0x00003a| 7e a0 bc 6e 57 39 87 95 a5 c4 e0 84| ~..nW9......| encrypted_data: raw bits 0x3a4-0x3e3.7 (64) + 0x00003b|e1 9e 89 2f 39 5b 7b c3 c2 ed bf 5c a5 7d c3 06|.../9[{....\.}..| + * |until 0x3e3.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| e4 e0 1a be 35 c7 4e b3 23 e6 1e 9b| ....5.N.#...| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x3e4-0x878.7 (1173) + 0x00003e| 17 | . | type: "application_data" (23) (valid) 0x3e4-0x3e4.7 (1) + 0x00003e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3e5-0x3e6.7 (2) + 0x00003e| 04 90 | .. | length: 1168 0x3e7-0x3e8.7 (2) + 0x00003e| d4 9a b8 6d 0e 14 64| ...m..d| encrypted_data: raw bits 0x3e9-0x878.7 (1168) + 0x00003f|87 7b 8e 73 ea f0 b4 2f b4 9b 94 bf 3a 20 b1 6b|.{.s.../....: .k| + * |until 0x878.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1135.7 (4406) + * |until 0x1135.7 (end) (4406) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1135.7 (4406) + * |until 0x1135.7 (end) (4406) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..a1fe7bbd4a4087563b036bfb047cbc5399a38845 GIT binary patch literal 3735 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest new file mode 100644 index 00000000..2dae9096 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest @@ -0,0 +1,527 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xe97-NA (0) + | | | client{}: 0xe97-NA (0) + | | | ip: "127.0.0.1" 0xe97-NA (0) + | | | port: 38997 0xe97-NA (0) + | | | has_start: true 0xe97-NA (0) + | | | has_end: false 0xe97-NA (0) + | | | skipped_bytes: 0 0xe97-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1e5.7 (486) + | | | records[0:6]: 0x0-0x1e5.7 (486) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| ab| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|28 ef 3f fe 17 f2 cc 7d 9c 0f 59 26 30 7e 69 a8|(.?....}..Y&0~i.| + 0x000002|c5 95 a7 fb 28 01 11 7d 44 05 1b |....(..}D.. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 27| .'| [0]: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" (0xc027) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0xf0.7 (75) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 46 | .F | length: 70 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0xf0.7 (70) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 42 | ..B | length: 66 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 41| A| length: 65 0xaf-0xaf.7 (1) + 0x00000b|04 4f a8 d2 c9 25 31 3d 51 44 db cf 9e ce 93 77|.O...%1=QD.....w| data: raw bits 0xb0-0xf0.7 (65) + * |until 0xf0.7 (65) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x14b.7 (85) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 50 | .P | length: 80 0xfa-0xfb.7 (2) + 0x00000f| ab 79 5c c7| .y\.| encrypted_data: raw bits 0xfc-0x14b.7 (80) + 0x000010|ff f0 ce 75 3e 9b e9 4b 58 c9 f5 70 9f b6 90 d7|...u>..KX..p....| + * |until 0x14b.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| c2 eb b6 b5 ee de 38 cd 63 d9 fb 88| ......8.c...| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x14c-0x1a0.7 (85) + 0x000014| 17 | . | type: "application_data" (23) (valid) 0x14c-0x14c.7 (1) + 0x000014| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x14d-0x14e.7 (2) + 0x000014| 00| .| length: 80 0x14f-0x150.7 (2) + 0x000015|50 |P | + 0x000015| 46 31 b8 77 2c 74 1d 72 33 e5 66 b7 b7 1b 7a| F1.w,t.r3.f...z| encrypted_data: raw bits 0x151-0x1a0.7 (80) + 0x000016|1c e1 0b 3a b5 64 82 2e 2e a0 f5 39 51 94 d6 50|...:.d.....9Q..P| + * |until 0x1a0.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x1a1-0x1e5.7 (69) + 0x00001a| 15 | . | type: "alert" (21) (valid) 0x1a1-0x1a1.7 (1) + 0x00001a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1a2-0x1a3.7 (2) + 0x00001a| 00 40 | .@ | length: 64 0x1a4-0x1a5.7 (2) + 0x00001a| b0 44 9e a1 16 cf 28 a8 aa d8| .D....(...| encrypted_data: raw bits 0x1a6-0x1e5.7 (64) + 0x00001b|ef 2e 61 bc 88 a9 d1 b6 9e 2d 0b 4a 8f 4c b2 b8|..a......-.J.L..| + * |until 0x1e5.7 (end) (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xe97-NA (0) + | | | ip: "127.0.0.1" 0xe97-NA (0) + | | | port: 4430 0xe97-NA (0) + | | | has_start: true 0xe97-NA (0) + | | | has_end: true 0xe97-NA (0) + | | | skipped_bytes: 0 0xe97-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x898.7 (2201) + | | | records[0:8]: 0x0-0x898.7 (2201) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 83| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|b3 bd 1f 4a 0b 81 82 b7 2c b7 76 ca b0 90 8b 11|...J....,.v.....| + 0x000002|66 7b ff e6 60 18 da e5 95 d2 53 |f{..`.....S | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 27 | .' | cipher_suit: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" (0xc027) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x20e.7 (456) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x20e.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 bf| ...| length: 447 0x4d-0x4f.7 (3) + 0x000005|00 01 bc |... | certificates_length: 444 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x20e.7 (444) + | | | [0]{}: certificate 0x53-0x20e.7 (444) + 0x000005| 00 01 b9 | ... | length: 441 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x20e.7 (441) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 b5 | ... | length: 437 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x20e.7 (437) + | | | [0]{}: object 0x5a-0x17b.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x5b-0x5d.7 (3) + | | | constructed[0:6]: 0x5e-0x17b.7 (286) + | | | [0]{}: object 0x5e-0x68.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5e-0x5e.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5e.2-0x5e.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5e.3-0x5e.7 (0.5) + 0x000005| 09| .| length: 9 0x5f-0x5f.7 (1) + 0x000006|00 f4 a7 2f d3 e8 fc 37 c4 |.../...7. | value: 17629111853558544324 0x60-0x68.7 (9) + | | | [1]{}: object 0x69-0x77.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x69-0x69.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x69.2-0x69.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x69.3-0x69.7 (0.5) + 0x000006| 0d | . | length: 13 0x6a-0x6a.7 (1) + | | | constructed[0:2]: 0x6b-0x77.7 (13) + | | | [0]{}: object 0x6b-0x75.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x6b-0x6b.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6b.2-0x6b.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6b.3-0x6b.7 (0.5) + 0x000006| 09 | . | length: 9 0x6c-0x6c.7 (1) + | | | value[0:7]: 0x6d-0x75.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6d-0x6d.7 (1) + 0x000006| 86 48| .H| [2]: 840 oid 0x6e-0x6f.7 (2) + 0x000007|86 f7 0d |... | [3]: 113549 oid 0x70-0x72.7 (3) + 0x000007| 01 | . | [4]: 1 oid 0x73-0x73.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x74-0x74.7 (1) + 0x000007| 05 | . | [6]: 5 oid 0x75-0x75.7 (1) + | | | [1]{}: object 0x76-0x77.7 (2) + 0x000007| 05 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 05 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 05 | . | tag: "null" (0x5) 0x76.3-0x76.7 (0.5) + 0x000007| 00 | . | length: "indefinite" (0) 0x77-0x77.7 (1) + | | | value: null 0x78-NA (0) + | | | [2]{}: object 0x78-0x98.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x78-0x78.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x78.2-0x78.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x78.3-0x78.7 (0.5) + 0x000007| 1f | . | length: 31 0x79-0x79.7 (1) + | | | constructed[0:1]: 0x7a-0x98.7 (31) + | | | [0]{}: object 0x7a-0x98.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x7a-0x7a.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x7a.2-0x7a.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x7a.3-0x7a.7 (0.5) + 0x000007| 1d | . | length: 29 0x7b-0x7b.7 (1) + | | | constructed[0:1]: 0x7c-0x98.7 (29) + | | | [0]{}: object 0x7c-0x98.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x7c.2-0x7c.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x7c.3-0x7c.7 (0.5) + 0x000007| 1b | . | length: 27 0x7d-0x7d.7 (1) + | | | constructed[0:2]: 0x7e-0x98.7 (27) + | | | [0]{}: object 0x7e-0x82.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x7e.3-0x7e.7 (0.5) + 0x000007| 03| .| length: 3 0x7f-0x7f.7 (1) + | | | value[0:4]: 0x80-0x82.7 (3) + 0x000008|55 |U | [0]: 2 oid 0x80-0x80.7 (1) + 0x000008|55 |U | [1]: 5 oid 0x80-0x80.7 (1) + 0x000008| 04 | . | [2]: 4 oid 0x81-0x81.7 (1) + 0x000008| 03 | . | [3]: 3 oid 0x82-0x82.7 (1) + | | | [1]{}: object 0x83-0x98.7 (22) + 0x000008| 0c | . | class: "universal" (0) 0x83-0x83.1 (0.2) + 0x000008| 0c | . | form: "primitive" (0) 0x83.2-0x83.2 (0.1) + 0x000008| 0c | . | tag: "utf8_string" (0xc) 0x83.3-0x83.7 (0.5) + 0x000008| 14 | . | length: 20 0x84-0x84.7 (1) + 0x000008| 54 65 73 74 20 43 65 72 74 69 66| Test Certif| value: "Test Certificate RSA" 0x85-0x98.7 (20) + 0x000009|69 63 61 74 65 20 52 53 41 |icate RSA | + | | | [3]{}: object 0x99-0xb8.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x99-0x99.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x99.2-0x99.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x99.3-0x99.7 (0.5) + 0x000009| 1e | . | length: 30 0x9a-0x9a.7 (1) + | | | constructed[0:2]: 0x9b-0xb8.7 (30) + | | | [0]{}: object 0x9b-0xa9.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x9b-0x9b.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x9b.2-0x9b.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x9b.3-0x9b.7 (0.5) + 0x000009| 0d | . | length: 13 0x9c-0x9c.7 (1) + 0x000009| 31 33 30| 130| value: "130915215110Z" 0x9d-0xa9.7 (13) + 0x00000a|39 31 35 32 31 35 31 31 30 5a |915215110Z | + | | | [1]{}: object 0xaa-0xb8.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xaa-0xaa.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xaa.2-0xaa.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xaa.3-0xaa.7 (0.5) + 0x00000a| 0d | . | length: 13 0xab-0xab.7 (1) + 0x00000a| 32 33 30 39| 2309| value: "230913215110Z" 0xac-0xb8.7 (13) + 0x00000b|31 33 32 31 35 31 31 30 5a |13215110Z | + | | | [4]{}: object 0xb9-0xd9.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb9-0xb9.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb9.2-0xb9.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb9.3-0xb9.7 (0.5) + 0x00000b| 1f | . | length: 31 0xba-0xba.7 (1) + | | | constructed[0:1]: 0xbb-0xd9.7 (31) + | | | [0]{}: object 0xbb-0xd9.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xbb-0xbb.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xbb.2-0xbb.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xbb.3-0xbb.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbc-0xbc.7 (1) + | | | constructed[0:1]: 0xbd-0xd9.7 (29) + | | | [0]{}: object 0xbd-0xd9.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 1b | . | length: 27 0xbe-0xbe.7 (1) + | | | constructed[0:2]: 0xbf-0xd9.7 (27) + | | | [0]{}: object 0xbf-0xc3.7 (5) + 0x00000b| 06| .| class: "universal" (0) 0xbf-0xbf.1 (0.2) + 0x00000b| 06| .| form: "primitive" (0) 0xbf.2-0xbf.2 (0.1) + 0x00000b| 06| .| tag: "object_identifier" (0x6) 0xbf.3-0xbf.7 (0.5) + 0x00000c|03 |. | length: 3 0xc0-0xc0.7 (1) + | | | value[0:4]: 0xc1-0xc3.7 (3) + 0x00000c| 55 | U | [0]: 2 oid 0xc1-0xc1.7 (1) + 0x00000c| 55 | U | [1]: 5 oid 0xc1-0xc1.7 (1) + 0x00000c| 04 | . | [2]: 4 oid 0xc2-0xc2.7 (1) + 0x00000c| 03 | . | [3]: 3 oid 0xc3-0xc3.7 (1) + | | | [1]{}: object 0xc4-0xd9.7 (22) + 0x00000c| 0c | . | class: "universal" (0) 0xc4-0xc4.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc4.2-0xc4.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc4.3-0xc4.7 (0.5) + 0x00000c| 14 | . | length: 20 0xc5-0xc5.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69| Test Certi| value: "Test Certificate RSA" 0xc6-0xd9.7 (20) + 0x00000d|66 69 63 61 74 65 20 52 53 41 |ficate RSA | + | | | [5]{}: object 0xda-0x17b.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xda-0xda.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xda.2-0xda.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xda.3-0xda.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xdb-0xdc.7 (2) + | | | constructed[0:2]: 0xdd-0x17b.7 (159) + | | | [0]{}: object 0xdd-0xeb.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 0d | . | length: 13 0xde-0xde.7 (1) + | | | constructed[0:2]: 0xdf-0xeb.7 (13) + | | | [0]{}: object 0xdf-0xe9.7 (11) + 0x00000d| 06| .| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00000d| 06| .| form: "primitive" (0) 0xdf.2-0xdf.2 (0.1) + 0x00000d| 06| .| tag: "object_identifier" (0x6) 0xdf.3-0xdf.7 (0.5) + 0x00000e|09 |. | length: 9 0xe0-0xe0.7 (1) + | | | value[0:7]: 0xe1-0xe9.7 (9) + 0x00000e| 2a | * | [0]: 1 oid 0xe1-0xe1.7 (1) + 0x00000e| 2a | * | [1]: 2 oid 0xe1-0xe1.7 (1) + 0x00000e| 86 48 | .H | [2]: 840 oid 0xe2-0xe3.7 (2) + 0x00000e| 86 f7 0d | ... | [3]: 113549 oid 0xe4-0xe6.7 (3) + 0x00000e| 01 | . | [4]: 1 oid 0xe7-0xe7.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe9-0xe9.7 (1) + | | | [1]{}: object 0xea-0xeb.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xea-0xea.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xea.2-0xea.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xea.3-0xea.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xeb-0xeb.7 (1) + | | | value: null 0xec-NA (0) + | | | [1]{}: object 0xec-0x17b.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xec-0xec.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xec.2-0xec.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xec.3-0xec.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xed-0xee.7 (2) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|30 81 89 02 81 81 00 ac 35 2a 93 7f c5 4f 18 98|0.......5*...O..| value: raw bits 0xf0-0x17b.7 (140) + * |until 0x17b.7 (140) | | + | | | [1]{}: object 0x17c-0x18a.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x17c-0x17c.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x17c.2-0x17c.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x17c.3-0x17c.7 (0.5) + 0x000017| 0d | . | length: 13 0x17d-0x17d.7 (1) + | | | constructed[0:2]: 0x17e-0x18a.7 (13) + | | | [0]{}: object 0x17e-0x188.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x17e.3-0x17e.7 (0.5) + 0x000017| 09| .| length: 9 0x17f-0x17f.7 (1) + | | | value[0:7]: 0x180-0x188.7 (9) + 0x000018|2a |* | [0]: 1 oid 0x180-0x180.7 (1) + 0x000018|2a |* | [1]: 2 oid 0x180-0x180.7 (1) + 0x000018| 86 48 | .H | [2]: 840 oid 0x181-0x182.7 (2) + 0x000018| 86 f7 0d | ... | [3]: 113549 oid 0x183-0x185.7 (3) + 0x000018| 01 | . | [4]: 1 oid 0x186-0x186.7 (1) + 0x000018| 01 | . | [5]: 1 oid 0x187-0x187.7 (1) + 0x000018| 05 | . | [6]: 5 oid 0x188-0x188.7 (1) + | | | [1]{}: object 0x189-0x18a.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x189-0x189.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x189.2-0x189.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x189.3-0x189.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x18a-0x18a.7 (1) + | | | value: null 0x18b-NA (0) + | | | [2]{}: object 0x18b-0x20e.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x18b-0x18b.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x18b.2-0x18b.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x18b.3-0x18b.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x18c-0x18d.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x18e-0x18e.7 (1) + 0x000018| 67| g| value: raw bits 0x18f-0x20e.7 (128) + 0x000019|43 4c a8 a4 3e eb 1b 32 28 70 8b db eb fe f1 b3|CL..>..2(p......| + * |until 0x20e.7 (128) | | + | | | [2]{}: record 0x20f-0x2e0.7 (210) + 0x000020| 16| .| type: "handshake" (22) (valid) 0x20f-0x20f.7 (1) + 0x000021|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x210-0x211.7 (2) + 0x000021| 00 cd | .. | length: 205 0x212-0x213.7 (2) + | | | message{}: 0x214-0x2e0.7 (205) + 0x000021| 0c | . | type: "server_key_exchange" (12) 0x214-0x214.7 (1) + 0x000021| 00 00 c9 | ... | length: 201 0x215-0x217.7 (3) + | | | curve_params{}: 0x218-NA (0) + 0x000021| 03 | . | curve_type: 3 0x218-0x218.7 (1) + 0x000021| 00 17 | .. | named_curve: 23 0x219-0x21a.7 (2) + | | | public{}: 0x21b-NA (0) + 0x000021| 41 | A | length: 65 0x21b-0x21b.7 (1) + 0x000021| 04 97 e0 a1| ....| data: raw bits 0x21c-0x25c.7 (65) + 0x000022|4e d7 18 a0 e8 17 bf e1 a0 c1 ad 25 65 fd 35 94|N..........%e.5.| + * |until 0x25c.7 (65) | | + | | | signature_algorithm{}: 0x25d-NA (0) + 0x000025| 06 | . | hash: "sha512" (6) 0x25d-0x25d.7 (1) + 0x000025| 01 | . | signature: "rsa" (1) 0x25e-0x25e.7 (1) + 0x000025| 00| .| length: 128 0x25f-0x260.7 (2) + 0x000026|80 |. | + 0x000026| 2b 07 d8 bc ec f6 52 00 e5 92 6e 79 29 4d 50| +.....R...ny)MP| data: raw bits 0x261-0x2e0.7 (128) + 0x000027|9b 36 9d d9 21 78 a1 5c c7 0f 61 80 f8 70 74 91|.6..!x.\..a..pt.| + * |until 0x2e0.7 (128) | | + | | | [3]{}: record 0x2e1-0x2e9.7 (9) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2e1-0x2e1.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2e2-0x2e3.7 (2) + 0x00002e| 00 04 | .. | length: 4 0x2e4-0x2e5.7 (2) + | | | message{}: 0x2e6-0x2e9.7 (4) + 0x00002e| 0e | . | type: "server_hello_done" (14) 0x2e6-0x2e6.7 (1) + 0x00002e| 00 00 00 | ... | length: 0 0x2e7-0x2e9.7 (3) + | | | data: raw bits 0x2ea-NA (0) + | | | [4]{}: record 0x2ea-0x398.7 (175) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2ea-0x2ea.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2eb-0x2ec.7 (2) + 0x00002e| 00 aa | .. | length: 170 0x2ed-0x2ee.7 (2) + | | | message{}: 0x2ef-0x398.7 (170) + 0x00002e| 04| .| type: "new_session_ticket" (4) 0x2ef-0x2ef.7 (1) + 0x00002f|00 00 a6 |... | length: 166 0x2f0-0x2f2.7 (3) + 0x00002f| 00 00 01 2c | ..., | lifetime_hint: 300 0x2f3-0x2f6.7 (4) + 0x00002f| 00 a0 | .. | ticket_length: 160 0x2f7-0x2f8.7 (2) + 0x00002f| c0 b4 67 52 a5 ca da| ..gR...| ticket: raw bits 0x2f9-0x398.7 (160) + 0x000030|99 7a 28 d7 eb e7 a1 7e 31 5b 69 07 9b 46 51 34|.z(....~1[i..FQ4| + * |until 0x398.7 (160) | | + | | | [5]{}: record 0x399-0x39e.7 (6) + 0x000039| 14 | . | type: "change_cipher_spec" (20) (valid) 0x399-0x399.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x39a-0x39b.7 (2) + 0x000039| 00 01 | .. | length: 1 0x39c-0x39d.7 (2) + | | | message{}: 0x39e-0x39e.7 (1) + 0x000039| 01 | . | type: 1 0x39e-0x39e.7 (1) + | | | [6]{}: record 0x39f-0x3f3.7 (85) + 0x000039| 16| .| type: "handshake" (22) (valid) 0x39f-0x39f.7 (1) + 0x00003a|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x3a0-0x3a1.7 (2) + 0x00003a| 00 50 | .P | length: 80 0x3a2-0x3a3.7 (2) + 0x00003a| 2f c1 fb d7 75 1e 61 b7 fc 0d d4 81| /...u.a.....| encrypted_data: raw bits 0x3a4-0x3f3.7 (80) + 0x00003b|b1 24 af 8f 36 30 50 3f ef 57 bf 4d 23 ac 29 49|.$..60P?.W.M#.)I| + * |until 0x3f3.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 82 06 33 30 ec 9a bf 5b 59 31 1c 18| ..30...[Y1..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x3f4-0x898.7 (1189) + 0x00003f| 17 | . | type: "application_data" (23) (valid) 0x3f4-0x3f4.7 (1) + 0x00003f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3f5-0x3f6.7 (2) + 0x00003f| 04 a0 | .. | length: 1184 0x3f7-0x3f8.7 (2) + 0x00003f| d9 18 d1 7b 38 11 2d| ...{8.-| encrypted_data: raw bits 0x3f9-0x898.7 (1184) + 0x000040|90 23 77 57 b9 76 00 ab 13 f5 2c a7 b4 cb 52 71|.#wW.v....,...Rq| + * |until 0x898.7 (end) (1184) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x113e.7 (4415) + * |until 0x113e.7 (end) (4415) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x113e.7 (4415) + * |until 0x113e.7 (end) (4415) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..f0a622e6fa13d16654160eab4bb5faaad415d65f GIT binary patch literal 3572 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 | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| fa| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|d4 39 3a 5b 4b 94 e0 fa 5b 02 8a 5c 50 ab 81 9b|.9:[K...[..\P...| + 0x000002|f1 d8 61 58 62 b4 60 4d 5d 06 f1 |..aXb.`M].. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 2f | ./ | cipher_suit: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" (0xc02f) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x20e.7 (456) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x20e.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 bf| ...| length: 447 0x4d-0x4f.7 (3) + 0x000005|00 01 bc |... | certificates_length: 444 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x20e.7 (444) + | | | [0]{}: certificate 0x53-0x20e.7 (444) + 0x000005| 00 01 b9 | ... | length: 441 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x20e.7 (441) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 b5 | ... | length: 437 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x20e.7 (437) + | | | [0]{}: object 0x5a-0x17b.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x5b-0x5d.7 (3) + | | | constructed[0:6]: 0x5e-0x17b.7 (286) + | | | [0]{}: object 0x5e-0x68.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5e-0x5e.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5e.2-0x5e.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5e.3-0x5e.7 (0.5) + 0x000005| 09| .| length: 9 0x5f-0x5f.7 (1) + 0x000006|00 f4 a7 2f d3 e8 fc 37 c4 |.../...7. | value: 17629111853558544324 0x60-0x68.7 (9) + | | | [1]{}: object 0x69-0x77.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x69-0x69.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x69.2-0x69.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x69.3-0x69.7 (0.5) + 0x000006| 0d | . | length: 13 0x6a-0x6a.7 (1) + | | | constructed[0:2]: 0x6b-0x77.7 (13) + | | | [0]{}: object 0x6b-0x75.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x6b-0x6b.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6b.2-0x6b.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6b.3-0x6b.7 (0.5) + 0x000006| 09 | . | length: 9 0x6c-0x6c.7 (1) + | | | value[0:7]: 0x6d-0x75.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6d-0x6d.7 (1) + 0x000006| 86 48| .H| [2]: 840 oid 0x6e-0x6f.7 (2) + 0x000007|86 f7 0d |... | [3]: 113549 oid 0x70-0x72.7 (3) + 0x000007| 01 | . | [4]: 1 oid 0x73-0x73.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x74-0x74.7 (1) + 0x000007| 05 | . | [6]: 5 oid 0x75-0x75.7 (1) + | | | [1]{}: object 0x76-0x77.7 (2) + 0x000007| 05 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 05 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 05 | . | tag: "null" (0x5) 0x76.3-0x76.7 (0.5) + 0x000007| 00 | . | length: "indefinite" (0) 0x77-0x77.7 (1) + | | | value: null 0x78-NA (0) + | | | [2]{}: object 0x78-0x98.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x78-0x78.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x78.2-0x78.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x78.3-0x78.7 (0.5) + 0x000007| 1f | . | length: 31 0x79-0x79.7 (1) + | | | constructed[0:1]: 0x7a-0x98.7 (31) + | | | [0]{}: object 0x7a-0x98.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x7a-0x7a.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x7a.2-0x7a.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x7a.3-0x7a.7 (0.5) + 0x000007| 1d | . | length: 29 0x7b-0x7b.7 (1) + | | | constructed[0:1]: 0x7c-0x98.7 (29) + | | | [0]{}: object 0x7c-0x98.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x7c.2-0x7c.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x7c.3-0x7c.7 (0.5) + 0x000007| 1b | . | length: 27 0x7d-0x7d.7 (1) + | | | constructed[0:2]: 0x7e-0x98.7 (27) + | | | [0]{}: object 0x7e-0x82.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x7e.3-0x7e.7 (0.5) + 0x000007| 03| .| length: 3 0x7f-0x7f.7 (1) + | | | value[0:4]: 0x80-0x82.7 (3) + 0x000008|55 |U | [0]: 2 oid 0x80-0x80.7 (1) + 0x000008|55 |U | [1]: 5 oid 0x80-0x80.7 (1) + 0x000008| 04 | . | [2]: 4 oid 0x81-0x81.7 (1) + 0x000008| 03 | . | [3]: 3 oid 0x82-0x82.7 (1) + | | | [1]{}: object 0x83-0x98.7 (22) + 0x000008| 0c | . | class: "universal" (0) 0x83-0x83.1 (0.2) + 0x000008| 0c | . | form: "primitive" (0) 0x83.2-0x83.2 (0.1) + 0x000008| 0c | . | tag: "utf8_string" (0xc) 0x83.3-0x83.7 (0.5) + 0x000008| 14 | . | length: 20 0x84-0x84.7 (1) + 0x000008| 54 65 73 74 20 43 65 72 74 69 66| Test Certif| value: "Test Certificate RSA" 0x85-0x98.7 (20) + 0x000009|69 63 61 74 65 20 52 53 41 |icate RSA | + | | | [3]{}: object 0x99-0xb8.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x99-0x99.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x99.2-0x99.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x99.3-0x99.7 (0.5) + 0x000009| 1e | . | length: 30 0x9a-0x9a.7 (1) + | | | constructed[0:2]: 0x9b-0xb8.7 (30) + | | | [0]{}: object 0x9b-0xa9.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x9b-0x9b.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x9b.2-0x9b.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x9b.3-0x9b.7 (0.5) + 0x000009| 0d | . | length: 13 0x9c-0x9c.7 (1) + 0x000009| 31 33 30| 130| value: "130915215110Z" 0x9d-0xa9.7 (13) + 0x00000a|39 31 35 32 31 35 31 31 30 5a |915215110Z | + | | | [1]{}: object 0xaa-0xb8.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xaa-0xaa.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xaa.2-0xaa.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xaa.3-0xaa.7 (0.5) + 0x00000a| 0d | . | length: 13 0xab-0xab.7 (1) + 0x00000a| 32 33 30 39| 2309| value: "230913215110Z" 0xac-0xb8.7 (13) + 0x00000b|31 33 32 31 35 31 31 30 5a |13215110Z | + | | | [4]{}: object 0xb9-0xd9.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb9-0xb9.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb9.2-0xb9.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb9.3-0xb9.7 (0.5) + 0x00000b| 1f | . | length: 31 0xba-0xba.7 (1) + | | | constructed[0:1]: 0xbb-0xd9.7 (31) + | | | [0]{}: object 0xbb-0xd9.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xbb-0xbb.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xbb.2-0xbb.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xbb.3-0xbb.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbc-0xbc.7 (1) + | | | constructed[0:1]: 0xbd-0xd9.7 (29) + | | | [0]{}: object 0xbd-0xd9.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 1b | . | length: 27 0xbe-0xbe.7 (1) + | | | constructed[0:2]: 0xbf-0xd9.7 (27) + | | | [0]{}: object 0xbf-0xc3.7 (5) + 0x00000b| 06| .| class: "universal" (0) 0xbf-0xbf.1 (0.2) + 0x00000b| 06| .| form: "primitive" (0) 0xbf.2-0xbf.2 (0.1) + 0x00000b| 06| .| tag: "object_identifier" (0x6) 0xbf.3-0xbf.7 (0.5) + 0x00000c|03 |. | length: 3 0xc0-0xc0.7 (1) + | | | value[0:4]: 0xc1-0xc3.7 (3) + 0x00000c| 55 | U | [0]: 2 oid 0xc1-0xc1.7 (1) + 0x00000c| 55 | U | [1]: 5 oid 0xc1-0xc1.7 (1) + 0x00000c| 04 | . | [2]: 4 oid 0xc2-0xc2.7 (1) + 0x00000c| 03 | . | [3]: 3 oid 0xc3-0xc3.7 (1) + | | | [1]{}: object 0xc4-0xd9.7 (22) + 0x00000c| 0c | . | class: "universal" (0) 0xc4-0xc4.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc4.2-0xc4.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc4.3-0xc4.7 (0.5) + 0x00000c| 14 | . | length: 20 0xc5-0xc5.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69| Test Certi| value: "Test Certificate RSA" 0xc6-0xd9.7 (20) + 0x00000d|66 69 63 61 74 65 20 52 53 41 |ficate RSA | + | | | [5]{}: object 0xda-0x17b.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xda-0xda.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xda.2-0xda.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xda.3-0xda.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xdb-0xdc.7 (2) + | | | constructed[0:2]: 0xdd-0x17b.7 (159) + | | | [0]{}: object 0xdd-0xeb.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 0d | . | length: 13 0xde-0xde.7 (1) + | | | constructed[0:2]: 0xdf-0xeb.7 (13) + | | | [0]{}: object 0xdf-0xe9.7 (11) + 0x00000d| 06| .| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00000d| 06| .| form: "primitive" (0) 0xdf.2-0xdf.2 (0.1) + 0x00000d| 06| .| tag: "object_identifier" (0x6) 0xdf.3-0xdf.7 (0.5) + 0x00000e|09 |. | length: 9 0xe0-0xe0.7 (1) + | | | value[0:7]: 0xe1-0xe9.7 (9) + 0x00000e| 2a | * | [0]: 1 oid 0xe1-0xe1.7 (1) + 0x00000e| 2a | * | [1]: 2 oid 0xe1-0xe1.7 (1) + 0x00000e| 86 48 | .H | [2]: 840 oid 0xe2-0xe3.7 (2) + 0x00000e| 86 f7 0d | ... | [3]: 113549 oid 0xe4-0xe6.7 (3) + 0x00000e| 01 | . | [4]: 1 oid 0xe7-0xe7.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe9-0xe9.7 (1) + | | | [1]{}: object 0xea-0xeb.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xea-0xea.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xea.2-0xea.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xea.3-0xea.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xeb-0xeb.7 (1) + | | | value: null 0xec-NA (0) + | | | [1]{}: object 0xec-0x17b.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xec-0xec.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xec.2-0xec.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xec.3-0xec.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xed-0xee.7 (2) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|30 81 89 02 81 81 00 ac 35 2a 93 7f c5 4f 18 98|0.......5*...O..| value: raw bits 0xf0-0x17b.7 (140) + * |until 0x17b.7 (140) | | + | | | [1]{}: object 0x17c-0x18a.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x17c-0x17c.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x17c.2-0x17c.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x17c.3-0x17c.7 (0.5) + 0x000017| 0d | . | length: 13 0x17d-0x17d.7 (1) + | | | constructed[0:2]: 0x17e-0x18a.7 (13) + | | | [0]{}: object 0x17e-0x188.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x17e.3-0x17e.7 (0.5) + 0x000017| 09| .| length: 9 0x17f-0x17f.7 (1) + | | | value[0:7]: 0x180-0x188.7 (9) + 0x000018|2a |* | [0]: 1 oid 0x180-0x180.7 (1) + 0x000018|2a |* | [1]: 2 oid 0x180-0x180.7 (1) + 0x000018| 86 48 | .H | [2]: 840 oid 0x181-0x182.7 (2) + 0x000018| 86 f7 0d | ... | [3]: 113549 oid 0x183-0x185.7 (3) + 0x000018| 01 | . | [4]: 1 oid 0x186-0x186.7 (1) + 0x000018| 01 | . | [5]: 1 oid 0x187-0x187.7 (1) + 0x000018| 05 | . | [6]: 5 oid 0x188-0x188.7 (1) + | | | [1]{}: object 0x189-0x18a.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x189-0x189.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x189.2-0x189.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x189.3-0x189.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x18a-0x18a.7 (1) + | | | value: null 0x18b-NA (0) + | | | [2]{}: object 0x18b-0x20e.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x18b-0x18b.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x18b.2-0x18b.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x18b.3-0x18b.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x18c-0x18d.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x18e-0x18e.7 (1) + 0x000018| 67| g| value: raw bits 0x18f-0x20e.7 (128) + 0x000019|43 4c a8 a4 3e eb 1b 32 28 70 8b db eb fe f1 b3|CL..>..2(p......| + * |until 0x20e.7 (128) | | + | | | [2]{}: record 0x20f-0x2e0.7 (210) + 0x000020| 16| .| type: "handshake" (22) (valid) 0x20f-0x20f.7 (1) + 0x000021|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x210-0x211.7 (2) + 0x000021| 00 cd | .. | length: 205 0x212-0x213.7 (2) + | | | message{}: 0x214-0x2e0.7 (205) + 0x000021| 0c | . | type: "server_key_exchange" (12) 0x214-0x214.7 (1) + 0x000021| 00 00 c9 | ... | length: 201 0x215-0x217.7 (3) + | | | curve_params{}: 0x218-NA (0) + 0x000021| 03 | . | curve_type: 3 0x218-0x218.7 (1) + 0x000021| 00 17 | .. | named_curve: 23 0x219-0x21a.7 (2) + | | | public{}: 0x21b-NA (0) + 0x000021| 41 | A | length: 65 0x21b-0x21b.7 (1) + 0x000021| 04 97 e0 a1| ....| data: raw bits 0x21c-0x25c.7 (65) + 0x000022|4e d7 18 a0 e8 17 bf e1 a0 c1 ad 25 65 fd 35 94|N..........%e.5.| + * |until 0x25c.7 (65) | | + | | | signature_algorithm{}: 0x25d-NA (0) + 0x000025| 06 | . | hash: "sha512" (6) 0x25d-0x25d.7 (1) + 0x000025| 01 | . | signature: "rsa" (1) 0x25e-0x25e.7 (1) + 0x000025| 00| .| length: 128 0x25f-0x260.7 (2) + 0x000026|80 |. | + 0x000026| 49 02 3a 77 8b 7d 0a 44 89 ff dd 63 e7 4a e1| I.:w.}.D...c.J.| data: raw bits 0x261-0x2e0.7 (128) + 0x000027|96 eb 55 ef f9 3d 36 1e fb a9 e7 75 48 33 00 5a|..U..=6....uH3.Z| + * |until 0x2e0.7 (128) | | + | | | [3]{}: record 0x2e1-0x2e9.7 (9) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2e1-0x2e1.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2e2-0x2e3.7 (2) + 0x00002e| 00 04 | .. | length: 4 0x2e4-0x2e5.7 (2) + | | | message{}: 0x2e6-0x2e9.7 (4) + 0x00002e| 0e | . | type: "server_hello_done" (14) 0x2e6-0x2e6.7 (1) + 0x00002e| 00 00 00 | ... | length: 0 0x2e7-0x2e9.7 (3) + | | | data: raw bits 0x2ea-NA (0) + | | | [4]{}: record 0x2ea-0x398.7 (175) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2ea-0x2ea.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2eb-0x2ec.7 (2) + 0x00002e| 00 aa | .. | length: 170 0x2ed-0x2ee.7 (2) + | | | message{}: 0x2ef-0x398.7 (170) + 0x00002e| 04| .| type: "new_session_ticket" (4) 0x2ef-0x2ef.7 (1) + 0x00002f|00 00 a6 |... | length: 166 0x2f0-0x2f2.7 (3) + 0x00002f| 00 00 01 2c | ..., | lifetime_hint: 300 0x2f3-0x2f6.7 (4) + 0x00002f| 00 a0 | .. | ticket_length: 160 0x2f7-0x2f8.7 (2) + 0x00002f| c0 b4 67 52 a5 ca da| ..gR...| ticket: raw bits 0x2f9-0x398.7 (160) + 0x000030|99 7a 28 d7 eb e7 a1 7e 31 9c 37 a7 05 83 09 37|.z(....~1.7....7| + * |until 0x398.7 (160) | | + | | | [5]{}: record 0x399-0x39e.7 (6) + 0x000039| 14 | . | type: "change_cipher_spec" (20) (valid) 0x399-0x399.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x39a-0x39b.7 (2) + 0x000039| 00 01 | .. | length: 1 0x39c-0x39d.7 (2) + | | | message{}: 0x39e-0x39e.7 (1) + 0x000039| 01 | . | type: 1 0x39e-0x39e.7 (1) + | | | [6]{}: record 0x39f-0x3d4.7 (54) + 0x000039| 16| .| type: "handshake" (22) (valid) 0x39f-0x39f.7 (1) + 0x00003a|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x3a0-0x3a1.7 (2) + 0x00003a| 00 31 | .1 | length: 49 0x3a2-0x3a3.7 (2) + 0x00003a| b2 9f a4 1e 7f 4a 35 37 ce a3 be 69| .....J57...i| encrypted_data: raw bits 0x3a4-0x3d4.7 (49) + 0x00003b|4e f6 30 34 66 a4 d2 3f 93 0a c0 87 ec ce 2c 39|N.04f..?......,9| + * |until 0x3d4.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 47 30 6b db 87 e1 95 96 e2 99 47 54| G0k.......GT| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x3d5-0x854.7 (1152) + 0x00003d| 17 | . | type: "application_data" (23) (valid) 0x3d5-0x3d5.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d6-0x3d7.7 (2) + 0x00003d| 04 7b | .{ | length: 1147 0x3d8-0x3d9.7 (2) + 0x00003d| b2 9f a4 1e 7f 4a| .....J| encrypted_data: raw bits 0x3da-0x854.7 (1147) + 0x00003e|35 38 32 ed 2c 63 d4 cb dc 31 57 1e ca 80 50 5c|582.,c...1W...P\| + * |until 0x854.7 (end) (1147) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x114a.7 (4427) + * |until 0x114a.7 (end) (4427) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x114a.7 (4427) + * |until 0x114a.7 (end) (4427) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..526587ecc59dddb4941e023a9bb08c968f3918a1 GIT binary patch literal 3655 zcmai12{@Ep8$R!Bh>5HtOR~$-3?rswC%%x9r72}!ib`mstffT4l%;G*mXN(js8K>G zyNFP>&?rkEivNAfe82Di`mX<6*E8om=Q`JY?&m(|xz9Ci^rAErzyM}jUIySJa{%`m zD`5bCQa5V@ZQNjZ000mY@#^c$ti3lqK$fSXa&nf40H83-ofs7B8f?_@cw`;#v;RbNWi?vRN_xw(M+rrUJqfslYv~2 z)sigC1Ny~@$qV7ry%I1+H0}uck zJjV|N04u-&7QhSm;8Vc@ZomT|fC6a13An&IAOUm6192dRgK#Ju8Vg}jSTqL0pfG4O zghrv!C&_I&B$gFG)p6Q6wVQ-|yrFE+}mK@|QdnxELiu;-{ zVayTDc4Ihkz-1`ZY4dH94;yoJeJ3Ku=H4c2H;SO>5pGlRhQh@%6yLR*YTw=}D=~%d z0f1K1gC#-3yj=B6vhHY(3n|MUztS_l^riSXp>QJEyg<^@&%^V;oXUESxl?x)5|!a|1g|&%s7C_<9ZXz*npr0y zbyT2wAoWR}l=BZ&n$W=0_u&%n8H=rxL%ZxTQ|#W-;NjVW!o>8IESL&wIMW2nB zW&vGTuS^b{ucw%W;G@NMv<*31xumHlD$&j%_}Ln9fvpGF{jrVfos_&kct2NutuU#S zFZr7L{_VCyLW3jSmh~DoiG`_Jp6Pr0_-%*8t-n0sB(}RRzHq`17|I1Q?_0pA~1w1%R#&CM6_D>2tJ7 z#Be_`$*k2cJTBG<&s8!OXMr3r@~^IEORmua+Z zHgTMcBJskx{j5Ep{iB%$#rSM$RqQBd-$de(ULtib$n*}J?Gt>zAXVvrS5)u2In-i3 znI}W>bV}M`=;xbIQCpQGGQFq5(caOIz!XRcE^Z_Y0Hl;Pg=7}f$;|ARANAP5el!zE zfLxcw|Cw11{9xUMrxieIO^NHCjE3%nv$CDzBWdSJVIp^qc~W@xx4fH<(>(Vn`oL^y zdR|)$W%`VyT9YuHFurJqivCD*VvSQxakQ&^fP{}{< zmJw6EmAf_bMD86GR?lSZ`713nug1L5?RM z;e3)Khwx7S+?TGixAvnxg^g^mer&aOcIfE) z@6P&vj9$$>Nxe+VWzURBWRFy4n@@jmWGb1|C$?hp5NSc|)2qq&!Y9E`ynBO!TFSP@ts|9b6y)`)2Hv018`c{scPTP+@Qv1f-%RH5 z*ipy(ZL5$5YisQFamve{0kf-_&juxS9*?i!j^f27tsi5{)_BMWnSFHP+Lmbp{{{VW&mWy=?dsuv_4|5#MhDB~h;yA(v364k1ij$VFVq0S-Kt#CmWv+NbuBQ{_TAAmk zYd^Q=ckRA*t|U+Ug3+yNC+sVYsL@(;KC#B-swwB|ic#b5y+R6?UG{j{eRR|Kb7QqZ z$t+Mm$@(!Y*vse<-fF(mjo!U!hYBvVr{0Mk$>?_ZIP)#PWZAldR@ggR|5$5-haT&_ z{BIGom%@=D=4$)%QXlJ#8&UZK%JVpOb-eC)Qy+9a>UD+?(5g*gn5WQ_{R|&R1oNO4 zS{4tca|E| zE?Nd0>DR|@OSI7*w0!@nU$@sg^j5MZ>b|x7cGl0q)O{6RDx6FG5lK1+FyS+!8hts! z50!q%(-T9MLVD80BX<=%P4zON(?(lwK45w0^Jl+g?2H0i=WvT;G@ z7^kDi)-s<2^E!^hxu-OJu3Wm;t!3;IlXapkVRPbR%TVQ7wjQ+}FWsY;{P}G~%PYfU z93qZK`Bb)>3M&Y8#}4*QJMU-7(vQgII&}O|TIJ$aV_K0x z38z!ZLo<+L+uWD80lte@96vQJJ4EIQd*C=)ZOv$QJIQ5JWp>tHfokiMd4?OT2$>zT zUyZyo-&BrU0Z | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 4c| L| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|53 e6 88 7c 74 b5 2d 32 c8 e2 c3 19 ad e9 99 2d|S..|t.-2.......-| + 0x000002|da 6b 4f 08 24 87 75 83 44 3a f7 |.kO.$.u.D:. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 14 | .. | cipher_suit: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" (0xc014) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x20e.7 (456) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x20e.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 bf| ...| length: 447 0x4d-0x4f.7 (3) + 0x000005|00 01 bc |... | certificates_length: 444 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x20e.7 (444) + | | | [0]{}: certificate 0x53-0x20e.7 (444) + 0x000005| 00 01 b9 | ... | length: 441 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x20e.7 (441) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 b5 | ... | length: 437 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x20e.7 (437) + | | | [0]{}: object 0x5a-0x17b.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x5b-0x5d.7 (3) + | | | constructed[0:6]: 0x5e-0x17b.7 (286) + | | | [0]{}: object 0x5e-0x68.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5e-0x5e.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5e.2-0x5e.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5e.3-0x5e.7 (0.5) + 0x000005| 09| .| length: 9 0x5f-0x5f.7 (1) + 0x000006|00 f4 a7 2f d3 e8 fc 37 c4 |.../...7. | value: 17629111853558544324 0x60-0x68.7 (9) + | | | [1]{}: object 0x69-0x77.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x69-0x69.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x69.2-0x69.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x69.3-0x69.7 (0.5) + 0x000006| 0d | . | length: 13 0x6a-0x6a.7 (1) + | | | constructed[0:2]: 0x6b-0x77.7 (13) + | | | [0]{}: object 0x6b-0x75.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x6b-0x6b.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6b.2-0x6b.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6b.3-0x6b.7 (0.5) + 0x000006| 09 | . | length: 9 0x6c-0x6c.7 (1) + | | | value[0:7]: 0x6d-0x75.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6d-0x6d.7 (1) + 0x000006| 86 48| .H| [2]: 840 oid 0x6e-0x6f.7 (2) + 0x000007|86 f7 0d |... | [3]: 113549 oid 0x70-0x72.7 (3) + 0x000007| 01 | . | [4]: 1 oid 0x73-0x73.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x74-0x74.7 (1) + 0x000007| 05 | . | [6]: 5 oid 0x75-0x75.7 (1) + | | | [1]{}: object 0x76-0x77.7 (2) + 0x000007| 05 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 05 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 05 | . | tag: "null" (0x5) 0x76.3-0x76.7 (0.5) + 0x000007| 00 | . | length: "indefinite" (0) 0x77-0x77.7 (1) + | | | value: null 0x78-NA (0) + | | | [2]{}: object 0x78-0x98.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x78-0x78.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x78.2-0x78.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x78.3-0x78.7 (0.5) + 0x000007| 1f | . | length: 31 0x79-0x79.7 (1) + | | | constructed[0:1]: 0x7a-0x98.7 (31) + | | | [0]{}: object 0x7a-0x98.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x7a-0x7a.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x7a.2-0x7a.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x7a.3-0x7a.7 (0.5) + 0x000007| 1d | . | length: 29 0x7b-0x7b.7 (1) + | | | constructed[0:1]: 0x7c-0x98.7 (29) + | | | [0]{}: object 0x7c-0x98.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x7c.2-0x7c.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x7c.3-0x7c.7 (0.5) + 0x000007| 1b | . | length: 27 0x7d-0x7d.7 (1) + | | | constructed[0:2]: 0x7e-0x98.7 (27) + | | | [0]{}: object 0x7e-0x82.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x7e.3-0x7e.7 (0.5) + 0x000007| 03| .| length: 3 0x7f-0x7f.7 (1) + | | | value[0:4]: 0x80-0x82.7 (3) + 0x000008|55 |U | [0]: 2 oid 0x80-0x80.7 (1) + 0x000008|55 |U | [1]: 5 oid 0x80-0x80.7 (1) + 0x000008| 04 | . | [2]: 4 oid 0x81-0x81.7 (1) + 0x000008| 03 | . | [3]: 3 oid 0x82-0x82.7 (1) + | | | [1]{}: object 0x83-0x98.7 (22) + 0x000008| 0c | . | class: "universal" (0) 0x83-0x83.1 (0.2) + 0x000008| 0c | . | form: "primitive" (0) 0x83.2-0x83.2 (0.1) + 0x000008| 0c | . | tag: "utf8_string" (0xc) 0x83.3-0x83.7 (0.5) + 0x000008| 14 | . | length: 20 0x84-0x84.7 (1) + 0x000008| 54 65 73 74 20 43 65 72 74 69 66| Test Certif| value: "Test Certificate RSA" 0x85-0x98.7 (20) + 0x000009|69 63 61 74 65 20 52 53 41 |icate RSA | + | | | [3]{}: object 0x99-0xb8.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x99-0x99.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x99.2-0x99.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x99.3-0x99.7 (0.5) + 0x000009| 1e | . | length: 30 0x9a-0x9a.7 (1) + | | | constructed[0:2]: 0x9b-0xb8.7 (30) + | | | [0]{}: object 0x9b-0xa9.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x9b-0x9b.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x9b.2-0x9b.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x9b.3-0x9b.7 (0.5) + 0x000009| 0d | . | length: 13 0x9c-0x9c.7 (1) + 0x000009| 31 33 30| 130| value: "130915215110Z" 0x9d-0xa9.7 (13) + 0x00000a|39 31 35 32 31 35 31 31 30 5a |915215110Z | + | | | [1]{}: object 0xaa-0xb8.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xaa-0xaa.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xaa.2-0xaa.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xaa.3-0xaa.7 (0.5) + 0x00000a| 0d | . | length: 13 0xab-0xab.7 (1) + 0x00000a| 32 33 30 39| 2309| value: "230913215110Z" 0xac-0xb8.7 (13) + 0x00000b|31 33 32 31 35 31 31 30 5a |13215110Z | + | | | [4]{}: object 0xb9-0xd9.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb9-0xb9.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb9.2-0xb9.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb9.3-0xb9.7 (0.5) + 0x00000b| 1f | . | length: 31 0xba-0xba.7 (1) + | | | constructed[0:1]: 0xbb-0xd9.7 (31) + | | | [0]{}: object 0xbb-0xd9.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xbb-0xbb.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xbb.2-0xbb.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xbb.3-0xbb.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbc-0xbc.7 (1) + | | | constructed[0:1]: 0xbd-0xd9.7 (29) + | | | [0]{}: object 0xbd-0xd9.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 1b | . | length: 27 0xbe-0xbe.7 (1) + | | | constructed[0:2]: 0xbf-0xd9.7 (27) + | | | [0]{}: object 0xbf-0xc3.7 (5) + 0x00000b| 06| .| class: "universal" (0) 0xbf-0xbf.1 (0.2) + 0x00000b| 06| .| form: "primitive" (0) 0xbf.2-0xbf.2 (0.1) + 0x00000b| 06| .| tag: "object_identifier" (0x6) 0xbf.3-0xbf.7 (0.5) + 0x00000c|03 |. | length: 3 0xc0-0xc0.7 (1) + | | | value[0:4]: 0xc1-0xc3.7 (3) + 0x00000c| 55 | U | [0]: 2 oid 0xc1-0xc1.7 (1) + 0x00000c| 55 | U | [1]: 5 oid 0xc1-0xc1.7 (1) + 0x00000c| 04 | . | [2]: 4 oid 0xc2-0xc2.7 (1) + 0x00000c| 03 | . | [3]: 3 oid 0xc3-0xc3.7 (1) + | | | [1]{}: object 0xc4-0xd9.7 (22) + 0x00000c| 0c | . | class: "universal" (0) 0xc4-0xc4.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc4.2-0xc4.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc4.3-0xc4.7 (0.5) + 0x00000c| 14 | . | length: 20 0xc5-0xc5.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69| Test Certi| value: "Test Certificate RSA" 0xc6-0xd9.7 (20) + 0x00000d|66 69 63 61 74 65 20 52 53 41 |ficate RSA | + | | | [5]{}: object 0xda-0x17b.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xda-0xda.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xda.2-0xda.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xda.3-0xda.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xdb-0xdc.7 (2) + | | | constructed[0:2]: 0xdd-0x17b.7 (159) + | | | [0]{}: object 0xdd-0xeb.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 0d | . | length: 13 0xde-0xde.7 (1) + | | | constructed[0:2]: 0xdf-0xeb.7 (13) + | | | [0]{}: object 0xdf-0xe9.7 (11) + 0x00000d| 06| .| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00000d| 06| .| form: "primitive" (0) 0xdf.2-0xdf.2 (0.1) + 0x00000d| 06| .| tag: "object_identifier" (0x6) 0xdf.3-0xdf.7 (0.5) + 0x00000e|09 |. | length: 9 0xe0-0xe0.7 (1) + | | | value[0:7]: 0xe1-0xe9.7 (9) + 0x00000e| 2a | * | [0]: 1 oid 0xe1-0xe1.7 (1) + 0x00000e| 2a | * | [1]: 2 oid 0xe1-0xe1.7 (1) + 0x00000e| 86 48 | .H | [2]: 840 oid 0xe2-0xe3.7 (2) + 0x00000e| 86 f7 0d | ... | [3]: 113549 oid 0xe4-0xe6.7 (3) + 0x00000e| 01 | . | [4]: 1 oid 0xe7-0xe7.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe9-0xe9.7 (1) + | | | [1]{}: object 0xea-0xeb.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xea-0xea.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xea.2-0xea.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xea.3-0xea.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xeb-0xeb.7 (1) + | | | value: null 0xec-NA (0) + | | | [1]{}: object 0xec-0x17b.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xec-0xec.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xec.2-0xec.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xec.3-0xec.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xed-0xee.7 (2) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|30 81 89 02 81 81 00 ac 35 2a 93 7f c5 4f 18 98|0.......5*...O..| value: raw bits 0xf0-0x17b.7 (140) + * |until 0x17b.7 (140) | | + | | | [1]{}: object 0x17c-0x18a.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x17c-0x17c.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x17c.2-0x17c.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x17c.3-0x17c.7 (0.5) + 0x000017| 0d | . | length: 13 0x17d-0x17d.7 (1) + | | | constructed[0:2]: 0x17e-0x18a.7 (13) + | | | [0]{}: object 0x17e-0x188.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x17e.3-0x17e.7 (0.5) + 0x000017| 09| .| length: 9 0x17f-0x17f.7 (1) + | | | value[0:7]: 0x180-0x188.7 (9) + 0x000018|2a |* | [0]: 1 oid 0x180-0x180.7 (1) + 0x000018|2a |* | [1]: 2 oid 0x180-0x180.7 (1) + 0x000018| 86 48 | .H | [2]: 840 oid 0x181-0x182.7 (2) + 0x000018| 86 f7 0d | ... | [3]: 113549 oid 0x183-0x185.7 (3) + 0x000018| 01 | . | [4]: 1 oid 0x186-0x186.7 (1) + 0x000018| 01 | . | [5]: 1 oid 0x187-0x187.7 (1) + 0x000018| 05 | . | [6]: 5 oid 0x188-0x188.7 (1) + | | | [1]{}: object 0x189-0x18a.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x189-0x189.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x189.2-0x189.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x189.3-0x189.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x18a-0x18a.7 (1) + | | | value: null 0x18b-NA (0) + | | | [2]{}: object 0x18b-0x20e.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x18b-0x18b.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x18b.2-0x18b.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x18b.3-0x18b.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x18c-0x18d.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x18e-0x18e.7 (1) + 0x000018| 67| g| value: raw bits 0x18f-0x20e.7 (128) + 0x000019|43 4c a8 a4 3e eb 1b 32 28 70 8b db eb fe f1 b3|CL..>..2(p......| + * |until 0x20e.7 (128) | | + | | | [2]{}: record 0x20f-0x2e0.7 (210) + 0x000020| 16| .| type: "handshake" (22) (valid) 0x20f-0x20f.7 (1) + 0x000021|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x210-0x211.7 (2) + 0x000021| 00 cd | .. | length: 205 0x212-0x213.7 (2) + | | | message{}: 0x214-0x2e0.7 (205) + 0x000021| 0c | . | type: "server_key_exchange" (12) 0x214-0x214.7 (1) + 0x000021| 00 00 c9 | ... | length: 201 0x215-0x217.7 (3) + | | | curve_params{}: 0x218-NA (0) + 0x000021| 03 | . | curve_type: 3 0x218-0x218.7 (1) + 0x000021| 00 17 | .. | named_curve: 23 0x219-0x21a.7 (2) + | | | public{}: 0x21b-NA (0) + 0x000021| 41 | A | length: 65 0x21b-0x21b.7 (1) + 0x000021| 04 97 e0 a1| ....| data: raw bits 0x21c-0x25c.7 (65) + 0x000022|4e d7 18 a0 e8 17 bf e1 a0 c1 ad 25 65 fd 35 94|N..........%e.5.| + * |until 0x25c.7 (65) | | + | | | signature_algorithm{}: 0x25d-NA (0) + 0x000025| 06 | . | hash: "sha512" (6) 0x25d-0x25d.7 (1) + 0x000025| 01 | . | signature: "rsa" (1) 0x25e-0x25e.7 (1) + 0x000025| 00| .| length: 128 0x25f-0x260.7 (2) + 0x000026|80 |. | + 0x000026| 15 aa 27 80 34 84 6c f7 5b 03 d9 c2 45 34 48| ..'.4.l.[...E4H| data: raw bits 0x261-0x2e0.7 (128) + 0x000027|a7 62 05 71 4d d6 f1 ad 9e 01 2c 58 9f 72 8f b9|.b.qM.....,X.r..| + * |until 0x2e0.7 (128) | | + | | | [3]{}: record 0x2e1-0x2e9.7 (9) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2e1-0x2e1.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2e2-0x2e3.7 (2) + 0x00002e| 00 04 | .. | length: 4 0x2e4-0x2e5.7 (2) + | | | message{}: 0x2e6-0x2e9.7 (4) + 0x00002e| 0e | . | type: "server_hello_done" (14) 0x2e6-0x2e6.7 (1) + 0x00002e| 00 00 00 | ... | length: 0 0x2e7-0x2e9.7 (3) + | | | data: raw bits 0x2ea-NA (0) + | | | [4]{}: record 0x2ea-0x398.7 (175) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2ea-0x2ea.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2eb-0x2ec.7 (2) + 0x00002e| 00 aa | .. | length: 170 0x2ed-0x2ee.7 (2) + | | | message{}: 0x2ef-0x398.7 (170) + 0x00002e| 04| .| type: "new_session_ticket" (4) 0x2ef-0x2ef.7 (1) + 0x00002f|00 00 a6 |... | length: 166 0x2f0-0x2f2.7 (3) + 0x00002f| 00 00 01 2c | ..., | lifetime_hint: 300 0x2f3-0x2f6.7 (4) + 0x00002f| 00 a0 | .. | ticket_length: 160 0x2f7-0x2f8.7 (2) + 0x00002f| c0 b4 67 52 a5 ca da| ..gR...| ticket: raw bits 0x2f9-0x398.7 (160) + 0x000030|99 7a 28 d7 eb e7 a1 7e 31 87 1d a4 6f 6d 39 13|.z(....~1...om9.| + * |until 0x398.7 (160) | | + | | | [5]{}: record 0x399-0x39e.7 (6) + 0x000039| 14 | . | type: "change_cipher_spec" (20) (valid) 0x399-0x399.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x39a-0x39b.7 (2) + 0x000039| 00 01 | .. | length: 1 0x39c-0x39d.7 (2) + | | | message{}: 0x39e-0x39e.7 (1) + 0x000039| 01 | . | type: 1 0x39e-0x39e.7 (1) + | | | [6]{}: record 0x39f-0x3e3.7 (69) + 0x000039| 16| .| type: "handshake" (22) (valid) 0x39f-0x39f.7 (1) + 0x00003a|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x3a0-0x3a1.7 (2) + 0x00003a| 00 40 | .@ | length: 64 0x3a2-0x3a3.7 (2) + 0x00003a| 49 41 f7 2e b0 3e 18 1d ae 51 63 4a| IA...>...QcJ| encrypted_data: raw bits 0x3a4-0x3e3.7 (64) + 0x00003b|26 68 9a 53 07 67 ce 75 7c 7f 46 f9 63 ea 6d c6|&h.S.g.u|.F.c.m.| + * |until 0x3e3.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 5d de 00 d6 4e 80 8a c6 b5 fc c3 6a| ]...N......j| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x3e4-0x878.7 (1173) + 0x00003e| 17 | . | type: "application_data" (23) (valid) 0x3e4-0x3e4.7 (1) + 0x00003e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3e5-0x3e6.7 (2) + 0x00003e| 04 90 | .. | length: 1168 0x3e7-0x3e8.7 (2) + 0x00003e| 89 07 6b 5a 14 90 48| ..kZ..H| encrypted_data: raw bits 0x3e9-0x878.7 (1168) + 0x00003f|f0 47 77 ac 25 d6 ad 79 94 16 7e b8 50 0f 05 71|.Gw.%..y..~.P..q| + * |until 0x878.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1135.7 (4406) + * |until 0x1135.7 (end) (4406) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1135.7 (4406) + * |until 0x1135.7 (end) (4406) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384.pcap new file mode 100644 index 0000000000000000000000000000000000000000..bffe92de85b3e27926c228841c1f07c0ca868af3 GIT binary patch literal 3815 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 ms | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 1f| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|4f f9 5c 15 cb 6d 38 5a 1d 4e 43 2f 5c 6b bf ae|O.\..m8Z.NC/\k..| + 0x000002|ad d3 7a e1 92 c2 98 67 5e 4b 10 |..z....g^K. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 28 | .( | cipher_suit: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" (0xc028) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x20e.7 (456) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x20e.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 bf| ...| length: 447 0x4d-0x4f.7 (3) + 0x000005|00 01 bc |... | certificates_length: 444 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x20e.7 (444) + | | | [0]{}: certificate 0x53-0x20e.7 (444) + 0x000005| 00 01 b9 | ... | length: 441 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x20e.7 (441) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 b5 | ... | length: 437 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x20e.7 (437) + | | | [0]{}: object 0x5a-0x17b.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x5b-0x5d.7 (3) + | | | constructed[0:6]: 0x5e-0x17b.7 (286) + | | | [0]{}: object 0x5e-0x68.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5e-0x5e.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5e.2-0x5e.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5e.3-0x5e.7 (0.5) + 0x000005| 09| .| length: 9 0x5f-0x5f.7 (1) + 0x000006|00 f4 a7 2f d3 e8 fc 37 c4 |.../...7. | value: 17629111853558544324 0x60-0x68.7 (9) + | | | [1]{}: object 0x69-0x77.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x69-0x69.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x69.2-0x69.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x69.3-0x69.7 (0.5) + 0x000006| 0d | . | length: 13 0x6a-0x6a.7 (1) + | | | constructed[0:2]: 0x6b-0x77.7 (13) + | | | [0]{}: object 0x6b-0x75.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x6b-0x6b.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6b.2-0x6b.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6b.3-0x6b.7 (0.5) + 0x000006| 09 | . | length: 9 0x6c-0x6c.7 (1) + | | | value[0:7]: 0x6d-0x75.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6d-0x6d.7 (1) + 0x000006| 86 48| .H| [2]: 840 oid 0x6e-0x6f.7 (2) + 0x000007|86 f7 0d |... | [3]: 113549 oid 0x70-0x72.7 (3) + 0x000007| 01 | . | [4]: 1 oid 0x73-0x73.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x74-0x74.7 (1) + 0x000007| 05 | . | [6]: 5 oid 0x75-0x75.7 (1) + | | | [1]{}: object 0x76-0x77.7 (2) + 0x000007| 05 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 05 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 05 | . | tag: "null" (0x5) 0x76.3-0x76.7 (0.5) + 0x000007| 00 | . | length: "indefinite" (0) 0x77-0x77.7 (1) + | | | value: null 0x78-NA (0) + | | | [2]{}: object 0x78-0x98.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x78-0x78.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x78.2-0x78.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x78.3-0x78.7 (0.5) + 0x000007| 1f | . | length: 31 0x79-0x79.7 (1) + | | | constructed[0:1]: 0x7a-0x98.7 (31) + | | | [0]{}: object 0x7a-0x98.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x7a-0x7a.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x7a.2-0x7a.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x7a.3-0x7a.7 (0.5) + 0x000007| 1d | . | length: 29 0x7b-0x7b.7 (1) + | | | constructed[0:1]: 0x7c-0x98.7 (29) + | | | [0]{}: object 0x7c-0x98.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x7c.2-0x7c.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x7c.3-0x7c.7 (0.5) + 0x000007| 1b | . | length: 27 0x7d-0x7d.7 (1) + | | | constructed[0:2]: 0x7e-0x98.7 (27) + | | | [0]{}: object 0x7e-0x82.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x7e.3-0x7e.7 (0.5) + 0x000007| 03| .| length: 3 0x7f-0x7f.7 (1) + | | | value[0:4]: 0x80-0x82.7 (3) + 0x000008|55 |U | [0]: 2 oid 0x80-0x80.7 (1) + 0x000008|55 |U | [1]: 5 oid 0x80-0x80.7 (1) + 0x000008| 04 | . | [2]: 4 oid 0x81-0x81.7 (1) + 0x000008| 03 | . | [3]: 3 oid 0x82-0x82.7 (1) + | | | [1]{}: object 0x83-0x98.7 (22) + 0x000008| 0c | . | class: "universal" (0) 0x83-0x83.1 (0.2) + 0x000008| 0c | . | form: "primitive" (0) 0x83.2-0x83.2 (0.1) + 0x000008| 0c | . | tag: "utf8_string" (0xc) 0x83.3-0x83.7 (0.5) + 0x000008| 14 | . | length: 20 0x84-0x84.7 (1) + 0x000008| 54 65 73 74 20 43 65 72 74 69 66| Test Certif| value: "Test Certificate RSA" 0x85-0x98.7 (20) + 0x000009|69 63 61 74 65 20 52 53 41 |icate RSA | + | | | [3]{}: object 0x99-0xb8.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x99-0x99.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x99.2-0x99.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x99.3-0x99.7 (0.5) + 0x000009| 1e | . | length: 30 0x9a-0x9a.7 (1) + | | | constructed[0:2]: 0x9b-0xb8.7 (30) + | | | [0]{}: object 0x9b-0xa9.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x9b-0x9b.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x9b.2-0x9b.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x9b.3-0x9b.7 (0.5) + 0x000009| 0d | . | length: 13 0x9c-0x9c.7 (1) + 0x000009| 31 33 30| 130| value: "130915215110Z" 0x9d-0xa9.7 (13) + 0x00000a|39 31 35 32 31 35 31 31 30 5a |915215110Z | + | | | [1]{}: object 0xaa-0xb8.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xaa-0xaa.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xaa.2-0xaa.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xaa.3-0xaa.7 (0.5) + 0x00000a| 0d | . | length: 13 0xab-0xab.7 (1) + 0x00000a| 32 33 30 39| 2309| value: "230913215110Z" 0xac-0xb8.7 (13) + 0x00000b|31 33 32 31 35 31 31 30 5a |13215110Z | + | | | [4]{}: object 0xb9-0xd9.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb9-0xb9.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb9.2-0xb9.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb9.3-0xb9.7 (0.5) + 0x00000b| 1f | . | length: 31 0xba-0xba.7 (1) + | | | constructed[0:1]: 0xbb-0xd9.7 (31) + | | | [0]{}: object 0xbb-0xd9.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xbb-0xbb.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xbb.2-0xbb.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xbb.3-0xbb.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbc-0xbc.7 (1) + | | | constructed[0:1]: 0xbd-0xd9.7 (29) + | | | [0]{}: object 0xbd-0xd9.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 1b | . | length: 27 0xbe-0xbe.7 (1) + | | | constructed[0:2]: 0xbf-0xd9.7 (27) + | | | [0]{}: object 0xbf-0xc3.7 (5) + 0x00000b| 06| .| class: "universal" (0) 0xbf-0xbf.1 (0.2) + 0x00000b| 06| .| form: "primitive" (0) 0xbf.2-0xbf.2 (0.1) + 0x00000b| 06| .| tag: "object_identifier" (0x6) 0xbf.3-0xbf.7 (0.5) + 0x00000c|03 |. | length: 3 0xc0-0xc0.7 (1) + | | | value[0:4]: 0xc1-0xc3.7 (3) + 0x00000c| 55 | U | [0]: 2 oid 0xc1-0xc1.7 (1) + 0x00000c| 55 | U | [1]: 5 oid 0xc1-0xc1.7 (1) + 0x00000c| 04 | . | [2]: 4 oid 0xc2-0xc2.7 (1) + 0x00000c| 03 | . | [3]: 3 oid 0xc3-0xc3.7 (1) + | | | [1]{}: object 0xc4-0xd9.7 (22) + 0x00000c| 0c | . | class: "universal" (0) 0xc4-0xc4.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc4.2-0xc4.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc4.3-0xc4.7 (0.5) + 0x00000c| 14 | . | length: 20 0xc5-0xc5.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69| Test Certi| value: "Test Certificate RSA" 0xc6-0xd9.7 (20) + 0x00000d|66 69 63 61 74 65 20 52 53 41 |ficate RSA | + | | | [5]{}: object 0xda-0x17b.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xda-0xda.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xda.2-0xda.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xda.3-0xda.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xdb-0xdc.7 (2) + | | | constructed[0:2]: 0xdd-0x17b.7 (159) + | | | [0]{}: object 0xdd-0xeb.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 0d | . | length: 13 0xde-0xde.7 (1) + | | | constructed[0:2]: 0xdf-0xeb.7 (13) + | | | [0]{}: object 0xdf-0xe9.7 (11) + 0x00000d| 06| .| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00000d| 06| .| form: "primitive" (0) 0xdf.2-0xdf.2 (0.1) + 0x00000d| 06| .| tag: "object_identifier" (0x6) 0xdf.3-0xdf.7 (0.5) + 0x00000e|09 |. | length: 9 0xe0-0xe0.7 (1) + | | | value[0:7]: 0xe1-0xe9.7 (9) + 0x00000e| 2a | * | [0]: 1 oid 0xe1-0xe1.7 (1) + 0x00000e| 2a | * | [1]: 2 oid 0xe1-0xe1.7 (1) + 0x00000e| 86 48 | .H | [2]: 840 oid 0xe2-0xe3.7 (2) + 0x00000e| 86 f7 0d | ... | [3]: 113549 oid 0xe4-0xe6.7 (3) + 0x00000e| 01 | . | [4]: 1 oid 0xe7-0xe7.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe9-0xe9.7 (1) + | | | [1]{}: object 0xea-0xeb.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xea-0xea.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xea.2-0xea.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xea.3-0xea.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xeb-0xeb.7 (1) + | | | value: null 0xec-NA (0) + | | | [1]{}: object 0xec-0x17b.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xec-0xec.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xec.2-0xec.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xec.3-0xec.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xed-0xee.7 (2) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|30 81 89 02 81 81 00 ac 35 2a 93 7f c5 4f 18 98|0.......5*...O..| value: raw bits 0xf0-0x17b.7 (140) + * |until 0x17b.7 (140) | | + | | | [1]{}: object 0x17c-0x18a.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x17c-0x17c.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x17c.2-0x17c.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x17c.3-0x17c.7 (0.5) + 0x000017| 0d | . | length: 13 0x17d-0x17d.7 (1) + | | | constructed[0:2]: 0x17e-0x18a.7 (13) + | | | [0]{}: object 0x17e-0x188.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x17e.3-0x17e.7 (0.5) + 0x000017| 09| .| length: 9 0x17f-0x17f.7 (1) + | | | value[0:7]: 0x180-0x188.7 (9) + 0x000018|2a |* | [0]: 1 oid 0x180-0x180.7 (1) + 0x000018|2a |* | [1]: 2 oid 0x180-0x180.7 (1) + 0x000018| 86 48 | .H | [2]: 840 oid 0x181-0x182.7 (2) + 0x000018| 86 f7 0d | ... | [3]: 113549 oid 0x183-0x185.7 (3) + 0x000018| 01 | . | [4]: 1 oid 0x186-0x186.7 (1) + 0x000018| 01 | . | [5]: 1 oid 0x187-0x187.7 (1) + 0x000018| 05 | . | [6]: 5 oid 0x188-0x188.7 (1) + | | | [1]{}: object 0x189-0x18a.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x189-0x189.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x189.2-0x189.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x189.3-0x189.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x18a-0x18a.7 (1) + | | | value: null 0x18b-NA (0) + | | | [2]{}: object 0x18b-0x20e.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x18b-0x18b.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x18b.2-0x18b.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x18b.3-0x18b.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x18c-0x18d.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x18e-0x18e.7 (1) + 0x000018| 67| g| value: raw bits 0x18f-0x20e.7 (128) + 0x000019|43 4c a8 a4 3e eb 1b 32 28 70 8b db eb fe f1 b3|CL..>..2(p......| + * |until 0x20e.7 (128) | | + | | | [2]{}: record 0x20f-0x2e0.7 (210) + 0x000020| 16| .| type: "handshake" (22) (valid) 0x20f-0x20f.7 (1) + 0x000021|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x210-0x211.7 (2) + 0x000021| 00 cd | .. | length: 205 0x212-0x213.7 (2) + | | | message{}: 0x214-0x2e0.7 (205) + 0x000021| 0c | . | type: "server_key_exchange" (12) 0x214-0x214.7 (1) + 0x000021| 00 00 c9 | ... | length: 201 0x215-0x217.7 (3) + | | | curve_params{}: 0x218-NA (0) + 0x000021| 03 | . | curve_type: 3 0x218-0x218.7 (1) + 0x000021| 00 17 | .. | named_curve: 23 0x219-0x21a.7 (2) + | | | public{}: 0x21b-NA (0) + 0x000021| 41 | A | length: 65 0x21b-0x21b.7 (1) + 0x000021| 04 97 e0 a1| ....| data: raw bits 0x21c-0x25c.7 (65) + 0x000022|4e d7 18 a0 e8 17 bf e1 a0 c1 ad 25 65 fd 35 94|N..........%e.5.| + * |until 0x25c.7 (65) | | + | | | signature_algorithm{}: 0x25d-NA (0) + 0x000025| 06 | . | hash: "sha512" (6) 0x25d-0x25d.7 (1) + 0x000025| 01 | . | signature: "rsa" (1) 0x25e-0x25e.7 (1) + 0x000025| 00| .| length: 128 0x25f-0x260.7 (2) + 0x000026|80 |. | + 0x000026| 67 dc fd c8 a6 ab 26 ad 4e 4a 6e b4 45 58 a4| g.....&.NJn.EX.| data: raw bits 0x261-0x2e0.7 (128) + 0x000027|81 71 85 bd c0 c6 dd 89 77 34 3c a6 55 6d 7c 24|.q......w4<.Um|$| + * |until 0x2e0.7 (128) | | + | | | [3]{}: record 0x2e1-0x2e9.7 (9) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2e1-0x2e1.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2e2-0x2e3.7 (2) + 0x00002e| 00 04 | .. | length: 4 0x2e4-0x2e5.7 (2) + | | | message{}: 0x2e6-0x2e9.7 (4) + 0x00002e| 0e | . | type: "server_hello_done" (14) 0x2e6-0x2e6.7 (1) + 0x00002e| 00 00 00 | ... | length: 0 0x2e7-0x2e9.7 (3) + | | | data: raw bits 0x2ea-NA (0) + | | | [4]{}: record 0x2ea-0x398.7 (175) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2ea-0x2ea.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2eb-0x2ec.7 (2) + 0x00002e| 00 aa | .. | length: 170 0x2ed-0x2ee.7 (2) + | | | message{}: 0x2ef-0x398.7 (170) + 0x00002e| 04| .| type: "new_session_ticket" (4) 0x2ef-0x2ef.7 (1) + 0x00002f|00 00 a6 |... | length: 166 0x2f0-0x2f2.7 (3) + 0x00002f| 00 00 01 2c | ..., | lifetime_hint: 300 0x2f3-0x2f6.7 (4) + 0x00002f| 00 a0 | .. | ticket_length: 160 0x2f7-0x2f8.7 (2) + 0x00002f| c0 b4 67 52 a5 ca da| ..gR...| ticket: raw bits 0x2f9-0x398.7 (160) + 0x000030|99 7a 28 d7 eb e7 a1 7e 31 34 a4 3e cd 09 e7 a2|.z(....~14.>....| + * |until 0x398.7 (160) | | + | | | [5]{}: record 0x399-0x39e.7 (6) + 0x000039| 14 | . | type: "change_cipher_spec" (20) (valid) 0x399-0x399.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x39a-0x39b.7 (2) + 0x000039| 00 01 | .. | length: 1 0x39c-0x39d.7 (2) + | | | message{}: 0x39e-0x39e.7 (1) + 0x000039| 01 | . | type: 1 0x39e-0x39e.7 (1) + | | | [6]{}: record 0x39f-0x403.7 (101) + 0x000039| 16| .| type: "handshake" (22) (valid) 0x39f-0x39f.7 (1) + 0x00003a|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x3a0-0x3a1.7 (2) + 0x00003a| 00 60 | .` | length: 96 0x3a2-0x3a3.7 (2) + 0x00003a| b7 7a 91 d4 d5 cd 22 3a 27 e2 75 ed| .z....":'.u.| encrypted_data: raw bits 0x3a4-0x403.7 (96) + 0x00003b|29 ef 9c 17 31 dd ab 28 5e e4 83 32 44 ae 9d f5|)...1..(^..2D...| + * |until 0x403.7 (96) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| f0 4c c1 bd 40 b5 ef a7 d0 87 bb 89| .L..@.......| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x404-0x8b8.7 (1205) + 0x000040| 17 | . | type: "application_data" (23) (valid) 0x404-0x404.7 (1) + 0x000040| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x405-0x406.7 (2) + 0x000040| 04 b0 | .. | length: 1200 0x407-0x408.7 (2) + 0x000040| b5 9f 8c d7 5c bf 81| ....\..| encrypted_data: raw bits 0x409-0x8b8.7 (1200) + 0x000041|d9 0d 5c c1 83 59 88 79 de 47 a0 05 d8 3f ea 1f|..\..Y.y.G...?..| + * |until 0x8b8.7 (end) (1200) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x113e.7 (4415) + * |until 0x113e.7 (end) (4415) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x113e.7 (4415) + * |until 0x113e.7 (end) (4415) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.pcap b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.pcap new file mode 100644 index 0000000000000000000000000000000000000000..b34c5ae58dd650e8bbaa380af71af3487840b9a9 GIT binary patch literal 3569 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 T=$B*jv?A}Cz^?9|48VT?IFvQz literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest new file mode 100644 index 00000000..bb2f7071 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest @@ -0,0 +1,526 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xdf1-NA (0) + | | | client{}: 0xdf1-NA (0) + | | | ip: "127.0.0.1" 0xdf1-NA (0) + | | | port: 38964 0xdf1-NA (0) + | | | has_start: true 0xdf1-NA (0) + | | | has_end: false 0xdf1-NA (0) + | | | skipped_bytes: 0 0xdf1-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x186.7 (391) + | | | records[0:6]: 0x0-0x186.7 (391) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 12| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|cf 23 62 82 56 e7 45 e9 03 ce a6 96 e9 f6 2a 60|.#b.V.E.......*`| + 0x000002|ba 0a e8 31 1d 70 de a5 e4 19 49 |...1.p....I | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 30| .0| [0]: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" (0xc030) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0xf0.7 (75) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 46 | .F | length: 70 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0xf0.7 (70) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 42 | ..B | length: 66 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 41| A| length: 65 0xaf-0xaf.7 (1) + 0x00000b|04 cb 26 85 d4 3b f7 22 45 dc 2f 49 6f 5d 78 f3|..&..;."E./Io]x.| data: raw bits 0xb0-0xf0.7 (65) + * |until 0xf0.7 (65) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x12c.7 (54) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 31 | .1 | length: 49 0xfa-0xfb.7 (2) + 0x00000f| 2b c6 2f 92| +./.| encrypted_data: raw bits 0xfc-0x12c.7 (49) + 0x000010|16 df e9 a7 c3 37 30 df b3 d7 77 1c 0a fb 07 70|.....70...w....p| + * |until 0x12c.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 85 90 1b 38 67 ef 04 a6 4a cc 6e 59| ...8g...J.nY| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x12d-0x161.7 (53) + 0x000012| 17 | . | type: "application_data" (23) (valid) 0x12d-0x12d.7 (1) + 0x000012| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x12e-0x12f.7 (2) + 0x000013|00 30 |.0 | length: 48 0x130-0x131.7 (2) + 0x000013| 2b c6 2f 92 16 df e9 a8 16 97 96 fa ff 38| +./..........8| encrypted_data: raw bits 0x132-0x161.7 (48) + 0x000014|cf 30 e5 56 15 9f f8 50 24 01 fa e4 1c 8b 18 d5|.0.V...P$.......| + * |until 0x161.7 (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x162-0x186.7 (37) + 0x000016| 15 | . | type: "alert" (21) (valid) 0x162-0x162.7 (1) + 0x000016| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x163-0x164.7 (2) + 0x000016| 00 20 | . | length: 32 0x165-0x166.7 (2) + 0x000016| 2b c6 2f 92 16 df e9 a9 08| +./......| encrypted_data: raw bits 0x167-0x186.7 (32) + 0x000017|19 18 75 1e 6f eb 61 dc 32 92 04 c9 74 02 51 51|..u.o.a.2...t.QQ| + 0x000018|46 73 e3 78 3f 1a f3| |Fs.x?..| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xdf1-NA (0) + | | | ip: "127.0.0.1" 0xdf1-NA (0) + | | | port: 4430 0xdf1-NA (0) + | | | has_start: true 0xdf1-NA (0) + | | | has_end: true 0xdf1-NA (0) + | | | skipped_bytes: 0 0xdf1-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x851.7 (2130) + | | | records[0:8]: 0x0-0x851.7 (2130) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| a2| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|66 5e 32 3a 2a db 4b 9d a0 c1 0d 4a 88 23 71 92|f^2:*.K....J.#q.| + 0x000002|72 f8 b4 c9 7a f2 4f 92 78 48 12 |r...z.O.xH. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 30 | .0 | cipher_suit: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" (0xc030) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x20e.7 (456) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x20e.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 bf| ...| length: 447 0x4d-0x4f.7 (3) + 0x000005|00 01 bc |... | certificates_length: 444 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x20e.7 (444) + | | | [0]{}: certificate 0x53-0x20e.7 (444) + 0x000005| 00 01 b9 | ... | length: 441 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x20e.7 (441) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 b5 | ... | length: 437 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x20e.7 (437) + | | | [0]{}: object 0x5a-0x17b.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x5b-0x5d.7 (3) + | | | constructed[0:6]: 0x5e-0x17b.7 (286) + | | | [0]{}: object 0x5e-0x68.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5e-0x5e.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5e.2-0x5e.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5e.3-0x5e.7 (0.5) + 0x000005| 09| .| length: 9 0x5f-0x5f.7 (1) + 0x000006|00 f4 a7 2f d3 e8 fc 37 c4 |.../...7. | value: 17629111853558544324 0x60-0x68.7 (9) + | | | [1]{}: object 0x69-0x77.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x69-0x69.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x69.2-0x69.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x69.3-0x69.7 (0.5) + 0x000006| 0d | . | length: 13 0x6a-0x6a.7 (1) + | | | constructed[0:2]: 0x6b-0x77.7 (13) + | | | [0]{}: object 0x6b-0x75.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x6b-0x6b.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6b.2-0x6b.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6b.3-0x6b.7 (0.5) + 0x000006| 09 | . | length: 9 0x6c-0x6c.7 (1) + | | | value[0:7]: 0x6d-0x75.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6d-0x6d.7 (1) + 0x000006| 86 48| .H| [2]: 840 oid 0x6e-0x6f.7 (2) + 0x000007|86 f7 0d |... | [3]: 113549 oid 0x70-0x72.7 (3) + 0x000007| 01 | . | [4]: 1 oid 0x73-0x73.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x74-0x74.7 (1) + 0x000007| 05 | . | [6]: 5 oid 0x75-0x75.7 (1) + | | | [1]{}: object 0x76-0x77.7 (2) + 0x000007| 05 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 05 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 05 | . | tag: "null" (0x5) 0x76.3-0x76.7 (0.5) + 0x000007| 00 | . | length: "indefinite" (0) 0x77-0x77.7 (1) + | | | value: null 0x78-NA (0) + | | | [2]{}: object 0x78-0x98.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x78-0x78.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x78.2-0x78.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x78.3-0x78.7 (0.5) + 0x000007| 1f | . | length: 31 0x79-0x79.7 (1) + | | | constructed[0:1]: 0x7a-0x98.7 (31) + | | | [0]{}: object 0x7a-0x98.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x7a-0x7a.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x7a.2-0x7a.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x7a.3-0x7a.7 (0.5) + 0x000007| 1d | . | length: 29 0x7b-0x7b.7 (1) + | | | constructed[0:1]: 0x7c-0x98.7 (29) + | | | [0]{}: object 0x7c-0x98.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x7c.2-0x7c.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x7c.3-0x7c.7 (0.5) + 0x000007| 1b | . | length: 27 0x7d-0x7d.7 (1) + | | | constructed[0:2]: 0x7e-0x98.7 (27) + | | | [0]{}: object 0x7e-0x82.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x7e.3-0x7e.7 (0.5) + 0x000007| 03| .| length: 3 0x7f-0x7f.7 (1) + | | | value[0:4]: 0x80-0x82.7 (3) + 0x000008|55 |U | [0]: 2 oid 0x80-0x80.7 (1) + 0x000008|55 |U | [1]: 5 oid 0x80-0x80.7 (1) + 0x000008| 04 | . | [2]: 4 oid 0x81-0x81.7 (1) + 0x000008| 03 | . | [3]: 3 oid 0x82-0x82.7 (1) + | | | [1]{}: object 0x83-0x98.7 (22) + 0x000008| 0c | . | class: "universal" (0) 0x83-0x83.1 (0.2) + 0x000008| 0c | . | form: "primitive" (0) 0x83.2-0x83.2 (0.1) + 0x000008| 0c | . | tag: "utf8_string" (0xc) 0x83.3-0x83.7 (0.5) + 0x000008| 14 | . | length: 20 0x84-0x84.7 (1) + 0x000008| 54 65 73 74 20 43 65 72 74 69 66| Test Certif| value: "Test Certificate RSA" 0x85-0x98.7 (20) + 0x000009|69 63 61 74 65 20 52 53 41 |icate RSA | + | | | [3]{}: object 0x99-0xb8.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x99-0x99.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x99.2-0x99.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x99.3-0x99.7 (0.5) + 0x000009| 1e | . | length: 30 0x9a-0x9a.7 (1) + | | | constructed[0:2]: 0x9b-0xb8.7 (30) + | | | [0]{}: object 0x9b-0xa9.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x9b-0x9b.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x9b.2-0x9b.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x9b.3-0x9b.7 (0.5) + 0x000009| 0d | . | length: 13 0x9c-0x9c.7 (1) + 0x000009| 31 33 30| 130| value: "130915215110Z" 0x9d-0xa9.7 (13) + 0x00000a|39 31 35 32 31 35 31 31 30 5a |915215110Z | + | | | [1]{}: object 0xaa-0xb8.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xaa-0xaa.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xaa.2-0xaa.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xaa.3-0xaa.7 (0.5) + 0x00000a| 0d | . | length: 13 0xab-0xab.7 (1) + 0x00000a| 32 33 30 39| 2309| value: "230913215110Z" 0xac-0xb8.7 (13) + 0x00000b|31 33 32 31 35 31 31 30 5a |13215110Z | + | | | [4]{}: object 0xb9-0xd9.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb9-0xb9.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb9.2-0xb9.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb9.3-0xb9.7 (0.5) + 0x00000b| 1f | . | length: 31 0xba-0xba.7 (1) + | | | constructed[0:1]: 0xbb-0xd9.7 (31) + | | | [0]{}: object 0xbb-0xd9.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xbb-0xbb.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xbb.2-0xbb.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xbb.3-0xbb.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbc-0xbc.7 (1) + | | | constructed[0:1]: 0xbd-0xd9.7 (29) + | | | [0]{}: object 0xbd-0xd9.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 1b | . | length: 27 0xbe-0xbe.7 (1) + | | | constructed[0:2]: 0xbf-0xd9.7 (27) + | | | [0]{}: object 0xbf-0xc3.7 (5) + 0x00000b| 06| .| class: "universal" (0) 0xbf-0xbf.1 (0.2) + 0x00000b| 06| .| form: "primitive" (0) 0xbf.2-0xbf.2 (0.1) + 0x00000b| 06| .| tag: "object_identifier" (0x6) 0xbf.3-0xbf.7 (0.5) + 0x00000c|03 |. | length: 3 0xc0-0xc0.7 (1) + | | | value[0:4]: 0xc1-0xc3.7 (3) + 0x00000c| 55 | U | [0]: 2 oid 0xc1-0xc1.7 (1) + 0x00000c| 55 | U | [1]: 5 oid 0xc1-0xc1.7 (1) + 0x00000c| 04 | . | [2]: 4 oid 0xc2-0xc2.7 (1) + 0x00000c| 03 | . | [3]: 3 oid 0xc3-0xc3.7 (1) + | | | [1]{}: object 0xc4-0xd9.7 (22) + 0x00000c| 0c | . | class: "universal" (0) 0xc4-0xc4.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc4.2-0xc4.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc4.3-0xc4.7 (0.5) + 0x00000c| 14 | . | length: 20 0xc5-0xc5.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69| Test Certi| value: "Test Certificate RSA" 0xc6-0xd9.7 (20) + 0x00000d|66 69 63 61 74 65 20 52 53 41 |ficate RSA | + | | | [5]{}: object 0xda-0x17b.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xda-0xda.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xda.2-0xda.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xda.3-0xda.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xdb-0xdc.7 (2) + | | | constructed[0:2]: 0xdd-0x17b.7 (159) + | | | [0]{}: object 0xdd-0xeb.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 0d | . | length: 13 0xde-0xde.7 (1) + | | | constructed[0:2]: 0xdf-0xeb.7 (13) + | | | [0]{}: object 0xdf-0xe9.7 (11) + 0x00000d| 06| .| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00000d| 06| .| form: "primitive" (0) 0xdf.2-0xdf.2 (0.1) + 0x00000d| 06| .| tag: "object_identifier" (0x6) 0xdf.3-0xdf.7 (0.5) + 0x00000e|09 |. | length: 9 0xe0-0xe0.7 (1) + | | | value[0:7]: 0xe1-0xe9.7 (9) + 0x00000e| 2a | * | [0]: 1 oid 0xe1-0xe1.7 (1) + 0x00000e| 2a | * | [1]: 2 oid 0xe1-0xe1.7 (1) + 0x00000e| 86 48 | .H | [2]: 840 oid 0xe2-0xe3.7 (2) + 0x00000e| 86 f7 0d | ... | [3]: 113549 oid 0xe4-0xe6.7 (3) + 0x00000e| 01 | . | [4]: 1 oid 0xe7-0xe7.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe9-0xe9.7 (1) + | | | [1]{}: object 0xea-0xeb.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xea-0xea.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xea.2-0xea.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xea.3-0xea.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xeb-0xeb.7 (1) + | | | value: null 0xec-NA (0) + | | | [1]{}: object 0xec-0x17b.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xec-0xec.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xec.2-0xec.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xec.3-0xec.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xed-0xee.7 (2) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|30 81 89 02 81 81 00 ac 35 2a 93 7f c5 4f 18 98|0.......5*...O..| value: raw bits 0xf0-0x17b.7 (140) + * |until 0x17b.7 (140) | | + | | | [1]{}: object 0x17c-0x18a.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x17c-0x17c.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x17c.2-0x17c.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x17c.3-0x17c.7 (0.5) + 0x000017| 0d | . | length: 13 0x17d-0x17d.7 (1) + | | | constructed[0:2]: 0x17e-0x18a.7 (13) + | | | [0]{}: object 0x17e-0x188.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x17e.3-0x17e.7 (0.5) + 0x000017| 09| .| length: 9 0x17f-0x17f.7 (1) + | | | value[0:7]: 0x180-0x188.7 (9) + 0x000018|2a |* | [0]: 1 oid 0x180-0x180.7 (1) + 0x000018|2a |* | [1]: 2 oid 0x180-0x180.7 (1) + 0x000018| 86 48 | .H | [2]: 840 oid 0x181-0x182.7 (2) + 0x000018| 86 f7 0d | ... | [3]: 113549 oid 0x183-0x185.7 (3) + 0x000018| 01 | . | [4]: 1 oid 0x186-0x186.7 (1) + 0x000018| 01 | . | [5]: 1 oid 0x187-0x187.7 (1) + 0x000018| 05 | . | [6]: 5 oid 0x188-0x188.7 (1) + | | | [1]{}: object 0x189-0x18a.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x189-0x189.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x189.2-0x189.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x189.3-0x189.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x18a-0x18a.7 (1) + | | | value: null 0x18b-NA (0) + | | | [2]{}: object 0x18b-0x20e.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x18b-0x18b.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x18b.2-0x18b.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x18b.3-0x18b.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x18c-0x18d.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x18e-0x18e.7 (1) + 0x000018| 67| g| value: raw bits 0x18f-0x20e.7 (128) + 0x000019|43 4c a8 a4 3e eb 1b 32 28 70 8b db eb fe f1 b3|CL..>..2(p......| + * |until 0x20e.7 (128) | | + | | | [2]{}: record 0x20f-0x2e0.7 (210) + 0x000020| 16| .| type: "handshake" (22) (valid) 0x20f-0x20f.7 (1) + 0x000021|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x210-0x211.7 (2) + 0x000021| 00 cd | .. | length: 205 0x212-0x213.7 (2) + | | | message{}: 0x214-0x2e0.7 (205) + 0x000021| 0c | . | type: "server_key_exchange" (12) 0x214-0x214.7 (1) + 0x000021| 00 00 c9 | ... | length: 201 0x215-0x217.7 (3) + | | | curve_params{}: 0x218-NA (0) + 0x000021| 03 | . | curve_type: 3 0x218-0x218.7 (1) + 0x000021| 00 17 | .. | named_curve: 23 0x219-0x21a.7 (2) + | | | public{}: 0x21b-NA (0) + 0x000021| 41 | A | length: 65 0x21b-0x21b.7 (1) + 0x000021| 04 97 e0 a1| ....| data: raw bits 0x21c-0x25c.7 (65) + 0x000022|4e d7 18 a0 e8 17 bf e1 a0 c1 ad 25 65 fd 35 94|N..........%e.5.| + * |until 0x25c.7 (65) | | + | | | signature_algorithm{}: 0x25d-NA (0) + 0x000025| 06 | . | hash: "sha512" (6) 0x25d-0x25d.7 (1) + 0x000025| 01 | . | signature: "rsa" (1) 0x25e-0x25e.7 (1) + 0x000025| 00| .| length: 128 0x25f-0x260.7 (2) + 0x000026|80 |. | + 0x000026| 4a 39 59 d3 db be 40 32 7a 44 06 e6 2a 2b fc| J9Y...@2zD..*+.| data: raw bits 0x261-0x2e0.7 (128) + 0x000027|5d c6 45 32 19 f0 56 b4 bf 60 77 a1 be de af fb|].E2..V..`w.....| + * |until 0x2e0.7 (128) | | + | | | [3]{}: record 0x2e1-0x2e9.7 (9) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2e1-0x2e1.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2e2-0x2e3.7 (2) + 0x00002e| 00 04 | .. | length: 4 0x2e4-0x2e5.7 (2) + | | | message{}: 0x2e6-0x2e9.7 (4) + 0x00002e| 0e | . | type: "server_hello_done" (14) 0x2e6-0x2e6.7 (1) + 0x00002e| 00 00 00 | ... | length: 0 0x2e7-0x2e9.7 (3) + | | | data: raw bits 0x2ea-NA (0) + | | | [4]{}: record 0x2ea-0x398.7 (175) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2ea-0x2ea.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2eb-0x2ec.7 (2) + 0x00002e| 00 aa | .. | length: 170 0x2ed-0x2ee.7 (2) + | | | message{}: 0x2ef-0x398.7 (170) + 0x00002e| 04| .| type: "new_session_ticket" (4) 0x2ef-0x2ef.7 (1) + 0x00002f|00 00 a6 |... | length: 166 0x2f0-0x2f2.7 (3) + 0x00002f| 00 00 01 2c | ..., | lifetime_hint: 300 0x2f3-0x2f6.7 (4) + 0x00002f| 00 a0 | .. | ticket_length: 160 0x2f7-0x2f8.7 (2) + 0x00002f| c0 b4 67 52 a5 ca da| ..gR...| ticket: raw bits 0x2f9-0x398.7 (160) + 0x000030|99 7a 28 d7 eb e7 a1 7e 31 ae 9f e5 9b f7 14 66|.z(....~1......f| + * |until 0x398.7 (160) | | + | | | [5]{}: record 0x399-0x39e.7 (6) + 0x000039| 14 | . | type: "change_cipher_spec" (20) (valid) 0x399-0x399.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x39a-0x39b.7 (2) + 0x000039| 00 01 | .. | length: 1 0x39c-0x39d.7 (2) + | | | message{}: 0x39e-0x39e.7 (1) + 0x000039| 01 | . | type: 1 0x39e-0x39e.7 (1) + | | | [6]{}: record 0x39f-0x3d4.7 (54) + 0x000039| 16| .| type: "handshake" (22) (valid) 0x39f-0x39f.7 (1) + 0x00003a|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x3a0-0x3a1.7 (2) + 0x00003a| 00 31 | .1 | length: 49 0x3a2-0x3a3.7 (2) + 0x00003a| b3 cd 57 39 69 f9 b7 b5 96 00 df 07| ..W9i.......| encrypted_data: raw bits 0x3a4-0x3d4.7 (49) + 0x00003b|81 c9 6c ea 2c 7c ed 16 29 ab 1b b8 55 09 75 a3|..l.,|..)...U.u.| + * |until 0x3d4.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 3b fa e7 10 24 77 49 b5 dc f1 1d 35| ;...$wI....5| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x3d5-0x851.7 (1149) + 0x00003d| 17 | . | type: "application_data" (23) (valid) 0x3d5-0x3d5.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d6-0x3d7.7 (2) + 0x00003d| 04 78 | .x | length: 1144 0x3d8-0x3d9.7 (2) + 0x00003d| b3 cd 57 39 69 f9| ..W9i.| encrypted_data: raw bits 0x3da-0x851.7 (1144) + 0x00003e|b7 b6 58 f6 d8 b0 cd c6 3c 49 fd e7 75 27 74 25|..X.....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 | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 9f| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|f3 da da fc 03 0e d2 cb 26 40 20 b5 ec b9 a1 8d|........&@ .....| + 0x000002|c9 70 a5 36 3d 5a a9 df f9 8b 0e |.p.6=Z..... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 11 | .. | cipher_suit: "TLS_ECDHE_RSA_WITH_RC4_128_SHA" (0xc011) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x20e.7 (456) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x20e.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 bf| ...| length: 447 0x4d-0x4f.7 (3) + 0x000005|00 01 bc |... | certificates_length: 444 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x20e.7 (444) + | | | [0]{}: certificate 0x53-0x20e.7 (444) + 0x000005| 00 01 b9 | ... | length: 441 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x20e.7 (441) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 b5 | ... | length: 437 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x20e.7 (437) + | | | [0]{}: object 0x5a-0x17b.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x5b-0x5d.7 (3) + | | | constructed[0:6]: 0x5e-0x17b.7 (286) + | | | [0]{}: object 0x5e-0x68.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5e-0x5e.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5e.2-0x5e.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5e.3-0x5e.7 (0.5) + 0x000005| 09| .| length: 9 0x5f-0x5f.7 (1) + 0x000006|00 f4 a7 2f d3 e8 fc 37 c4 |.../...7. | value: 17629111853558544324 0x60-0x68.7 (9) + | | | [1]{}: object 0x69-0x77.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x69-0x69.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x69.2-0x69.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x69.3-0x69.7 (0.5) + 0x000006| 0d | . | length: 13 0x6a-0x6a.7 (1) + | | | constructed[0:2]: 0x6b-0x77.7 (13) + | | | [0]{}: object 0x6b-0x75.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x6b-0x6b.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6b.2-0x6b.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6b.3-0x6b.7 (0.5) + 0x000006| 09 | . | length: 9 0x6c-0x6c.7 (1) + | | | value[0:7]: 0x6d-0x75.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6d-0x6d.7 (1) + 0x000006| 86 48| .H| [2]: 840 oid 0x6e-0x6f.7 (2) + 0x000007|86 f7 0d |... | [3]: 113549 oid 0x70-0x72.7 (3) + 0x000007| 01 | . | [4]: 1 oid 0x73-0x73.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x74-0x74.7 (1) + 0x000007| 05 | . | [6]: 5 oid 0x75-0x75.7 (1) + | | | [1]{}: object 0x76-0x77.7 (2) + 0x000007| 05 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 05 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 05 | . | tag: "null" (0x5) 0x76.3-0x76.7 (0.5) + 0x000007| 00 | . | length: "indefinite" (0) 0x77-0x77.7 (1) + | | | value: null 0x78-NA (0) + | | | [2]{}: object 0x78-0x98.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x78-0x78.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x78.2-0x78.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x78.3-0x78.7 (0.5) + 0x000007| 1f | . | length: 31 0x79-0x79.7 (1) + | | | constructed[0:1]: 0x7a-0x98.7 (31) + | | | [0]{}: object 0x7a-0x98.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x7a-0x7a.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x7a.2-0x7a.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x7a.3-0x7a.7 (0.5) + 0x000007| 1d | . | length: 29 0x7b-0x7b.7 (1) + | | | constructed[0:1]: 0x7c-0x98.7 (29) + | | | [0]{}: object 0x7c-0x98.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x7c.2-0x7c.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x7c.3-0x7c.7 (0.5) + 0x000007| 1b | . | length: 27 0x7d-0x7d.7 (1) + | | | constructed[0:2]: 0x7e-0x98.7 (27) + | | | [0]{}: object 0x7e-0x82.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x7e.3-0x7e.7 (0.5) + 0x000007| 03| .| length: 3 0x7f-0x7f.7 (1) + | | | value[0:4]: 0x80-0x82.7 (3) + 0x000008|55 |U | [0]: 2 oid 0x80-0x80.7 (1) + 0x000008|55 |U | [1]: 5 oid 0x80-0x80.7 (1) + 0x000008| 04 | . | [2]: 4 oid 0x81-0x81.7 (1) + 0x000008| 03 | . | [3]: 3 oid 0x82-0x82.7 (1) + | | | [1]{}: object 0x83-0x98.7 (22) + 0x000008| 0c | . | class: "universal" (0) 0x83-0x83.1 (0.2) + 0x000008| 0c | . | form: "primitive" (0) 0x83.2-0x83.2 (0.1) + 0x000008| 0c | . | tag: "utf8_string" (0xc) 0x83.3-0x83.7 (0.5) + 0x000008| 14 | . | length: 20 0x84-0x84.7 (1) + 0x000008| 54 65 73 74 20 43 65 72 74 69 66| Test Certif| value: "Test Certificate RSA" 0x85-0x98.7 (20) + 0x000009|69 63 61 74 65 20 52 53 41 |icate RSA | + | | | [3]{}: object 0x99-0xb8.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x99-0x99.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x99.2-0x99.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x99.3-0x99.7 (0.5) + 0x000009| 1e | . | length: 30 0x9a-0x9a.7 (1) + | | | constructed[0:2]: 0x9b-0xb8.7 (30) + | | | [0]{}: object 0x9b-0xa9.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x9b-0x9b.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x9b.2-0x9b.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x9b.3-0x9b.7 (0.5) + 0x000009| 0d | . | length: 13 0x9c-0x9c.7 (1) + 0x000009| 31 33 30| 130| value: "130915215110Z" 0x9d-0xa9.7 (13) + 0x00000a|39 31 35 32 31 35 31 31 30 5a |915215110Z | + | | | [1]{}: object 0xaa-0xb8.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xaa-0xaa.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xaa.2-0xaa.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xaa.3-0xaa.7 (0.5) + 0x00000a| 0d | . | length: 13 0xab-0xab.7 (1) + 0x00000a| 32 33 30 39| 2309| value: "230913215110Z" 0xac-0xb8.7 (13) + 0x00000b|31 33 32 31 35 31 31 30 5a |13215110Z | + | | | [4]{}: object 0xb9-0xd9.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb9-0xb9.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb9.2-0xb9.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb9.3-0xb9.7 (0.5) + 0x00000b| 1f | . | length: 31 0xba-0xba.7 (1) + | | | constructed[0:1]: 0xbb-0xd9.7 (31) + | | | [0]{}: object 0xbb-0xd9.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xbb-0xbb.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xbb.2-0xbb.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xbb.3-0xbb.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbc-0xbc.7 (1) + | | | constructed[0:1]: 0xbd-0xd9.7 (29) + | | | [0]{}: object 0xbd-0xd9.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 1b | . | length: 27 0xbe-0xbe.7 (1) + | | | constructed[0:2]: 0xbf-0xd9.7 (27) + | | | [0]{}: object 0xbf-0xc3.7 (5) + 0x00000b| 06| .| class: "universal" (0) 0xbf-0xbf.1 (0.2) + 0x00000b| 06| .| form: "primitive" (0) 0xbf.2-0xbf.2 (0.1) + 0x00000b| 06| .| tag: "object_identifier" (0x6) 0xbf.3-0xbf.7 (0.5) + 0x00000c|03 |. | length: 3 0xc0-0xc0.7 (1) + | | | value[0:4]: 0xc1-0xc3.7 (3) + 0x00000c| 55 | U | [0]: 2 oid 0xc1-0xc1.7 (1) + 0x00000c| 55 | U | [1]: 5 oid 0xc1-0xc1.7 (1) + 0x00000c| 04 | . | [2]: 4 oid 0xc2-0xc2.7 (1) + 0x00000c| 03 | . | [3]: 3 oid 0xc3-0xc3.7 (1) + | | | [1]{}: object 0xc4-0xd9.7 (22) + 0x00000c| 0c | . | class: "universal" (0) 0xc4-0xc4.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc4.2-0xc4.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc4.3-0xc4.7 (0.5) + 0x00000c| 14 | . | length: 20 0xc5-0xc5.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69| Test Certi| value: "Test Certificate RSA" 0xc6-0xd9.7 (20) + 0x00000d|66 69 63 61 74 65 20 52 53 41 |ficate RSA | + | | | [5]{}: object 0xda-0x17b.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xda-0xda.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xda.2-0xda.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xda.3-0xda.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xdb-0xdc.7 (2) + | | | constructed[0:2]: 0xdd-0x17b.7 (159) + | | | [0]{}: object 0xdd-0xeb.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 0d | . | length: 13 0xde-0xde.7 (1) + | | | constructed[0:2]: 0xdf-0xeb.7 (13) + | | | [0]{}: object 0xdf-0xe9.7 (11) + 0x00000d| 06| .| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00000d| 06| .| form: "primitive" (0) 0xdf.2-0xdf.2 (0.1) + 0x00000d| 06| .| tag: "object_identifier" (0x6) 0xdf.3-0xdf.7 (0.5) + 0x00000e|09 |. | length: 9 0xe0-0xe0.7 (1) + | | | value[0:7]: 0xe1-0xe9.7 (9) + 0x00000e| 2a | * | [0]: 1 oid 0xe1-0xe1.7 (1) + 0x00000e| 2a | * | [1]: 2 oid 0xe1-0xe1.7 (1) + 0x00000e| 86 48 | .H | [2]: 840 oid 0xe2-0xe3.7 (2) + 0x00000e| 86 f7 0d | ... | [3]: 113549 oid 0xe4-0xe6.7 (3) + 0x00000e| 01 | . | [4]: 1 oid 0xe7-0xe7.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe9-0xe9.7 (1) + | | | [1]{}: object 0xea-0xeb.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xea-0xea.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xea.2-0xea.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xea.3-0xea.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xeb-0xeb.7 (1) + | | | value: null 0xec-NA (0) + | | | [1]{}: object 0xec-0x17b.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xec-0xec.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xec.2-0xec.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xec.3-0xec.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xed-0xee.7 (2) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|30 81 89 02 81 81 00 ac 35 2a 93 7f c5 4f 18 98|0.......5*...O..| value: raw bits 0xf0-0x17b.7 (140) + * |until 0x17b.7 (140) | | + | | | [1]{}: object 0x17c-0x18a.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x17c-0x17c.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x17c.2-0x17c.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x17c.3-0x17c.7 (0.5) + 0x000017| 0d | . | length: 13 0x17d-0x17d.7 (1) + | | | constructed[0:2]: 0x17e-0x18a.7 (13) + | | | [0]{}: object 0x17e-0x188.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x17e-0x17e.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x17e.2-0x17e.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x17e.3-0x17e.7 (0.5) + 0x000017| 09| .| length: 9 0x17f-0x17f.7 (1) + | | | value[0:7]: 0x180-0x188.7 (9) + 0x000018|2a |* | [0]: 1 oid 0x180-0x180.7 (1) + 0x000018|2a |* | [1]: 2 oid 0x180-0x180.7 (1) + 0x000018| 86 48 | .H | [2]: 840 oid 0x181-0x182.7 (2) + 0x000018| 86 f7 0d | ... | [3]: 113549 oid 0x183-0x185.7 (3) + 0x000018| 01 | . | [4]: 1 oid 0x186-0x186.7 (1) + 0x000018| 01 | . | [5]: 1 oid 0x187-0x187.7 (1) + 0x000018| 05 | . | [6]: 5 oid 0x188-0x188.7 (1) + | | | [1]{}: object 0x189-0x18a.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x189-0x189.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x189.2-0x189.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x189.3-0x189.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x18a-0x18a.7 (1) + | | | value: null 0x18b-NA (0) + | | | [2]{}: object 0x18b-0x20e.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x18b-0x18b.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x18b.2-0x18b.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x18b.3-0x18b.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x18c-0x18d.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x18e-0x18e.7 (1) + 0x000018| 67| g| value: raw bits 0x18f-0x20e.7 (128) + 0x000019|43 4c a8 a4 3e eb 1b 32 28 70 8b db eb fe f1 b3|CL..>..2(p......| + * |until 0x20e.7 (128) | | + | | | [2]{}: record 0x20f-0x2e0.7 (210) + 0x000020| 16| .| type: "handshake" (22) (valid) 0x20f-0x20f.7 (1) + 0x000021|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x210-0x211.7 (2) + 0x000021| 00 cd | .. | length: 205 0x212-0x213.7 (2) + | | | message{}: 0x214-0x2e0.7 (205) + 0x000021| 0c | . | type: "server_key_exchange" (12) 0x214-0x214.7 (1) + 0x000021| 00 00 c9 | ... | length: 201 0x215-0x217.7 (3) + | | | curve_params{}: 0x218-NA (0) + 0x000021| 03 | . | curve_type: 3 0x218-0x218.7 (1) + 0x000021| 00 17 | .. | named_curve: 23 0x219-0x21a.7 (2) + | | | public{}: 0x21b-NA (0) + 0x000021| 41 | A | length: 65 0x21b-0x21b.7 (1) + 0x000021| 04 97 e0 a1| ....| data: raw bits 0x21c-0x25c.7 (65) + 0x000022|4e d7 18 a0 e8 17 bf e1 a0 c1 ad 25 65 fd 35 94|N..........%e.5.| + * |until 0x25c.7 (65) | | + | | | signature_algorithm{}: 0x25d-NA (0) + 0x000025| 06 | . | hash: "sha512" (6) 0x25d-0x25d.7 (1) + 0x000025| 01 | . | signature: "rsa" (1) 0x25e-0x25e.7 (1) + 0x000025| 00| .| length: 128 0x25f-0x260.7 (2) + 0x000026|80 |. | + 0x000026| 33 a9 db 4c 1d 74 03 6d 4a 0a 78 34 24 c2 5b| 3..L.t.mJ.x4$.[| data: raw bits 0x261-0x2e0.7 (128) + 0x000027|1b 6d 68 ed 5e eb 93 4a 39 f0 94 cb f9 95 0c 28|.mh.^..J9......(| + * |until 0x2e0.7 (128) | | + | | | [3]{}: record 0x2e1-0x2e9.7 (9) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2e1-0x2e1.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2e2-0x2e3.7 (2) + 0x00002e| 00 04 | .. | length: 4 0x2e4-0x2e5.7 (2) + | | | message{}: 0x2e6-0x2e9.7 (4) + 0x00002e| 0e | . | type: "server_hello_done" (14) 0x2e6-0x2e6.7 (1) + 0x00002e| 00 00 00 | ... | length: 0 0x2e7-0x2e9.7 (3) + | | | data: raw bits 0x2ea-NA (0) + | | | [4]{}: record 0x2ea-0x398.7 (175) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2ea-0x2ea.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2eb-0x2ec.7 (2) + 0x00002e| 00 aa | .. | length: 170 0x2ed-0x2ee.7 (2) + | | | message{}: 0x2ef-0x398.7 (170) + 0x00002e| 04| .| type: "new_session_ticket" (4) 0x2ef-0x2ef.7 (1) + 0x00002f|00 00 a6 |... | length: 166 0x2f0-0x2f2.7 (3) + 0x00002f| 00 00 01 2c | ..., | lifetime_hint: 300 0x2f3-0x2f6.7 (4) + 0x00002f| 00 a0 | .. | ticket_length: 160 0x2f7-0x2f8.7 (2) + 0x00002f| c0 b4 67 52 a5 ca da| ..gR...| ticket: raw bits 0x2f9-0x398.7 (160) + 0x000030|99 7a 28 d7 eb e7 a1 7e 31 d4 2a 16 26 51 5e ce|.z(....~1.*.&Q^.| + * |until 0x398.7 (160) | | + | | | [5]{}: record 0x399-0x39e.7 (6) + 0x000039| 14 | . | type: "change_cipher_spec" (20) (valid) 0x399-0x399.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x39a-0x39b.7 (2) + 0x000039| 00 01 | .. | length: 1 0x39c-0x39d.7 (2) + | | | message{}: 0x39e-0x39e.7 (1) + 0x000039| 01 | . | type: 1 0x39e-0x39e.7 (1) + | | | [6]{}: record 0x39f-0x3d0.7 (50) + 0x000039| 16| .| type: "handshake" (22) (valid) 0x39f-0x39f.7 (1) + 0x00003a|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x3a0-0x3a1.7 (2) + 0x00003a| 00 2d | .- | length: 45 0x3a2-0x3a3.7 (2) + 0x00003a| ac b2 54 19 99 6c 1a 94 f5 57 5a 9d| ..T..l...WZ.| encrypted_data: raw bits 0x3a4-0x3d0.7 (45) + 0x00003b|47 5b 66 d8 1d 2a 60 95 14 4f 11 07 39 17 c6 6c|G[f..*`..O..9..l| + * |until 0x3d0.7 (45) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 7b ea b5 bc 26 8a a0 5e 99 51 3f 1a| {...&..^.Q?.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x3d1-0x84b.7 (1147) + 0x00003d| 17 | . | type: "application_data" (23) (valid) 0x3d1-0x3d1.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d2-0x3d3.7 (2) + 0x00003d| 04 76 | .v | length: 1142 0x3d4-0x3d5.7 (2) + 0x00003d| 22 3f 33 99 73 74 5f 92 94 59| "?3.st_..Y| encrypted_data: raw bits 0x3d6-0x84b.7 (1142) + 0x00003e|5d 8f 0a 34 56 98 3a 97 bc 16 aa 23 03 4a 57 a6|]..4V.:....#.JW.| + * |until 0x84b.7 (end) (1142) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x112c.7 (4397) + * |until 0x112c.7 (end) (4397) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x112c.7 (4397) + * |until 0x112c.7 (end) (4397) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..90b6411dd6d955cdde78b4f16a6b991644ef0b7d GIT binary patch literal 3365 zcma);2Uru?+Q-jiLX{4N7Tgd7K>-s=1ePw5B1=FKDJzJf2!c|g5mcJeiw(h&C@3HT zQe>k7B1OQ8G(`jh(p)Jv5LQ=(J0oO2{I2&tcb@0XnVILz@BH8Yyywk4xpOTS1F(R1 z%+CWb!n;65)G=KmGz(5>G07;;NXch%TK;Vb?G5jze#E0R7 zu@Dx6g<%NBz%T~FU@$NQA@h-+#bc>k3VLX!#0*}hi_Z7kQv^wfTb}>PEi48}1PLng zjurG#2BG$+3^~Yi{?q?=3kH_Rv!)Afb+o3Nu64SbXa2}eMS}V;y{=UwiBcvd{UP@K z@1P!W7B>$eS^r}enlzdY4$1MrG5|3F!~jqzDGmxI#eT#Hflh_{A64seW=TT)0;>~j z9-Ckxk}~-hk`h0>1q+MdoPEO?g!R5*i~zp?x;Mj@KwWRO*@Cn}R+OwuG9>HkkoC!A zlDn*^4tlA(c=^8|_K_qOm&8E)d~0H{fC%pZ*uuDu%MRJ$c)KCfzs5=%u^Gm@l5T~U zynfnVJb%=(&%0bzj&bw|dj;u5R(gBYT$`l$Do5JMcOe5d^F!2-O2U_yI#v}OeI_^a zSt7+{Mz!e;Zqk+_g$nl!=|@gD-N;yyC>#Jtei$;i>px+#+&Z~k?W0$6dEtsx{>|2b z!CAtR!n5yg1{KljcjOq6Hiz@)HE?{c=)r^5$Rpe@qqSv5mnF0;s_zXhb4@GM2hFX4 zYd)Ab8V4-bjMS<>-K!dJt~Q_;_En#58{voe53pjqqC&={b;a~UYoghMR}%}nP>{rm z2rB(=bv1-=&_H(K5Yr!JG?o06fz;Jp_dj(tf$n5fke>tqJG`-RLAVDup@xlrpOg1i z4%(kn%n`d+JzeE7YUZ~qIXB8U;Lg3PYb4}6Wr#3zsm?!}SO~1mvaXvlHOo$(H|{xn z*zZ$V!B^cIgG93pEKzZe&vhJjZ3n%*LaL|bN|fW646@Ys3IqnuI(HNsI=rg8JBQ(j z*V&oYsoAP<`DtoXa@3m(xy;bpM)js++lLeG61t0Kbc{^A<=Q4ZbGhqz#;GBtjRqA! zY6=uIW975Fj2CueP${w-`(xxF|9OQUGM+#)E<)OM0diXt#803E@vOH?adw1Tt z^Cqd2eBIrG$2~W6oG^C3VPtjrU`4}bFQ($DF5g-Xu1~*R+%D7EsY}f4Z4Kredqw1i zL-<8NAT(?VR~^TQcHHp++}hcBF)} zhD3X0p0RbRWVW+L!hRFWwr4g#G_q2LeYUYVt?$TcN-zT&_TdR=Kx{{Y3a||d>reqo zb36eHuPr#oo+6}(3cy_dN5CXfs1t|)Y|_r_**Ay>bn6w{ysHdbSp{>qlBjm7X6)>~ z=>6U)v2Q9Z4W^%L4fNAg>#ig0+xW!C_#^G?NUTs3;eFTO`Z~U#1dsOo&<&i*ZV&C> z#cPd+;_&QN1D7Xw`;xV755^t%Uv>(ApdAgBui@s@?zbAXQ?b=D+@Jkxg>%AFYMY^q zmyC3>%yI7VmfAxl$1k-xG&**XMNP&miYHfByG_2<AnYA-52TMh~-tDY^ zX!9vKag){8m62JKIS-sa8rE+n@0$8rAVpCWR9~f+S}ID}my$A;npLivo~s=gkmP>T zo`}29RT1G?K-?#0f00p~D*b2SWzYQ5NcFMVZSlXC#;JAWZRrf$oNCT?iqsa3mp^vg z@CbuN*P=yeLuIjjjr0Q5U1IpD8MgN?F|{2Iw#ju92~JPM3-K0auJU7@Z<-YZg@go` zRT@5U@d+t3q_Z}LScp2k642rXXdd59aoiH2WRpXwev=fFzgAuJvHRMmj?pDyX}1TA z<%ZXAQqB$Nrf_9?fYsFi44y7wW>wdBHDRrHn!HRu5hIq*RJQPyWi)sa@?=xyrv#pT^dzl1*?WOCt=lp)7_UK~ zQ$qSgQUr!yl#W)MT`BCL*wdi><>{zXR^{5gvSCg^n(F;4qC#%_?$JKKdmnzcb#$+E zY{E0U^MlRF7o`&({TAGu{l0JaHJ9Qv2Tq7 | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| d1| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|cd 8d 3e 2f 51 c7 a4 40 cc 4a 23 10 45 cb 8d bf|..>/Q..@.J#.E...| + 0x000002|cd 29 88 36 af 12 13 f1 81 f0 5c |.).6......\ | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 03 | .. | cipher_suit: "TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA" (0xc003) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x1cf.7 (9) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 04 | .. | length: 4 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x1cf.7 (4) + 0x00001c| 0e | . | type: "server_hello_done" (14) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 00| ...| length: 0 0x1cd-0x1cf.7 (3) + | | | data: raw bits 0x1d0-NA (0) + | | | [3]{}: record 0x1d0-0x27e.7 (175) + 0x00001d|16 |. | type: "handshake" (22) (valid) 0x1d0-0x1d0.7 (1) + 0x00001d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1d1-0x1d2.7 (2) + 0x00001d| 00 aa | .. | length: 170 0x1d3-0x1d4.7 (2) + | | | message{}: 0x1d5-0x27e.7 (170) + 0x00001d| 04 | . | type: "new_session_ticket" (4) 0x1d5-0x1d5.7 (1) + 0x00001d| 00 00 a6 | ... | length: 166 0x1d6-0x1d8.7 (3) + 0x00001d| 00 00 01 2c | ..., | lifetime_hint: 300 0x1d9-0x1dc.7 (4) + 0x00001d| 00 a0 | .. | ticket_length: 160 0x1dd-0x1de.7 (2) + 0x00001d| 6f| o| ticket: raw bits 0x1df-0x27e.7 (160) + 0x00001e|7d e1 6c 67 99 7a b0 7e f2 61 6e a4 37 9e 3d 8b|}.lg.z.~.an.7.=.| + * |until 0x27e.7 (160) | | + | | | [4]{}: record 0x27f-0x284.7 (6) + 0x000027| 14| .| type: "change_cipher_spec" (20) (valid) 0x27f-0x27f.7 (1) + 0x000028|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x280-0x281.7 (2) + 0x000028| 00 01 | .. | length: 1 0x282-0x283.7 (2) + | | | message{}: 0x284-0x284.7 (1) + 0x000028| 01 | . | type: 1 0x284-0x284.7 (1) + | | | [5]{}: record 0x285-0x2c1.7 (61) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x285-0x285.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x286-0x287.7 (2) + 0x000028| 00 38 | .8 | length: 56 0x288-0x289.7 (2) + 0x000028| b0 e2 87 12 47 70| ....Gp| encrypted_data: raw bits 0x28a-0x2c1.7 (56) + 0x000029|cd 0f e8 58 1c c9 6a d6 c1 c8 e3 1c ae fa f6 46|...X..j........F| + * |until 0x2c1.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 20 b6 85 8e 2f a4 f2 8e d1 15 e7 be| .../.......| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2c2-0x74e.7 (1165) + 0x00002c| 17 | . | type: "application_data" (23) (valid) 0x2c2-0x2c2.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c3-0x2c4.7 (2) + 0x00002c| 04 88 | .. | length: 1160 0x2c5-0x2c6.7 (2) + 0x00002c| 68 b6 97 b7 22 7b 33 c0 1b| h..."{3..| encrypted_data: raw bits 0x2c7-0x74e.7 (1160) + 0x00002d|cf 61 b9 39 cd 9c a6 fe bc 88 45 4a 25 3f 9d 97|.a.9......EJ%?..| + * |until 0x74e.7 (end) (1160) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x114c.7 (4429) + * |until 0x114c.7 (end) (4429) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x114c.7 (4429) + * |until 0x114c.7 (end) (4429) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..67ce6f2bd0e0f45d88099e06065d5c69b168dae9 GIT binary patch literal 3405 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 wf3#UOYN2RY.| encrypted_data: raw bits 0x11c-0x15b.7 (64) + 0x000012|4f a8 8f 71 7c 3b d2 2a 67 d7 4b d2 c2 d4 e0 01|O..q|;.*g.K.....| + * |until 0x15b.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 27 21 44 49 9d db e6 a6 76 8d 66 12| '!DI....v.f.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x15c-0x1a0.7 (69) + 0x000015| 17 | . | type: "application_data" (23) (valid) 0x15c-0x15c.7 (1) + 0x000015| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x15d-0x15e.7 (2) + 0x000015| 00| .| length: 64 0x15f-0x160.7 (2) + 0x000016|40 |@ | + 0x000016| 37 71 63 c8 67 0d c0 cb 22 b5 40 42 67 3f 68| 7qc.g...".@Bg?h| encrypted_data: raw bits 0x161-0x1a0.7 (64) + 0x000017|32 9b b9 9b 93 a4 92 3d 23 ee b0 a8 73 a2 a1 90|2......=#...s...| + * |until 0x1a0.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x1a1-0x1d5.7 (53) + 0x00001a| 15 | . | type: "alert" (21) (valid) 0x1a1-0x1a1.7 (1) + 0x00001a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1a2-0x1a3.7 (2) + 0x00001a| 00 30 | .0 | length: 48 0x1a4-0x1a5.7 (2) + 0x00001a| 36 8c 8e ab 50 6a a1 da 92 df| 6...Pj....| encrypted_data: raw bits 0x1a6-0x1d5.7 (48) + 0x00001b|05 b9 ac d0 05 95 1d 01 b8 a3 fd f0 23 ac 26 6c|............#.&l| + * |until 0x1d5.7 (end) (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd4d-NA (0) + | | | ip: "127.0.0.1" 0xd4d-NA (0) + | | | port: 4431 0xd4d-NA (0) + | | | has_start: true 0xd4d-NA (0) + | | | has_end: true 0xd4d-NA (0) + | | | skipped_bytes: 0 0xd4d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x75e.7 (1887) + | | | records[0:7]: 0x0-0x75e.7 (1887) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 60| `| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|83 df f0 df 33 1b a8 01 78 02 3b 00 84 21 e7 fa|....3...x.;..!..| + 0x000002|b1 ee 0d 87 d7 fd 6f ad 80 71 10 |......o..q. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 04 | .. | cipher_suit: "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA" (0xc004) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x1cf.7 (9) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 04 | .. | length: 4 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x1cf.7 (4) + 0x00001c| 0e | . | type: "server_hello_done" (14) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 00| ...| length: 0 0x1cd-0x1cf.7 (3) + | | | data: raw bits 0x1d0-NA (0) + | | | [3]{}: record 0x1d0-0x27e.7 (175) + 0x00001d|16 |. | type: "handshake" (22) (valid) 0x1d0-0x1d0.7 (1) + 0x00001d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1d1-0x1d2.7 (2) + 0x00001d| 00 aa | .. | length: 170 0x1d3-0x1d4.7 (2) + | | | message{}: 0x1d5-0x27e.7 (170) + 0x00001d| 04 | . | type: "new_session_ticket" (4) 0x1d5-0x1d5.7 (1) + 0x00001d| 00 00 a6 | ... | length: 166 0x1d6-0x1d8.7 (3) + 0x00001d| 00 00 01 2c | ..., | lifetime_hint: 300 0x1d9-0x1dc.7 (4) + 0x00001d| 00 a0 | .. | ticket_length: 160 0x1dd-0x1de.7 (2) + 0x00001d| 6f| o| ticket: raw bits 0x1df-0x27e.7 (160) + 0x00001e|7d e1 6c 67 99 7a b0 7e f2 61 6e a4 37 9e 3d cc|}.lg.z.~.an.7.=.| + * |until 0x27e.7 (160) | | + | | | [4]{}: record 0x27f-0x284.7 (6) + 0x000027| 14| .| type: "change_cipher_spec" (20) (valid) 0x27f-0x27f.7 (1) + 0x000028|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x280-0x281.7 (2) + 0x000028| 00 01 | .. | length: 1 0x282-0x283.7 (2) + | | | message{}: 0x284-0x284.7 (1) + 0x000028| 01 | . | type: 1 0x284-0x284.7 (1) + | | | [5]{}: record 0x285-0x2c9.7 (69) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x285-0x285.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x286-0x287.7 (2) + 0x000028| 00 40 | .@ | length: 64 0x288-0x289.7 (2) + 0x000028| 95 f8 ae 1a e0 27| .....'| encrypted_data: raw bits 0x28a-0x2c9.7 (64) + 0x000029|92 dc 3e 64 b9 21 1d 74 e9 f6 93 0a 87 c9 d2 08|..>d.!.t........| + * |until 0x2c9.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| a8 a2 cb de 40 11 e2 bf 0c 52 23 1e| ....@....R#.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2ca-0x75e.7 (1173) + 0x00002c| 17 | . | type: "application_data" (23) (valid) 0x2ca-0x2ca.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2cb-0x2cc.7 (2) + 0x00002c| 04 90 | .. | length: 1168 0x2cd-0x2ce.7 (2) + 0x00002c| 73| s| encrypted_data: raw bits 0x2cf-0x75e.7 (1168) + 0x00002d|89 fd 81 af 9c 74 8c c7 18 be e2 d6 a8 2d ca 14|.....t.......-..| + * |until 0x75e.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1146.7 (4423) + * |until 0x1146.7 (end) (4423) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1146.7 (4423) + * |until 0x1146.7 (end) (4423) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256.pcap b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..ee0805f3b7e3b4eb02768e35a2f9b354200da5c2 GIT binary patch literal 3485 zcma);2|QG5AIG0Fb4&=C28~ckWGQA0g~pg{tr~mjUVE0IBwLHClu601F6uH3aY@Q@ zqm*Tk=vEU^vV=N<=lB0T|L6alw))a641j^~ z5C{P17hWJ|>RebLe^oxv0UbyD^B4dS8o3pC2B*Td4js(mn{P3`=-am3QtL~67s->U8dPr-xIl3rT_ zxT+A46F^ATf18CSjiw`qIqZ%24`3-_Q6cB~b)_ubDm49P*}m zr)P-5pt?p=t?DAPo!1YrL-yE+XJp@XJCp0tn~gIe9Lv;y-O+uG8ee6Turu@7N1sK% znOU!`b_z}>+QYqgbl16_ zriVB|L7gZ-+W7Ct?KOb2KjOt+pYunGkB+(rNvd9kWL=?}ldlnI@n~tn6hPidrf|8Y|@-9dR zUI-Z<$vvq|JX*UsaH-PcQ9=&k;f@MPbqwr_N9c1 z-xbt5pDGN^)b#g%Civ5u!^{uf{KU1AS$5o?t~ajbd_FKBf6Otm`*V&@Q`JbK+?~LN zq2)q1V~{^+Aaxa^GBI0MhlFl^t4(_yo$QT1sGIzV@7&Z|g1Bk@Yh0B{GR4i)xxw@}!(Y2N6AOfw4=hWTgPL8loN z26JkDa}IGKJTuK&<5Cc&&Gdnx?p1XvhSZcekMoRWh zeev-AZnvaVO|wmpnHX7}^o_&Arq+KL>K+PLaf6t1Iull6G-lZgl z;Z90X-npjBFOf|iqEf7Hyknll7ir`bU$0SjdZJsPeJf{h<{af!veFxROxAR>x>)&# zj8{`L!z=c?u3TN|J=8X%rhA{GR8dNl^YK%n`tVtHRUX8VLdjV7L_!CNU34mHg3)M~ zJ@A$lP8w!&U*_@qHf*cO8gumiI(aGJd zewuVW+vhSUvFZei+_63Fv-`>qX)86NkL;@UQio4WJ|BwhNWLB$)YLdxY|z%m=a97u zc%u`Q$(9Eg28t=k0gBH8(sy`v;ixuiI+h2GBrfi3)i=TYtXu2lJL4TCZP3q~I0`2f zOBC*-CB{2;uXUxr!gpylNtcyh+#A!=Y8J`0O-Ze`^pp`(Bi@MEwoAOxt;y6X`F`|+ zcXH)9L%r4|In%pgFPrDeV-0bkQ*_MEcKH)oPYVhzj(vi)$ahi{%*uW>jiZbmR{wN8 zE}`a8nNE+tLAdn6EiwylGJB46mF{VvT#jjUOO)~N@G_`R-6P)?aOrO3DoJ0mbESuI znfJE(*pG!7I{eH_p9RWm+eH}{mU^>_w^z2Fh^Q*5YxR58w&z%IV}~ibs5{6rhYiR3 zI=tL68kp({yeuP%+6$hYJ^Q$|Tu$Fv<8hg@DHiLpY$g@ToXLkR($C9n zF#F5Ta{XXQQGaM|fg$hH#~3~?Nh((BVYI`eNCSNeJ*t6VI4x$DVdfutuuw%CS~~IZ zVe++Ub7}22hAgJ3A}m^HCvHS*-Dq&;=q(m!+hxj?4vP5z7H9Ix!q*NPR$@hBT%zoG zcZfQJ-%2Y>msRY0eqX21Rz4PUfBVgaX&MO=v_tm?f1+5H!S-Ld(LdvIZ`z%1kz=-W zE*nyCt+x`@cj}iDe*nK&cbswzV;$w#ndeVmA6U{jIbyVRlbJ-{RIxKbBlv*> zEC+FfjqbazgUQ(r{6N^~<~lG-C)-jYQW^&HzB*?c-H#ZIdXzE97c#yzOG}B_W{F3- z_&?wI-!Tp&Ff@>z;IPWntd3|QW1bGlNFt(R-}gI#EV2{OzqU#${Hox#qqsa=#46AK z%O)4Ykp_3%iruV3l6Rv9t~NMj(QM2&W!-1XT0D%+$CxI6k=eQ>`iL9*bxU2MkE<{l eL?1u{5rUjhAyl4F$Xqg#=vZrHcQ~mAz`p?MGyv)V literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256.pcap.fqtest new file mode 100644 index 00000000..83449c78 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256.pcap.fqtest @@ -0,0 +1,496 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd9d-NA (0) + | | | client{}: 0xd9d-NA (0) + | | | ip: "127.0.0.1" 0xd9d-NA (0) + | | | port: 42425 0xd9d-NA (0) + | | | has_start: true 0xd9d-NA (0) + | | | has_end: false 0xd9d-NA (0) + | | | skipped_bytes: 0 0xd9d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x205.7 (518) + | | | records[0:6]: 0x0-0x205.7 (518) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 7c| || random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|21 0d 4a 2d ea 1d 32 11 66 90 62 b0 3d 26 b4 61|!.J-..2.f.b.=&.a| + 0x000002|ff f3 40 c6 83 9f b4 7d 7b 23 e8 |..@....}{#. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 25| .%| [0]: "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256" (0xc025) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0x110.7 (107) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 66 | .f | length: 102 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0x110.7 (102) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 62 | ..b | length: 98 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 61| a| length: 97 0xaf-0xaf.7 (1) + 0x00000b|04 38 06 29 7b ae 17 e9 07 97 86 fc ae 9e f9 d6|.8.){...........| data: raw bits 0xb0-0x110.7 (97) + * |until 0x110.7 (97) | | + | | | [2]{}: record 0x111-0x116.7 (6) + 0x000011| 14 | . | type: "change_cipher_spec" (20) (valid) 0x111-0x111.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x112-0x113.7 (2) + 0x000011| 00 01 | .. | length: 1 0x114-0x115.7 (2) + | | | message{}: 0x116-0x116.7 (1) + 0x000011| 01 | . | type: 1 0x116-0x116.7 (1) + | | | [3]{}: record 0x117-0x16b.7 (85) + 0x000011| 16 | . | type: "handshake" (22) (valid) 0x117-0x117.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x118-0x119.7 (2) + 0x000011| 00 50 | .P | length: 80 0x11a-0x11b.7 (2) + 0x000011| 69 b6 76 13| i.v.| encrypted_data: raw bits 0x11c-0x16b.7 (80) + 0x000012|99 2a a2 ef d0 74 e6 be 57 63 74 1b ec 28 29 c8|.*...t..Wct..().| + * |until 0x16b.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 7c be ee 66 35 d8 6c cd d9 7c f1 9b| |..f5.l..|..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x16c-0x1c0.7 (85) + 0x000016| 17 | . | type: "application_data" (23) (valid) 0x16c-0x16c.7 (1) + 0x000016| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x16d-0x16e.7 (2) + 0x000016| 00| .| length: 80 0x16f-0x170.7 (2) + 0x000017|50 |P | + 0x000017| d8 f4 5a a7 60 1f dd 0f 65 d7 23 0a bf aa c1| ..Z.`...e.#....| encrypted_data: raw bits 0x171-0x1c0.7 (80) + 0x000018|ac c0 46 bd 3f d6 c1 ce 60 35 77 28 25 68 04 b2|..F.?...`5w(%h..| + * |until 0x1c0.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x1c1-0x205.7 (69) + 0x00001c| 15 | . | type: "alert" (21) (valid) 0x1c1-0x1c1.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c2-0x1c3.7 (2) + 0x00001c| 00 40 | .@ | length: 64 0x1c4-0x1c5.7 (2) + 0x00001c| fd d3 0d 1b 95 1b 60 4e b0 b6| ......`N..| encrypted_data: raw bits 0x1c6-0x205.7 (64) + 0x00001d|7b 05 4d a7 6b fb 47 5e 39 ef c5 61 06 21 5a 84|{.M.k.G^9..a.!Z.| + * |until 0x205.7 (end) (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd9d-NA (0) + | | | ip: "127.0.0.1" 0xd9d-NA (0) + | | | port: 4431 0xd9d-NA (0) + | | | has_start: true 0xd9d-NA (0) + | | | has_end: true 0xd9d-NA (0) + | | | skipped_bytes: 0 0xd9d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x77e.7 (1919) + | | | records[0:7]: 0x0-0x77e.7 (1919) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 34| 4| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|da 34 ff 1d f7 57 5c c7 ef 46 3d 3f 0e f2 af a8|.4...W\..F=?....| + 0x000002|4d c2 f0 ce 1b 62 33 d1 98 c1 bf |M....b3.... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 25 | .% | cipher_suit: "TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256" (0xc025) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x1cf.7 (9) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 04 | .. | length: 4 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x1cf.7 (4) + 0x00001c| 0e | . | type: "server_hello_done" (14) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 00| ...| length: 0 0x1cd-0x1cf.7 (3) + | | | data: raw bits 0x1d0-NA (0) + | | | [3]{}: record 0x1d0-0x27e.7 (175) + 0x00001d|16 |. | type: "handshake" (22) (valid) 0x1d0-0x1d0.7 (1) + 0x00001d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1d1-0x1d2.7 (2) + 0x00001d| 00 aa | .. | length: 170 0x1d3-0x1d4.7 (2) + | | | message{}: 0x1d5-0x27e.7 (170) + 0x00001d| 04 | . | type: "new_session_ticket" (4) 0x1d5-0x1d5.7 (1) + 0x00001d| 00 00 a6 | ... | length: 166 0x1d6-0x1d8.7 (3) + 0x00001d| 00 00 01 2c | ..., | lifetime_hint: 300 0x1d9-0x1dc.7 (4) + 0x00001d| 00 a0 | .. | ticket_length: 160 0x1dd-0x1de.7 (2) + 0x00001d| 6f| o| ticket: raw bits 0x1df-0x27e.7 (160) + 0x00001e|7d e1 6c 67 99 7a b0 7e f2 61 6e a4 37 9e 3d 60|}.lg.z.~.an.7.=`| + * |until 0x27e.7 (160) | | + | | | [4]{}: record 0x27f-0x284.7 (6) + 0x000027| 14| .| type: "change_cipher_spec" (20) (valid) 0x27f-0x27f.7 (1) + 0x000028|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x280-0x281.7 (2) + 0x000028| 00 01 | .. | length: 1 0x282-0x283.7 (2) + | | | message{}: 0x284-0x284.7 (1) + 0x000028| 01 | . | type: 1 0x284-0x284.7 (1) + | | | [5]{}: record 0x285-0x2d9.7 (85) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x285-0x285.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x286-0x287.7 (2) + 0x000028| 00 50 | .P | length: 80 0x288-0x289.7 (2) + 0x000028| c8 55 0e ad 20 7a| .U.. z| encrypted_data: raw bits 0x28a-0x2d9.7 (80) + 0x000029|e0 f7 3e 0c 63 28 3f c4 ee 3a 62 87 fe ce 1d 7b|..>.c(?..:b....{| + * |until 0x2d9.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 4a 2c c2 68 8f 88 3c 26 73 73 b9 df| J,.h..<&ss..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2da-0x77e.7 (1189) + 0x00002d| 17 | . | type: "application_data" (23) (valid) 0x2da-0x2da.7 (1) + 0x00002d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2db-0x2dc.7 (2) + 0x00002d| 04 a0 | .. | length: 1184 0x2dd-0x2de.7 (2) + 0x00002d| bf| .| encrypted_data: raw bits 0x2df-0x77e.7 (1184) + 0x00002e|9b 5d 74 5e 13 d8 42 a1 2c 5e aa 76 2e 69 67 80|.]t^..B.,^.v.ig.| + * |until 0x77e.7 (end) (1184) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x114f.7 (4432) + * |until 0x114f.7 (end) (4432) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x114f.7 (4432) + * |until 0x114f.7 (end) (4432) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256.pcap b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..88c9cd7c7c41e8c30f6174026461ddb9166a9692 GIT binary patch literal 3328 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 HKmh&%qglsN literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256.pcap.fqtest new file mode 100644 index 00000000..90467d20 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256.pcap.fqtest @@ -0,0 +1,495 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd00-NA (0) + | | | client{}: 0xd00-NA (0) + | | | ip: "127.0.0.1" 0xd00-NA (0) + | | | port: 42423 0xd00-NA (0) + | | | has_start: true 0xd00-NA (0) + | | | has_end: false 0xd00-NA (0) + | | | skipped_bytes: 0 0xd00-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1a6.7 (423) + | | | records[0:6]: 0x0-0x1a6.7 (423) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 14| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|e6 63 f1 a2 18 e0 6e 07 32 ed a8 fe aa fc 5b 4d|.c....n.2.....[M| + 0x000002|b8 80 27 63 bf 95 b2 a7 30 64 dc |..'c....0d. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 2d| .-| [0]: "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256" (0xc02d) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0x110.7 (107) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 66 | .f | length: 102 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0x110.7 (102) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 62 | ..b | length: 98 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 61| a| length: 97 0xaf-0xaf.7 (1) + 0x00000b|04 3b e2 08 94 92 30 58 f3 16 ed b6 c0 fe ce d2|.;....0X........| data: raw bits 0xb0-0x110.7 (97) + * |until 0x110.7 (97) | | + | | | [2]{}: record 0x111-0x116.7 (6) + 0x000011| 14 | . | type: "change_cipher_spec" (20) (valid) 0x111-0x111.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x112-0x113.7 (2) + 0x000011| 00 01 | .. | length: 1 0x114-0x115.7 (2) + | | | message{}: 0x116-0x116.7 (1) + 0x000011| 01 | . | type: 1 0x116-0x116.7 (1) + | | | [3]{}: record 0x117-0x14c.7 (54) + 0x000011| 16 | . | type: "handshake" (22) (valid) 0x117-0x117.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x118-0x119.7 (2) + 0x000011| 00 31 | .1 | length: 49 0x11a-0x11b.7 (2) + 0x000011| 52 47 ad d2| RG..| encrypted_data: raw bits 0x11c-0x14c.7 (49) + 0x000012|e2 16 d2 ab 11 0f 50 96 34 16 fd b9 7d 7c bb de|......P.4...}|..| + * |until 0x14c.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| dc 99 f0 42 2e db 24 25 91 bd f5 95| ...B..$%....| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x14d-0x181.7 (53) + 0x000014| 17 | . | type: "application_data" (23) (valid) 0x14d-0x14d.7 (1) + 0x000014| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x14e-0x14f.7 (2) + 0x000015|00 30 |.0 | length: 48 0x150-0x151.7 (2) + 0x000015| 52 47 ad d2 e2 16 d2 ac f6 ba e7 50 4c fc| RG.........PL.| encrypted_data: raw bits 0x152-0x181.7 (48) + 0x000016|7d 54 8b 2d 7b 10 b8 11 2c 7a 76 66 ef 24 24 94|}T.-{...,zvf.$$.| + * |until 0x181.7 (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x182-0x1a6.7 (37) + 0x000018| 15 | . | type: "alert" (21) (valid) 0x182-0x182.7 (1) + 0x000018| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x183-0x184.7 (2) + 0x000018| 00 20 | . | length: 32 0x185-0x186.7 (2) + 0x000018| 52 47 ad d2 e2 16 d2 ad 49| RG......I| encrypted_data: raw bits 0x187-0x1a6.7 (32) + 0x000019|0f 27 be b5 53 80 1a a6 1f fc 14 48 fc c0 59 a5|.'..S......H..Y.| + 0x00001a|77 dc 8f a7 9c 65 cd| |w....e.| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd00-NA (0) + | | | ip: "127.0.0.1" 0xd00-NA (0) + | | | port: 4431 0xd00-NA (0) + | | | has_start: true 0xd00-NA (0) + | | | has_end: true 0xd00-NA (0) + | | | skipped_bytes: 0 0xd00-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x740.7 (1857) + | | | records[0:7]: 0x0-0x740.7 (1857) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 0b| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|50 09 29 d6 47 88 8c 32 c3 3b 7a 1d 0c b7 03 ce|P.).G..2.;z.....| + 0x000002|f4 65 50 29 6b 14 f2 0a cc 39 94 |.eP)k....9. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 2d | .- | cipher_suit: "TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256" (0xc02d) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x1cf.7 (9) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 04 | .. | length: 4 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x1cf.7 (4) + 0x00001c| 0e | . | type: "server_hello_done" (14) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 00| ...| length: 0 0x1cd-0x1cf.7 (3) + | | | data: raw bits 0x1d0-NA (0) + | | | [3]{}: record 0x1d0-0x27e.7 (175) + 0x00001d|16 |. | type: "handshake" (22) (valid) 0x1d0-0x1d0.7 (1) + 0x00001d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1d1-0x1d2.7 (2) + 0x00001d| 00 aa | .. | length: 170 0x1d3-0x1d4.7 (2) + | | | message{}: 0x1d5-0x27e.7 (170) + 0x00001d| 04 | . | type: "new_session_ticket" (4) 0x1d5-0x1d5.7 (1) + 0x00001d| 00 00 a6 | ... | length: 166 0x1d6-0x1d8.7 (3) + 0x00001d| 00 00 01 2c | ..., | lifetime_hint: 300 0x1d9-0x1dc.7 (4) + 0x00001d| 00 a0 | .. | ticket_length: 160 0x1dd-0x1de.7 (2) + 0x00001d| 6f| o| ticket: raw bits 0x1df-0x27e.7 (160) + 0x00001e|7d e1 6c 67 99 7a b0 7e f2 61 6e a4 37 9e 3d bc|}.lg.z.~.an.7.=.| + * |until 0x27e.7 (160) | | + | | | [4]{}: record 0x27f-0x284.7 (6) + 0x000027| 14| .| type: "change_cipher_spec" (20) (valid) 0x27f-0x27f.7 (1) + 0x000028|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x280-0x281.7 (2) + 0x000028| 00 01 | .. | length: 1 0x282-0x283.7 (2) + | | | message{}: 0x284-0x284.7 (1) + 0x000028| 01 | . | type: 1 0x284-0x284.7 (1) + | | | [5]{}: record 0x285-0x2b9.7 (53) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x285-0x285.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x286-0x287.7 (2) + 0x000028| 00 30 | .0 | length: 48 0x288-0x289.7 (2) + 0x000028| b7 f6 15 43 05 bb| ...C..| encrypted_data: raw bits 0x28a-0x2b9.7 (48) + 0x000029|1a bf ed e4 e3 db 7d 7d 9c aa 3d 58 f0 11 fd 7f|......}}..=X....| + * |until 0x2b9.7 (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| f0 0b 63 25 00 0e 4a f8 50 18 f1 3f| ..c%..J.P..?| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2ba-0x740.7 (1159) + 0x00002b| 17 | . | type: "application_data" (23) (valid) 0x2ba-0x2ba.7 (1) + 0x00002b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2bb-0x2bc.7 (2) + 0x00002b| 04 82 | .. | length: 1154 0x2bd-0x2be.7 (2) + 0x00002b| b7| .| encrypted_data: raw bits 0x2bf-0x740.7 (1154) + 0x00002c|f6 15 43 05 bb 1a c0 51 18 fd f5 71 f3 a3 2d da|..C....Q...q..-.| + * |until 0x740.7 (end) (1154) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x115b.7 (4444) + * |until 0x115b.7 (end) (4444) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x115b.7 (4444) + * |until 0x115b.7 (end) (4444) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..0440b5e43db9eab91d81347e20089d8d62d6af8b GIT binary patch literal 3405 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 u)LH!-21k-i.....| encrypted_data: raw bits 0x1a6-0x1d5.7 (48) + 0x00001b|10 dc 0d 13 f4 e3 e6 13 5e e1 6c da 1e b3 6f e6|........^.l...o.| + * |until 0x1d5.7 (end) (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd4d-NA (0) + | | | ip: "127.0.0.1" 0xd4d-NA (0) + | | | port: 4431 0xd4d-NA (0) + | | | has_start: true 0xd4d-NA (0) + | | | has_end: true 0xd4d-NA (0) + | | | skipped_bytes: 0 0xd4d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x75e.7 (1887) + | | | records[0:7]: 0x0-0x75e.7 (1887) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 0d| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|db 0e 59 d1 44 93 a0 06 15 d4 6c 53 c3 55 b9 d3|..Y.D.....lS.U..| + 0x000002|ec f4 1c 42 85 41 f4 89 2a 86 55 |...B.A..*.U | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 05 | .. | cipher_suit: "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA" (0xc005) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x1cf.7 (9) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 04 | .. | length: 4 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x1cf.7 (4) + 0x00001c| 0e | . | type: "server_hello_done" (14) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 00| ...| length: 0 0x1cd-0x1cf.7 (3) + | | | data: raw bits 0x1d0-NA (0) + | | | [3]{}: record 0x1d0-0x27e.7 (175) + 0x00001d|16 |. | type: "handshake" (22) (valid) 0x1d0-0x1d0.7 (1) + 0x00001d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1d1-0x1d2.7 (2) + 0x00001d| 00 aa | .. | length: 170 0x1d3-0x1d4.7 (2) + | | | message{}: 0x1d5-0x27e.7 (170) + 0x00001d| 04 | . | type: "new_session_ticket" (4) 0x1d5-0x1d5.7 (1) + 0x00001d| 00 00 a6 | ... | length: 166 0x1d6-0x1d8.7 (3) + 0x00001d| 00 00 01 2c | ..., | lifetime_hint: 300 0x1d9-0x1dc.7 (4) + 0x00001d| 00 a0 | .. | ticket_length: 160 0x1dd-0x1de.7 (2) + 0x00001d| 6f| o| ticket: raw bits 0x1df-0x27e.7 (160) + 0x00001e|7d e1 6c 67 99 7a b0 7e f2 61 6e a4 37 9e 3d 3f|}.lg.z.~.an.7.=?| + * |until 0x27e.7 (160) | | + | | | [4]{}: record 0x27f-0x284.7 (6) + 0x000027| 14| .| type: "change_cipher_spec" (20) (valid) 0x27f-0x27f.7 (1) + 0x000028|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x280-0x281.7 (2) + 0x000028| 00 01 | .. | length: 1 0x282-0x283.7 (2) + | | | message{}: 0x284-0x284.7 (1) + 0x000028| 01 | . | type: 1 0x284-0x284.7 (1) + | | | [5]{}: record 0x285-0x2c9.7 (69) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x285-0x285.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x286-0x287.7 (2) + 0x000028| 00 40 | .@ | length: 64 0x288-0x289.7 (2) + 0x000028| 8b be a1 50 84 28| ...P.(| encrypted_data: raw bits 0x28a-0x2c9.7 (64) + 0x000029|80 e9 6c 0b dc 74 b4 ef 50 f3 8d 8e 59 39 4b 5d|..l..t..P...Y9K]| + * |until 0x2c9.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| fa c4 61 7d 73 b7 4d b6 92 66 43 c9| ..a}s.M..fC.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2ca-0x75e.7 (1173) + 0x00002c| 17 | . | type: "application_data" (23) (valid) 0x2ca-0x2ca.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2cb-0x2cc.7 (2) + 0x00002c| 04 90 | .. | length: 1168 0x2cd-0x2ce.7 (2) + 0x00002c| 46| F| encrypted_data: raw bits 0x2cf-0x75e.7 (1168) + 0x00002d|96 a4 75 8e bf f6 67 47 17 bb 37 b2 22 bf b0 da|..u...gG..7."...| + * |until 0x75e.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1146.7 (4423) + * |until 0x1146.7 (end) (4423) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1146.7 (4423) + * |until 0x1146.7 (end) (4423) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384.pcap b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384.pcap new file mode 100644 index 0000000000000000000000000000000000000000..f6e0f6cfcf9db868482f3b53c4590a6bdda7b50d GIT binary patch literal 3565 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 | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| a2| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|7e 4a 9c 6f b5 b6 9e d4 ad 3d df 41 14 27 62 32|~J.o.....=.A.'b2| + 0x000002|1d 7a 75 4d 31 db 2d dc 39 da da |.zuM1.-.9.. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 26 | .& | cipher_suit: "TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384" (0xc026) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x1cf.7 (9) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 04 | .. | length: 4 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x1cf.7 (4) + 0x00001c| 0e | . | type: "server_hello_done" (14) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 00| ...| length: 0 0x1cd-0x1cf.7 (3) + | | | data: raw bits 0x1d0-NA (0) + | | | [3]{}: record 0x1d0-0x27e.7 (175) + 0x00001d|16 |. | type: "handshake" (22) (valid) 0x1d0-0x1d0.7 (1) + 0x00001d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1d1-0x1d2.7 (2) + 0x00001d| 00 aa | .. | length: 170 0x1d3-0x1d4.7 (2) + | | | message{}: 0x1d5-0x27e.7 (170) + 0x00001d| 04 | . | type: "new_session_ticket" (4) 0x1d5-0x1d5.7 (1) + 0x00001d| 00 00 a6 | ... | length: 166 0x1d6-0x1d8.7 (3) + 0x00001d| 00 00 01 2c | ..., | lifetime_hint: 300 0x1d9-0x1dc.7 (4) + 0x00001d| 00 a0 | .. | ticket_length: 160 0x1dd-0x1de.7 (2) + 0x00001d| 6f| o| ticket: raw bits 0x1df-0x27e.7 (160) + 0x00001e|7d e1 6c 67 99 7a b0 7e f2 61 6e a4 37 9e 3d 99|}.lg.z.~.an.7.=.| + * |until 0x27e.7 (160) | | + | | | [4]{}: record 0x27f-0x284.7 (6) + 0x000027| 14| .| type: "change_cipher_spec" (20) (valid) 0x27f-0x27f.7 (1) + 0x000028|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x280-0x281.7 (2) + 0x000028| 00 01 | .. | length: 1 0x282-0x283.7 (2) + | | | message{}: 0x284-0x284.7 (1) + 0x000028| 01 | . | type: 1 0x284-0x284.7 (1) + | | | [5]{}: record 0x285-0x2e9.7 (101) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x285-0x285.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x286-0x287.7 (2) + 0x000028| 00 60 | .` | length: 96 0x288-0x289.7 (2) + 0x000028| e0 65 e6 86 ec 26| .e...&| encrypted_data: raw bits 0x28a-0x2e9.7 (96) + 0x000029|3c 80 74 bf d7 ac 72 b2 ec e6 93 4a 5c 9d f9 13|<.t...r....J\...| + * |until 0x2e9.7 (96) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| f1 24 58 27 9b d4 0c 93 08 58 58 63| .$X'.....XXc| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2ea-0x79e.7 (1205) + 0x00002e| 17 | . | type: "application_data" (23) (valid) 0x2ea-0x2ea.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2eb-0x2ec.7 (2) + 0x00002e| 04 b0 | .. | length: 1200 0x2ed-0x2ee.7 (2) + 0x00002e| 4e| N| encrypted_data: raw bits 0x2ef-0x79e.7 (1200) + 0x00002f|81 ba c8 c9 3b c8 ed a4 a5 f0 6d d7 3a 22 31 6c|....;.....m.:"1l| + * |until 0x79e.7 (end) (1200) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x114f.7 (4432) + * |until 0x114f.7 (end) (4432) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x114f.7 (4432) + * |until 0x114f.7 (end) (4432) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384.pcap b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384.pcap new file mode 100644 index 0000000000000000000000000000000000000000..69591a6f2639186eb5a815b94ba87dfcfeb48e89 GIT binary patch literal 3329 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 | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 7f| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|91 0c c2 c8 9b 82 86 43 a2 65 db 5c a4 09 ef af|.......C.e.\....| + 0x000002|4c 8a 4f 81 0d db dd 0c be 66 60 |L.O......f` | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 2e | .. | cipher_suit: "TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384" (0xc02e) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x1cf.7 (9) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 04 | .. | length: 4 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x1cf.7 (4) + 0x00001c| 0e | . | type: "server_hello_done" (14) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 00| ...| length: 0 0x1cd-0x1cf.7 (3) + | | | data: raw bits 0x1d0-NA (0) + | | | [3]{}: record 0x1d0-0x27e.7 (175) + 0x00001d|16 |. | type: "handshake" (22) (valid) 0x1d0-0x1d0.7 (1) + 0x00001d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1d1-0x1d2.7 (2) + 0x00001d| 00 aa | .. | length: 170 0x1d3-0x1d4.7 (2) + | | | message{}: 0x1d5-0x27e.7 (170) + 0x00001d| 04 | . | type: "new_session_ticket" (4) 0x1d5-0x1d5.7 (1) + 0x00001d| 00 00 a6 | ... | length: 166 0x1d6-0x1d8.7 (3) + 0x00001d| 00 00 01 2c | ..., | lifetime_hint: 300 0x1d9-0x1dc.7 (4) + 0x00001d| 00 a0 | .. | ticket_length: 160 0x1dd-0x1de.7 (2) + 0x00001d| 6f| o| ticket: raw bits 0x1df-0x27e.7 (160) + 0x00001e|7d e1 6c 67 99 7a b0 7e f2 61 6e a4 37 9e 3d 31|}.lg.z.~.an.7.=1| + * |until 0x27e.7 (160) | | + | | | [4]{}: record 0x27f-0x284.7 (6) + 0x000027| 14| .| type: "change_cipher_spec" (20) (valid) 0x27f-0x27f.7 (1) + 0x000028|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x280-0x281.7 (2) + 0x000028| 00 01 | .. | length: 1 0x282-0x283.7 (2) + | | | message{}: 0x284-0x284.7 (1) + 0x000028| 01 | . | type: 1 0x284-0x284.7 (1) + | | | [5]{}: record 0x285-0x2ba.7 (54) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x285-0x285.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x286-0x287.7 (2) + 0x000028| 00 31 | .1 | length: 49 0x288-0x289.7 (2) + 0x000028| dc e9 0c 8d 62 6e| ....bn| encrypted_data: raw bits 0x28a-0x2ba.7 (49) + 0x000029|97 8f 79 6a 63 a1 da 88 6d b7 7e 29 3e 21 11 0e|..yjc...m.~)>!..| + * |until 0x2ba.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 7c 87 93 8c 9b 40 b1 13 0b 4a 96 35| |....@...J.5| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2bb-0x741.7 (1159) + 0x00002b| 17 | . | type: "application_data" (23) (valid) 0x2bb-0x2bb.7 (1) + 0x00002b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2bc-0x2bd.7 (2) + 0x00002b| 04 82| ..| length: 1154 0x2be-0x2bf.7 (2) + 0x00002c|dc e9 0c 8d 62 6e 97 90 2b 74 5b e4 eb fd 8e 72|....bn..+t[....r| encrypted_data: raw bits 0x2c0-0x741.7 (1154) + * |until 0x741.7 (end) (1154) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x115b.7 (4444) + * |until 0x115b.7 (end) (4444) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x115b.7 (4444) + * |until 0x115b.7 (end) (4444) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_RC4_128_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDH_ECDSA_WITH_RC4_128_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..148068e365739e49e12febc06ab7a8afa7dcf580 GIT binary patch literal 3310 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 | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| f1| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|10 63 e6 69 20 6f dd 99 bc 89 c6 63 26 3f 0e 58|.c.i o.....c&?.X| + 0x000002|88 a3 eb 6b 03 f9 32 88 df 90 dc |...k..2.... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 02 | .. | cipher_suit: "TLS_ECDH_ECDSA_WITH_RC4_128_SHA" (0xc002) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1c6.7 (384) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 7b | .{ | length: 379 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1c6.7 (379) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 77| ..w| length: 375 0x4d-0x4f.7 (3) + 0x000005|00 01 74 |..t | certificates_length: 372 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1c6.7 (372) + | | | [0]{}: certificate 0x53-0x1c6.7 (372) + 0x000005| 00 01 71 | ..q | length: 369 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1c6.7 (369) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 6d | ..m | length: 365 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1c6.7 (365) + | | | [0]{}: object 0x5a-0x150.7 (247) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 f4 | .. | length: 244 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x150.7 (244) + | | | [0]{}: object 0x5d-0x67.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 09 | . | length: 9 0x5e-0x5e.7 (1) + 0x000005| 00| .| value: 15139635147801862390 0x5f-0x67.7 (9) + 0x000006|d2 1a c9 f4 25 bf a0 f6 |....%... | + | | | [1]{}: object 0x68-0x72.7 (11) + 0x000006| 30 | 0 | class: "universal" (0) 0x68-0x68.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x68.2-0x68.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x68.3-0x68.7 (0.5) + 0x000006| 09 | . | length: 9 0x69-0x69.7 (1) + | | | constructed[0:1]: 0x6a-0x72.7 (9) + | | | [0]{}: object 0x6a-0x72.7 (9) + 0x000006| 06 | . | class: "universal" (0) 0x6a-0x6a.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x6a.2-0x6a.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x6a.3-0x6a.7 (0.5) + 0x000006| 07 | . | length: 7 0x6b-0x6b.7 (1) + | | | value[0:6]: 0x6c-0x72.7 (7) + 0x000006| 2a | * | [0]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x6c-0x6c.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x6d-0x6e.7 (2) + 0x000006| ce| .| [3]: 10045 oid 0x6f-0x70.7 (2) + 0x000007|3d |= | + 0x000007| 04 | . | [4]: 4 oid 0x71-0x71.7 (1) + 0x000007| 01 | . | [5]: 1 oid 0x72-0x72.7 (1) + | | | [2]{}: object 0x73-0x95.7 (35) + 0x000007| 30 | 0 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x73.3-0x73.7 (0.5) + 0x000007| 21 | ! | length: 33 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x95.7 (33) + | | | [0]{}: object 0x75-0x95.7 (33) + 0x000007| 31 | 1 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x75.3-0x75.7 (0.5) + 0x000007| 1f | . | length: 31 0x76-0x76.7 (1) + | | | constructed[0:1]: 0x77-0x95.7 (31) + | | | [0]{}: object 0x77-0x95.7 (31) + 0x000007| 30 | 0 | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x77.2-0x77.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x77.3-0x77.7 (0.5) + 0x000007| 1d | . | length: 29 0x78-0x78.7 (1) + | | | constructed[0:2]: 0x79-0x95.7 (29) + | | | [0]{}: object 0x79-0x7d.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x79-0x79.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x79.2-0x79.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x79.3-0x79.7 (0.5) + 0x000007| 03 | . | length: 3 0x7a-0x7a.7 (1) + | | | value[0:4]: 0x7b-0x7d.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x7b-0x7b.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x7b-0x7b.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7c-0x7c.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7d-0x7d.7 (1) + | | | [1]{}: object 0x7e-0x95.7 (24) + 0x000007| 0c | . | class: "universal" (0) 0x7e-0x7e.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7e.2-0x7e.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7e.3-0x7e.7 (0.5) + 0x000007| 16| .| length: 22 0x7f-0x7f.7 (1) + 0x000008|54 65 73 74 20 43 65 72 74 69 66 69 63 61 74 65|Test Certificate| value: "Test Certificate ECDSA" 0x80-0x95.7 (22) + 0x000009|20 45 43 44 53 41 | ECDSA | + | | | [3]{}: object 0x96-0xb5.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x96-0x96.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x96.2-0x96.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x96.3-0x96.7 (0.5) + 0x000009| 1e | . | length: 30 0x97-0x97.7 (1) + | | | constructed[0:2]: 0x98-0xb5.7 (30) + | | | [0]{}: object 0x98-0xa6.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x98-0x98.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x98.2-0x98.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x98.3-0x98.7 (0.5) + 0x000009| 0d | . | length: 13 0x99-0x99.7 (1) + 0x000009| 31 33 30 39 31 35| 130915| value: "130915215110Z" 0x9a-0xa6.7 (13) + 0x00000a|32 31 35 31 31 30 5a |215110Z | + | | | [1]{}: object 0xa7-0xb5.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa8-0xa8.7 (1) + 0x00000a| 32 33 30 39 31 33 32| 2309132| value: "230913215110Z" 0xa9-0xb5.7 (13) + 0x00000b|31 35 31 31 30 5a |15110Z | + | | | [4]{}: object 0xb6-0xd8.7 (35) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 21 | ! | length: 33 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xd8.7 (33) + | | | [0]{}: object 0xb8-0xd8.7 (33) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb9-0xb9.7 (1) + | | | constructed[0:1]: 0xba-0xd8.7 (31) + | | | [0]{}: object 0xba-0xd8.7 (31) + 0x00000b| 30 | 0 | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xba.2-0xba.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xba.3-0xba.7 (0.5) + 0x00000b| 1d | . | length: 29 0xbb-0xbb.7 (1) + | | | constructed[0:2]: 0xbc-0xd8.7 (29) + | | | [0]{}: object 0xbc-0xc0.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbd-0xbd.7 (1) + | | | value[0:4]: 0xbe-0xc0.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbe-0xbe.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbe-0xbe.7 (1) + 0x00000b| 04| .| [2]: 4 oid 0xbf-0xbf.7 (1) + 0x00000c|03 |. | [3]: 3 oid 0xc0-0xc0.7 (1) + | | | [1]{}: object 0xc1-0xd8.7 (24) + 0x00000c| 0c | . | class: "universal" (0) 0xc1-0xc1.1 (0.2) + 0x00000c| 0c | . | form: "primitive" (0) 0xc1.2-0xc1.2 (0.1) + 0x00000c| 0c | . | tag: "utf8_string" (0xc) 0xc1.3-0xc1.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc2-0xc2.7 (1) + 0x00000c| 54 65 73 74 20 43 65 72 74 69 66 69 63| Test Certific| value: "Test Certificate ECDSA" 0xc3-0xd8.7 (22) + 0x00000d|61 74 65 20 45 43 44 53 41 |ate ECDSA | + | | | [5]{}: object 0xd9-0x150.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd9-0xd9.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd9.2-0xd9.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd9.3-0xd9.7 (0.5) + 0x00000d| 76 | v | length: 118 0xda-0xda.7 (1) + | | | constructed[0:2]: 0xdb-0x150.7 (118) + | | | [0]{}: object 0xdb-0xec.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 10 | . | length: 16 0xdc-0xdc.7 (1) + | | | constructed[0:2]: 0xdd-0xec.7 (16) + | | | [0]{}: object 0xdd-0xe5.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 07 | . | length: 7 0xde-0xde.7 (1) + | | | value[0:6]: 0xdf-0xe5.7 (7) + 0x00000d| 2a| *| [0]: 1 oid 0xdf-0xdf.7 (1) + 0x00000d| 2a| *| [1]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|86 48 |.H | [2]: 840 oid 0xe0-0xe1.7 (2) + 0x00000e| ce 3d | .= | [3]: 10045 oid 0xe2-0xe3.7 (2) + 0x00000e| 02 | . | [4]: 2 oid 0xe4-0xe4.7 (1) + 0x00000e| 01 | . | [5]: 1 oid 0xe5-0xe5.7 (1) + | | | [1]{}: object 0xe6-0xec.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe6-0xe6.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe6.2-0xe6.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe6.3-0xe6.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe7-0xe7.7 (1) + | | | value[0:5]: 0xe8-0xec.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe8-0xe8.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe8-0xe8.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe9-0xea.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xeb-0xeb.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xec-0xec.7 (1) + | | | [1]{}: object 0xed-0x150.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xed-0xed.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xed.2-0xed.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xed.3-0xed.7 (0.5) + 0x00000e| 62 | b | length: 98 0xee-0xee.7 (1) + 0x00000e| 00| .| unused_bits_count: 0 0xef-0xef.7 (1) + 0x00000f|04 a8 82 d1 a7 4e 97 73 1c 4a e2 3e f7 e9 ae c2|.....N.s.J.>....| value: raw bits 0xf0-0x150.7 (97) + * |until 0x150.7 (97) | | + | | | [1]{}: object 0x151-0x15b.7 (11) + 0x000015| 30 | 0 | class: "universal" (0) 0x151-0x151.1 (0.2) + 0x000015| 30 | 0 | form: "constructed" (1) 0x151.2-0x151.2 (0.1) + 0x000015| 30 | 0 | tag: "sequence" (0x10) 0x151.3-0x151.7 (0.5) + 0x000015| 09 | . | length: 9 0x152-0x152.7 (1) + | | | constructed[0:1]: 0x153-0x15b.7 (9) + | | | [0]{}: object 0x153-0x15b.7 (9) + 0x000015| 06 | . | class: "universal" (0) 0x153-0x153.1 (0.2) + 0x000015| 06 | . | form: "primitive" (0) 0x153.2-0x153.2 (0.1) + 0x000015| 06 | . | tag: "object_identifier" (0x6) 0x153.3-0x153.7 (0.5) + 0x000015| 07 | . | length: 7 0x154-0x154.7 (1) + | | | value[0:6]: 0x155-0x15b.7 (7) + 0x000015| 2a | * | [0]: 1 oid 0x155-0x155.7 (1) + 0x000015| 2a | * | [1]: 2 oid 0x155-0x155.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x156-0x157.7 (2) + 0x000015| ce 3d | .= | [3]: 10045 oid 0x158-0x159.7 (2) + 0x000015| 04 | . | [4]: 4 oid 0x15a-0x15a.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x15b-0x15b.7 (1) + | | | [2]{}: object 0x15c-0x1c6.7 (107) + 0x000015| 03 | . | class: "universal" (0) 0x15c-0x15c.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15c.2-0x15c.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15c.3-0x15c.7 (0.5) + 0x000015| 69 | i | length: 105 0x15d-0x15d.7 (1) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 30| 0| value: raw bits 0x15f-0x1c6.7 (104) + 0x000016|66 02 31 00 c7 67 eb 3d 15 47 89 d0 26 f4 5f 89|f.1..g.=.G..&._.| + * |until 0x1c6.7 (104) | | + | | | [2]{}: record 0x1c7-0x1cf.7 (9) + 0x00001c| 16 | . | type: "handshake" (22) (valid) 0x1c7-0x1c7.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c8-0x1c9.7 (2) + 0x00001c| 00 04 | .. | length: 4 0x1ca-0x1cb.7 (2) + | | | message{}: 0x1cc-0x1cf.7 (4) + 0x00001c| 0e | . | type: "server_hello_done" (14) 0x1cc-0x1cc.7 (1) + 0x00001c| 00 00 00| ...| length: 0 0x1cd-0x1cf.7 (3) + | | | data: raw bits 0x1d0-NA (0) + | | | [3]{}: record 0x1d0-0x27e.7 (175) + 0x00001d|16 |. | type: "handshake" (22) (valid) 0x1d0-0x1d0.7 (1) + 0x00001d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1d1-0x1d2.7 (2) + 0x00001d| 00 aa | .. | length: 170 0x1d3-0x1d4.7 (2) + | | | message{}: 0x1d5-0x27e.7 (170) + 0x00001d| 04 | . | type: "new_session_ticket" (4) 0x1d5-0x1d5.7 (1) + 0x00001d| 00 00 a6 | ... | length: 166 0x1d6-0x1d8.7 (3) + 0x00001d| 00 00 01 2c | ..., | lifetime_hint: 300 0x1d9-0x1dc.7 (4) + 0x00001d| 00 a0 | .. | ticket_length: 160 0x1dd-0x1de.7 (2) + 0x00001d| 6f| o| ticket: raw bits 0x1df-0x27e.7 (160) + 0x00001e|7d e1 6c 67 99 7a b0 7e f2 61 6e a4 37 9e 3d 07|}.lg.z.~.an.7.=.| + * |until 0x27e.7 (160) | | + | | | [4]{}: record 0x27f-0x284.7 (6) + 0x000027| 14| .| type: "change_cipher_spec" (20) (valid) 0x27f-0x27f.7 (1) + 0x000028|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x280-0x281.7 (2) + 0x000028| 00 01 | .. | length: 1 0x282-0x283.7 (2) + | | | message{}: 0x284-0x284.7 (1) + 0x000028| 01 | . | type: 1 0x284-0x284.7 (1) + | | | [5]{}: record 0x285-0x2b6.7 (50) + 0x000028| 16 | . | type: "handshake" (22) (valid) 0x285-0x285.7 (1) + 0x000028| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x286-0x287.7 (2) + 0x000028| 00 2d | .- | length: 45 0x288-0x289.7 (2) + 0x000028| 51 3e 02 f2 c8 7f| Q>....| encrypted_data: raw bits 0x28a-0x2b6.7 (45) + 0x000029|cc fe 8d e9 fb 5e cf 07 db bf 54 d6 b9 e9 25 61|.....^....T...%a| + * |until 0x2b6.7 (45) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| d4 23 fe ab 33 fb 17 ca f3 65 f7 03| .#..3....e..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2b7-0x73a.7 (1156) + 0x00002b| 17 | . | type: "application_data" (23) (valid) 0x2b7-0x2b7.7 (1) + 0x00002b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2b8-0x2b9.7 (2) + 0x00002b| 04 7f | .. | length: 1151 0x2ba-0x2bb.7 (2) + 0x00002b| cd 7d 51 cd| .}Q.| encrypted_data: raw bits 0x2bc-0x73a.7 (1151) + 0x00002c|89 d6 ff e7 72 21 ff fe 69 9d 52 12 e2 03 68 ff|....r!..i.R...h.| + * |until 0x73a.7 (end) (1151) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x113d.7 (4414) + * |until 0x113d.7 (end) (4414) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x113d.7 (4414) + * |until 0x113d.7 (end) (4414) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..deeaa75f9d11312c5144d2f1b15d970a4b44e0d1 GIT binary patch literal 3389 zcmaKu2|ScrAIHx#&luUVgt1JrZ&}6?l8Q1ybjfH%*4!+UESIZ9URTIAMVAyqZ;~xH zWl5G0S(7E9j2PKMDk3rO^OWhWdwbvW`TXZR=X}n5&+q>~|MP#I?z%gf7=Q(=#$*D( zU=5JoV9iL#Belj57~*o5LIHqKt9r_BwXFO~9$iku%;D*QNY&DMyf zNY!4B$A6_<4H3qG8GHZ$Tf+mG7-aQHzy+`{fG~g)QLhQs10EoX%y9z| zz=6yO13XvYNN+Jg;d6;0#O63iae%s9>}VpK`4T<833 zP1}cOM`TCK8tZ&LR-%pY6Njy&i3jO#Tbs<*Z|7X%c6>6D@lG4zI`f{yb6;OvC8Y#bUVqm%oqs> zoa~XAnRaG0ea?$WarRXGEQoCNB{P9uev8VaO!K9KG*5htdZ~f>#Qw0LV;(}>9&c?$ zXufiH1og@!ROa-O@}!Iv$``^1T^^A}S|h~26<>KIxSxLCfK(zPknqcWiP-K?=s zUa4-2d|I4HZ2eI!hey7X%|0#ScFplI%1X9+_Zw@+G&VGK?ZR*0eD|9Bi(*Gx{UcKKha; z)vTy}&9&jvDjXC#8nsooAEGvnN1~>uAN^Q~J4-&TP+{!BrQX_+rtQv#v1!?jPH?I_ z`OUmL(LwIdR8rnCCy%hzsLy4deHGVhYyw3rSpps+VMmPwun!5ZQ32xL67}n`QRv9A zm7xMKCI1kBjY>4HXYVB2H}vq7~_``X*6# zPWfzdvYqyGFj&lT+9(*R_DZ8R&n_>JevEP7@D;6BY=IGelzgNvt~%MO(s6k8R~xHT zjL%ttPO)N+kKwV)FDCHnyL*;GD&{-`=%f9Nzv`_Qg>EVyQi^7{H5%ghwUc*&o{YPS znyxP|+=}W+OC|Z7su1sy*kvfsd&72dOS@;~gHQmy(*pu?S zPW^*HimXFhD#KgplaZa6hgo?H{WeDB&Wf{J7VonCQv51WwW3d9_tKD+eejJqWk20? zyD{giCjIU{SHWUGe{7EHEc4TaB&ECNTsHMWpM0*)YK*0+PiC7)58T@lEF;rkvz_d} z=k^X`uM)A;K3v4EmWzp1it7vCztrS@oy?^qc44M7_udr$e2M*=H^vedC>mpzysasm z;`*KG@%x{RNp)vzD2UP~(~o(*_@(T?6VoI%>`}7H_|Awc>mH51RAYWK0_F~|_3q0a3{8e^F#=q<;Be(%=CiZ!_Mz)-}#x$&P1|pyzKbAbW%xg zn4w@75?%Fjv3;Xi;Np|;3kS@WofIY)+TA6qhY#mn_MD<`RM^PZ;3+xWU3gCoR}{s& zySFO#UHeh*MDxgo8*E^s8-DfUmN3k-54_nxYDImX<|e-(Cpx>RA2_2_b?`i&?nyAvc+y)*1N30xeC z8-nzvhWCeBIPstF&vPBRCKHo16I}kOsbJ!mTJia=saCnbF`5p}?()OXI$icdCY=JEF~tL&EAtme(G&Lc*7<@wA5(g8GMw|J#c)v zrmr;QOnWh-a*LQ>A21q| zWLjOeoCw5_NLP4GTO8ACIfiV8in!e+X-1XsuZFCG_QTt|;Y&qb z{#!*YQ{nLQ3gg3q@4gn%_t5yy7=$sDv1x$C_*xYGyuK7gexxe@_xt<@h7$rq4XNx- z)W$D5+E|RW%8u&r4iiCi*#1~pg^ | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 0a| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|91 ff f5 59 ea ab ca d0 bc 62 0c 0c 8a 8a be 19|...Y.....b......| + 0x000002|af d1 90 29 4b ac 64 3c 0a 87 25 |...)K.d<..% | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 0d | .. | cipher_suit: "TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA" (0xc00d) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1de.7 (408) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 93 | .. | length: 403 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1de.7 (403) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 8f| ...| length: 399 0x4d-0x4f.7 (3) + 0x000005|00 01 8c |... | certificates_length: 396 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1de.7 (396) + | | | [0]{}: certificate 0x53-0x1de.7 (396) + 0x000005| 00 01 89 | ... | length: 393 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1de.7 (393) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 85 | ... | length: 389 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1de.7 (389) + | | | [0]{}: object 0x5a-0x14b.7 (242) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 ef | .. | length: 239 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x14b.7 (239) + | | | [0]{}: object 0x5d-0x61.7 (5) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 03 | . | length: 3 0x5e-0x5e.7 (1) + 0x000005| 01| .| value: 129423 0x5f-0x61.7 (3) + 0x000006|f9 8f |.. | + | | | [1]{}: object 0x62-0x70.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x62-0x62.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x62.2-0x62.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x62.3-0x62.7 (0.5) + 0x000006| 0d | . | length: 13 0x63-0x63.7 (1) + | | | constructed[0:2]: 0x64-0x70.7 (13) + | | | [0]{}: object 0x64-0x6e.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x64-0x64.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x64.2-0x64.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x64.3-0x64.7 (0.5) + 0x000006| 09 | . | length: 9 0x65-0x65.7 (1) + | | | value[0:7]: 0x66-0x6e.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x66-0x66.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x66-0x66.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x67-0x68.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x69-0x6b.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6e-0x6e.7 (1) + | | | [1]{}: object 0x6f-0x70.7 (2) + 0x000006| 05| .| class: "universal" (0) 0x6f-0x6f.1 (0.2) + 0x000006| 05| .| form: "primitive" (0) 0x6f.2-0x6f.2 (0.1) + 0x000006| 05| .| tag: "null" (0x5) 0x6f.3-0x6f.7 (0.5) + 0x000007|00 |. | length: "indefinite" (0) 0x70-0x70.7 (1) + | | | value: null 0x71-NA (0) + | | | [2]{}: object 0x71-0x91.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x71-0x71.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x71.2-0x71.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x71.3-0x71.7 (0.5) + 0x000007| 1f | . | length: 31 0x72-0x72.7 (1) + | | | constructed[0:1]: 0x73-0x91.7 (31) + | | | [0]{}: object 0x73-0x91.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x73.3-0x73.7 (0.5) + 0x000007| 1d | . | length: 29 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x91.7 (29) + | | | [0]{}: object 0x75-0x91.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x75.3-0x75.7 (0.5) + 0x000007| 1b | . | length: 27 0x76-0x76.7 (1) + | | | constructed[0:2]: 0x77-0x91.7 (27) + | | | [0]{}: object 0x77-0x7b.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x77.2-0x77.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x77.3-0x77.7 (0.5) + 0x000007| 03 | . | length: 3 0x78-0x78.7 (1) + | | | value[0:4]: 0x79-0x7b.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x79-0x79.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x79-0x79.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7a-0x7a.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7b-0x7b.7 (1) + | | | [1]{}: object 0x7c-0x91.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7c.2-0x7c.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7c.3-0x7c.7 (0.5) + 0x000007| 14 | . | length: 20 0x7d-0x7d.7 (1) + 0x000007| 54 65| Te| value: "Test Certificate RSA" 0x7e-0x91.7 (20) + 0x000008|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x000009|53 41 |SA | + | | | [3]{}: object 0x92-0xb1.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x92-0x92.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x92.2-0x92.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x92.3-0x92.7 (0.5) + 0x000009| 1e | . | length: 30 0x93-0x93.7 (1) + | | | constructed[0:2]: 0x94-0xb1.7 (30) + | | | [0]{}: object 0x94-0xa2.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x94-0x94.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x94.2-0x94.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x94.3-0x94.7 (0.5) + 0x000009| 0d | . | length: 13 0x95-0x95.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31| 1309152151| value: "130915215110Z" 0x96-0xa2.7 (13) + 0x00000a|31 30 5a |10Z | + | | | [1]{}: object 0xa3-0xb1.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa3-0xa3.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa3.2-0xa3.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa3.3-0xa3.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa4-0xa4.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31| 23091321511| value: "230913215110Z" 0xa5-0xb1.7 (13) + 0x00000b|30 5a |0Z | + | | | [4]{}: object 0xb2-0xd3.7 (34) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb2-0xb2.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb2.2-0xb2.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb2.3-0xb2.7 (0.5) + 0x00000b| 20 | | length: 32 0xb3-0xb3.7 (1) + | | | constructed[0:1]: 0xb4-0xd3.7 (32) + | | | [0]{}: object 0xb4-0xd3.7 (32) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb4-0xb4.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb4.2-0xb4.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb4.3-0xb4.7 (0.5) + 0x00000b| 1e | . | length: 30 0xb5-0xb5.7 (1) + | | | constructed[0:1]: 0xb6-0xd3.7 (30) + | | | [0]{}: object 0xb6-0xd3.7 (30) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 1c | . | length: 28 0xb7-0xb7.7 (1) + | | | constructed[0:2]: 0xb8-0xd3.7 (28) + | | | [0]{}: object 0xb8-0xbc.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb9-0xb9.7 (1) + | | | value[0:4]: 0xba-0xbc.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xba-0xba.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xba-0xba.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xbb-0xbb.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbc-0xbc.7 (1) + | | | [1]{}: object 0xbd-0xd3.7 (23) + 0x00000b| 0c | . | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 15 | . | length: 21 0xbe-0xbe.7 (1) + 0x00000b| 54| T| value: "Test Certificate ECDH" 0xbf-0xd3.7 (21) + 0x00000c|65 73 74 20 43 65 72 74 69 66 69 63 61 74 65 20|est Certificate | + 0x00000d|45 43 44 48 |ECDH | + | | | [5]{}: object 0xd4-0x14b.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd4-0xd4.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd4.2-0xd4.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd4.3-0xd4.7 (0.5) + 0x00000d| 76 | v | length: 118 0xd5-0xd5.7 (1) + | | | constructed[0:2]: 0xd6-0x14b.7 (118) + | | | [0]{}: object 0xd6-0xe7.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd6-0xd6.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd6.2-0xd6.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd6.3-0xd6.7 (0.5) + 0x00000d| 10 | . | length: 16 0xd7-0xd7.7 (1) + | | | constructed[0:2]: 0xd8-0xe7.7 (16) + | | | [0]{}: object 0xd8-0xe0.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xd8-0xd8.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd8.2-0xd8.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd8.3-0xd8.7 (0.5) + 0x00000d| 07 | . | length: 7 0xd9-0xd9.7 (1) + | | | value[0:6]: 0xda-0xe0.7 (7) + 0x00000d| 2a | * | [0]: 1 oid 0xda-0xda.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xda-0xda.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xdb-0xdc.7 (2) + 0x00000d| ce 3d | .= | [3]: 10045 oid 0xdd-0xde.7 (2) + 0x00000d| 02| .| [4]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + | | | [1]{}: object 0xe1-0xe7.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe1-0xe1.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe1.2-0xe1.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe1.3-0xe1.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe2-0xe2.7 (1) + | | | value[0:5]: 0xe3-0xe7.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe3-0xe3.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe3-0xe3.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe4-0xe5.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xe6-0xe6.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xe7-0xe7.7 (1) + | | | [1]{}: object 0xe8-0x14b.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xe8-0xe8.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe8.2-0xe8.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe8.3-0xe8.7 (0.5) + 0x00000e| 62 | b | length: 98 0xe9-0xe9.7 (1) + 0x00000e| 00 | . | unused_bits_count: 0 0xea-0xea.7 (1) + 0x00000e| 04 04 cb f7 cc| .....| value: raw bits 0xeb-0x14b.7 (97) + 0x00000f|46 9f 58 43 7a 95 21 a2 57 84 8f 6c eb c9 45 28|F.XCz.!.W..l..E(| + * |until 0x14b.7 (97) | | + | | | [1]{}: object 0x14c-0x15a.7 (15) + 0x000014| 30 | 0 | class: "universal" (0) 0x14c-0x14c.1 (0.2) + 0x000014| 30 | 0 | form: "constructed" (1) 0x14c.2-0x14c.2 (0.1) + 0x000014| 30 | 0 | tag: "sequence" (0x10) 0x14c.3-0x14c.7 (0.5) + 0x000014| 0d | . | length: 13 0x14d-0x14d.7 (1) + | | | constructed[0:2]: 0x14e-0x15a.7 (13) + | | | [0]{}: object 0x14e-0x158.7 (11) + 0x000014| 06 | . | class: "universal" (0) 0x14e-0x14e.1 (0.2) + 0x000014| 06 | . | form: "primitive" (0) 0x14e.2-0x14e.2 (0.1) + 0x000014| 06 | . | tag: "object_identifier" (0x6) 0x14e.3-0x14e.7 (0.5) + 0x000014| 09| .| length: 9 0x14f-0x14f.7 (1) + | | | value[0:7]: 0x150-0x158.7 (9) + 0x000015|2a |* | [0]: 1 oid 0x150-0x150.7 (1) + 0x000015|2a |* | [1]: 2 oid 0x150-0x150.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x151-0x152.7 (2) + 0x000015| 86 f7 0d | ... | [3]: 113549 oid 0x153-0x155.7 (3) + 0x000015| 01 | . | [4]: 1 oid 0x156-0x156.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x157-0x157.7 (1) + 0x000015| 05 | . | [6]: 5 oid 0x158-0x158.7 (1) + | | | [1]{}: object 0x159-0x15a.7 (2) + 0x000015| 05 | . | class: "universal" (0) 0x159-0x159.1 (0.2) + 0x000015| 05 | . | form: "primitive" (0) 0x159.2-0x159.2 (0.1) + 0x000015| 05 | . | tag: "null" (0x5) 0x159.3-0x159.7 (0.5) + 0x000015| 00 | . | length: "indefinite" (0) 0x15a-0x15a.7 (1) + | | | value: null 0x15b-NA (0) + | | | [2]{}: object 0x15b-0x1de.7 (132) + 0x000015| 03 | . | class: "universal" (0) 0x15b-0x15b.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15b.2-0x15b.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15b.3-0x15b.7 (0.5) + 0x000015| 81 81 | .. | length: 129 0x15c-0x15d.7 (2) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 51| Q| value: raw bits 0x15f-0x1de.7 (128) + 0x000016|f1 72 36 6b 46 bb 3a fd 03 28 f9 69 2e 48 4c 8a|.r6kF.:..(.i.HL.| + * |until 0x1de.7 (128) | | + | | | [2]{}: record 0x1df-0x1e7.7 (9) + 0x00001d| 16| .| type: "handshake" (22) (valid) 0x1df-0x1df.7 (1) + 0x00001e|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x1e0-0x1e1.7 (2) + 0x00001e| 00 04 | .. | length: 4 0x1e2-0x1e3.7 (2) + | | | message{}: 0x1e4-0x1e7.7 (4) + 0x00001e| 0e | . | type: "server_hello_done" (14) 0x1e4-0x1e4.7 (1) + 0x00001e| 00 00 00 | ... | length: 0 0x1e5-0x1e7.7 (3) + | | | data: raw bits 0x1e8-NA (0) + | | | [3]{}: record 0x1e8-0x296.7 (175) + 0x00001e| 16 | . | type: "handshake" (22) (valid) 0x1e8-0x1e8.7 (1) + 0x00001e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1e9-0x1ea.7 (2) + 0x00001e| 00 aa | .. | length: 170 0x1eb-0x1ec.7 (2) + | | | message{}: 0x1ed-0x296.7 (170) + 0x00001e| 04 | . | type: "new_session_ticket" (4) 0x1ed-0x1ed.7 (1) + 0x00001e| 00 00| ..| length: 166 0x1ee-0x1f0.7 (3) + 0x00001f|a6 |. | + 0x00001f| 00 00 01 2c | ..., | lifetime_hint: 300 0x1f1-0x1f4.7 (4) + 0x00001f| 00 a0 | .. | ticket_length: 160 0x1f5-0x1f6.7 (2) + 0x00001f| 24 d5 3a fb 86 57 2c 82 fd| $.:..W,..| ticket: raw bits 0x1f7-0x296.7 (160) + 0x000020|03 3b 84 63 3f e2 3f ec df 26 03 34 ca 38 41 9a|.;.c?.?..&.4.8A.| + * |until 0x296.7 (160) | | + | | | [4]{}: record 0x297-0x29c.7 (6) + 0x000029| 14 | . | type: "change_cipher_spec" (20) (valid) 0x297-0x297.7 (1) + 0x000029| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x298-0x299.7 (2) + 0x000029| 00 01 | .. | length: 1 0x29a-0x29b.7 (2) + | | | message{}: 0x29c-0x29c.7 (1) + 0x000029| 01 | . | type: 1 0x29c-0x29c.7 (1) + | | | [5]{}: record 0x29d-0x2d9.7 (61) + 0x000029| 16 | . | type: "handshake" (22) (valid) 0x29d-0x29d.7 (1) + 0x000029| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x29e-0x29f.7 (2) + 0x00002a|00 38 |.8 | length: 56 0x2a0-0x2a1.7 (2) + 0x00002a| b3 8f fb 34 55 d2 95 22 46 2f 67 55 0e e0| ...4U.."F/gU..| encrypted_data: raw bits 0x2a2-0x2d9.7 (56) + 0x00002b|01 ac b2 9e 4c 3e 89 2f 7c a6 ea 0b 64 78 ed 7b|....L>./|...dx.{| + * |until 0x2d9.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| fa 77 69 32 7e b8 d9 b4 fa a1 67 77| .wi2~.....gw| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2da-0x766.7 (1165) + 0x00002d| 17 | . | type: "application_data" (23) (valid) 0x2da-0x2da.7 (1) + 0x00002d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2db-0x2dc.7 (2) + 0x00002d| 04 88 | .. | length: 1160 0x2dd-0x2de.7 (2) + 0x00002d| 90| .| encrypted_data: raw bits 0x2df-0x766.7 (1160) + 0x00002e|4a c4 07 d2 54 5d c6 d5 0d b8 a8 4c 23 64 24 23|J...T].....L#d$#| + * |until 0x766.7 (end) (1160) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1146.7 (4423) + * |until 0x1146.7 (end) (4423) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1146.7 (4423) + * |until 0x1146.7 (end) (4423) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..43c42d6c62cb70ea67c8a6d32274e66d737bbad4 GIT binary patch literal 3429 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..487929c4 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_CBC_SHA.pcap.fqtest @@ -0,0 +1,513 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDH_RSA_WITH_AES_128_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd65-NA (0) + | | | client{}: 0xd65-NA (0) + | | | ip: "127.0.0.1" 0xd65-NA (0) + | | | port: 48872 0xd65-NA (0) + | | | has_start: true 0xd65-NA (0) + | | | has_end: false 0xd65-NA (0) + | | | skipped_bytes: 0 0xd65-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1d5.7 (470) + | | | records[0:6]: 0x0-0x1d5.7 (470) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| bd| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|84 56 82 99 b5 84 54 be 24 f0 c7 84 ee 54 26 1c|.V....T.$....T&.| + 0x000002|de f0 fb e2 5c a5 0a 84 4b 2d 8c |....\...K-. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 0e| ..| [0]: "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA" (0xc00e) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0x110.7 (107) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 66 | .f | length: 102 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0x110.7 (102) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 62 | ..b | length: 98 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 61| a| length: 97 0xaf-0xaf.7 (1) + 0x00000b|04 1a b5 51 31 52 1d 27 a1 e1 29 6f df 9d 2b 4b|...Q1R.'..)o..+K| data: raw bits 0xb0-0x110.7 (97) + * |until 0x110.7 (97) | | + | | | [2]{}: record 0x111-0x116.7 (6) + 0x000011| 14 | . | type: "change_cipher_spec" (20) (valid) 0x111-0x111.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x112-0x113.7 (2) + 0x000011| 00 01 | .. | length: 1 0x114-0x115.7 (2) + | | | message{}: 0x116-0x116.7 (1) + 0x000011| 01 | . | type: 1 0x116-0x116.7 (1) + | | | [3]{}: record 0x117-0x15b.7 (69) + 0x000011| 16 | . | type: "handshake" (22) (valid) 0x117-0x117.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x118-0x119.7 (2) + 0x000011| 00 40 | .@ | length: 64 0x11a-0x11b.7 (2) + 0x000011| ce 32 d1 60| .2.`| encrypted_data: raw bits 0x11c-0x15b.7 (64) + 0x000012|0f 26 29 2c a0 6c 94 f5 69 17 27 38 f7 7a bb 60|.&),.l..i.'8.z.`| + * |until 0x15b.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 5a 39 1a 17 9b 86 47 cd 7d 69 b2 ee| Z9....G.}i..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x15c-0x1a0.7 (69) + 0x000015| 17 | . | type: "application_data" (23) (valid) 0x15c-0x15c.7 (1) + 0x000015| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x15d-0x15e.7 (2) + 0x000015| 00| .| length: 64 0x15f-0x160.7 (2) + 0x000016|40 |@ | + 0x000016| 5a 7e 2e f2 fd 98 3e 92 38 f1 7a 42 ae df 42| Z~....>.8.zB..B| encrypted_data: raw bits 0x161-0x1a0.7 (64) + 0x000017|5d bd 0f 59 24 52 bf e7 72 8d 24 44 fd ed c7 8a|]..Y$R..r.$D....| + * |until 0x1a0.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x1a1-0x1d5.7 (53) + 0x00001a| 15 | . | type: "alert" (21) (valid) 0x1a1-0x1a1.7 (1) + 0x00001a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1a2-0x1a3.7 (2) + 0x00001a| 00 30 | .0 | length: 48 0x1a4-0x1a5.7 (2) + 0x00001a| 88 23 28 82 98 46 09 7f 9a 4c| .#(..F...L| encrypted_data: raw bits 0x1a6-0x1d5.7 (48) + 0x00001b|88 1f 4c c8 79 1e 12 56 d0 d5 b0 9b 2a 40 a1 04|..L.y..V....*@..| + * |until 0x1d5.7 (end) (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd65-NA (0) + | | | ip: "127.0.0.1" 0xd65-NA (0) + | | | port: 4432 0xd65-NA (0) + | | | has_start: true 0xd65-NA (0) + | | | has_end: true 0xd65-NA (0) + | | | skipped_bytes: 0 0xd65-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x776.7 (1911) + | | | records[0:7]: 0x0-0x776.7 (1911) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 6f| o| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|41 3f 9d ad 74 38 51 90 42 d1 fb 65 fe 9a 7f 46|A?..t8Q.B..e...F| + 0x000002|99 f3 e2 9b e9 ea 31 4f ff 36 4b |......1O.6K | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 0e | .. | cipher_suit: "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA" (0xc00e) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1de.7 (408) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 93 | .. | length: 403 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1de.7 (403) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 8f| ...| length: 399 0x4d-0x4f.7 (3) + 0x000005|00 01 8c |... | certificates_length: 396 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1de.7 (396) + | | | [0]{}: certificate 0x53-0x1de.7 (396) + 0x000005| 00 01 89 | ... | length: 393 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1de.7 (393) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 85 | ... | length: 389 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1de.7 (389) + | | | [0]{}: object 0x5a-0x14b.7 (242) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 ef | .. | length: 239 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x14b.7 (239) + | | | [0]{}: object 0x5d-0x61.7 (5) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 03 | . | length: 3 0x5e-0x5e.7 (1) + 0x000005| 01| .| value: 129423 0x5f-0x61.7 (3) + 0x000006|f9 8f |.. | + | | | [1]{}: object 0x62-0x70.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x62-0x62.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x62.2-0x62.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x62.3-0x62.7 (0.5) + 0x000006| 0d | . | length: 13 0x63-0x63.7 (1) + | | | constructed[0:2]: 0x64-0x70.7 (13) + | | | [0]{}: object 0x64-0x6e.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x64-0x64.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x64.2-0x64.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x64.3-0x64.7 (0.5) + 0x000006| 09 | . | length: 9 0x65-0x65.7 (1) + | | | value[0:7]: 0x66-0x6e.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x66-0x66.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x66-0x66.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x67-0x68.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x69-0x6b.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6e-0x6e.7 (1) + | | | [1]{}: object 0x6f-0x70.7 (2) + 0x000006| 05| .| class: "universal" (0) 0x6f-0x6f.1 (0.2) + 0x000006| 05| .| form: "primitive" (0) 0x6f.2-0x6f.2 (0.1) + 0x000006| 05| .| tag: "null" (0x5) 0x6f.3-0x6f.7 (0.5) + 0x000007|00 |. | length: "indefinite" (0) 0x70-0x70.7 (1) + | | | value: null 0x71-NA (0) + | | | [2]{}: object 0x71-0x91.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x71-0x71.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x71.2-0x71.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x71.3-0x71.7 (0.5) + 0x000007| 1f | . | length: 31 0x72-0x72.7 (1) + | | | constructed[0:1]: 0x73-0x91.7 (31) + | | | [0]{}: object 0x73-0x91.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x73.3-0x73.7 (0.5) + 0x000007| 1d | . | length: 29 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x91.7 (29) + | | | [0]{}: object 0x75-0x91.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x75.3-0x75.7 (0.5) + 0x000007| 1b | . | length: 27 0x76-0x76.7 (1) + | | | constructed[0:2]: 0x77-0x91.7 (27) + | | | [0]{}: object 0x77-0x7b.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x77.2-0x77.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x77.3-0x77.7 (0.5) + 0x000007| 03 | . | length: 3 0x78-0x78.7 (1) + | | | value[0:4]: 0x79-0x7b.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x79-0x79.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x79-0x79.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7a-0x7a.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7b-0x7b.7 (1) + | | | [1]{}: object 0x7c-0x91.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7c.2-0x7c.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7c.3-0x7c.7 (0.5) + 0x000007| 14 | . | length: 20 0x7d-0x7d.7 (1) + 0x000007| 54 65| Te| value: "Test Certificate RSA" 0x7e-0x91.7 (20) + 0x000008|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x000009|53 41 |SA | + | | | [3]{}: object 0x92-0xb1.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x92-0x92.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x92.2-0x92.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x92.3-0x92.7 (0.5) + 0x000009| 1e | . | length: 30 0x93-0x93.7 (1) + | | | constructed[0:2]: 0x94-0xb1.7 (30) + | | | [0]{}: object 0x94-0xa2.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x94-0x94.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x94.2-0x94.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x94.3-0x94.7 (0.5) + 0x000009| 0d | . | length: 13 0x95-0x95.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31| 1309152151| value: "130915215110Z" 0x96-0xa2.7 (13) + 0x00000a|31 30 5a |10Z | + | | | [1]{}: object 0xa3-0xb1.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa3-0xa3.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa3.2-0xa3.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa3.3-0xa3.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa4-0xa4.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31| 23091321511| value: "230913215110Z" 0xa5-0xb1.7 (13) + 0x00000b|30 5a |0Z | + | | | [4]{}: object 0xb2-0xd3.7 (34) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb2-0xb2.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb2.2-0xb2.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb2.3-0xb2.7 (0.5) + 0x00000b| 20 | | length: 32 0xb3-0xb3.7 (1) + | | | constructed[0:1]: 0xb4-0xd3.7 (32) + | | | [0]{}: object 0xb4-0xd3.7 (32) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb4-0xb4.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb4.2-0xb4.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb4.3-0xb4.7 (0.5) + 0x00000b| 1e | . | length: 30 0xb5-0xb5.7 (1) + | | | constructed[0:1]: 0xb6-0xd3.7 (30) + | | | [0]{}: object 0xb6-0xd3.7 (30) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 1c | . | length: 28 0xb7-0xb7.7 (1) + | | | constructed[0:2]: 0xb8-0xd3.7 (28) + | | | [0]{}: object 0xb8-0xbc.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb9-0xb9.7 (1) + | | | value[0:4]: 0xba-0xbc.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xba-0xba.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xba-0xba.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xbb-0xbb.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbc-0xbc.7 (1) + | | | [1]{}: object 0xbd-0xd3.7 (23) + 0x00000b| 0c | . | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 15 | . | length: 21 0xbe-0xbe.7 (1) + 0x00000b| 54| T| value: "Test Certificate ECDH" 0xbf-0xd3.7 (21) + 0x00000c|65 73 74 20 43 65 72 74 69 66 69 63 61 74 65 20|est Certificate | + 0x00000d|45 43 44 48 |ECDH | + | | | [5]{}: object 0xd4-0x14b.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd4-0xd4.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd4.2-0xd4.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd4.3-0xd4.7 (0.5) + 0x00000d| 76 | v | length: 118 0xd5-0xd5.7 (1) + | | | constructed[0:2]: 0xd6-0x14b.7 (118) + | | | [0]{}: object 0xd6-0xe7.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd6-0xd6.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd6.2-0xd6.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd6.3-0xd6.7 (0.5) + 0x00000d| 10 | . | length: 16 0xd7-0xd7.7 (1) + | | | constructed[0:2]: 0xd8-0xe7.7 (16) + | | | [0]{}: object 0xd8-0xe0.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xd8-0xd8.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd8.2-0xd8.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd8.3-0xd8.7 (0.5) + 0x00000d| 07 | . | length: 7 0xd9-0xd9.7 (1) + | | | value[0:6]: 0xda-0xe0.7 (7) + 0x00000d| 2a | * | [0]: 1 oid 0xda-0xda.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xda-0xda.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xdb-0xdc.7 (2) + 0x00000d| ce 3d | .= | [3]: 10045 oid 0xdd-0xde.7 (2) + 0x00000d| 02| .| [4]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + | | | [1]{}: object 0xe1-0xe7.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe1-0xe1.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe1.2-0xe1.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe1.3-0xe1.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe2-0xe2.7 (1) + | | | value[0:5]: 0xe3-0xe7.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe3-0xe3.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe3-0xe3.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe4-0xe5.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xe6-0xe6.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xe7-0xe7.7 (1) + | | | [1]{}: object 0xe8-0x14b.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xe8-0xe8.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe8.2-0xe8.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe8.3-0xe8.7 (0.5) + 0x00000e| 62 | b | length: 98 0xe9-0xe9.7 (1) + 0x00000e| 00 | . | unused_bits_count: 0 0xea-0xea.7 (1) + 0x00000e| 04 04 cb f7 cc| .....| value: raw bits 0xeb-0x14b.7 (97) + 0x00000f|46 9f 58 43 7a 95 21 a2 57 84 8f 6c eb c9 45 28|F.XCz.!.W..l..E(| + * |until 0x14b.7 (97) | | + | | | [1]{}: object 0x14c-0x15a.7 (15) + 0x000014| 30 | 0 | class: "universal" (0) 0x14c-0x14c.1 (0.2) + 0x000014| 30 | 0 | form: "constructed" (1) 0x14c.2-0x14c.2 (0.1) + 0x000014| 30 | 0 | tag: "sequence" (0x10) 0x14c.3-0x14c.7 (0.5) + 0x000014| 0d | . | length: 13 0x14d-0x14d.7 (1) + | | | constructed[0:2]: 0x14e-0x15a.7 (13) + | | | [0]{}: object 0x14e-0x158.7 (11) + 0x000014| 06 | . | class: "universal" (0) 0x14e-0x14e.1 (0.2) + 0x000014| 06 | . | form: "primitive" (0) 0x14e.2-0x14e.2 (0.1) + 0x000014| 06 | . | tag: "object_identifier" (0x6) 0x14e.3-0x14e.7 (0.5) + 0x000014| 09| .| length: 9 0x14f-0x14f.7 (1) + | | | value[0:7]: 0x150-0x158.7 (9) + 0x000015|2a |* | [0]: 1 oid 0x150-0x150.7 (1) + 0x000015|2a |* | [1]: 2 oid 0x150-0x150.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x151-0x152.7 (2) + 0x000015| 86 f7 0d | ... | [3]: 113549 oid 0x153-0x155.7 (3) + 0x000015| 01 | . | [4]: 1 oid 0x156-0x156.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x157-0x157.7 (1) + 0x000015| 05 | . | [6]: 5 oid 0x158-0x158.7 (1) + | | | [1]{}: object 0x159-0x15a.7 (2) + 0x000015| 05 | . | class: "universal" (0) 0x159-0x159.1 (0.2) + 0x000015| 05 | . | form: "primitive" (0) 0x159.2-0x159.2 (0.1) + 0x000015| 05 | . | tag: "null" (0x5) 0x159.3-0x159.7 (0.5) + 0x000015| 00 | . | length: "indefinite" (0) 0x15a-0x15a.7 (1) + | | | value: null 0x15b-NA (0) + | | | [2]{}: object 0x15b-0x1de.7 (132) + 0x000015| 03 | . | class: "universal" (0) 0x15b-0x15b.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15b.2-0x15b.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15b.3-0x15b.7 (0.5) + 0x000015| 81 81 | .. | length: 129 0x15c-0x15d.7 (2) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 51| Q| value: raw bits 0x15f-0x1de.7 (128) + 0x000016|f1 72 36 6b 46 bb 3a fd 03 28 f9 69 2e 48 4c 8a|.r6kF.:..(.i.HL.| + * |until 0x1de.7 (128) | | + | | | [2]{}: record 0x1df-0x1e7.7 (9) + 0x00001d| 16| .| type: "handshake" (22) (valid) 0x1df-0x1df.7 (1) + 0x00001e|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x1e0-0x1e1.7 (2) + 0x00001e| 00 04 | .. | length: 4 0x1e2-0x1e3.7 (2) + | | | message{}: 0x1e4-0x1e7.7 (4) + 0x00001e| 0e | . | type: "server_hello_done" (14) 0x1e4-0x1e4.7 (1) + 0x00001e| 00 00 00 | ... | length: 0 0x1e5-0x1e7.7 (3) + | | | data: raw bits 0x1e8-NA (0) + | | | [3]{}: record 0x1e8-0x296.7 (175) + 0x00001e| 16 | . | type: "handshake" (22) (valid) 0x1e8-0x1e8.7 (1) + 0x00001e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1e9-0x1ea.7 (2) + 0x00001e| 00 aa | .. | length: 170 0x1eb-0x1ec.7 (2) + | | | message{}: 0x1ed-0x296.7 (170) + 0x00001e| 04 | . | type: "new_session_ticket" (4) 0x1ed-0x1ed.7 (1) + 0x00001e| 00 00| ..| length: 166 0x1ee-0x1f0.7 (3) + 0x00001f|a6 |. | + 0x00001f| 00 00 01 2c | ..., | lifetime_hint: 300 0x1f1-0x1f4.7 (4) + 0x00001f| 00 a0 | .. | ticket_length: 160 0x1f5-0x1f6.7 (2) + 0x00001f| 24 d5 3a fb 86 57 2c 82 fd| $.:..W,..| ticket: raw bits 0x1f7-0x296.7 (160) + 0x000020|03 3b 84 63 3f e2 3f c7 aa a5 a4 ff 40 53 a3 25|.;.c?.?.....@S.%| + * |until 0x296.7 (160) | | + | | | [4]{}: record 0x297-0x29c.7 (6) + 0x000029| 14 | . | type: "change_cipher_spec" (20) (valid) 0x297-0x297.7 (1) + 0x000029| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x298-0x299.7 (2) + 0x000029| 00 01 | .. | length: 1 0x29a-0x29b.7 (2) + | | | message{}: 0x29c-0x29c.7 (1) + 0x000029| 01 | . | type: 1 0x29c-0x29c.7 (1) + | | | [5]{}: record 0x29d-0x2e1.7 (69) + 0x000029| 16 | . | type: "handshake" (22) (valid) 0x29d-0x29d.7 (1) + 0x000029| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x29e-0x29f.7 (2) + 0x00002a|00 40 |.@ | length: 64 0x2a0-0x2a1.7 (2) + 0x00002a| ef 33 fc 7d 3f b2 0b bb b8 a6 e4 69 86 2f| .3.}?......i./| encrypted_data: raw bits 0x2a2-0x2e1.7 (64) + 0x00002b|f4 b8 9a 00 ba 69 b5 5f d4 69 24 9f f8 e3 86 73|.....i._.i$....s| + * |until 0x2e1.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| e5 9d 93 97 9e 5c 7b 9f ec bf 4a 72| .....\{...Jr| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2e2-0x776.7 (1173) + 0x00002e| 17 | . | type: "application_data" (23) (valid) 0x2e2-0x2e2.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2e3-0x2e4.7 (2) + 0x00002e| 04 90 | .. | length: 1168 0x2e5-0x2e6.7 (2) + 0x00002e| 94 3a 92 79 23 57 07 76 15| .:.y#W.v.| encrypted_data: raw bits 0x2e7-0x776.7 (1168) + 0x00002f|de f9 48 3c d7 a7 03 4b e2 cd 9d a9 b6 8e 61 76|..H<...K......av| + * |until 0x776.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1140.7 (4417) + * |until 0x1140.7 (end) (4417) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1140.7 (4417) + * |until 0x1140.7 (end) (4417) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256.pcap b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..0e994cae3203578737bf31d9663cf04391563c2d GIT binary patch literal 3509 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.['..| encrypted_data: raw bits 0x171-0x1c0.7 (80) + 0x000018|74 b8 26 fa 04 51 11 71 dd 3a e6 f3 6e e4 63 b8|t.&..Q.q.:..n.c.| + * |until 0x1c0.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x1c1-0x205.7 (69) + 0x00001c| 15 | . | type: "alert" (21) (valid) 0x1c1-0x1c1.7 (1) + 0x00001c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1c2-0x1c3.7 (2) + 0x00001c| 00 40 | .@ | length: 64 0x1c4-0x1c5.7 (2) + 0x00001c| c7 d3 84 67 f0 fa 1d fc 13 1e| ...g......| encrypted_data: raw bits 0x1c6-0x205.7 (64) + 0x00001d|03 1d bb 28 ca 53 f4 ae 9d 0d 67 73 34 66 3c ed|...(.S....gs4f<.| + * |until 0x205.7 (end) (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xdb5-NA (0) + | | | ip: "127.0.0.1" 0xdb5-NA (0) + | | | port: 4432 0xdb5-NA (0) + | | | has_start: true 0xdb5-NA (0) + | | | has_end: true 0xdb5-NA (0) + | | | skipped_bytes: 0 0xdb5-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x796.7 (1943) + | | | records[0:7]: 0x0-0x796.7 (1943) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 14| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|dc 64 b0 5d 6b 5e 73 3e 6d 55 f2 57 b8 8f a3 ab|.d.]k^s>mU.W....| + 0x000002|fd be fb 5c f7 de f9 fa 9c 82 5c |...\......\ | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 29 | .) | cipher_suit: "TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256" (0xc029) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1de.7 (408) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 93 | .. | length: 403 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1de.7 (403) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 8f| ...| length: 399 0x4d-0x4f.7 (3) + 0x000005|00 01 8c |... | certificates_length: 396 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1de.7 (396) + | | | [0]{}: certificate 0x53-0x1de.7 (396) + 0x000005| 00 01 89 | ... | length: 393 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1de.7 (393) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 85 | ... | length: 389 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1de.7 (389) + | | | [0]{}: object 0x5a-0x14b.7 (242) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 ef | .. | length: 239 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x14b.7 (239) + | | | [0]{}: object 0x5d-0x61.7 (5) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 03 | . | length: 3 0x5e-0x5e.7 (1) + 0x000005| 01| .| value: 129423 0x5f-0x61.7 (3) + 0x000006|f9 8f |.. | + | | | [1]{}: object 0x62-0x70.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x62-0x62.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x62.2-0x62.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x62.3-0x62.7 (0.5) + 0x000006| 0d | . | length: 13 0x63-0x63.7 (1) + | | | constructed[0:2]: 0x64-0x70.7 (13) + | | | [0]{}: object 0x64-0x6e.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x64-0x64.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x64.2-0x64.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x64.3-0x64.7 (0.5) + 0x000006| 09 | . | length: 9 0x65-0x65.7 (1) + | | | value[0:7]: 0x66-0x6e.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x66-0x66.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x66-0x66.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x67-0x68.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x69-0x6b.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6e-0x6e.7 (1) + | | | [1]{}: object 0x6f-0x70.7 (2) + 0x000006| 05| .| class: "universal" (0) 0x6f-0x6f.1 (0.2) + 0x000006| 05| .| form: "primitive" (0) 0x6f.2-0x6f.2 (0.1) + 0x000006| 05| .| tag: "null" (0x5) 0x6f.3-0x6f.7 (0.5) + 0x000007|00 |. | length: "indefinite" (0) 0x70-0x70.7 (1) + | | | value: null 0x71-NA (0) + | | | [2]{}: object 0x71-0x91.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x71-0x71.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x71.2-0x71.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x71.3-0x71.7 (0.5) + 0x000007| 1f | . | length: 31 0x72-0x72.7 (1) + | | | constructed[0:1]: 0x73-0x91.7 (31) + | | | [0]{}: object 0x73-0x91.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x73.3-0x73.7 (0.5) + 0x000007| 1d | . | length: 29 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x91.7 (29) + | | | [0]{}: object 0x75-0x91.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x75.3-0x75.7 (0.5) + 0x000007| 1b | . | length: 27 0x76-0x76.7 (1) + | | | constructed[0:2]: 0x77-0x91.7 (27) + | | | [0]{}: object 0x77-0x7b.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x77.2-0x77.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x77.3-0x77.7 (0.5) + 0x000007| 03 | . | length: 3 0x78-0x78.7 (1) + | | | value[0:4]: 0x79-0x7b.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x79-0x79.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x79-0x79.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7a-0x7a.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7b-0x7b.7 (1) + | | | [1]{}: object 0x7c-0x91.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7c.2-0x7c.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7c.3-0x7c.7 (0.5) + 0x000007| 14 | . | length: 20 0x7d-0x7d.7 (1) + 0x000007| 54 65| Te| value: "Test Certificate RSA" 0x7e-0x91.7 (20) + 0x000008|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x000009|53 41 |SA | + | | | [3]{}: object 0x92-0xb1.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x92-0x92.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x92.2-0x92.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x92.3-0x92.7 (0.5) + 0x000009| 1e | . | length: 30 0x93-0x93.7 (1) + | | | constructed[0:2]: 0x94-0xb1.7 (30) + | | | [0]{}: object 0x94-0xa2.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x94-0x94.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x94.2-0x94.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x94.3-0x94.7 (0.5) + 0x000009| 0d | . | length: 13 0x95-0x95.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31| 1309152151| value: "130915215110Z" 0x96-0xa2.7 (13) + 0x00000a|31 30 5a |10Z | + | | | [1]{}: object 0xa3-0xb1.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa3-0xa3.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa3.2-0xa3.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa3.3-0xa3.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa4-0xa4.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31| 23091321511| value: "230913215110Z" 0xa5-0xb1.7 (13) + 0x00000b|30 5a |0Z | + | | | [4]{}: object 0xb2-0xd3.7 (34) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb2-0xb2.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb2.2-0xb2.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb2.3-0xb2.7 (0.5) + 0x00000b| 20 | | length: 32 0xb3-0xb3.7 (1) + | | | constructed[0:1]: 0xb4-0xd3.7 (32) + | | | [0]{}: object 0xb4-0xd3.7 (32) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb4-0xb4.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb4.2-0xb4.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb4.3-0xb4.7 (0.5) + 0x00000b| 1e | . | length: 30 0xb5-0xb5.7 (1) + | | | constructed[0:1]: 0xb6-0xd3.7 (30) + | | | [0]{}: object 0xb6-0xd3.7 (30) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 1c | . | length: 28 0xb7-0xb7.7 (1) + | | | constructed[0:2]: 0xb8-0xd3.7 (28) + | | | [0]{}: object 0xb8-0xbc.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb9-0xb9.7 (1) + | | | value[0:4]: 0xba-0xbc.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xba-0xba.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xba-0xba.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xbb-0xbb.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbc-0xbc.7 (1) + | | | [1]{}: object 0xbd-0xd3.7 (23) + 0x00000b| 0c | . | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 15 | . | length: 21 0xbe-0xbe.7 (1) + 0x00000b| 54| T| value: "Test Certificate ECDH" 0xbf-0xd3.7 (21) + 0x00000c|65 73 74 20 43 65 72 74 69 66 69 63 61 74 65 20|est Certificate | + 0x00000d|45 43 44 48 |ECDH | + | | | [5]{}: object 0xd4-0x14b.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd4-0xd4.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd4.2-0xd4.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd4.3-0xd4.7 (0.5) + 0x00000d| 76 | v | length: 118 0xd5-0xd5.7 (1) + | | | constructed[0:2]: 0xd6-0x14b.7 (118) + | | | [0]{}: object 0xd6-0xe7.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd6-0xd6.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd6.2-0xd6.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd6.3-0xd6.7 (0.5) + 0x00000d| 10 | . | length: 16 0xd7-0xd7.7 (1) + | | | constructed[0:2]: 0xd8-0xe7.7 (16) + | | | [0]{}: object 0xd8-0xe0.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xd8-0xd8.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd8.2-0xd8.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd8.3-0xd8.7 (0.5) + 0x00000d| 07 | . | length: 7 0xd9-0xd9.7 (1) + | | | value[0:6]: 0xda-0xe0.7 (7) + 0x00000d| 2a | * | [0]: 1 oid 0xda-0xda.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xda-0xda.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xdb-0xdc.7 (2) + 0x00000d| ce 3d | .= | [3]: 10045 oid 0xdd-0xde.7 (2) + 0x00000d| 02| .| [4]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + | | | [1]{}: object 0xe1-0xe7.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe1-0xe1.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe1.2-0xe1.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe1.3-0xe1.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe2-0xe2.7 (1) + | | | value[0:5]: 0xe3-0xe7.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe3-0xe3.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe3-0xe3.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe4-0xe5.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xe6-0xe6.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xe7-0xe7.7 (1) + | | | [1]{}: object 0xe8-0x14b.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xe8-0xe8.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe8.2-0xe8.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe8.3-0xe8.7 (0.5) + 0x00000e| 62 | b | length: 98 0xe9-0xe9.7 (1) + 0x00000e| 00 | . | unused_bits_count: 0 0xea-0xea.7 (1) + 0x00000e| 04 04 cb f7 cc| .....| value: raw bits 0xeb-0x14b.7 (97) + 0x00000f|46 9f 58 43 7a 95 21 a2 57 84 8f 6c eb c9 45 28|F.XCz.!.W..l..E(| + * |until 0x14b.7 (97) | | + | | | [1]{}: object 0x14c-0x15a.7 (15) + 0x000014| 30 | 0 | class: "universal" (0) 0x14c-0x14c.1 (0.2) + 0x000014| 30 | 0 | form: "constructed" (1) 0x14c.2-0x14c.2 (0.1) + 0x000014| 30 | 0 | tag: "sequence" (0x10) 0x14c.3-0x14c.7 (0.5) + 0x000014| 0d | . | length: 13 0x14d-0x14d.7 (1) + | | | constructed[0:2]: 0x14e-0x15a.7 (13) + | | | [0]{}: object 0x14e-0x158.7 (11) + 0x000014| 06 | . | class: "universal" (0) 0x14e-0x14e.1 (0.2) + 0x000014| 06 | . | form: "primitive" (0) 0x14e.2-0x14e.2 (0.1) + 0x000014| 06 | . | tag: "object_identifier" (0x6) 0x14e.3-0x14e.7 (0.5) + 0x000014| 09| .| length: 9 0x14f-0x14f.7 (1) + | | | value[0:7]: 0x150-0x158.7 (9) + 0x000015|2a |* | [0]: 1 oid 0x150-0x150.7 (1) + 0x000015|2a |* | [1]: 2 oid 0x150-0x150.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x151-0x152.7 (2) + 0x000015| 86 f7 0d | ... | [3]: 113549 oid 0x153-0x155.7 (3) + 0x000015| 01 | . | [4]: 1 oid 0x156-0x156.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x157-0x157.7 (1) + 0x000015| 05 | . | [6]: 5 oid 0x158-0x158.7 (1) + | | | [1]{}: object 0x159-0x15a.7 (2) + 0x000015| 05 | . | class: "universal" (0) 0x159-0x159.1 (0.2) + 0x000015| 05 | . | form: "primitive" (0) 0x159.2-0x159.2 (0.1) + 0x000015| 05 | . | tag: "null" (0x5) 0x159.3-0x159.7 (0.5) + 0x000015| 00 | . | length: "indefinite" (0) 0x15a-0x15a.7 (1) + | | | value: null 0x15b-NA (0) + | | | [2]{}: object 0x15b-0x1de.7 (132) + 0x000015| 03 | . | class: "universal" (0) 0x15b-0x15b.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15b.2-0x15b.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15b.3-0x15b.7 (0.5) + 0x000015| 81 81 | .. | length: 129 0x15c-0x15d.7 (2) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 51| Q| value: raw bits 0x15f-0x1de.7 (128) + 0x000016|f1 72 36 6b 46 bb 3a fd 03 28 f9 69 2e 48 4c 8a|.r6kF.:..(.i.HL.| + * |until 0x1de.7 (128) | | + | | | [2]{}: record 0x1df-0x1e7.7 (9) + 0x00001d| 16| .| type: "handshake" (22) (valid) 0x1df-0x1df.7 (1) + 0x00001e|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x1e0-0x1e1.7 (2) + 0x00001e| 00 04 | .. | length: 4 0x1e2-0x1e3.7 (2) + | | | message{}: 0x1e4-0x1e7.7 (4) + 0x00001e| 0e | . | type: "server_hello_done" (14) 0x1e4-0x1e4.7 (1) + 0x00001e| 00 00 00 | ... | length: 0 0x1e5-0x1e7.7 (3) + | | | data: raw bits 0x1e8-NA (0) + | | | [3]{}: record 0x1e8-0x296.7 (175) + 0x00001e| 16 | . | type: "handshake" (22) (valid) 0x1e8-0x1e8.7 (1) + 0x00001e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1e9-0x1ea.7 (2) + 0x00001e| 00 aa | .. | length: 170 0x1eb-0x1ec.7 (2) + | | | message{}: 0x1ed-0x296.7 (170) + 0x00001e| 04 | . | type: "new_session_ticket" (4) 0x1ed-0x1ed.7 (1) + 0x00001e| 00 00| ..| length: 166 0x1ee-0x1f0.7 (3) + 0x00001f|a6 |. | + 0x00001f| 00 00 01 2c | ..., | lifetime_hint: 300 0x1f1-0x1f4.7 (4) + 0x00001f| 00 a0 | .. | ticket_length: 160 0x1f5-0x1f6.7 (2) + 0x00001f| 24 d5 3a fb 86 57 2c 82 fd| $.:..W,..| ticket: raw bits 0x1f7-0x296.7 (160) + 0x000020|03 3b 84 63 3f e2 3f 84 2b 84 4c 16 be 7f 73 5d|.;.c?.?.+.L...s]| + * |until 0x296.7 (160) | | + | | | [4]{}: record 0x297-0x29c.7 (6) + 0x000029| 14 | . | type: "change_cipher_spec" (20) (valid) 0x297-0x297.7 (1) + 0x000029| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x298-0x299.7 (2) + 0x000029| 00 01 | .. | length: 1 0x29a-0x29b.7 (2) + | | | message{}: 0x29c-0x29c.7 (1) + 0x000029| 01 | . | type: 1 0x29c-0x29c.7 (1) + | | | [5]{}: record 0x29d-0x2f1.7 (85) + 0x000029| 16 | . | type: "handshake" (22) (valid) 0x29d-0x29d.7 (1) + 0x000029| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x29e-0x29f.7 (2) + 0x00002a|00 50 |.P | length: 80 0x2a0-0x2a1.7 (2) + 0x00002a| 8c af f9 cf 70 ed bb 50 71 95 39 d1 51 ab| ....p..Pq.9.Q.| encrypted_data: raw bits 0x2a2-0x2f1.7 (80) + 0x00002b|92 f6 39 7b 8e 36 ce 96 1c e6 e4 b6 af 8e 33 fb|..9{.6........3.| + * |until 0x2f1.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| a6 52 4f e3 21 35 43 19 4e fe f4 fb| .RO.!5C.N...| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2f2-0x796.7 (1189) + 0x00002f| 17 | . | type: "application_data" (23) (valid) 0x2f2-0x2f2.7 (1) + 0x00002f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2f3-0x2f4.7 (2) + 0x00002f| 04 a0 | .. | length: 1184 0x2f5-0x2f6.7 (2) + 0x00002f| a9 a0 c7 65 d8 12 a4 f5 af| ...e.....| encrypted_data: raw bits 0x2f7-0x796.7 (1184) + 0x000030|78 09 44 fe e9 a2 cd 5d 27 19 2a e0 4e de 64 e4|x.D....]'.*.N.d.| + * |until 0x796.7 (end) (1184) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1149.7 (4426) + * |until 0x1149.7 (end) (4426) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1149.7 (4426) + * |until 0x1149.7 (end) (4426) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256.pcap b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..8faa5fcbb48c23895ce09bc1780d533e2276277c GIT binary patch literal 3349 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest new file mode 100644 index 00000000..c7ddc418 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest @@ -0,0 +1,512 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd15-NA (0) + | | | client{}: 0xd15-NA (0) + | | | ip: "127.0.0.1" 0xd15-NA (0) + | | | port: 48868 0xd15-NA (0) + | | | has_start: true 0xd15-NA (0) + | | | has_end: false 0xd15-NA (0) + | | | skipped_bytes: 0 0xd15-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1a6.7 (423) + | | | records[0:6]: 0x0-0x1a6.7 (423) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| ce| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|47 f1 cd e4 98 44 cf 41 07 b2 86 51 79 c1 ce 54|G....D.A...Qy..T| + 0x000002|03 e7 98 68 28 40 a8 cb ce c2 03 |...h(@..... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 31| .1| [0]: "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256" (0xc031) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0x110.7 (107) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 66 | .f | length: 102 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0x110.7 (102) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 62 | ..b | length: 98 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 61| a| length: 97 0xaf-0xaf.7 (1) + 0x00000b|04 98 6f 35 e5 2f bc dd 2a 08 37 3b 0d 1d 12 5a|..o5./..*.7;...Z| data: raw bits 0xb0-0x110.7 (97) + * |until 0x110.7 (97) | | + | | | [2]{}: record 0x111-0x116.7 (6) + 0x000011| 14 | . | type: "change_cipher_spec" (20) (valid) 0x111-0x111.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x112-0x113.7 (2) + 0x000011| 00 01 | .. | length: 1 0x114-0x115.7 (2) + | | | message{}: 0x116-0x116.7 (1) + 0x000011| 01 | . | type: 1 0x116-0x116.7 (1) + | | | [3]{}: record 0x117-0x14c.7 (54) + 0x000011| 16 | . | type: "handshake" (22) (valid) 0x117-0x117.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x118-0x119.7 (2) + 0x000011| 00 31 | .1 | length: 49 0x11a-0x11b.7 (2) + 0x000011| 85 c0 28 cc| ..(.| encrypted_data: raw bits 0x11c-0x14c.7 (49) + 0x000012|28 47 06 8f 45 5c a9 11 f6 4d b0 f6 0f fb 46 92|(G..E\...M....F.| + * |until 0x14c.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| ac e7 82 24 57 79 e3 35 89 d3 a0 e8| ...$Wy.5....| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x14d-0x181.7 (53) + 0x000014| 17 | . | type: "application_data" (23) (valid) 0x14d-0x14d.7 (1) + 0x000014| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x14e-0x14f.7 (2) + 0x000015|00 30 |.0 | length: 48 0x150-0x151.7 (2) + 0x000015| 85 c0 28 cc 28 47 06 90 f5 68 28 65 ad f2| ..(.(G...h(e..| encrypted_data: raw bits 0x152-0x181.7 (48) + 0x000016|79 13 b6 6b 44 5b b1 14 02 b3 43 a2 27 30 47 06|y..kD[....C.'0G.| + * |until 0x181.7 (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x182-0x1a6.7 (37) + 0x000018| 15 | . | type: "alert" (21) (valid) 0x182-0x182.7 (1) + 0x000018| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x183-0x184.7 (2) + 0x000018| 00 20 | . | length: 32 0x185-0x186.7 (2) + 0x000018| 85 c0 28 cc 28 47 06 91 75| ..(.(G..u| encrypted_data: raw bits 0x187-0x1a6.7 (32) + 0x000019|af 50 66 0e 7c ac 69 99 e6 74 92 5c 62 eb d2 4d|.Pf.|.i..t.\b..M| + 0x00001a|4a b0 ac 07 fe b1 0a| |J......| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd15-NA (0) + | | | ip: "127.0.0.1" 0xd15-NA (0) + | | | port: 4432 0xd15-NA (0) + | | | has_start: true 0xd15-NA (0) + | | | has_end: true 0xd15-NA (0) + | | | skipped_bytes: 0 0xd15-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x755.7 (1878) + | | | records[0:7]: 0x0-0x755.7 (1878) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| fc| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|5f f7 cd 98 b7 fd 5a 8d 65 59 83 e1 be 96 58 85|_.....Z.eY....X.| + 0x000002|2d bb 4c ed 89 f6 d1 5e b1 a7 1d |-.L....^... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 31 | .1 | cipher_suit: "TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256" (0xc031) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1de.7 (408) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 93 | .. | length: 403 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1de.7 (403) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 8f| ...| length: 399 0x4d-0x4f.7 (3) + 0x000005|00 01 8c |... | certificates_length: 396 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1de.7 (396) + | | | [0]{}: certificate 0x53-0x1de.7 (396) + 0x000005| 00 01 89 | ... | length: 393 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1de.7 (393) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 85 | ... | length: 389 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1de.7 (389) + | | | [0]{}: object 0x5a-0x14b.7 (242) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 ef | .. | length: 239 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x14b.7 (239) + | | | [0]{}: object 0x5d-0x61.7 (5) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 03 | . | length: 3 0x5e-0x5e.7 (1) + 0x000005| 01| .| value: 129423 0x5f-0x61.7 (3) + 0x000006|f9 8f |.. | + | | | [1]{}: object 0x62-0x70.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x62-0x62.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x62.2-0x62.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x62.3-0x62.7 (0.5) + 0x000006| 0d | . | length: 13 0x63-0x63.7 (1) + | | | constructed[0:2]: 0x64-0x70.7 (13) + | | | [0]{}: object 0x64-0x6e.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x64-0x64.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x64.2-0x64.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x64.3-0x64.7 (0.5) + 0x000006| 09 | . | length: 9 0x65-0x65.7 (1) + | | | value[0:7]: 0x66-0x6e.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x66-0x66.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x66-0x66.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x67-0x68.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x69-0x6b.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6e-0x6e.7 (1) + | | | [1]{}: object 0x6f-0x70.7 (2) + 0x000006| 05| .| class: "universal" (0) 0x6f-0x6f.1 (0.2) + 0x000006| 05| .| form: "primitive" (0) 0x6f.2-0x6f.2 (0.1) + 0x000006| 05| .| tag: "null" (0x5) 0x6f.3-0x6f.7 (0.5) + 0x000007|00 |. | length: "indefinite" (0) 0x70-0x70.7 (1) + | | | value: null 0x71-NA (0) + | | | [2]{}: object 0x71-0x91.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x71-0x71.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x71.2-0x71.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x71.3-0x71.7 (0.5) + 0x000007| 1f | . | length: 31 0x72-0x72.7 (1) + | | | constructed[0:1]: 0x73-0x91.7 (31) + | | | [0]{}: object 0x73-0x91.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x73.3-0x73.7 (0.5) + 0x000007| 1d | . | length: 29 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x91.7 (29) + | | | [0]{}: object 0x75-0x91.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x75.3-0x75.7 (0.5) + 0x000007| 1b | . | length: 27 0x76-0x76.7 (1) + | | | constructed[0:2]: 0x77-0x91.7 (27) + | | | [0]{}: object 0x77-0x7b.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x77.2-0x77.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x77.3-0x77.7 (0.5) + 0x000007| 03 | . | length: 3 0x78-0x78.7 (1) + | | | value[0:4]: 0x79-0x7b.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x79-0x79.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x79-0x79.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7a-0x7a.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7b-0x7b.7 (1) + | | | [1]{}: object 0x7c-0x91.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7c.2-0x7c.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7c.3-0x7c.7 (0.5) + 0x000007| 14 | . | length: 20 0x7d-0x7d.7 (1) + 0x000007| 54 65| Te| value: "Test Certificate RSA" 0x7e-0x91.7 (20) + 0x000008|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x000009|53 41 |SA | + | | | [3]{}: object 0x92-0xb1.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x92-0x92.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x92.2-0x92.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x92.3-0x92.7 (0.5) + 0x000009| 1e | . | length: 30 0x93-0x93.7 (1) + | | | constructed[0:2]: 0x94-0xb1.7 (30) + | | | [0]{}: object 0x94-0xa2.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x94-0x94.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x94.2-0x94.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x94.3-0x94.7 (0.5) + 0x000009| 0d | . | length: 13 0x95-0x95.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31| 1309152151| value: "130915215110Z" 0x96-0xa2.7 (13) + 0x00000a|31 30 5a |10Z | + | | | [1]{}: object 0xa3-0xb1.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa3-0xa3.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa3.2-0xa3.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa3.3-0xa3.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa4-0xa4.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31| 23091321511| value: "230913215110Z" 0xa5-0xb1.7 (13) + 0x00000b|30 5a |0Z | + | | | [4]{}: object 0xb2-0xd3.7 (34) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb2-0xb2.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb2.2-0xb2.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb2.3-0xb2.7 (0.5) + 0x00000b| 20 | | length: 32 0xb3-0xb3.7 (1) + | | | constructed[0:1]: 0xb4-0xd3.7 (32) + | | | [0]{}: object 0xb4-0xd3.7 (32) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb4-0xb4.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb4.2-0xb4.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb4.3-0xb4.7 (0.5) + 0x00000b| 1e | . | length: 30 0xb5-0xb5.7 (1) + | | | constructed[0:1]: 0xb6-0xd3.7 (30) + | | | [0]{}: object 0xb6-0xd3.7 (30) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 1c | . | length: 28 0xb7-0xb7.7 (1) + | | | constructed[0:2]: 0xb8-0xd3.7 (28) + | | | [0]{}: object 0xb8-0xbc.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb9-0xb9.7 (1) + | | | value[0:4]: 0xba-0xbc.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xba-0xba.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xba-0xba.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xbb-0xbb.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbc-0xbc.7 (1) + | | | [1]{}: object 0xbd-0xd3.7 (23) + 0x00000b| 0c | . | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 15 | . | length: 21 0xbe-0xbe.7 (1) + 0x00000b| 54| T| value: "Test Certificate ECDH" 0xbf-0xd3.7 (21) + 0x00000c|65 73 74 20 43 65 72 74 69 66 69 63 61 74 65 20|est Certificate | + 0x00000d|45 43 44 48 |ECDH | + | | | [5]{}: object 0xd4-0x14b.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd4-0xd4.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd4.2-0xd4.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd4.3-0xd4.7 (0.5) + 0x00000d| 76 | v | length: 118 0xd5-0xd5.7 (1) + | | | constructed[0:2]: 0xd6-0x14b.7 (118) + | | | [0]{}: object 0xd6-0xe7.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd6-0xd6.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd6.2-0xd6.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd6.3-0xd6.7 (0.5) + 0x00000d| 10 | . | length: 16 0xd7-0xd7.7 (1) + | | | constructed[0:2]: 0xd8-0xe7.7 (16) + | | | [0]{}: object 0xd8-0xe0.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xd8-0xd8.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd8.2-0xd8.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd8.3-0xd8.7 (0.5) + 0x00000d| 07 | . | length: 7 0xd9-0xd9.7 (1) + | | | value[0:6]: 0xda-0xe0.7 (7) + 0x00000d| 2a | * | [0]: 1 oid 0xda-0xda.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xda-0xda.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xdb-0xdc.7 (2) + 0x00000d| ce 3d | .= | [3]: 10045 oid 0xdd-0xde.7 (2) + 0x00000d| 02| .| [4]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + | | | [1]{}: object 0xe1-0xe7.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe1-0xe1.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe1.2-0xe1.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe1.3-0xe1.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe2-0xe2.7 (1) + | | | value[0:5]: 0xe3-0xe7.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe3-0xe3.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe3-0xe3.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe4-0xe5.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xe6-0xe6.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xe7-0xe7.7 (1) + | | | [1]{}: object 0xe8-0x14b.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xe8-0xe8.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe8.2-0xe8.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe8.3-0xe8.7 (0.5) + 0x00000e| 62 | b | length: 98 0xe9-0xe9.7 (1) + 0x00000e| 00 | . | unused_bits_count: 0 0xea-0xea.7 (1) + 0x00000e| 04 04 cb f7 cc| .....| value: raw bits 0xeb-0x14b.7 (97) + 0x00000f|46 9f 58 43 7a 95 21 a2 57 84 8f 6c eb c9 45 28|F.XCz.!.W..l..E(| + * |until 0x14b.7 (97) | | + | | | [1]{}: object 0x14c-0x15a.7 (15) + 0x000014| 30 | 0 | class: "universal" (0) 0x14c-0x14c.1 (0.2) + 0x000014| 30 | 0 | form: "constructed" (1) 0x14c.2-0x14c.2 (0.1) + 0x000014| 30 | 0 | tag: "sequence" (0x10) 0x14c.3-0x14c.7 (0.5) + 0x000014| 0d | . | length: 13 0x14d-0x14d.7 (1) + | | | constructed[0:2]: 0x14e-0x15a.7 (13) + | | | [0]{}: object 0x14e-0x158.7 (11) + 0x000014| 06 | . | class: "universal" (0) 0x14e-0x14e.1 (0.2) + 0x000014| 06 | . | form: "primitive" (0) 0x14e.2-0x14e.2 (0.1) + 0x000014| 06 | . | tag: "object_identifier" (0x6) 0x14e.3-0x14e.7 (0.5) + 0x000014| 09| .| length: 9 0x14f-0x14f.7 (1) + | | | value[0:7]: 0x150-0x158.7 (9) + 0x000015|2a |* | [0]: 1 oid 0x150-0x150.7 (1) + 0x000015|2a |* | [1]: 2 oid 0x150-0x150.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x151-0x152.7 (2) + 0x000015| 86 f7 0d | ... | [3]: 113549 oid 0x153-0x155.7 (3) + 0x000015| 01 | . | [4]: 1 oid 0x156-0x156.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x157-0x157.7 (1) + 0x000015| 05 | . | [6]: 5 oid 0x158-0x158.7 (1) + | | | [1]{}: object 0x159-0x15a.7 (2) + 0x000015| 05 | . | class: "universal" (0) 0x159-0x159.1 (0.2) + 0x000015| 05 | . | form: "primitive" (0) 0x159.2-0x159.2 (0.1) + 0x000015| 05 | . | tag: "null" (0x5) 0x159.3-0x159.7 (0.5) + 0x000015| 00 | . | length: "indefinite" (0) 0x15a-0x15a.7 (1) + | | | value: null 0x15b-NA (0) + | | | [2]{}: object 0x15b-0x1de.7 (132) + 0x000015| 03 | . | class: "universal" (0) 0x15b-0x15b.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15b.2-0x15b.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15b.3-0x15b.7 (0.5) + 0x000015| 81 81 | .. | length: 129 0x15c-0x15d.7 (2) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 51| Q| value: raw bits 0x15f-0x1de.7 (128) + 0x000016|f1 72 36 6b 46 bb 3a fd 03 28 f9 69 2e 48 4c 8a|.r6kF.:..(.i.HL.| + * |until 0x1de.7 (128) | | + | | | [2]{}: record 0x1df-0x1e7.7 (9) + 0x00001d| 16| .| type: "handshake" (22) (valid) 0x1df-0x1df.7 (1) + 0x00001e|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x1e0-0x1e1.7 (2) + 0x00001e| 00 04 | .. | length: 4 0x1e2-0x1e3.7 (2) + | | | message{}: 0x1e4-0x1e7.7 (4) + 0x00001e| 0e | . | type: "server_hello_done" (14) 0x1e4-0x1e4.7 (1) + 0x00001e| 00 00 00 | ... | length: 0 0x1e5-0x1e7.7 (3) + | | | data: raw bits 0x1e8-NA (0) + | | | [3]{}: record 0x1e8-0x296.7 (175) + 0x00001e| 16 | . | type: "handshake" (22) (valid) 0x1e8-0x1e8.7 (1) + 0x00001e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1e9-0x1ea.7 (2) + 0x00001e| 00 aa | .. | length: 170 0x1eb-0x1ec.7 (2) + | | | message{}: 0x1ed-0x296.7 (170) + 0x00001e| 04 | . | type: "new_session_ticket" (4) 0x1ed-0x1ed.7 (1) + 0x00001e| 00 00| ..| length: 166 0x1ee-0x1f0.7 (3) + 0x00001f|a6 |. | + 0x00001f| 00 00 01 2c | ..., | lifetime_hint: 300 0x1f1-0x1f4.7 (4) + 0x00001f| 00 a0 | .. | ticket_length: 160 0x1f5-0x1f6.7 (2) + 0x00001f| 24 d5 3a fb 86 57 2c 82 fd| $.:..W,..| ticket: raw bits 0x1f7-0x296.7 (160) + 0x000020|03 3b 84 63 3f e2 3f 6f 15 2a 85 0e 4b 0f 30 02|.;.c?.?o.*..K.0.| + * |until 0x296.7 (160) | | + | | | [4]{}: record 0x297-0x29c.7 (6) + 0x000029| 14 | . | type: "change_cipher_spec" (20) (valid) 0x297-0x297.7 (1) + 0x000029| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x298-0x299.7 (2) + 0x000029| 00 01 | .. | length: 1 0x29a-0x29b.7 (2) + | | | message{}: 0x29c-0x29c.7 (1) + 0x000029| 01 | . | type: 1 0x29c-0x29c.7 (1) + | | | [5]{}: record 0x29d-0x2d2.7 (54) + 0x000029| 16 | . | type: "handshake" (22) (valid) 0x29d-0x29d.7 (1) + 0x000029| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x29e-0x29f.7 (2) + 0x00002a|00 31 |.1 | length: 49 0x2a0-0x2a1.7 (2) + 0x00002a| 4b 63 e6 28 0f 0e 15 62 b7 62 eb 8b 9b c0| Kc.(...b.b....| encrypted_data: raw bits 0x2a2-0x2d2.7 (49) + 0x00002b|57 c2 da d9 2e 0a 51 6d eb 6c 65 4e 6a ae 33 b9|W.....Qm.leNj.3.| + * |until 0x2d2.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 65 c7 90 0d f5 11 ed 4e e6 6c 14 11| e......N.l..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2d3-0x755.7 (1155) + 0x00002d| 17 | . | type: "application_data" (23) (valid) 0x2d3-0x2d3.7 (1) + 0x00002d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2d4-0x2d5.7 (2) + 0x00002d| 04 7e | .~ | length: 1150 0x2d6-0x2d7.7 (2) + 0x00002d| 4b 63 e6 28 0f 0e 15 63| Kc.(...c| encrypted_data: raw bits 0x2d8-0x755.7 (1150) + 0x00002e|4d 1b 5e d2 f9 89 9d fd 47 f9 0a 3c b1 29 d0 6b|M.^.....G..<.).k| + * |until 0x755.7 (end) (1150) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1155.7 (4438) + * |until 0x1155.7 (end) (4438) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1155.7 (4438) + * |until 0x1155.7 (end) (4438) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..9dd01512e690f68980a90a5c8b09db8393f7aae6 GIT binary patch literal 3429 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..f2ae386f --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest @@ -0,0 +1,513 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDH_RSA_WITH_AES_256_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd65-NA (0) + | | | client{}: 0xd65-NA (0) + | | | ip: "127.0.0.1" 0xd65-NA (0) + | | | port: 48839 0xd65-NA (0) + | | | has_start: true 0xd65-NA (0) + | | | has_end: false 0xd65-NA (0) + | | | skipped_bytes: 0 0xd65-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1d5.7 (470) + | | | records[0:6]: 0x0-0x1d5.7 (470) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| ca| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|bc d7 80 2e 11 5b ed 52 af de da e0 e9 d6 5e eb|.....[.R......^.| + 0x000002|f9 b9 a9 87 25 c0 74 2a 39 78 ff |....%.t*9x. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 0f| ..| [0]: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA" (0xc00f) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0x110.7 (107) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 66 | .f | length: 102 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0x110.7 (102) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 62 | ..b | length: 98 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 61| a| length: 97 0xaf-0xaf.7 (1) + 0x00000b|04 8e 0f d7 85 18 5f 8d 65 27 8d 38 4b 0d 08 dd|......_.e'.8K...| data: raw bits 0xb0-0x110.7 (97) + * |until 0x110.7 (97) | | + | | | [2]{}: record 0x111-0x116.7 (6) + 0x000011| 14 | . | type: "change_cipher_spec" (20) (valid) 0x111-0x111.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x112-0x113.7 (2) + 0x000011| 00 01 | .. | length: 1 0x114-0x115.7 (2) + | | | message{}: 0x116-0x116.7 (1) + 0x000011| 01 | . | type: 1 0x116-0x116.7 (1) + | | | [3]{}: record 0x117-0x15b.7 (69) + 0x000011| 16 | . | type: "handshake" (22) (valid) 0x117-0x117.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x118-0x119.7 (2) + 0x000011| 00 40 | .@ | length: 64 0x11a-0x11b.7 (2) + 0x000011| f1 09 17 99| ....| encrypted_data: raw bits 0x11c-0x15b.7 (64) + 0x000012|64 4e 55 db b5 54 dc 37 1c b1 52 89 34 97 65 75|dNU..T.7..R.4.eu| + * |until 0x15b.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| cf c3 3c 5d d3 63 8f 6a ba 74 0d dc| ..<].c.j.t..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x15c-0x1a0.7 (69) + 0x000015| 17 | . | type: "application_data" (23) (valid) 0x15c-0x15c.7 (1) + 0x000015| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x15d-0x15e.7 (2) + 0x000015| 00| .| length: 64 0x15f-0x160.7 (2) + 0x000016|40 |@ | + 0x000016| 39 17 d2 b2 9b 49 74 f4 79 4d 4b 4a 22 05 d4| 9....It.yMKJ"..| encrypted_data: raw bits 0x161-0x1a0.7 (64) + 0x000017|d3 25 8f bb a8 d7 2a 83 3e f0 dc b5 19 ce ab 3c|.%....*.>......<| + * |until 0x1a0.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x1a1-0x1d5.7 (53) + 0x00001a| 15 | . | type: "alert" (21) (valid) 0x1a1-0x1a1.7 (1) + 0x00001a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1a2-0x1a3.7 (2) + 0x00001a| 00 30 | .0 | length: 48 0x1a4-0x1a5.7 (2) + 0x00001a| c3 f7 7f 85 b5 bb e7 37 b9 f8| .......7..| encrypted_data: raw bits 0x1a6-0x1d5.7 (48) + 0x00001b|1d af 6d 63 16 64 48 6c 6c 82 56 a4 c0 7e 3b 33|..mc.dHll.V..~;3| + * |until 0x1d5.7 (end) (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd65-NA (0) + | | | ip: "127.0.0.1" 0xd65-NA (0) + | | | port: 4432 0xd65-NA (0) + | | | has_start: true 0xd65-NA (0) + | | | has_end: true 0xd65-NA (0) + | | | skipped_bytes: 0 0xd65-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x776.7 (1911) + | | | records[0:7]: 0x0-0x776.7 (1911) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 47| G| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|92 33 f3 5e 60 44 35 83 7f 00 dd 6a 5c 9f 19 6d|.3.^`D5....j\..m| + 0x000002|40 07 bd 49 2e e5 b2 84 9f 50 ac |@..I.....P. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 0f | .. | cipher_suit: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA" (0xc00f) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1de.7 (408) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 93 | .. | length: 403 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1de.7 (403) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 8f| ...| length: 399 0x4d-0x4f.7 (3) + 0x000005|00 01 8c |... | certificates_length: 396 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1de.7 (396) + | | | [0]{}: certificate 0x53-0x1de.7 (396) + 0x000005| 00 01 89 | ... | length: 393 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1de.7 (393) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 85 | ... | length: 389 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1de.7 (389) + | | | [0]{}: object 0x5a-0x14b.7 (242) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 ef | .. | length: 239 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x14b.7 (239) + | | | [0]{}: object 0x5d-0x61.7 (5) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 03 | . | length: 3 0x5e-0x5e.7 (1) + 0x000005| 01| .| value: 129423 0x5f-0x61.7 (3) + 0x000006|f9 8f |.. | + | | | [1]{}: object 0x62-0x70.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x62-0x62.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x62.2-0x62.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x62.3-0x62.7 (0.5) + 0x000006| 0d | . | length: 13 0x63-0x63.7 (1) + | | | constructed[0:2]: 0x64-0x70.7 (13) + | | | [0]{}: object 0x64-0x6e.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x64-0x64.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x64.2-0x64.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x64.3-0x64.7 (0.5) + 0x000006| 09 | . | length: 9 0x65-0x65.7 (1) + | | | value[0:7]: 0x66-0x6e.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x66-0x66.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x66-0x66.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x67-0x68.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x69-0x6b.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6e-0x6e.7 (1) + | | | [1]{}: object 0x6f-0x70.7 (2) + 0x000006| 05| .| class: "universal" (0) 0x6f-0x6f.1 (0.2) + 0x000006| 05| .| form: "primitive" (0) 0x6f.2-0x6f.2 (0.1) + 0x000006| 05| .| tag: "null" (0x5) 0x6f.3-0x6f.7 (0.5) + 0x000007|00 |. | length: "indefinite" (0) 0x70-0x70.7 (1) + | | | value: null 0x71-NA (0) + | | | [2]{}: object 0x71-0x91.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x71-0x71.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x71.2-0x71.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x71.3-0x71.7 (0.5) + 0x000007| 1f | . | length: 31 0x72-0x72.7 (1) + | | | constructed[0:1]: 0x73-0x91.7 (31) + | | | [0]{}: object 0x73-0x91.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x73.3-0x73.7 (0.5) + 0x000007| 1d | . | length: 29 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x91.7 (29) + | | | [0]{}: object 0x75-0x91.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x75.3-0x75.7 (0.5) + 0x000007| 1b | . | length: 27 0x76-0x76.7 (1) + | | | constructed[0:2]: 0x77-0x91.7 (27) + | | | [0]{}: object 0x77-0x7b.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x77.2-0x77.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x77.3-0x77.7 (0.5) + 0x000007| 03 | . | length: 3 0x78-0x78.7 (1) + | | | value[0:4]: 0x79-0x7b.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x79-0x79.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x79-0x79.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7a-0x7a.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7b-0x7b.7 (1) + | | | [1]{}: object 0x7c-0x91.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7c.2-0x7c.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7c.3-0x7c.7 (0.5) + 0x000007| 14 | . | length: 20 0x7d-0x7d.7 (1) + 0x000007| 54 65| Te| value: "Test Certificate RSA" 0x7e-0x91.7 (20) + 0x000008|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x000009|53 41 |SA | + | | | [3]{}: object 0x92-0xb1.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x92-0x92.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x92.2-0x92.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x92.3-0x92.7 (0.5) + 0x000009| 1e | . | length: 30 0x93-0x93.7 (1) + | | | constructed[0:2]: 0x94-0xb1.7 (30) + | | | [0]{}: object 0x94-0xa2.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x94-0x94.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x94.2-0x94.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x94.3-0x94.7 (0.5) + 0x000009| 0d | . | length: 13 0x95-0x95.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31| 1309152151| value: "130915215110Z" 0x96-0xa2.7 (13) + 0x00000a|31 30 5a |10Z | + | | | [1]{}: object 0xa3-0xb1.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa3-0xa3.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa3.2-0xa3.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa3.3-0xa3.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa4-0xa4.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31| 23091321511| value: "230913215110Z" 0xa5-0xb1.7 (13) + 0x00000b|30 5a |0Z | + | | | [4]{}: object 0xb2-0xd3.7 (34) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb2-0xb2.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb2.2-0xb2.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb2.3-0xb2.7 (0.5) + 0x00000b| 20 | | length: 32 0xb3-0xb3.7 (1) + | | | constructed[0:1]: 0xb4-0xd3.7 (32) + | | | [0]{}: object 0xb4-0xd3.7 (32) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb4-0xb4.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb4.2-0xb4.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb4.3-0xb4.7 (0.5) + 0x00000b| 1e | . | length: 30 0xb5-0xb5.7 (1) + | | | constructed[0:1]: 0xb6-0xd3.7 (30) + | | | [0]{}: object 0xb6-0xd3.7 (30) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 1c | . | length: 28 0xb7-0xb7.7 (1) + | | | constructed[0:2]: 0xb8-0xd3.7 (28) + | | | [0]{}: object 0xb8-0xbc.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb9-0xb9.7 (1) + | | | value[0:4]: 0xba-0xbc.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xba-0xba.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xba-0xba.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xbb-0xbb.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbc-0xbc.7 (1) + | | | [1]{}: object 0xbd-0xd3.7 (23) + 0x00000b| 0c | . | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 15 | . | length: 21 0xbe-0xbe.7 (1) + 0x00000b| 54| T| value: "Test Certificate ECDH" 0xbf-0xd3.7 (21) + 0x00000c|65 73 74 20 43 65 72 74 69 66 69 63 61 74 65 20|est Certificate | + 0x00000d|45 43 44 48 |ECDH | + | | | [5]{}: object 0xd4-0x14b.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd4-0xd4.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd4.2-0xd4.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd4.3-0xd4.7 (0.5) + 0x00000d| 76 | v | length: 118 0xd5-0xd5.7 (1) + | | | constructed[0:2]: 0xd6-0x14b.7 (118) + | | | [0]{}: object 0xd6-0xe7.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd6-0xd6.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd6.2-0xd6.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd6.3-0xd6.7 (0.5) + 0x00000d| 10 | . | length: 16 0xd7-0xd7.7 (1) + | | | constructed[0:2]: 0xd8-0xe7.7 (16) + | | | [0]{}: object 0xd8-0xe0.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xd8-0xd8.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd8.2-0xd8.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd8.3-0xd8.7 (0.5) + 0x00000d| 07 | . | length: 7 0xd9-0xd9.7 (1) + | | | value[0:6]: 0xda-0xe0.7 (7) + 0x00000d| 2a | * | [0]: 1 oid 0xda-0xda.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xda-0xda.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xdb-0xdc.7 (2) + 0x00000d| ce 3d | .= | [3]: 10045 oid 0xdd-0xde.7 (2) + 0x00000d| 02| .| [4]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + | | | [1]{}: object 0xe1-0xe7.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe1-0xe1.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe1.2-0xe1.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe1.3-0xe1.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe2-0xe2.7 (1) + | | | value[0:5]: 0xe3-0xe7.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe3-0xe3.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe3-0xe3.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe4-0xe5.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xe6-0xe6.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xe7-0xe7.7 (1) + | | | [1]{}: object 0xe8-0x14b.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xe8-0xe8.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe8.2-0xe8.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe8.3-0xe8.7 (0.5) + 0x00000e| 62 | b | length: 98 0xe9-0xe9.7 (1) + 0x00000e| 00 | . | unused_bits_count: 0 0xea-0xea.7 (1) + 0x00000e| 04 04 cb f7 cc| .....| value: raw bits 0xeb-0x14b.7 (97) + 0x00000f|46 9f 58 43 7a 95 21 a2 57 84 8f 6c eb c9 45 28|F.XCz.!.W..l..E(| + * |until 0x14b.7 (97) | | + | | | [1]{}: object 0x14c-0x15a.7 (15) + 0x000014| 30 | 0 | class: "universal" (0) 0x14c-0x14c.1 (0.2) + 0x000014| 30 | 0 | form: "constructed" (1) 0x14c.2-0x14c.2 (0.1) + 0x000014| 30 | 0 | tag: "sequence" (0x10) 0x14c.3-0x14c.7 (0.5) + 0x000014| 0d | . | length: 13 0x14d-0x14d.7 (1) + | | | constructed[0:2]: 0x14e-0x15a.7 (13) + | | | [0]{}: object 0x14e-0x158.7 (11) + 0x000014| 06 | . | class: "universal" (0) 0x14e-0x14e.1 (0.2) + 0x000014| 06 | . | form: "primitive" (0) 0x14e.2-0x14e.2 (0.1) + 0x000014| 06 | . | tag: "object_identifier" (0x6) 0x14e.3-0x14e.7 (0.5) + 0x000014| 09| .| length: 9 0x14f-0x14f.7 (1) + | | | value[0:7]: 0x150-0x158.7 (9) + 0x000015|2a |* | [0]: 1 oid 0x150-0x150.7 (1) + 0x000015|2a |* | [1]: 2 oid 0x150-0x150.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x151-0x152.7 (2) + 0x000015| 86 f7 0d | ... | [3]: 113549 oid 0x153-0x155.7 (3) + 0x000015| 01 | . | [4]: 1 oid 0x156-0x156.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x157-0x157.7 (1) + 0x000015| 05 | . | [6]: 5 oid 0x158-0x158.7 (1) + | | | [1]{}: object 0x159-0x15a.7 (2) + 0x000015| 05 | . | class: "universal" (0) 0x159-0x159.1 (0.2) + 0x000015| 05 | . | form: "primitive" (0) 0x159.2-0x159.2 (0.1) + 0x000015| 05 | . | tag: "null" (0x5) 0x159.3-0x159.7 (0.5) + 0x000015| 00 | . | length: "indefinite" (0) 0x15a-0x15a.7 (1) + | | | value: null 0x15b-NA (0) + | | | [2]{}: object 0x15b-0x1de.7 (132) + 0x000015| 03 | . | class: "universal" (0) 0x15b-0x15b.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15b.2-0x15b.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15b.3-0x15b.7 (0.5) + 0x000015| 81 81 | .. | length: 129 0x15c-0x15d.7 (2) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 51| Q| value: raw bits 0x15f-0x1de.7 (128) + 0x000016|f1 72 36 6b 46 bb 3a fd 03 28 f9 69 2e 48 4c 8a|.r6kF.:..(.i.HL.| + * |until 0x1de.7 (128) | | + | | | [2]{}: record 0x1df-0x1e7.7 (9) + 0x00001d| 16| .| type: "handshake" (22) (valid) 0x1df-0x1df.7 (1) + 0x00001e|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x1e0-0x1e1.7 (2) + 0x00001e| 00 04 | .. | length: 4 0x1e2-0x1e3.7 (2) + | | | message{}: 0x1e4-0x1e7.7 (4) + 0x00001e| 0e | . | type: "server_hello_done" (14) 0x1e4-0x1e4.7 (1) + 0x00001e| 00 00 00 | ... | length: 0 0x1e5-0x1e7.7 (3) + | | | data: raw bits 0x1e8-NA (0) + | | | [3]{}: record 0x1e8-0x296.7 (175) + 0x00001e| 16 | . | type: "handshake" (22) (valid) 0x1e8-0x1e8.7 (1) + 0x00001e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1e9-0x1ea.7 (2) + 0x00001e| 00 aa | .. | length: 170 0x1eb-0x1ec.7 (2) + | | | message{}: 0x1ed-0x296.7 (170) + 0x00001e| 04 | . | type: "new_session_ticket" (4) 0x1ed-0x1ed.7 (1) + 0x00001e| 00 00| ..| length: 166 0x1ee-0x1f0.7 (3) + 0x00001f|a6 |. | + 0x00001f| 00 00 01 2c | ..., | lifetime_hint: 300 0x1f1-0x1f4.7 (4) + 0x00001f| 00 a0 | .. | ticket_length: 160 0x1f5-0x1f6.7 (2) + 0x00001f| 24 d5 3a fb 86 57 2c 82 fd| $.:..W,..| ticket: raw bits 0x1f7-0x296.7 (160) + 0x000020|03 3b 84 63 3f e2 3f c7 7c 02 7c 52 aa 00 23 b4|.;.c?.?.|.|R..#.| + * |until 0x296.7 (160) | | + | | | [4]{}: record 0x297-0x29c.7 (6) + 0x000029| 14 | . | type: "change_cipher_spec" (20) (valid) 0x297-0x297.7 (1) + 0x000029| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x298-0x299.7 (2) + 0x000029| 00 01 | .. | length: 1 0x29a-0x29b.7 (2) + | | | message{}: 0x29c-0x29c.7 (1) + 0x000029| 01 | . | type: 1 0x29c-0x29c.7 (1) + | | | [5]{}: record 0x29d-0x2e1.7 (69) + 0x000029| 16 | . | type: "handshake" (22) (valid) 0x29d-0x29d.7 (1) + 0x000029| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x29e-0x29f.7 (2) + 0x00002a|00 40 |.@ | length: 64 0x2a0-0x2a1.7 (2) + 0x00002a| 53 1b 1e d4 bb 87 8f d4 49 3a 51 7f 6f 5a| S.......I:Q.oZ| encrypted_data: raw bits 0x2a2-0x2e1.7 (64) + 0x00002b|8e 60 89 4a 28 84 2f 70 20 7b 23 83 44 9e d4 cf|.`.J(./p {#.D...| + * |until 0x2e1.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| fa 82 ba dd 8f 7d 27 ee 81 3f b2 f5| .....}'..?..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2e2-0x776.7 (1173) + 0x00002e| 17 | . | type: "application_data" (23) (valid) 0x2e2-0x2e2.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2e3-0x2e4.7 (2) + 0x00002e| 04 90 | .. | length: 1168 0x2e5-0x2e6.7 (2) + 0x00002e| a0 5c d9 c7 c7 29 2c 0f 43| .\...),.C| encrypted_data: raw bits 0x2e7-0x776.7 (1168) + 0x00002f|7f 89 95 ff 38 68 06 9b 95 75 08 7a 07 06 d0 82|....8h...u.z....| + * |until 0x776.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1140.7 (4417) + * |until 0x1140.7 (end) (4417) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1140.7 (4417) + * |until 0x1140.7 (end) (4417) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384.pcap b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384.pcap new file mode 100644 index 0000000000000000000000000000000000000000..011a6b505e1ff668d7dbca58bda9ca15e95288a1 GIT binary patch literal 3589 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384.pcap.fqtest b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384.pcap.fqtest new file mode 100644 index 00000000..8f7db719 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384.pcap.fqtest @@ -0,0 +1,513 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xe05-NA (0) + | | | client{}: 0xe05-NA (0) + | | | ip: "127.0.0.1" 0xe05-NA (0) + | | | port: 48837 0xe05-NA (0) + | | | has_start: true 0xe05-NA (0) + | | | has_end: false 0xe05-NA (0) + | | | skipped_bytes: 0 0xe05-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x235.7 (566) + | | | records[0:6]: 0x0-0x235.7 (566) + | | | [0]{}: record 0x0-0xa5.7 (166) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 a1 | .. | length: 161 0x3-0x4.7 (2) + | | | message{}: 0x5-0xa5.7 (161) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 9d | ... | length: 157 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 61| a| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|ce f8 20 5c 93 e6 6e 3f be c7 54 0e 24 52 58 ad|.. \..n?..T.$RX.| + 0x000002|dc 48 e1 ec 24 44 92 ea 2f 9d bf |.H..$D../.. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 2a| .*| [0]: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384" (0xc02a) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0x110.7 (107) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 66 | .f | length: 102 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0x110.7 (102) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 62 | ..b | length: 98 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 61| a| length: 97 0xaf-0xaf.7 (1) + 0x00000b|04 50 ad 24 55 17 2b fe ce 05 96 07 f0 f5 57 06|.P.$U.+.......W.| data: raw bits 0xb0-0x110.7 (97) + * |until 0x110.7 (97) | | + | | | [2]{}: record 0x111-0x116.7 (6) + 0x000011| 14 | . | type: "change_cipher_spec" (20) (valid) 0x111-0x111.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x112-0x113.7 (2) + 0x000011| 00 01 | .. | length: 1 0x114-0x115.7 (2) + | | | message{}: 0x116-0x116.7 (1) + 0x000011| 01 | . | type: 1 0x116-0x116.7 (1) + | | | [3]{}: record 0x117-0x17b.7 (101) + 0x000011| 16 | . | type: "handshake" (22) (valid) 0x117-0x117.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x118-0x119.7 (2) + 0x000011| 00 60 | .` | length: 96 0x11a-0x11b.7 (2) + 0x000011| 8b f3 93 60| ...`| encrypted_data: raw bits 0x11c-0x17b.7 (96) + 0x000012|ee ae eb 84 82 15 32 db 87 44 55 45 f6 d6 81 d5|......2..DUE....| + * |until 0x17b.7 (96) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 6d 78 e1 e2 b5 1b 6b 72 4c c4 cf da| mx....krL...| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x17c-0x1e0.7 (101) + 0x000017| 17 | . | type: "application_data" (23) (valid) 0x17c-0x17c.7 (1) + 0x000017| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x17d-0x17e.7 (2) + 0x000017| 00| .| length: 96 0x17f-0x180.7 (2) + 0x000018|60 |` | + 0x000018| 16 c0 34 68 c3 06 45 e8 ba a3 06 95 43 52 54| ..4h..E.....CRT| encrypted_data: raw bits 0x181-0x1e0.7 (96) + 0x000019|a7 f6 d7 72 ae d0 4d 40 8f 82 ed f4 9d f9 1e 24|...r..M@.......$| + * |until 0x1e0.7 (96) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x1e1-0x235.7 (85) + 0x00001e| 15 | . | type: "alert" (21) (valid) 0x1e1-0x1e1.7 (1) + 0x00001e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1e2-0x1e3.7 (2) + 0x00001e| 00 50 | .P | length: 80 0x1e4-0x1e5.7 (2) + 0x00001e| 4f 58 bf 6e e4 1a 0e 91 8f 5c| OX.n.....\| encrypted_data: raw bits 0x1e6-0x235.7 (80) + 0x00001f|9a fb d1 f3 23 d8 c5 be f8 5d d8 64 92 43 bd 5a|....#....].d.C.Z| + * |until 0x235.7 (end) (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xe05-NA (0) + | | | ip: "127.0.0.1" 0xe05-NA (0) + | | | port: 4432 0xe05-NA (0) + | | | has_start: true 0xe05-NA (0) + | | | has_end: true 0xe05-NA (0) + | | | skipped_bytes: 0 0xe05-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x7b6.7 (1975) + | | | records[0:7]: 0x0-0x7b6.7 (1975) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 51| Q| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|9e 90 07 10 34 5e 90 65 fb ce 02 3f 7c 13 c5 bf|....4^.e...?|...| + 0x000002|17 9e d0 cd 02 ff 9b fd f0 ac 21 |..........! | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 2a | .* | cipher_suit: "TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384" (0xc02a) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1de.7 (408) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 93 | .. | length: 403 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1de.7 (403) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 8f| ...| length: 399 0x4d-0x4f.7 (3) + 0x000005|00 01 8c |... | certificates_length: 396 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1de.7 (396) + | | | [0]{}: certificate 0x53-0x1de.7 (396) + 0x000005| 00 01 89 | ... | length: 393 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1de.7 (393) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 85 | ... | length: 389 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1de.7 (389) + | | | [0]{}: object 0x5a-0x14b.7 (242) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 ef | .. | length: 239 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x14b.7 (239) + | | | [0]{}: object 0x5d-0x61.7 (5) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 03 | . | length: 3 0x5e-0x5e.7 (1) + 0x000005| 01| .| value: 129423 0x5f-0x61.7 (3) + 0x000006|f9 8f |.. | + | | | [1]{}: object 0x62-0x70.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x62-0x62.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x62.2-0x62.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x62.3-0x62.7 (0.5) + 0x000006| 0d | . | length: 13 0x63-0x63.7 (1) + | | | constructed[0:2]: 0x64-0x70.7 (13) + | | | [0]{}: object 0x64-0x6e.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x64-0x64.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x64.2-0x64.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x64.3-0x64.7 (0.5) + 0x000006| 09 | . | length: 9 0x65-0x65.7 (1) + | | | value[0:7]: 0x66-0x6e.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x66-0x66.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x66-0x66.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x67-0x68.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x69-0x6b.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6e-0x6e.7 (1) + | | | [1]{}: object 0x6f-0x70.7 (2) + 0x000006| 05| .| class: "universal" (0) 0x6f-0x6f.1 (0.2) + 0x000006| 05| .| form: "primitive" (0) 0x6f.2-0x6f.2 (0.1) + 0x000006| 05| .| tag: "null" (0x5) 0x6f.3-0x6f.7 (0.5) + 0x000007|00 |. | length: "indefinite" (0) 0x70-0x70.7 (1) + | | | value: null 0x71-NA (0) + | | | [2]{}: object 0x71-0x91.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x71-0x71.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x71.2-0x71.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x71.3-0x71.7 (0.5) + 0x000007| 1f | . | length: 31 0x72-0x72.7 (1) + | | | constructed[0:1]: 0x73-0x91.7 (31) + | | | [0]{}: object 0x73-0x91.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x73.3-0x73.7 (0.5) + 0x000007| 1d | . | length: 29 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x91.7 (29) + | | | [0]{}: object 0x75-0x91.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x75.3-0x75.7 (0.5) + 0x000007| 1b | . | length: 27 0x76-0x76.7 (1) + | | | constructed[0:2]: 0x77-0x91.7 (27) + | | | [0]{}: object 0x77-0x7b.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x77.2-0x77.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x77.3-0x77.7 (0.5) + 0x000007| 03 | . | length: 3 0x78-0x78.7 (1) + | | | value[0:4]: 0x79-0x7b.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x79-0x79.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x79-0x79.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7a-0x7a.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7b-0x7b.7 (1) + | | | [1]{}: object 0x7c-0x91.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7c.2-0x7c.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7c.3-0x7c.7 (0.5) + 0x000007| 14 | . | length: 20 0x7d-0x7d.7 (1) + 0x000007| 54 65| Te| value: "Test Certificate RSA" 0x7e-0x91.7 (20) + 0x000008|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x000009|53 41 |SA | + | | | [3]{}: object 0x92-0xb1.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x92-0x92.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x92.2-0x92.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x92.3-0x92.7 (0.5) + 0x000009| 1e | . | length: 30 0x93-0x93.7 (1) + | | | constructed[0:2]: 0x94-0xb1.7 (30) + | | | [0]{}: object 0x94-0xa2.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x94-0x94.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x94.2-0x94.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x94.3-0x94.7 (0.5) + 0x000009| 0d | . | length: 13 0x95-0x95.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31| 1309152151| value: "130915215110Z" 0x96-0xa2.7 (13) + 0x00000a|31 30 5a |10Z | + | | | [1]{}: object 0xa3-0xb1.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa3-0xa3.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa3.2-0xa3.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa3.3-0xa3.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa4-0xa4.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31| 23091321511| value: "230913215110Z" 0xa5-0xb1.7 (13) + 0x00000b|30 5a |0Z | + | | | [4]{}: object 0xb2-0xd3.7 (34) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb2-0xb2.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb2.2-0xb2.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb2.3-0xb2.7 (0.5) + 0x00000b| 20 | | length: 32 0xb3-0xb3.7 (1) + | | | constructed[0:1]: 0xb4-0xd3.7 (32) + | | | [0]{}: object 0xb4-0xd3.7 (32) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb4-0xb4.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb4.2-0xb4.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb4.3-0xb4.7 (0.5) + 0x00000b| 1e | . | length: 30 0xb5-0xb5.7 (1) + | | | constructed[0:1]: 0xb6-0xd3.7 (30) + | | | [0]{}: object 0xb6-0xd3.7 (30) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 1c | . | length: 28 0xb7-0xb7.7 (1) + | | | constructed[0:2]: 0xb8-0xd3.7 (28) + | | | [0]{}: object 0xb8-0xbc.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb9-0xb9.7 (1) + | | | value[0:4]: 0xba-0xbc.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xba-0xba.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xba-0xba.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xbb-0xbb.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbc-0xbc.7 (1) + | | | [1]{}: object 0xbd-0xd3.7 (23) + 0x00000b| 0c | . | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 15 | . | length: 21 0xbe-0xbe.7 (1) + 0x00000b| 54| T| value: "Test Certificate ECDH" 0xbf-0xd3.7 (21) + 0x00000c|65 73 74 20 43 65 72 74 69 66 69 63 61 74 65 20|est Certificate | + 0x00000d|45 43 44 48 |ECDH | + | | | [5]{}: object 0xd4-0x14b.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd4-0xd4.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd4.2-0xd4.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd4.3-0xd4.7 (0.5) + 0x00000d| 76 | v | length: 118 0xd5-0xd5.7 (1) + | | | constructed[0:2]: 0xd6-0x14b.7 (118) + | | | [0]{}: object 0xd6-0xe7.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd6-0xd6.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd6.2-0xd6.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd6.3-0xd6.7 (0.5) + 0x00000d| 10 | . | length: 16 0xd7-0xd7.7 (1) + | | | constructed[0:2]: 0xd8-0xe7.7 (16) + | | | [0]{}: object 0xd8-0xe0.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xd8-0xd8.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd8.2-0xd8.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd8.3-0xd8.7 (0.5) + 0x00000d| 07 | . | length: 7 0xd9-0xd9.7 (1) + | | | value[0:6]: 0xda-0xe0.7 (7) + 0x00000d| 2a | * | [0]: 1 oid 0xda-0xda.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xda-0xda.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xdb-0xdc.7 (2) + 0x00000d| ce 3d | .= | [3]: 10045 oid 0xdd-0xde.7 (2) + 0x00000d| 02| .| [4]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + | | | [1]{}: object 0xe1-0xe7.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe1-0xe1.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe1.2-0xe1.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe1.3-0xe1.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe2-0xe2.7 (1) + | | | value[0:5]: 0xe3-0xe7.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe3-0xe3.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe3-0xe3.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe4-0xe5.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xe6-0xe6.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xe7-0xe7.7 (1) + | | | [1]{}: object 0xe8-0x14b.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xe8-0xe8.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe8.2-0xe8.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe8.3-0xe8.7 (0.5) + 0x00000e| 62 | b | length: 98 0xe9-0xe9.7 (1) + 0x00000e| 00 | . | unused_bits_count: 0 0xea-0xea.7 (1) + 0x00000e| 04 04 cb f7 cc| .....| value: raw bits 0xeb-0x14b.7 (97) + 0x00000f|46 9f 58 43 7a 95 21 a2 57 84 8f 6c eb c9 45 28|F.XCz.!.W..l..E(| + * |until 0x14b.7 (97) | | + | | | [1]{}: object 0x14c-0x15a.7 (15) + 0x000014| 30 | 0 | class: "universal" (0) 0x14c-0x14c.1 (0.2) + 0x000014| 30 | 0 | form: "constructed" (1) 0x14c.2-0x14c.2 (0.1) + 0x000014| 30 | 0 | tag: "sequence" (0x10) 0x14c.3-0x14c.7 (0.5) + 0x000014| 0d | . | length: 13 0x14d-0x14d.7 (1) + | | | constructed[0:2]: 0x14e-0x15a.7 (13) + | | | [0]{}: object 0x14e-0x158.7 (11) + 0x000014| 06 | . | class: "universal" (0) 0x14e-0x14e.1 (0.2) + 0x000014| 06 | . | form: "primitive" (0) 0x14e.2-0x14e.2 (0.1) + 0x000014| 06 | . | tag: "object_identifier" (0x6) 0x14e.3-0x14e.7 (0.5) + 0x000014| 09| .| length: 9 0x14f-0x14f.7 (1) + | | | value[0:7]: 0x150-0x158.7 (9) + 0x000015|2a |* | [0]: 1 oid 0x150-0x150.7 (1) + 0x000015|2a |* | [1]: 2 oid 0x150-0x150.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x151-0x152.7 (2) + 0x000015| 86 f7 0d | ... | [3]: 113549 oid 0x153-0x155.7 (3) + 0x000015| 01 | . | [4]: 1 oid 0x156-0x156.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x157-0x157.7 (1) + 0x000015| 05 | . | [6]: 5 oid 0x158-0x158.7 (1) + | | | [1]{}: object 0x159-0x15a.7 (2) + 0x000015| 05 | . | class: "universal" (0) 0x159-0x159.1 (0.2) + 0x000015| 05 | . | form: "primitive" (0) 0x159.2-0x159.2 (0.1) + 0x000015| 05 | . | tag: "null" (0x5) 0x159.3-0x159.7 (0.5) + 0x000015| 00 | . | length: "indefinite" (0) 0x15a-0x15a.7 (1) + | | | value: null 0x15b-NA (0) + | | | [2]{}: object 0x15b-0x1de.7 (132) + 0x000015| 03 | . | class: "universal" (0) 0x15b-0x15b.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15b.2-0x15b.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15b.3-0x15b.7 (0.5) + 0x000015| 81 81 | .. | length: 129 0x15c-0x15d.7 (2) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 51| Q| value: raw bits 0x15f-0x1de.7 (128) + 0x000016|f1 72 36 6b 46 bb 3a fd 03 28 f9 69 2e 48 4c 8a|.r6kF.:..(.i.HL.| + * |until 0x1de.7 (128) | | + | | | [2]{}: record 0x1df-0x1e7.7 (9) + 0x00001d| 16| .| type: "handshake" (22) (valid) 0x1df-0x1df.7 (1) + 0x00001e|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x1e0-0x1e1.7 (2) + 0x00001e| 00 04 | .. | length: 4 0x1e2-0x1e3.7 (2) + | | | message{}: 0x1e4-0x1e7.7 (4) + 0x00001e| 0e | . | type: "server_hello_done" (14) 0x1e4-0x1e4.7 (1) + 0x00001e| 00 00 00 | ... | length: 0 0x1e5-0x1e7.7 (3) + | | | data: raw bits 0x1e8-NA (0) + | | | [3]{}: record 0x1e8-0x296.7 (175) + 0x00001e| 16 | . | type: "handshake" (22) (valid) 0x1e8-0x1e8.7 (1) + 0x00001e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1e9-0x1ea.7 (2) + 0x00001e| 00 aa | .. | length: 170 0x1eb-0x1ec.7 (2) + | | | message{}: 0x1ed-0x296.7 (170) + 0x00001e| 04 | . | type: "new_session_ticket" (4) 0x1ed-0x1ed.7 (1) + 0x00001e| 00 00| ..| length: 166 0x1ee-0x1f0.7 (3) + 0x00001f|a6 |. | + 0x00001f| 00 00 01 2c | ..., | lifetime_hint: 300 0x1f1-0x1f4.7 (4) + 0x00001f| 00 a0 | .. | ticket_length: 160 0x1f5-0x1f6.7 (2) + 0x00001f| 24 d5 3a fb 86 57 2c 82 fd| $.:..W,..| ticket: raw bits 0x1f7-0x296.7 (160) + 0x000020|03 3b 84 63 3f e2 3f 22 36 68 1c 00 85 b9 e8 57|.;.c?.?"6h.....W| + * |until 0x296.7 (160) | | + | | | [4]{}: record 0x297-0x29c.7 (6) + 0x000029| 14 | . | type: "change_cipher_spec" (20) (valid) 0x297-0x297.7 (1) + 0x000029| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x298-0x299.7 (2) + 0x000029| 00 01 | .. | length: 1 0x29a-0x29b.7 (2) + | | | message{}: 0x29c-0x29c.7 (1) + 0x000029| 01 | . | type: 1 0x29c-0x29c.7 (1) + | | | [5]{}: record 0x29d-0x301.7 (101) + 0x000029| 16 | . | type: "handshake" (22) (valid) 0x29d-0x29d.7 (1) + 0x000029| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x29e-0x29f.7 (2) + 0x00002a|00 60 |.` | length: 96 0x2a0-0x2a1.7 (2) + 0x00002a| 2d fc 46 30 77 8c 24 f4 ab 45 b2 db 02 cb| -.F0w.$..E....| encrypted_data: raw bits 0x2a2-0x301.7 (96) + 0x00002b|a0 0c 78 ea f9 fe 7b 06 a4 56 fe 42 e9 ac c8 7d|..x...{..V.B...}| + * |until 0x301.7 (96) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| cb 9d 0d f9 48 44 1f 0d ad c0 ba 86| ....HD......| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x302-0x7b6.7 (1205) + 0x000030| 17 | . | type: "application_data" (23) (valid) 0x302-0x302.7 (1) + 0x000030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x303-0x304.7 (2) + 0x000030| 04 b0 | .. | length: 1200 0x305-0x306.7 (2) + 0x000030| 6a 0f 4d be 5a 5e 3a 58 77| j.M.Z^:Xw| encrypted_data: raw bits 0x307-0x7b6.7 (1200) + 0x000031|90 72 df ef 29 e3 be e0 d0 a4 f8 4b 54 05 3c 87|.r..)......KT.<.| + * |until 0x7b6.7 (end) (1200) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1149.7 (4426) + * |until 0x1149.7 (end) (4426) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1149.7 (4426) + * |until 0x1149.7 (end) (4426) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384.pcap b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384.pcap new file mode 100644 index 0000000000000000000000000000000000000000..659b60092fc76c7973f2fa366ab3b0cb7ddec41d GIT binary patch literal 3350 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 t$|tTU-)nE2G4=~ZUJ{=MoF5fXJ.7T... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| c0 32| .2| [0]: "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384" (0xc032) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 6f | .o | extensions_length: 111 0x35-0x36.7 (2) + | | | extensions[0:5]: 0x37-0xa5.7 (111) + | | | [0]{}: extension 0x37-0x3e.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x37-0x38.7 (2) + 0x000003| 00 04 | .. | length: 4 0x39-0x3a.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3b-0x3b.7 (1) + | | | ex_points_formats[0:3]: 0x3c-0x3e.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3d-0x3d.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3e-0x3e.7 (1) + | | | [1]{}: extension 0x3f-0x76.7 (56) + 0x000003| 00| .| type: "supported_groups" (10) 0x3f-0x40.7 (2) + 0x000004|0a |. | + 0x000004| 00 34 | .4 | length: 52 0x41-0x42.7 (2) + 0x000004| 00 32 | .2 | supported_group_length: 50 0x43-0x44.7 (2) + | | | supported_groups[0:25]: 0x45-0x76.7 (50) + 0x000004| 00 0e | .. | [0]: 0xe supported_group 0x45-0x46.7 (2) + 0x000004| 00 0d | .. | [1]: 0xd supported_group 0x47-0x48.7 (2) + 0x000004| 00 19 | .. | [2]: 0x19 supported_group 0x49-0x4a.7 (2) + 0x000004| 00 0b | .. | [3]: 0xb supported_group 0x4b-0x4c.7 (2) + 0x000004| 00 0c | .. | [4]: 0xc supported_group 0x4d-0x4e.7 (2) + 0x000004| 00| .| [5]: 0x18 supported_group 0x4f-0x50.7 (2) + 0x000005|18 |. | + 0x000005| 00 09 | .. | [6]: 0x9 supported_group 0x51-0x52.7 (2) + 0x000005| 00 0a | .. | [7]: 0xa supported_group 0x53-0x54.7 (2) + 0x000005| 00 16 | .. | [8]: 0x16 supported_group 0x55-0x56.7 (2) + 0x000005| 00 17 | .. | [9]: 0x17 supported_group 0x57-0x58.7 (2) + 0x000005| 00 08 | .. | [10]: 0x8 supported_group 0x59-0x5a.7 (2) + 0x000005| 00 06 | .. | [11]: 0x6 supported_group 0x5b-0x5c.7 (2) + 0x000005| 00 07 | .. | [12]: 0x7 supported_group 0x5d-0x5e.7 (2) + 0x000005| 00| .| [13]: 0x14 supported_group 0x5f-0x60.7 (2) + 0x000006|14 |. | + 0x000006| 00 15 | .. | [14]: 0x15 supported_group 0x61-0x62.7 (2) + 0x000006| 00 04 | .. | [15]: 0x4 supported_group 0x63-0x64.7 (2) + 0x000006| 00 05 | .. | [16]: 0x5 supported_group 0x65-0x66.7 (2) + 0x000006| 00 12 | .. | [17]: 0x12 supported_group 0x67-0x68.7 (2) + 0x000006| 00 13 | .. | [18]: 0x13 supported_group 0x69-0x6a.7 (2) + 0x000006| 00 01 | .. | [19]: 0x1 supported_group 0x6b-0x6c.7 (2) + 0x000006| 00 02 | .. | [20]: 0x2 supported_group 0x6d-0x6e.7 (2) + 0x000006| 00| .| [21]: 0x3 supported_group 0x6f-0x70.7 (2) + 0x000007|03 |. | + 0x000007| 00 0f | .. | [22]: 0xf supported_group 0x71-0x72.7 (2) + 0x000007| 00 10 | .. | [23]: 0x10 supported_group 0x73-0x74.7 (2) + 0x000007| 00 11 | .. | [24]: 0x11 supported_group 0x75-0x76.7 (2) + | | | [2]{}: extension 0x77-0x7a.7 (4) + 0x000007| 00 23 | .# | type: "session_ticket" (35) 0x77-0x78.7 (2) + 0x000007| 00 00 | .. | length: 0 0x79-0x7a.7 (2) + | | | [3]{}: extension 0x7b-0xa0.7 (38) + 0x000007| 00 0d | .. | type: "signature_algorithms" (13) 0x7b-0x7c.7 (2) + 0x000007| 00 22 | ." | length: 34 0x7d-0x7e.7 (2) + 0x000007| 00| .| signature_algorithm_length: 32 0x7f-0x80.7 (2) + 0x000008|20 | | + | | | signature_algorithms[0:16]: 0x81-0xa0.7 (32) + | | | [0]{}: signature_algorithm 0x81-0x82.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x81-0x81.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x82-0x82.7 (1) + | | | [1]{}: signature_algorithm 0x83-0x84.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x83-0x83.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x84-0x84.7 (1) + | | | [2]{}: signature_algorithm 0x85-0x86.7 (2) + 0x000008| 06 | . | hash: "sha512" (6) 0x85-0x85.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x86-0x86.7 (1) + | | | [3]{}: signature_algorithm 0x87-0x88.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x87-0x87.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x88-0x88.7 (1) + | | | [4]{}: signature_algorithm 0x89-0x8a.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x89-0x89.7 (1) + 0x000008| 02 | . | signature: "dsa" (2) 0x8a-0x8a.7 (1) + | | | [5]{}: signature_algorithm 0x8b-0x8c.7 (2) + 0x000008| 05 | . | hash: "sha384" (5) 0x8b-0x8b.7 (1) + 0x000008| 03 | . | signature: "ecdsa" (3) 0x8c-0x8c.7 (1) + | | | [6]{}: signature_algorithm 0x8d-0x8e.7 (2) + 0x000008| 04 | . | hash: "sha256" (4) 0x8d-0x8d.7 (1) + 0x000008| 01 | . | signature: "rsa" (1) 0x8e-0x8e.7 (1) + | | | [7]{}: signature_algorithm 0x8f-0x90.7 (2) + 0x000008| 04| .| hash: "sha256" (4) 0x8f-0x8f.7 (1) + 0x000009|02 |. | signature: "dsa" (2) 0x90-0x90.7 (1) + | | | [8]{}: signature_algorithm 0x91-0x92.7 (2) + 0x000009| 04 | . | hash: "sha256" (4) 0x91-0x91.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x92-0x92.7 (1) + | | | [9]{}: signature_algorithm 0x93-0x94.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x93-0x93.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x94-0x94.7 (1) + | | | [10]{}: signature_algorithm 0x95-0x96.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x95-0x95.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x96-0x96.7 (1) + | | | [11]{}: signature_algorithm 0x97-0x98.7 (2) + 0x000009| 03 | . | hash: "sha224" (3) 0x97-0x97.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x98-0x98.7 (1) + | | | [12]{}: signature_algorithm 0x99-0x9a.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x99-0x99.7 (1) + 0x000009| 01 | . | signature: "rsa" (1) 0x9a-0x9a.7 (1) + | | | [13]{}: signature_algorithm 0x9b-0x9c.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9b-0x9b.7 (1) + 0x000009| 02 | . | signature: "dsa" (2) 0x9c-0x9c.7 (1) + | | | [14]{}: signature_algorithm 0x9d-0x9e.7 (2) + 0x000009| 02 | . | hash: "sha1" (2) 0x9d-0x9d.7 (1) + 0x000009| 03 | . | signature: "ecdsa" (3) 0x9e-0x9e.7 (1) + | | | [15]{}: signature_algorithm 0x9f-0xa0.7 (2) + 0x000009| 01| .| hash: "md5" (1) 0x9f-0x9f.7 (1) + 0x00000a|01 |. | signature: "rsa" (1) 0xa0-0xa0.7 (1) + | | | [4]{}: extension 0xa1-0xa5.7 (5) + 0x00000a| 00 0f | .. | type: "heartbeat" (15) 0xa1-0xa2.7 (2) + 0x00000a| 00 01 | .. | length: 1 0xa3-0xa4.7 (2) + 0x00000a| 01 | . | data: raw bits 0xa5-0xa5.7 (1) + | | | [1]{}: record 0xa6-0x110.7 (107) + 0x00000a| 16 | . | type: "handshake" (22) (valid) 0xa6-0xa6.7 (1) + 0x00000a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xa7-0xa8.7 (2) + 0x00000a| 00 66 | .f | length: 102 0xa9-0xaa.7 (2) + | | | message{}: 0xab-0x110.7 (102) + 0x00000a| 10 | . | type: "client_key_exchange" (16) 0xab-0xab.7 (1) + 0x00000a| 00 00 62 | ..b | length: 98 0xac-0xae.7 (3) + | | | public{}: 0xaf-NA (0) + 0x00000a| 61| a| length: 97 0xaf-0xaf.7 (1) + 0x00000b|04 7c d4 cf d2 79 87 9f 57 09 bd 7d 31 1c d3 da|.|...y..W..}1...| data: raw bits 0xb0-0x110.7 (97) + * |until 0x110.7 (97) | | + | | | [2]{}: record 0x111-0x116.7 (6) + 0x000011| 14 | . | type: "change_cipher_spec" (20) (valid) 0x111-0x111.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x112-0x113.7 (2) + 0x000011| 00 01 | .. | length: 1 0x114-0x115.7 (2) + | | | message{}: 0x116-0x116.7 (1) + 0x000011| 01 | . | type: 1 0x116-0x116.7 (1) + | | | [3]{}: record 0x117-0x14c.7 (54) + 0x000011| 16 | . | type: "handshake" (22) (valid) 0x117-0x117.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x118-0x119.7 (2) + 0x000011| 00 31 | .1 | length: 49 0x11a-0x11b.7 (2) + 0x000011| a3 46 b8 85| .F..| encrypted_data: raw bits 0x11c-0x14c.7 (49) + 0x000012|4d 2f 62 57 fe 37 92 6c c5 3a 82 a1 9c eb 4d d6|M/bW.7.l.:....M.| + * |until 0x14c.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| e1 0f 0a be 68 9c 93 01 76 45 16 f8| ....h...vE..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x14d-0x181.7 (53) + 0x000014| 17 | . | type: "application_data" (23) (valid) 0x14d-0x14d.7 (1) + 0x000014| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x14e-0x14f.7 (2) + 0x000015|00 30 |.0 | length: 48 0x150-0x151.7 (2) + 0x000015| a3 46 b8 85 4d 2f 62 58 38 af 47 8e 78 b2| .F..M/bX8.G.x.| encrypted_data: raw bits 0x152-0x181.7 (48) + 0x000016|86 72 6f 6a cb bc f2 db c6 5e a4 16 d9 c5 c0 04|.roj.....^......| + * |until 0x181.7 (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x182-0x1a6.7 (37) + 0x000018| 15 | . | type: "alert" (21) (valid) 0x182-0x182.7 (1) + 0x000018| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x183-0x184.7 (2) + 0x000018| 00 20 | . | length: 32 0x185-0x186.7 (2) + 0x000018| a3 46 b8 85 4d 2f 62 59 ea| .F..M/bY.| encrypted_data: raw bits 0x187-0x1a6.7 (32) + 0x000019|11 e6 05 99 f9 5a 60 5e 57 02 72 27 79 92 27 bf|.....Z`^W.r'y.'.| + 0x00001a|cb c3 f4 3e 69 77 69| |...>iwi| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd16-NA (0) + | | | ip: "127.0.0.1" 0xd16-NA (0) + | | | port: 4432 0xd16-NA (0) + | | | has_start: true 0xd16-NA (0) + | | | has_end: true 0xd16-NA (0) + | | | skipped_bytes: 0 0xd16-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x756.7 (1879) + | | | records[0:7]: 0x0-0x756.7 (1879) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| ba| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|0c 1f 83 6b c3 78 c6 5f 21 bb 4a b9 31 6f ba bf|...k.x._!.J.1o..| + 0x000002|ba a2 0a ac f7 6a 61 c3 ab 2b 88 |.....ja..+. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 32 | .2 | cipher_suit: "TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384" (0xc032) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1de.7 (408) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 93 | .. | length: 403 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1de.7 (403) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 8f| ...| length: 399 0x4d-0x4f.7 (3) + 0x000005|00 01 8c |... | certificates_length: 396 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1de.7 (396) + | | | [0]{}: certificate 0x53-0x1de.7 (396) + 0x000005| 00 01 89 | ... | length: 393 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1de.7 (393) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 85 | ... | length: 389 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1de.7 (389) + | | | [0]{}: object 0x5a-0x14b.7 (242) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 ef | .. | length: 239 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x14b.7 (239) + | | | [0]{}: object 0x5d-0x61.7 (5) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 03 | . | length: 3 0x5e-0x5e.7 (1) + 0x000005| 01| .| value: 129423 0x5f-0x61.7 (3) + 0x000006|f9 8f |.. | + | | | [1]{}: object 0x62-0x70.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x62-0x62.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x62.2-0x62.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x62.3-0x62.7 (0.5) + 0x000006| 0d | . | length: 13 0x63-0x63.7 (1) + | | | constructed[0:2]: 0x64-0x70.7 (13) + | | | [0]{}: object 0x64-0x6e.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x64-0x64.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x64.2-0x64.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x64.3-0x64.7 (0.5) + 0x000006| 09 | . | length: 9 0x65-0x65.7 (1) + | | | value[0:7]: 0x66-0x6e.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x66-0x66.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x66-0x66.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x67-0x68.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x69-0x6b.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6e-0x6e.7 (1) + | | | [1]{}: object 0x6f-0x70.7 (2) + 0x000006| 05| .| class: "universal" (0) 0x6f-0x6f.1 (0.2) + 0x000006| 05| .| form: "primitive" (0) 0x6f.2-0x6f.2 (0.1) + 0x000006| 05| .| tag: "null" (0x5) 0x6f.3-0x6f.7 (0.5) + 0x000007|00 |. | length: "indefinite" (0) 0x70-0x70.7 (1) + | | | value: null 0x71-NA (0) + | | | [2]{}: object 0x71-0x91.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x71-0x71.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x71.2-0x71.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x71.3-0x71.7 (0.5) + 0x000007| 1f | . | length: 31 0x72-0x72.7 (1) + | | | constructed[0:1]: 0x73-0x91.7 (31) + | | | [0]{}: object 0x73-0x91.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x73.3-0x73.7 (0.5) + 0x000007| 1d | . | length: 29 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x91.7 (29) + | | | [0]{}: object 0x75-0x91.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x75.3-0x75.7 (0.5) + 0x000007| 1b | . | length: 27 0x76-0x76.7 (1) + | | | constructed[0:2]: 0x77-0x91.7 (27) + | | | [0]{}: object 0x77-0x7b.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x77.2-0x77.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x77.3-0x77.7 (0.5) + 0x000007| 03 | . | length: 3 0x78-0x78.7 (1) + | | | value[0:4]: 0x79-0x7b.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x79-0x79.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x79-0x79.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7a-0x7a.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7b-0x7b.7 (1) + | | | [1]{}: object 0x7c-0x91.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7c.2-0x7c.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7c.3-0x7c.7 (0.5) + 0x000007| 14 | . | length: 20 0x7d-0x7d.7 (1) + 0x000007| 54 65| Te| value: "Test Certificate RSA" 0x7e-0x91.7 (20) + 0x000008|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x000009|53 41 |SA | + | | | [3]{}: object 0x92-0xb1.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x92-0x92.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x92.2-0x92.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x92.3-0x92.7 (0.5) + 0x000009| 1e | . | length: 30 0x93-0x93.7 (1) + | | | constructed[0:2]: 0x94-0xb1.7 (30) + | | | [0]{}: object 0x94-0xa2.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x94-0x94.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x94.2-0x94.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x94.3-0x94.7 (0.5) + 0x000009| 0d | . | length: 13 0x95-0x95.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31| 1309152151| value: "130915215110Z" 0x96-0xa2.7 (13) + 0x00000a|31 30 5a |10Z | + | | | [1]{}: object 0xa3-0xb1.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa3-0xa3.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa3.2-0xa3.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa3.3-0xa3.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa4-0xa4.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31| 23091321511| value: "230913215110Z" 0xa5-0xb1.7 (13) + 0x00000b|30 5a |0Z | + | | | [4]{}: object 0xb2-0xd3.7 (34) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb2-0xb2.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb2.2-0xb2.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb2.3-0xb2.7 (0.5) + 0x00000b| 20 | | length: 32 0xb3-0xb3.7 (1) + | | | constructed[0:1]: 0xb4-0xd3.7 (32) + | | | [0]{}: object 0xb4-0xd3.7 (32) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb4-0xb4.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb4.2-0xb4.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb4.3-0xb4.7 (0.5) + 0x00000b| 1e | . | length: 30 0xb5-0xb5.7 (1) + | | | constructed[0:1]: 0xb6-0xd3.7 (30) + | | | [0]{}: object 0xb6-0xd3.7 (30) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 1c | . | length: 28 0xb7-0xb7.7 (1) + | | | constructed[0:2]: 0xb8-0xd3.7 (28) + | | | [0]{}: object 0xb8-0xbc.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb9-0xb9.7 (1) + | | | value[0:4]: 0xba-0xbc.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xba-0xba.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xba-0xba.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xbb-0xbb.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbc-0xbc.7 (1) + | | | [1]{}: object 0xbd-0xd3.7 (23) + 0x00000b| 0c | . | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 15 | . | length: 21 0xbe-0xbe.7 (1) + 0x00000b| 54| T| value: "Test Certificate ECDH" 0xbf-0xd3.7 (21) + 0x00000c|65 73 74 20 43 65 72 74 69 66 69 63 61 74 65 20|est Certificate | + 0x00000d|45 43 44 48 |ECDH | + | | | [5]{}: object 0xd4-0x14b.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd4-0xd4.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd4.2-0xd4.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd4.3-0xd4.7 (0.5) + 0x00000d| 76 | v | length: 118 0xd5-0xd5.7 (1) + | | | constructed[0:2]: 0xd6-0x14b.7 (118) + | | | [0]{}: object 0xd6-0xe7.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd6-0xd6.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd6.2-0xd6.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd6.3-0xd6.7 (0.5) + 0x00000d| 10 | . | length: 16 0xd7-0xd7.7 (1) + | | | constructed[0:2]: 0xd8-0xe7.7 (16) + | | | [0]{}: object 0xd8-0xe0.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xd8-0xd8.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd8.2-0xd8.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd8.3-0xd8.7 (0.5) + 0x00000d| 07 | . | length: 7 0xd9-0xd9.7 (1) + | | | value[0:6]: 0xda-0xe0.7 (7) + 0x00000d| 2a | * | [0]: 1 oid 0xda-0xda.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xda-0xda.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xdb-0xdc.7 (2) + 0x00000d| ce 3d | .= | [3]: 10045 oid 0xdd-0xde.7 (2) + 0x00000d| 02| .| [4]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + | | | [1]{}: object 0xe1-0xe7.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe1-0xe1.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe1.2-0xe1.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe1.3-0xe1.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe2-0xe2.7 (1) + | | | value[0:5]: 0xe3-0xe7.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe3-0xe3.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe3-0xe3.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe4-0xe5.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xe6-0xe6.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xe7-0xe7.7 (1) + | | | [1]{}: object 0xe8-0x14b.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xe8-0xe8.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe8.2-0xe8.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe8.3-0xe8.7 (0.5) + 0x00000e| 62 | b | length: 98 0xe9-0xe9.7 (1) + 0x00000e| 00 | . | unused_bits_count: 0 0xea-0xea.7 (1) + 0x00000e| 04 04 cb f7 cc| .....| value: raw bits 0xeb-0x14b.7 (97) + 0x00000f|46 9f 58 43 7a 95 21 a2 57 84 8f 6c eb c9 45 28|F.XCz.!.W..l..E(| + * |until 0x14b.7 (97) | | + | | | [1]{}: object 0x14c-0x15a.7 (15) + 0x000014| 30 | 0 | class: "universal" (0) 0x14c-0x14c.1 (0.2) + 0x000014| 30 | 0 | form: "constructed" (1) 0x14c.2-0x14c.2 (0.1) + 0x000014| 30 | 0 | tag: "sequence" (0x10) 0x14c.3-0x14c.7 (0.5) + 0x000014| 0d | . | length: 13 0x14d-0x14d.7 (1) + | | | constructed[0:2]: 0x14e-0x15a.7 (13) + | | | [0]{}: object 0x14e-0x158.7 (11) + 0x000014| 06 | . | class: "universal" (0) 0x14e-0x14e.1 (0.2) + 0x000014| 06 | . | form: "primitive" (0) 0x14e.2-0x14e.2 (0.1) + 0x000014| 06 | . | tag: "object_identifier" (0x6) 0x14e.3-0x14e.7 (0.5) + 0x000014| 09| .| length: 9 0x14f-0x14f.7 (1) + | | | value[0:7]: 0x150-0x158.7 (9) + 0x000015|2a |* | [0]: 1 oid 0x150-0x150.7 (1) + 0x000015|2a |* | [1]: 2 oid 0x150-0x150.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x151-0x152.7 (2) + 0x000015| 86 f7 0d | ... | [3]: 113549 oid 0x153-0x155.7 (3) + 0x000015| 01 | . | [4]: 1 oid 0x156-0x156.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x157-0x157.7 (1) + 0x000015| 05 | . | [6]: 5 oid 0x158-0x158.7 (1) + | | | [1]{}: object 0x159-0x15a.7 (2) + 0x000015| 05 | . | class: "universal" (0) 0x159-0x159.1 (0.2) + 0x000015| 05 | . | form: "primitive" (0) 0x159.2-0x159.2 (0.1) + 0x000015| 05 | . | tag: "null" (0x5) 0x159.3-0x159.7 (0.5) + 0x000015| 00 | . | length: "indefinite" (0) 0x15a-0x15a.7 (1) + | | | value: null 0x15b-NA (0) + | | | [2]{}: object 0x15b-0x1de.7 (132) + 0x000015| 03 | . | class: "universal" (0) 0x15b-0x15b.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15b.2-0x15b.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15b.3-0x15b.7 (0.5) + 0x000015| 81 81 | .. | length: 129 0x15c-0x15d.7 (2) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 51| Q| value: raw bits 0x15f-0x1de.7 (128) + 0x000016|f1 72 36 6b 46 bb 3a fd 03 28 f9 69 2e 48 4c 8a|.r6kF.:..(.i.HL.| + * |until 0x1de.7 (128) | | + | | | [2]{}: record 0x1df-0x1e7.7 (9) + 0x00001d| 16| .| type: "handshake" (22) (valid) 0x1df-0x1df.7 (1) + 0x00001e|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x1e0-0x1e1.7 (2) + 0x00001e| 00 04 | .. | length: 4 0x1e2-0x1e3.7 (2) + | | | message{}: 0x1e4-0x1e7.7 (4) + 0x00001e| 0e | . | type: "server_hello_done" (14) 0x1e4-0x1e4.7 (1) + 0x00001e| 00 00 00 | ... | length: 0 0x1e5-0x1e7.7 (3) + | | | data: raw bits 0x1e8-NA (0) + | | | [3]{}: record 0x1e8-0x296.7 (175) + 0x00001e| 16 | . | type: "handshake" (22) (valid) 0x1e8-0x1e8.7 (1) + 0x00001e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1e9-0x1ea.7 (2) + 0x00001e| 00 aa | .. | length: 170 0x1eb-0x1ec.7 (2) + | | | message{}: 0x1ed-0x296.7 (170) + 0x00001e| 04 | . | type: "new_session_ticket" (4) 0x1ed-0x1ed.7 (1) + 0x00001e| 00 00| ..| length: 166 0x1ee-0x1f0.7 (3) + 0x00001f|a6 |. | + 0x00001f| 00 00 01 2c | ..., | lifetime_hint: 300 0x1f1-0x1f4.7 (4) + 0x00001f| 00 a0 | .. | ticket_length: 160 0x1f5-0x1f6.7 (2) + 0x00001f| 24 d5 3a fb 86 57 2c 82 fd| $.:..W,..| ticket: raw bits 0x1f7-0x296.7 (160) + 0x000020|03 3b 84 63 3f e2 3f 91 5c d9 78 f3 eb 41 9c f9|.;.c?.?.\.x..A..| + * |until 0x296.7 (160) | | + | | | [4]{}: record 0x297-0x29c.7 (6) + 0x000029| 14 | . | type: "change_cipher_spec" (20) (valid) 0x297-0x297.7 (1) + 0x000029| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x298-0x299.7 (2) + 0x000029| 00 01 | .. | length: 1 0x29a-0x29b.7 (2) + | | | message{}: 0x29c-0x29c.7 (1) + 0x000029| 01 | . | type: 1 0x29c-0x29c.7 (1) + | | | [5]{}: record 0x29d-0x2d2.7 (54) + 0x000029| 16 | . | type: "handshake" (22) (valid) 0x29d-0x29d.7 (1) + 0x000029| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x29e-0x29f.7 (2) + 0x00002a|00 31 |.1 | length: 49 0x2a0-0x2a1.7 (2) + 0x00002a| 8d f5 0a c6 37 4a 28 cc 04 3c d7 c1 80 8d| ....7J(..<....| encrypted_data: raw bits 0x2a2-0x2d2.7 (49) + 0x00002b|00 e7 1a 9c 85 af 46 9c b6 28 a2 74 c3 96 30 b6|......F..(.t..0.| + * |until 0x2d2.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| f5 e9 15 24 e9 6d da a6 5f 7f f2 d2| ...$.m.._...| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2d3-0x756.7 (1156) + 0x00002d| 17 | . | type: "application_data" (23) (valid) 0x2d3-0x2d3.7 (1) + 0x00002d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2d4-0x2d5.7 (2) + 0x00002d| 04 7f | .. | length: 1151 0x2d6-0x2d7.7 (2) + 0x00002d| 8d f5 0a c6 37 4a 28 cd| ....7J(.| encrypted_data: raw bits 0x2d8-0x756.7 (1151) + 0x00002e|f7 80 60 cc 70 11 09 5c 84 b2 dd 87 95 bd c2 42|..`.p..\.......B| + * |until 0x756.7 (end) (1151) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1155.7 (4438) + * |until 0x1155.7 (end) (4438) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1155.7 (4438) + * |until 0x1155.7 (end) (4438) | | diff --git a/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_RC4_128_SHA.pcap b/format/tls/testdata/ciphers/TLS_ECDH_RSA_WITH_RC4_128_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..e1815e165772a6d4ef381b1f5e33a395cac715d6 GIT binary patch literal 3331 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 c`v!=?PT&D?qSe52vMO{XC=0l&E42ae7ltRb8vp.....j| + * |until 0x179.7 (44) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x17a-0x19a.7 (33) + 0x000017| 15 | . | type: "alert" (21) (valid) 0x17a-0x17a.7 (1) + 0x000017| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x17b-0x17c.7 (2) + 0x000017| 00 1c | .. | length: 28 0x17d-0x17e.7 (2) + 0x000017| 1a| .| encrypted_data: raw bits 0x17f-0x19a.7 (28) + 0x000018|74 b8 4a 39 ef 13 5a d1 4a cd 50 b6 81 de d1 81|t.J9..Z.J.P.....| + 0x000019|a5 54 7d e1 28 ab 7d 07 bf 31 97| |.T}.(.}..1.| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd03-NA (0) + | | | ip: "127.0.0.1" 0xd03-NA (0) + | | | port: 4432 0xd03-NA (0) + | | | has_start: true 0xd03-NA (0) + | | | has_end: true 0xd03-NA (0) + | | | skipped_bytes: 0 0xd03-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x74f.7 (1872) + | | | records[0:7]: 0x0-0x74f.7 (1872) + | | | [0]{}: record 0x0-0x46.7 (71) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 42 | .B | length: 66 0x3-0x4.7 (2) + | | | message{}: 0x5-0x46.7 (66) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 3e | ..> | length: 62 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 7e| ~| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|df d4 75 84 68 e7 64 de 8f 5f 0c f4 8e fb a7 65|..u.h.d.._.....e| + 0x000002|6d 73 84 e6 f3 29 e0 27 a8 51 8c |ms...).'.Q. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| c0 0c | .. | cipher_suit: "TLS_ECDH_RSA_WITH_RC4_128_SHA" (0xc00c) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 22 0x2f-0x30.7 (2) + 0x000003|16 |. | + | | | extensions[0:4]: 0x31-0x46.7 (22) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x3d.7 (8) + 0x000003| 00 0b | .. | type: "ec_point_formats" (11) 0x36-0x37.7 (2) + 0x000003| 00 04 | .. | length: 4 0x38-0x39.7 (2) + 0x000003| 03 | . | ex_points_format_length: 3 0x3a-0x3a.7 (1) + | | | ex_points_formats[0:3]: 0x3b-0x3d.7 (3) + 0x000003| 00 | . | [0]: 0x0 ex_points_format 0x3b-0x3b.7 (1) + 0x000003| 01 | . | [1]: 0x1 ex_points_format 0x3c-0x3c.7 (1) + 0x000003| 02 | . | [2]: 0x2 ex_points_format 0x3d-0x3d.7 (1) + | | | [2]{}: extension 0x3e-0x41.7 (4) + 0x000003| 00 23| .#| type: "session_ticket" (35) 0x3e-0x3f.7 (2) + 0x000004|00 00 |.. | length: 0 0x40-0x41.7 (2) + | | | [3]{}: extension 0x42-0x46.7 (5) + 0x000004| 00 0f | .. | type: "heartbeat" (15) 0x42-0x43.7 (2) + 0x000004| 00 01 | .. | length: 1 0x44-0x45.7 (2) + 0x000004| 01 | . | data: raw bits 0x46-0x46.7 (1) + | | | [1]{}: record 0x47-0x1de.7 (408) + 0x000004| 16 | . | type: "handshake" (22) (valid) 0x47-0x47.7 (1) + 0x000004| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x48-0x49.7 (2) + 0x000004| 01 93 | .. | length: 403 0x4a-0x4b.7 (2) + | | | message{}: 0x4c-0x1de.7 (403) + 0x000004| 0b | . | type: "certificate" (11) 0x4c-0x4c.7 (1) + 0x000004| 00 01 8f| ...| length: 399 0x4d-0x4f.7 (3) + 0x000005|00 01 8c |... | certificates_length: 396 0x50-0x52.7 (3) + | | | certificates[0:1]: 0x53-0x1de.7 (396) + | | | [0]{}: certificate 0x53-0x1de.7 (396) + 0x000005| 00 01 89 | ... | length: 393 0x53-0x55.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x56-0x1de.7 (393) + 0x000005| 30 | 0 | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x56.2-0x56.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x56.3-0x56.7 (0.5) + 0x000005| 82 01 85 | ... | length: 389 0x57-0x59.7 (3) + | | | constructed[0:3]: 0x5a-0x1de.7 (389) + | | | [0]{}: object 0x5a-0x14b.7 (242) + 0x000005| 30 | 0 | class: "universal" (0) 0x5a-0x5a.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x5a.2-0x5a.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x5a.3-0x5a.7 (0.5) + 0x000005| 81 ef | .. | length: 239 0x5b-0x5c.7 (2) + | | | constructed[0:6]: 0x5d-0x14b.7 (239) + | | | [0]{}: object 0x5d-0x61.7 (5) + 0x000005| 02 | . | class: "universal" (0) 0x5d-0x5d.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x5d.2-0x5d.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x5d.3-0x5d.7 (0.5) + 0x000005| 03 | . | length: 3 0x5e-0x5e.7 (1) + 0x000005| 01| .| value: 129423 0x5f-0x61.7 (3) + 0x000006|f9 8f |.. | + | | | [1]{}: object 0x62-0x70.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x62-0x62.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x62.2-0x62.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x62.3-0x62.7 (0.5) + 0x000006| 0d | . | length: 13 0x63-0x63.7 (1) + | | | constructed[0:2]: 0x64-0x70.7 (13) + | | | [0]{}: object 0x64-0x6e.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x64-0x64.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x64.2-0x64.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x64.3-0x64.7 (0.5) + 0x000006| 09 | . | length: 9 0x65-0x65.7 (1) + | | | value[0:7]: 0x66-0x6e.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x66-0x66.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x66-0x66.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x67-0x68.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x69-0x6b.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6d-0x6d.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6e-0x6e.7 (1) + | | | [1]{}: object 0x6f-0x70.7 (2) + 0x000006| 05| .| class: "universal" (0) 0x6f-0x6f.1 (0.2) + 0x000006| 05| .| form: "primitive" (0) 0x6f.2-0x6f.2 (0.1) + 0x000006| 05| .| tag: "null" (0x5) 0x6f.3-0x6f.7 (0.5) + 0x000007|00 |. | length: "indefinite" (0) 0x70-0x70.7 (1) + | | | value: null 0x71-NA (0) + | | | [2]{}: object 0x71-0x91.7 (33) + 0x000007| 30 | 0 | class: "universal" (0) 0x71-0x71.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x71.2-0x71.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x71.3-0x71.7 (0.5) + 0x000007| 1f | . | length: 31 0x72-0x72.7 (1) + | | | constructed[0:1]: 0x73-0x91.7 (31) + | | | [0]{}: object 0x73-0x91.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x73-0x73.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x73.2-0x73.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x73.3-0x73.7 (0.5) + 0x000007| 1d | . | length: 29 0x74-0x74.7 (1) + | | | constructed[0:1]: 0x75-0x91.7 (29) + | | | [0]{}: object 0x75-0x91.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x75-0x75.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x75.2-0x75.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x75.3-0x75.7 (0.5) + 0x000007| 1b | . | length: 27 0x76-0x76.7 (1) + | | | constructed[0:2]: 0x77-0x91.7 (27) + | | | [0]{}: object 0x77-0x7b.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x77-0x77.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x77.2-0x77.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x77.3-0x77.7 (0.5) + 0x000007| 03 | . | length: 3 0x78-0x78.7 (1) + | | | value[0:4]: 0x79-0x7b.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x79-0x79.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x79-0x79.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x7a-0x7a.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7b-0x7b.7 (1) + | | | [1]{}: object 0x7c-0x91.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7c-0x7c.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7c.2-0x7c.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7c.3-0x7c.7 (0.5) + 0x000007| 14 | . | length: 20 0x7d-0x7d.7 (1) + 0x000007| 54 65| Te| value: "Test Certificate RSA" 0x7e-0x91.7 (20) + 0x000008|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x000009|53 41 |SA | + | | | [3]{}: object 0x92-0xb1.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x92-0x92.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x92.2-0x92.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x92.3-0x92.7 (0.5) + 0x000009| 1e | . | length: 30 0x93-0x93.7 (1) + | | | constructed[0:2]: 0x94-0xb1.7 (30) + | | | [0]{}: object 0x94-0xa2.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x94-0x94.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x94.2-0x94.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x94.3-0x94.7 (0.5) + 0x000009| 0d | . | length: 13 0x95-0x95.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31| 1309152151| value: "130915215110Z" 0x96-0xa2.7 (13) + 0x00000a|31 30 5a |10Z | + | | | [1]{}: object 0xa3-0xb1.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa3-0xa3.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa3.2-0xa3.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa3.3-0xa3.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa4-0xa4.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31| 23091321511| value: "230913215110Z" 0xa5-0xb1.7 (13) + 0x00000b|30 5a |0Z | + | | | [4]{}: object 0xb2-0xd3.7 (34) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb2-0xb2.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb2.2-0xb2.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb2.3-0xb2.7 (0.5) + 0x00000b| 20 | | length: 32 0xb3-0xb3.7 (1) + | | | constructed[0:1]: 0xb4-0xd3.7 (32) + | | | [0]{}: object 0xb4-0xd3.7 (32) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb4-0xb4.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb4.2-0xb4.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb4.3-0xb4.7 (0.5) + 0x00000b| 1e | . | length: 30 0xb5-0xb5.7 (1) + | | | constructed[0:1]: 0xb6-0xd3.7 (30) + | | | [0]{}: object 0xb6-0xd3.7 (30) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 1c | . | length: 28 0xb7-0xb7.7 (1) + | | | constructed[0:2]: 0xb8-0xd3.7 (28) + | | | [0]{}: object 0xb8-0xbc.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb9-0xb9.7 (1) + | | | value[0:4]: 0xba-0xbc.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xba-0xba.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xba-0xba.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xbb-0xbb.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbc-0xbc.7 (1) + | | | [1]{}: object 0xbd-0xd3.7 (23) + 0x00000b| 0c | . | class: "universal" (0) 0xbd-0xbd.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbd.2-0xbd.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbd.3-0xbd.7 (0.5) + 0x00000b| 15 | . | length: 21 0xbe-0xbe.7 (1) + 0x00000b| 54| T| value: "Test Certificate ECDH" 0xbf-0xd3.7 (21) + 0x00000c|65 73 74 20 43 65 72 74 69 66 69 63 61 74 65 20|est Certificate | + 0x00000d|45 43 44 48 |ECDH | + | | | [5]{}: object 0xd4-0x14b.7 (120) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd4-0xd4.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd4.2-0xd4.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd4.3-0xd4.7 (0.5) + 0x00000d| 76 | v | length: 118 0xd5-0xd5.7 (1) + | | | constructed[0:2]: 0xd6-0x14b.7 (118) + | | | [0]{}: object 0xd6-0xe7.7 (18) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd6-0xd6.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd6.2-0xd6.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd6.3-0xd6.7 (0.5) + 0x00000d| 10 | . | length: 16 0xd7-0xd7.7 (1) + | | | constructed[0:2]: 0xd8-0xe7.7 (16) + | | | [0]{}: object 0xd8-0xe0.7 (9) + 0x00000d| 06 | . | class: "universal" (0) 0xd8-0xd8.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd8.2-0xd8.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd8.3-0xd8.7 (0.5) + 0x00000d| 07 | . | length: 7 0xd9-0xd9.7 (1) + | | | value[0:6]: 0xda-0xe0.7 (7) + 0x00000d| 2a | * | [0]: 1 oid 0xda-0xda.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xda-0xda.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xdb-0xdc.7 (2) + 0x00000d| ce 3d | .= | [3]: 10045 oid 0xdd-0xde.7 (2) + 0x00000d| 02| .| [4]: 2 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + | | | [1]{}: object 0xe1-0xe7.7 (7) + 0x00000e| 06 | . | class: "universal" (0) 0xe1-0xe1.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xe1.2-0xe1.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xe1.3-0xe1.7 (0.5) + 0x00000e| 05 | . | length: 5 0xe2-0xe2.7 (1) + | | | value[0:5]: 0xe3-0xe7.7 (5) + 0x00000e| 2b | + | [0]: 1 oid 0xe3-0xe3.7 (1) + 0x00000e| 2b | + | [1]: 3 oid 0xe3-0xe3.7 (1) + 0x00000e| 81 04 | .. | [2]: 132 oid 0xe4-0xe5.7 (2) + 0x00000e| 00 | . | [3]: 0 oid 0xe6-0xe6.7 (1) + 0x00000e| 22 | " | [4]: 34 oid 0xe7-0xe7.7 (1) + | | | [1]{}: object 0xe8-0x14b.7 (100) + 0x00000e| 03 | . | class: "universal" (0) 0xe8-0xe8.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe8.2-0xe8.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe8.3-0xe8.7 (0.5) + 0x00000e| 62 | b | length: 98 0xe9-0xe9.7 (1) + 0x00000e| 00 | . | unused_bits_count: 0 0xea-0xea.7 (1) + 0x00000e| 04 04 cb f7 cc| .....| value: raw bits 0xeb-0x14b.7 (97) + 0x00000f|46 9f 58 43 7a 95 21 a2 57 84 8f 6c eb c9 45 28|F.XCz.!.W..l..E(| + * |until 0x14b.7 (97) | | + | | | [1]{}: object 0x14c-0x15a.7 (15) + 0x000014| 30 | 0 | class: "universal" (0) 0x14c-0x14c.1 (0.2) + 0x000014| 30 | 0 | form: "constructed" (1) 0x14c.2-0x14c.2 (0.1) + 0x000014| 30 | 0 | tag: "sequence" (0x10) 0x14c.3-0x14c.7 (0.5) + 0x000014| 0d | . | length: 13 0x14d-0x14d.7 (1) + | | | constructed[0:2]: 0x14e-0x15a.7 (13) + | | | [0]{}: object 0x14e-0x158.7 (11) + 0x000014| 06 | . | class: "universal" (0) 0x14e-0x14e.1 (0.2) + 0x000014| 06 | . | form: "primitive" (0) 0x14e.2-0x14e.2 (0.1) + 0x000014| 06 | . | tag: "object_identifier" (0x6) 0x14e.3-0x14e.7 (0.5) + 0x000014| 09| .| length: 9 0x14f-0x14f.7 (1) + | | | value[0:7]: 0x150-0x158.7 (9) + 0x000015|2a |* | [0]: 1 oid 0x150-0x150.7 (1) + 0x000015|2a |* | [1]: 2 oid 0x150-0x150.7 (1) + 0x000015| 86 48 | .H | [2]: 840 oid 0x151-0x152.7 (2) + 0x000015| 86 f7 0d | ... | [3]: 113549 oid 0x153-0x155.7 (3) + 0x000015| 01 | . | [4]: 1 oid 0x156-0x156.7 (1) + 0x000015| 01 | . | [5]: 1 oid 0x157-0x157.7 (1) + 0x000015| 05 | . | [6]: 5 oid 0x158-0x158.7 (1) + | | | [1]{}: object 0x159-0x15a.7 (2) + 0x000015| 05 | . | class: "universal" (0) 0x159-0x159.1 (0.2) + 0x000015| 05 | . | form: "primitive" (0) 0x159.2-0x159.2 (0.1) + 0x000015| 05 | . | tag: "null" (0x5) 0x159.3-0x159.7 (0.5) + 0x000015| 00 | . | length: "indefinite" (0) 0x15a-0x15a.7 (1) + | | | value: null 0x15b-NA (0) + | | | [2]{}: object 0x15b-0x1de.7 (132) + 0x000015| 03 | . | class: "universal" (0) 0x15b-0x15b.1 (0.2) + 0x000015| 03 | . | form: "primitive" (0) 0x15b.2-0x15b.2 (0.1) + 0x000015| 03 | . | tag: "bit_string" (0x3) 0x15b.3-0x15b.7 (0.5) + 0x000015| 81 81 | .. | length: 129 0x15c-0x15d.7 (2) + 0x000015| 00 | . | unused_bits_count: 0 0x15e-0x15e.7 (1) + 0x000015| 51| Q| value: raw bits 0x15f-0x1de.7 (128) + 0x000016|f1 72 36 6b 46 bb 3a fd 03 28 f9 69 2e 48 4c 8a|.r6kF.:..(.i.HL.| + * |until 0x1de.7 (128) | | + | | | [2]{}: record 0x1df-0x1e7.7 (9) + 0x00001d| 16| .| type: "handshake" (22) (valid) 0x1df-0x1df.7 (1) + 0x00001e|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x1e0-0x1e1.7 (2) + 0x00001e| 00 04 | .. | length: 4 0x1e2-0x1e3.7 (2) + | | | message{}: 0x1e4-0x1e7.7 (4) + 0x00001e| 0e | . | type: "server_hello_done" (14) 0x1e4-0x1e4.7 (1) + 0x00001e| 00 00 00 | ... | length: 0 0x1e5-0x1e7.7 (3) + | | | data: raw bits 0x1e8-NA (0) + | | | [3]{}: record 0x1e8-0x296.7 (175) + 0x00001e| 16 | . | type: "handshake" (22) (valid) 0x1e8-0x1e8.7 (1) + 0x00001e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1e9-0x1ea.7 (2) + 0x00001e| 00 aa | .. | length: 170 0x1eb-0x1ec.7 (2) + | | | message{}: 0x1ed-0x296.7 (170) + 0x00001e| 04 | . | type: "new_session_ticket" (4) 0x1ed-0x1ed.7 (1) + 0x00001e| 00 00| ..| length: 166 0x1ee-0x1f0.7 (3) + 0x00001f|a6 |. | + 0x00001f| 00 00 01 2c | ..., | lifetime_hint: 300 0x1f1-0x1f4.7 (4) + 0x00001f| 00 a0 | .. | ticket_length: 160 0x1f5-0x1f6.7 (2) + 0x00001f| 24 d5 3a fb 86 57 2c 82 fd| $.:..W,..| ticket: raw bits 0x1f7-0x296.7 (160) + 0x000020|03 3b 84 63 3f e2 3f 95 9f 16 ea 10 d3 2e 10 47|.;.c?.?........G| + * |until 0x296.7 (160) | | + | | | [4]{}: record 0x297-0x29c.7 (6) + 0x000029| 14 | . | type: "change_cipher_spec" (20) (valid) 0x297-0x297.7 (1) + 0x000029| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x298-0x299.7 (2) + 0x000029| 00 01 | .. | length: 1 0x29a-0x29b.7 (2) + | | | message{}: 0x29c-0x29c.7 (1) + 0x000029| 01 | . | type: 1 0x29c-0x29c.7 (1) + | | | [5]{}: record 0x29d-0x2ce.7 (50) + 0x000029| 16 | . | type: "handshake" (22) (valid) 0x29d-0x29d.7 (1) + 0x000029| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x29e-0x29f.7 (2) + 0x00002a|00 2d |.- | length: 45 0x2a0-0x2a1.7 (2) + 0x00002a| 7b b3 ad c2 b0 56 cd 4b f5 98 ed a3 ef 1d| {....V.K......| encrypted_data: raw bits 0x2a2-0x2ce.7 (45) + 0x00002b|08 36 62 66 29 65 a1 32 40 80 cc ed b3 d9 61 69|.6bf)e.2@.....ai| + 0x00002c|e0 d1 a2 ce 60 c7 9a 99 84 62 ab 3f 5e 5b 19 |....`....b.?^[. | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| c8 ef 6d 82 2c 8d b3 88 24 92 77 8a| ..m.,...$.w.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2cf-0x74f.7 (1153) + 0x00002c| 17| .| type: "application_data" (23) (valid) 0x2cf-0x2cf.7 (1) + 0x00002d|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2d0-0x2d1.7 (2) + 0x00002d| 04 7c | .| | length: 1148 0x2d2-0x2d3.7 (2) + 0x00002d| 98 fe e3 28 4e cb 3b 39 f6 6c f3 d1| ...(N.;9.l..| encrypted_data: raw bits 0x2d4-0x74f.7 (1148) + 0x00002e|b5 d0 b6 56 e4 72 7e 12 33 42 3e 64 76 e7 89 57|...V.r~.3B>dv..W| + * |until 0x74f.7 (end) (1148) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1137.7 (4408) + * |until 0x1137.7 (end) (4408) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1137.7 (4408) + * |until 0x1137.7 (end) (4408) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..3142314631b3fa7b3c829d9ecc0e40277297d837 GIT binary patch literal 3537 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..8cf8c582 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap.fqtest @@ -0,0 +1,467 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_EXPORT_WITH_DES40_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xdd1-NA (0) + | | | client{}: 0xdd1-NA (0) + | | | ip: "127.0.0.1" 0xdd1-NA (0) + | | | port: 39034 0xdd1-NA (0) + | | | has_start: true 0xdd1-NA (0) + | | | has_end: false 0xdd1-NA (0) + | | | skipped_bytes: 0 0xdd1-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x15d.7 (350) + | | | records[0:6]: 0x0-0x15d.7 (350) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 2f| /| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|61 69 f9 6f bc 14 26 fa 3b bf 2e fa e1 d5 39 86|ai.o..&.;.....9.| + 0x000002|cd 1a bf c4 c2 66 31 71 03 ba 66 |.....f1q..f | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 08| ..| [0]: "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA" (0x8) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xb0.7 (75) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 46 | .F | length: 70 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xb0.7 (70) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 42 | ..B | length: 66 0x6c-0x6e.7 (3) + 0x000006| 00| .| data: raw bits 0x6f-0xb0.7 (66) + 0x000007|40 44 7c 16 de f9 6f 27 d9 7f 2f d5 ff 92 96 6a|@D|...o'../....j| + * |until 0xb0.7 (66) | | + | | | [2]{}: record 0xb1-0xb6.7 (6) + 0x00000b| 14 | . | type: "change_cipher_spec" (20) (valid) 0xb1-0xb1.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb2-0xb3.7 (2) + 0x00000b| 00 01 | .. | length: 1 0xb4-0xb5.7 (2) + | | | message{}: 0xb6-0xb6.7 (1) + 0x00000b| 01 | . | type: 1 0xb6-0xb6.7 (1) + | | | [3]{}: record 0xb7-0xf3.7 (61) + 0x00000b| 16 | . | type: "handshake" (22) (valid) 0xb7-0xb7.7 (1) + 0x00000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xb8-0xb9.7 (2) + 0x00000b| 00 38 | .8 | length: 56 0xba-0xbb.7 (2) + 0x00000b| db 94 24 0e| ..$.| encrypted_data: raw bits 0xbc-0xf3.7 (56) + 0x00000c|9d d9 aa e1 5c 55 fe 48 af ba 30 d9 22 a1 0c b3|....\U.H..0."...| + * |until 0xf3.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| dd 51 65 23 b6 b2 0e 32 8e 7d 33 01| .Qe#...2.}3.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0xf4-0x130.7 (61) + 0x00000f| 17 | . | type: "application_data" (23) (valid) 0xf4-0xf4.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf5-0xf6.7 (2) + 0x00000f| 00 38 | .8 | length: 56 0xf7-0xf8.7 (2) + 0x00000f| ab ae 96 73 07 eb d2| ...s...| encrypted_data: raw bits 0xf9-0x130.7 (56) + 0x000010|0f 10 13 c3 ae 29 d1 3c ee c0 f2 c5 2f d6 a2 c9|.....).<..../...| + * |until 0x130.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x131-0x15d.7 (45) + 0x000013| 15 | . | type: "alert" (21) (valid) 0x131-0x131.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x132-0x133.7 (2) + 0x000013| 00 28 | .( | length: 40 0x134-0x135.7 (2) + 0x000013| 8b 79 8c c5 02 e5 7e 95 8e 2c| .y....~..,| encrypted_data: raw bits 0x136-0x15d.7 (40) + 0x000014|1e 90 82 b9 7f 8b df 21 7d d6 45 68 d3 41 7e f7|.......!}.Eh.A~.| + 0x000015|e2 3e 09 c7 6a e4 b9 bc 92 c8 d4 2a c6 1e| |.>..j......*..| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xdd1-NA (0) + | | | ip: "127.0.0.1" 0xdd1-NA (0) + | | | port: 4430 0xdd1-NA (0) + | | | has_start: true 0xdd1-NA (0) + | | | has_end: true 0xdd1-NA (0) + | | | skipped_bytes: 0 0xdd1-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x85a.7 (2139) + | | | records[0:8]: 0x0-0x85a.7 (2139) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 2c| ,| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|08 4c 4d 73 23 98 70 68 c5 9e 18 56 59 0f f2 08|.LMs#.ph...VY...| + 0x000002|0b c4 2f fd 2b 5b 50 f6 d0 18 12 |../.+[P.... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 08 | .. | cipher_suit: "TLS_RSA_EXPORT_WITH_DES40_CBC_SHA" (0x8) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x2da.7 (212) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 00 cf | .. | length: 207 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x2da.7 (207) + 0x000020| 0c | . | type: "server_key_exchange" (12) 0x20c-0x20c.7 (1) + 0x000020| 00 00 cb| ...| length: 203 0x20d-0x20f.7 (3) + 0x000021|00 40 a8 c5 cb 9a aa 6c e5 e9 04 7e e6 01 84 a4|.@.....l...~....| data: raw bits 0x210-0x2da.7 (203) + * |until 0x2da.7 (203) | | + | | | [3]{}: record 0x2db-0x2e3.7 (9) + 0x00002d| 16 | . | type: "handshake" (22) (valid) 0x2db-0x2db.7 (1) + 0x00002d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2dc-0x2dd.7 (2) + 0x00002d| 00 04| ..| length: 4 0x2de-0x2df.7 (2) + | | | message{}: 0x2e0-0x2e3.7 (4) + 0x00002e|0e |. | type: "server_hello_done" (14) 0x2e0-0x2e0.7 (1) + 0x00002e| 00 00 00 | ... | length: 0 0x2e1-0x2e3.7 (3) + | | | data: raw bits 0x2e4-NA (0) + | | | [4]{}: record 0x2e4-0x392.7 (175) + 0x00002e| 16 | . | type: "handshake" (22) (valid) 0x2e4-0x2e4.7 (1) + 0x00002e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2e5-0x2e6.7 (2) + 0x00002e| 00 aa | .. | length: 170 0x2e7-0x2e8.7 (2) + | | | message{}: 0x2e9-0x392.7 (170) + 0x00002e| 04 | . | type: "new_session_ticket" (4) 0x2e9-0x2e9.7 (1) + 0x00002e| 00 00 a6 | ... | length: 166 0x2ea-0x2ec.7 (3) + 0x00002e| 00 00 01| ...| lifetime_hint: 300 0x2ed-0x2f0.7 (4) + 0x00002f|2c |, | + 0x00002f| 00 a0 | .. | ticket_length: 160 0x2f1-0x2f2.7 (2) + 0x00002f| c0 b4 67 52 a5 ca da 99 7a 28 d7 eb e7| ..gR....z(...| ticket: raw bits 0x2f3-0x392.7 (160) + 0x000030|a1 7e 31 eb d6 5a 7c 83 28 ad 2a 60 e6 67 22 63|.~1..Z|.(.*`.g"c| + * |until 0x392.7 (160) | | + | | | [5]{}: record 0x393-0x398.7 (6) + 0x000039| 14 | . | type: "change_cipher_spec" (20) (valid) 0x393-0x393.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x394-0x395.7 (2) + 0x000039| 00 01 | .. | length: 1 0x396-0x397.7 (2) + | | | message{}: 0x398-0x398.7 (1) + 0x000039| 01 | . | type: 1 0x398-0x398.7 (1) + | | | [6]{}: record 0x399-0x3d5.7 (61) + 0x000039| 16 | . | type: "handshake" (22) (valid) 0x399-0x399.7 (1) + 0x000039| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x39a-0x39b.7 (2) + 0x000039| 00 38 | .8 | length: 56 0x39c-0x39d.7 (2) + 0x000039| cc 1a| ..| encrypted_data: raw bits 0x39e-0x3d5.7 (56) + 0x00003a|5f db 2e c0 24 2b 73 0f 5a 0f 2a 7f fd 47 58 ac|_...$+s.Z.*..GX.| + * |until 0x3d5.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 4a 39 c4 7b ad f1 8c f2 e8 b9 a3 de| J9.{........| verify_data: raw bits 0x4-0xf.7 (12) + | | | [7]{}: record 0x3d6-0x85a.7 (1157) + 0x00003d| 17 | . | type: "application_data" (23) (valid) 0x3d6-0x3d6.7 (1) + 0x00003d| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x3d7-0x3d8.7 (2) + 0x00003d| 04 80 | .. | length: 1152 0x3d9-0x3da.7 (2) + 0x00003d| 82 74 15 0a c9| .t...| encrypted_data: raw bits 0x3db-0x85a.7 (1152) + 0x00003e|3c 88 29 f2 8a 57 ba f5 06 95 cc 0e 5a e8 11 98|<.)..W......Z...| + * |until 0x85a.7 (end) (1152) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1126.7 (4391) + * |until 0x1126.7 (end) (4391) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1126.7 (4391) + * |until 0x1126.7 (end) (4391) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5.pcap b/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5.pcap new file mode 100644 index 0000000000000000000000000000000000000000..42497e93d484d7ff0a143b67b4f72dd9ebfdf752 GIT binary patch literal 6599 zcmai&byQSsyT$Fq9}IEdqix5)vXviG!r1G$Y+0APs}$fRuoglp?91 z^w1#Pb!PnZJHF?8&pCUod!E^|_WE7d{p@+}Kd#}n%GY237x;Z$TmS(2_YG#1{8fsW zugF|kKo&oS+7|#o*h==I&{!TA|Bih;3tU`$4g~-(?!^~eFu^6fC}(% z@0<(c1N1LXzkOl-*!(IC!v>j;WkfIjBZC&hF#bEk4~B6A5Ml_-0DzAR_yNF$V>I>I zYd)t^%MGR}{3grdhwE%2nJ$Yst{PeZ7r$@-=HZ{$pWa($vASMUzjc4@L+bLtH;Vtu zyC4n#U`r9e5p0>mGTi6>k%93J`s?rBuV9>OfdN1r2j`v`AH~C0Z^@2Bd<8zF1U6TN zKjB$chTp;`LzIc8G>0-D&AemU<9)e0S0D2}d>7f2KIa(?G03C~&?c-eig%#_@Bskt z0tA2n3>DNy1b~_WP$K}Ug9d=AF?AJ82<#RJ4lSLEw?j$r33-B5f)7YQAUr$(dQFH4 z%7Blfi;F`{rSlN(!Yu#rsf(?(t);okL*{$hx1d*PNQ8u;5<;RdAyFYAs1Xeb40|j5 z>-PT#_-Fp93Bm(#{9gi4|1hw>KTsmd6X)A;mo~XFGwVcTVKyS;i&6~at4esGe8h3f z#oL|{GlM3yATy)%k=$-MXKGD3s5wctxSfZwB<=|+GJgDeFUpjvrjO2g34c3f?KW`? zVd6sSjP-n=m0-5o97~DZvo*x>{#b@=FB7;8VYA7r#8|~C@r;zGeJs5Or4Giy?Ao99 zFk6Cy@%2bvtuR-5l>x@}B;woZ`Bv2vi3Aa0jt!j})}xt`g*Mm3`S(=j_w!oq7Z)}F zj$rhdgYa^flEOguE73k{JZ_YgnZpbViK0yjzC86zXL}dw zxJ~5jwnQ&0C>$!HS^k%;HT`cw9Wwp&8g$m~R~>H;LZymZ9-4?-0xbJO?M8uTub z9(-u@O76IcQwlp@uEI4Zb9GusE%6rEh_qMEjDaVxTL?1A9nfk2qFu9jt~0Z$LC+; z;~T|t2`T||1TFrz@llWAU<)%o>XC&%$4A^hGH5Z3(*HbyO5^|_2gq`vV`$l1cFPq= z(_i~gSy}{AMx~mftILr?`IVG&Q>&5_A#HvN13AVk-tr&3U6*oZ@Zd3CrY$cF#7czb z;ptSE-asI1hfqQYTIsSdiX)zJMOj~TglGE#jS8+)394b7jPC;r4V7d~+nZ>QabCQv zT4FX+FTm~u_Hz1Fm`vgqeV z{(F}FdKpQWm+=`RZ*gw&Z+Q>wET_Ttoe-HgcTD8a-94*9i97BqJaQd*$sT2x+3V1; z=A2TQRAX*QP}S|O+JBRF9VaP}^0#mb1pr`65uiwEna2u0cKaWFf5!CPhwYmz@^8W( z7-5PB`V!~KHgq-&8D)00k%M{nR;c^mFd!>jUdAS3I+9F}8h}P-BzKw~y+Aoi`fCngHS7#)SCF+CLVP7%CKg@DtXCthEe}g|j zP3t<3@(*@0E|cPTefw6T}D3Y4BEe6eq&mveMDy#et#HAdHErGJ;8&j zjfu>{08uou{Dqvcz%%;yx-BfprZgTmM8=1=j6S3-N8HFNsC01Um4fzCvLo3bM2oYi z3JVqs-tIEqng~|f@jd>?*Z}X-OJ<2g1dW|2G`_!kLg>32;7-*O{D&QU;w)dP{pw=z zdM)9kP2jP%&qWU6-`8J0HB3R>*XIZ-x1<#JRb!`-+1P#opl)0!4)8rm2e@HFeC$68 zQ#+&Bj1UWogNgP_GS3bfUUYcmAH5x9sq})(Hjk%D^iA*(oDqB-;-D@4o>)3D`}~Q1 zwDIytxym5Dd_}2c-%U~Np||WFt!6}y=~tj~nJ^VZ(`>WePTs6E5)J4oW^Z?*dXdwg zsE8Ay?pAV7bx471HGA3Dx=OhhO|l-G89BXsDoD5nX4H)m?_kYnU$n75eq<=AwWIa& zwfJ&%SK9np>Xp_M$<2gyL}YFU&&h*gO-}^A!L}-SQ08j)CRI>Rjk`4Mu&Ge3RPmAL(s7nfQA%4g(H9(L4L+L0AY~VZ7f9HK zX(fxC44MvppUJLlEpe-Mn-m7V?~@4KU4K1+4Bq#n->d4m&g25WTm{@raQ5(zLtWEt zek}+RzAGfsz$16HUO>__BfQ)5n73El%0=vRPsGIrB<6~IU$vAV^H5y=dmT#)DAnVt zmUlsM!oY&;q>_(%=vr(_g$vl;r|z%|(oo(&9bY->{y$l zsz#esSG^S=OSiXdeX`&39`JeGIq7~BiF^O6p%rotwc9l723@8b(A5oWc3P4M4=Z>M z6i88P!|RW#Y0i{W=(mLhE7lfHg6X!GpSYzC39 zW@+xtya>Z>aw&cIXjw5;%;phAUw6=ZE2(IzHin7OZCZ%Hf;-}oft;OlpD zTdC}mm+GVR`&>MOeF{#6zPC!W61mC)YNYxh4XyPQt>h_Y8_{Fw$U4i^>R3bA8?R_n z^SeAQQ!z@M`N7{ORvyR7B-Wwx#-Om%3|>jX5oNDskUFOweqR_0V!c+@z}9o#n18aFGg-YT6I;=_s_=4anCm{r?qc)t`*r}d?0V@1lq zkYd>cH^AEvJj6752}bX4OvGsOMUeRhWLH(2i|Rwzsgpy^dcA{!bG%YxOb!i`6wecG z#3e0Hsqeh!g@wCi=2jn#(hp}T{D-NFya|NEm{litlc^sayji&)77RaGp$)!^sGy75 z1&)ab6`aid7_}h?u_23r%8bX<G+%1Vj(6W}j&hYU7H%9#Un_i~OR;jmCnQv4 z;6h;WAOSB)UL++WDX7UaT)LCM{e*V8eK)KikSm;n)Nk{tvrpsptn&R^;$@ouvr zF)Zm?`mn)Xode@$Yg#8JzSqJM9+J?=eSLvUcTrsqIqvaYc`Ky}^_khTCk;XGu<+5+zeD}z*tOoK?MhOQxMufPJ1c<@QmX{u_26d8NP0xQ@xx>_jWZ_yCe5?T3 z%X$pvlN=Z%m5zZ+>Si);F8z{|R8M~Ivfc-kdQGfpaZ*YTNjIltpsDBSq- z;C|8A_`}@mJZj|Y67wfT_(R4?&zHs|A_U)>&XWSA0j7HqUPT8!k=qmYZ`L~GYDBvA zVWM&~@ZM-a;X6i@+p$C!h)|Tvyk5rRnUvvNL%4%GH~Oxjt#0f2H+h<`JTiyXHvH@3 zP^!3%N2d<cYEqq)%>V9EvVdJ#gOtQjFFv&vsDT>F6K{fS;a!AgWuPn{F86x8UE6o-@g?+wm~_F` ztk!dZDjO238__}^yyb#yqL^kP51qTM4@$NaDM4htd8*5fg=48P334yt_ygR%`{efG zi=pu+-1JpW90=3eZmXHOOX{M<9q(;JeK!YJD&r|y-d9{Qt#;@;-V9{16U$V1)fr^6 zq$Xsbt#eh4=%a>SQ^RW@#9*dKBUwlFwQ2t?yh$*J;r(wJ6R7o5pS3&%zJ9U|H@&8XdLImuKf8wFBV~P_j?wk_OQk>3sZdWM6MQ?s`zNz-6Wz zuZ+2z@(;=8WIi1|DRx+56nzveM7|YQUoqE8=u)2Ne2x9Z5)X-dajcfNSt%Wx21z>5|vs+zccG5weG zmY2lpkA<j7L!!9sp(^NY;sMw$uQy#?w- zoyg|SHT4Z*Rn2{=c`s+vUHb*&G6l^pGsTq`tXs;PREE>FTPO4M#2*>=lpoxBa(mZm zol2mOr^WfnkDCHUH%OK59~7kr)Pc0l6p2~b95jBgAC{F2Hwn&Khq+3X4SEUZ)^UE0 zGSDM!*i1${hFfhN?oa72;IXiboOZrjgP@%n3E@mV!xctPPZ&O#2!?W8j}0c$!G8u1 z-t_6OwrsdIu;=4df?K9%o$lR)C)Usbw2~yplVjkKdNI6aJ!I` zt?IGXO|ke$>eH;TC3~lR;vDVS^Hj1kygWqMSSGl=MZNlEr50keKgdRF6((BZjk}q> zGO07osB`YNw<|Z8+p#}c-;DORY%0)Spe$e8Ow4`^g?n0pJ++4Y>HRVmnKu3mEQimfIk+v(-$wwkv~ zM-{91vPgG)>9bRPqxMYnN?<)|qfMSUw_fEEyQ~ic46&U5h?8xhJw)-1D zWF)s*p2m5Vj-3|3&pG4h)Af97M{IVh3hL9dX*DE;CqgzT@S7x2Vb6t&uEjri4%>7O zA#)m9NngyXJI{IH(<1s+z+7jc+D!h|c^~2EmlXb#E>E^j=Oq%x*{G}^Ro+#t54Uea zN9y>l9rSN5?2~r|>x(E=J}5!lxIV2U(f`u$f+F0;lGi<#!2hDh`xX=QRkn`31+U`g zdS`{4(7{9enK~+hB`Gn zViwgA@l|L(;h^>C<(m_CY(}MC5P0K!n)y`x@I2f^>93cYb9SD5P~Xmk9S8qIQx=&bLTJGnAl<_C|7%>_&!GM-yB8L-)$UN6yr5b zOM^6ttB9q*6yM5Bo!1=R(I4x5=Ax29MMAA-EbUcwoY90JztP;N#B-yZQt-r4*JrM< z6=_X_6Z`Rlwa(LEYUit~;g@~Mtui8+}f%}YL3-1OzWJgNee$bTn;b}ptk6AHIJ*Eu15MLUP}F< zIhD|2I}8k$`)=pQ(za0WwWjgpor|i-;w6l9d~gvsbmEl>88zeN6FcQ0a8x!-bJtH- z3DF%Sd$!4#pw>t>C&&C+oaQ|we#SA#&m9Ig31c+&FLP3Ab4%OdB@nurPRX(LhL}Ay zin=*g*3F)U%ejNoB6T4*OZ~(#bCCQMZq6*z4@%A1TQPP~HPm{aUXU_}Fm@)-@gIDp zU~#&xo}JI0r8RDtv^=g$FC%`C>$?w9-qq@mHA!EYndPp$Qd>0f*^bELeHrAdcz7Z# zS9R7iEahH9Um+AxFrrFB8{y^SsWiqraMWHwBCmkDlw)2Ref`IC$F2ecuYhugv~&2b zL;eNJY(MkU916Y)&SlXY{V zTDCZz>#~0f!e2Vggt-~|3dE#rZVe5_Y#SMHN_Lnlt1FJ6qup$`wKj+c3fvBFo9;Fk z_?GrIQs}(A^E;^dGp=h{_!&@r`+HE+Df%<0p}+)G|DE<@6C#g)VjzpLj2N2Vj9)2J z-*QQ(s2@4b(f`IU#K5qHNvaHy$e&5o);}=B{Ah83bM?OmM%0+3iaAb2ui0>sPPnk^ zROn4Hx#>!d+Y4H~Bs}&z$GxYvG!DPbVtN3ug%QFmSRu(zzlHvl$aRWgpVh<#00SWa F_%DNtiOc{1 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5.pcap.fqtest new file mode 100644 index 00000000..d8c876e4 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5.pcap.fqtest @@ -0,0 +1,357 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0x19c7-NA (0) + | | | client{}: 0x19c7-NA (0) + | | | ip: "127.0.0.1" 0x19c7-NA (0) + | | | port: 39035 0x19c7-NA (0) + | | | has_start: true 0x19c7-NA (0) + | | | has_end: false 0x19c7-NA (0) + | | | skipped_bytes: 0 0x19c7-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x113.7 (276) + | | | ssl_v2{}: 0x0-0x33.7 (52) + 0x0000|80 32 |.2 | length: 50 0x0-0x1.7 (2) + 0x0000| 01 | . | type: 1 0x2-0x2.7 (1) + 0x0000| 03 03 | .. | tls_version: 771 0x3-0x4.7 (2) + 0x0000| 00 09 | .. | cipher_spec_length: 9 0x5-0x6.7 (2) + 0x0000| 00 00 | .. | session_id_length: 0 0x7-0x8.7 (2) + 0x0000| 00 20 | . | challenge_length: 32 0x9-0xa.7 (2) + | | | cipher_specs[0:3]: 0xb-0x13.7 (9) + 0x0000| 00 00 06 | ... | [0]: "TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5" (0x6) cipher_spec 0xb-0xd.7 (3) + 0x0000| 04 00| ..| [1]: "SSL_CK_RC2_128_CBC_EXPORT40_WITH_MD5" (0x40080) cipher_spec 0xe-0x10.7 (3) + 0x0001|80 |. | + 0x0001| 00 00 ff | ... | [2]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_spec 0x11-0x13.7 (3) + | | | session_id: raw bits 0x14-NA (0) + 0x0001| 6e 90 15 fd a1 2c 6f ae 63 ef 1d df| n....,o.c...| challenge: raw bits 0x14-0x33.7 (32) + 0x0002|06 be 63 aa 65 ed 23 34 9f 74 e7 03 76 4e 51 00|..c.e.#4.t..vNQ.| + 0x0003|28 2d 33 82 |(-3. | + | | | records[0:5]: 0x34-0x113.7 (224) + | | | [0]{}: record 0x34-0x7e.7 (75) + 0x0003| 16 | . | type: "handshake" (22) (valid) 0x34-0x34.7 (1) + 0x0003| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x35-0x36.7 (2) + 0x0003| 00 46 | .F | length: 70 0x37-0x38.7 (2) + | | | message{}: 0x39-0x7e.7 (70) + 0x0003| 10 | . | type: "client_key_exchange" (16) 0x39-0x39.7 (1) + 0x0003| 00 00 42 | ..B | length: 66 0x3a-0x3c.7 (3) + 0x0003| 00 40 28| .@(| data: raw bits 0x3d-0x7e.7 (66) + 0x0004|e4 91 18 25 c0 f4 b0 44 0e 9c a1 7e 14 63 62 84|...%...D...~.cb.| + * |until 0x7e.7 (66) | | + | | | [1]{}: record 0x7f-0x84.7 (6) + 0x0007| 14| .| type: "change_cipher_spec" (20) (valid) 0x7f-0x7f.7 (1) + 0x0008|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x80-0x81.7 (2) + 0x0008| 00 01 | .. | length: 1 0x82-0x83.7 (2) + | | | message{}: 0x84-0x84.7 (1) + 0x0008| 01 | . | type: 1 0x84-0x84.7 (1) + | | | [2]{}: record 0x85-0xb9.7 (53) + 0x0008| 16 | . | type: "handshake" (22) (valid) 0x85-0x85.7 (1) + 0x0008| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x86-0x87.7 (2) + 0x0008| 00 30 | .0 | length: 48 0x88-0x89.7 (2) + 0x0008| 09 07 e4 46 12 33| ...F.3| encrypted_data: raw bits 0x8a-0xb9.7 (48) + 0x0009|b4 26 94 1c ea 47 57 35 d5 2a f2 ff e4 b4 86 b9|.&...GW5.*......| + * |until 0xb9.7 (48) | | + | | | [3]{}: record 0xba-0xee.7 (53) + 0x000b| 17 | . | type: "application_data" (23) (valid) 0xba-0xba.7 (1) + 0x000b| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xbb-0xbc.7 (2) + 0x000b| 00 30 | .0 | length: 48 0xbd-0xbe.7 (2) + 0x000b| 95| .| encrypted_data: raw bits 0xbf-0xee.7 (48) + 0x000c|8e 96 e3 fa 0b 6d c9 c9 e2 48 13 04 da 7f 33 d5|.....m...H....3.| + * |until 0xee.7 (48) | | + | | | [4]{}: record 0xef-0x113.7 (37) + 0x000e| 15| .| type: "alert" (21) (valid) 0xef-0xef.7 (1) + 0x000f|03 03 |.. | version: "tls1.2" (0x303) (valid) 0xf0-0xf1.7 (2) + 0x000f| 00 20 | . | length: 32 0xf2-0xf3.7 (2) + 0x000f| 93 48 56 bf 59 e7 19 33 a8 c8 fc 31| .HV.Y..3...1| encrypted_data: raw bits 0xf4-0x113.7 (32) + 0x0010|ad aa 10 5e ea a3 77 83 18 56 97 05 25 4b fa cb|...^..w..V..%K..| + 0x0011|fc 69 17 6d| |.i.m| | + | | | server{}: 0x19c7-NA (0) + | | | ip: "127.0.0.1" 0x19c7-NA (0) + | | | port: 4430 0x19c7-NA (0) + | | | has_start: true 0x19c7-NA (0) + | | | has_end: true 0x19c7-NA (0) + | | | skipped_bytes: 0 0x19c7-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x149a.7 (5275) + | | | records[0:7]: 0x0-0x149a.7 (5275) + | | | [0]{}: record 0x0-0x55.7 (86) + 0x0000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x0000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x0000| 00 51 | .Q | length: 81 0x3-0x4.7 (2) + | | | message{}: 0x5-0x55.7 (81) + 0x0000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x0000| 00 00 4d | ..M | length: 77 0x6-0x8.7 (3) + 0x0000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x0000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x0000| 65| e| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x0001|9d b7 0f fa 87 7f 2e c7 99 84 bf b3 8a 70 2a e9|.............p*.| + 0x0002|47 73 41 06 0f 8c af 35 99 bf 88 |GsA....5... | + 0x0002| 20 | | session_id_length: 32 0x2b-0x2b.7 (1) + 0x0002| f9 e1 bd 1d| ....| session_id: raw bits 0x2c-0x4b.7 (32) + 0x0003|f5 2b 8d eb e3 ba 91 c1 8a f4 ab be 9c e3 7a 90|.+............z.| + 0x0004|07 58 9f 19 82 53 09 ba a9 94 74 17 |.X...S....t. | + 0x0004| 00 06 | .. | cipher_suit: "TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5" (0x6) 0x4c-0x4d.7 (2) + 0x0004| 00 | . | compression_method: "null" (0x0) 0x4e-0x4e.7 (1) + 0x0004| 00| .| extensions_length: 5 0x4f-0x50.7 (2) + 0x0005|05 |. | + | | | extensions[0:1]: 0x51-0x55.7 (5) + | | | [0]{}: extension 0x51-0x55.7 (5) + 0x0005| ff 01 | .. | type: "renegotiation_info" (65281) 0x51-0x52.7 (2) + 0x0005| 00 01 | .. | length: 1 0x53-0x54.7 (2) + 0x0005| 00 | . | data: raw bits 0x55-0x55.7 (1) + | | | [1]{}: record 0x56-0x21d.7 (456) + 0x0005| 16 | . | type: "handshake" (22) (valid) 0x56-0x56.7 (1) + 0x0005| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x57-0x58.7 (2) + 0x0005| 01 c3 | .. | length: 451 0x59-0x5a.7 (2) + | | | message{}: 0x5b-0x21d.7 (451) + 0x0005| 0b | . | type: "certificate" (11) 0x5b-0x5b.7 (1) + 0x0005| 00 01 bf | ... | length: 447 0x5c-0x5e.7 (3) + 0x0005| 00| .| certificates_length: 444 0x5f-0x61.7 (3) + 0x0006|01 bc |.. | + | | | certificates[0:1]: 0x62-0x21d.7 (444) + | | | [0]{}: certificate 0x62-0x21d.7 (444) + 0x0006| 00 01 b9 | ... | length: 441 0x62-0x64.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x65-0x21d.7 (441) + 0x0006| 30 | 0 | class: "universal" (0) 0x65-0x65.1 (0.2) + 0x0006| 30 | 0 | form: "constructed" (1) 0x65.2-0x65.2 (0.1) + 0x0006| 30 | 0 | tag: "sequence" (0x10) 0x65.3-0x65.7 (0.5) + 0x0006| 82 01 b5 | ... | length: 437 0x66-0x68.7 (3) + | | | constructed[0:3]: 0x69-0x21d.7 (437) + | | | [0]{}: object 0x69-0x18a.7 (290) + 0x0006| 30 | 0 | class: "universal" (0) 0x69-0x69.1 (0.2) + 0x0006| 30 | 0 | form: "constructed" (1) 0x69.2-0x69.2 (0.1) + 0x0006| 30 | 0 | tag: "sequence" (0x10) 0x69.3-0x69.7 (0.5) + 0x0006| 82 01 1e | ... | length: 286 0x6a-0x6c.7 (3) + | | | constructed[0:6]: 0x6d-0x18a.7 (286) + | | | [0]{}: object 0x6d-0x77.7 (11) + 0x0006| 02 | . | class: "universal" (0) 0x6d-0x6d.1 (0.2) + 0x0006| 02 | . | form: "primitive" (0) 0x6d.2-0x6d.2 (0.1) + 0x0006| 02 | . | tag: "integer" (0x2) 0x6d.3-0x6d.7 (0.5) + 0x0006| 09 | . | length: 9 0x6e-0x6e.7 (1) + 0x0006| 00| .| value: 17629111853558544324 0x6f-0x77.7 (9) + 0x0007|f4 a7 2f d3 e8 fc 37 c4 |../...7. | + | | | [1]{}: object 0x78-0x86.7 (15) + 0x0007| 30 | 0 | class: "universal" (0) 0x78-0x78.1 (0.2) + 0x0007| 30 | 0 | form: "constructed" (1) 0x78.2-0x78.2 (0.1) + 0x0007| 30 | 0 | tag: "sequence" (0x10) 0x78.3-0x78.7 (0.5) + 0x0007| 0d | . | length: 13 0x79-0x79.7 (1) + | | | constructed[0:2]: 0x7a-0x86.7 (13) + | | | [0]{}: object 0x7a-0x84.7 (11) + 0x0007| 06 | . | class: "universal" (0) 0x7a-0x7a.1 (0.2) + 0x0007| 06 | . | form: "primitive" (0) 0x7a.2-0x7a.2 (0.1) + 0x0007| 06 | . | tag: "object_identifier" (0x6) 0x7a.3-0x7a.7 (0.5) + 0x0007| 09 | . | length: 9 0x7b-0x7b.7 (1) + | | | value[0:7]: 0x7c-0x84.7 (9) + 0x0007| 2a | * | [0]: 1 oid 0x7c-0x7c.7 (1) + 0x0007| 2a | * | [1]: 2 oid 0x7c-0x7c.7 (1) + 0x0007| 86 48 | .H | [2]: 840 oid 0x7d-0x7e.7 (2) + 0x0007| 86| .| [3]: 113549 oid 0x7f-0x81.7 (3) + 0x0008|f7 0d |.. | + 0x0008| 01 | . | [4]: 1 oid 0x82-0x82.7 (1) + 0x0008| 01 | . | [5]: 1 oid 0x83-0x83.7 (1) + 0x0008| 05 | . | [6]: 5 oid 0x84-0x84.7 (1) + | | | [1]{}: object 0x85-0x86.7 (2) + 0x0008| 05 | . | class: "universal" (0) 0x85-0x85.1 (0.2) + 0x0008| 05 | . | form: "primitive" (0) 0x85.2-0x85.2 (0.1) + 0x0008| 05 | . | tag: "null" (0x5) 0x85.3-0x85.7 (0.5) + 0x0008| 00 | . | length: "indefinite" (0) 0x86-0x86.7 (1) + | | | value: null 0x87-NA (0) + | | | [2]{}: object 0x87-0xa7.7 (33) + 0x0008| 30 | 0 | class: "universal" (0) 0x87-0x87.1 (0.2) + 0x0008| 30 | 0 | form: "constructed" (1) 0x87.2-0x87.2 (0.1) + 0x0008| 30 | 0 | tag: "sequence" (0x10) 0x87.3-0x87.7 (0.5) + 0x0008| 1f | . | length: 31 0x88-0x88.7 (1) + | | | constructed[0:1]: 0x89-0xa7.7 (31) + | | | [0]{}: object 0x89-0xa7.7 (31) + 0x0008| 31 | 1 | class: "universal" (0) 0x89-0x89.1 (0.2) + 0x0008| 31 | 1 | form: "constructed" (1) 0x89.2-0x89.2 (0.1) + 0x0008| 31 | 1 | tag: "set" (0x11) 0x89.3-0x89.7 (0.5) + 0x0008| 1d | . | length: 29 0x8a-0x8a.7 (1) + | | | constructed[0:1]: 0x8b-0xa7.7 (29) + | | | [0]{}: object 0x8b-0xa7.7 (29) + 0x0008| 30 | 0 | class: "universal" (0) 0x8b-0x8b.1 (0.2) + 0x0008| 30 | 0 | form: "constructed" (1) 0x8b.2-0x8b.2 (0.1) + 0x0008| 30 | 0 | tag: "sequence" (0x10) 0x8b.3-0x8b.7 (0.5) + 0x0008| 1b | . | length: 27 0x8c-0x8c.7 (1) + | | | constructed[0:2]: 0x8d-0xa7.7 (27) + | | | [0]{}: object 0x8d-0x91.7 (5) + 0x0008| 06 | . | class: "universal" (0) 0x8d-0x8d.1 (0.2) + 0x0008| 06 | . | form: "primitive" (0) 0x8d.2-0x8d.2 (0.1) + 0x0008| 06 | . | tag: "object_identifier" (0x6) 0x8d.3-0x8d.7 (0.5) + 0x0008| 03 | . | length: 3 0x8e-0x8e.7 (1) + | | | value[0:4]: 0x8f-0x91.7 (3) + 0x0008| 55| U| [0]: 2 oid 0x8f-0x8f.7 (1) + 0x0008| 55| U| [1]: 5 oid 0x8f-0x8f.7 (1) + 0x0009|04 |. | [2]: 4 oid 0x90-0x90.7 (1) + 0x0009| 03 | . | [3]: 3 oid 0x91-0x91.7 (1) + | | | [1]{}: object 0x92-0xa7.7 (22) + 0x0009| 0c | . | class: "universal" (0) 0x92-0x92.1 (0.2) + 0x0009| 0c | . | form: "primitive" (0) 0x92.2-0x92.2 (0.1) + 0x0009| 0c | . | tag: "utf8_string" (0xc) 0x92.3-0x92.7 (0.5) + 0x0009| 14 | . | length: 20 0x93-0x93.7 (1) + 0x0009| 54 65 73 74 20 43 65 72 74 69 66 69| Test Certifi| value: "Test Certificate RSA" 0x94-0xa7.7 (20) + 0x000a|63 61 74 65 20 52 53 41 |cate RSA | + | | | [3]{}: object 0xa8-0xc7.7 (32) + 0x000a| 30 | 0 | class: "universal" (0) 0xa8-0xa8.1 (0.2) + 0x000a| 30 | 0 | form: "constructed" (1) 0xa8.2-0xa8.2 (0.1) + 0x000a| 30 | 0 | tag: "sequence" (0x10) 0xa8.3-0xa8.7 (0.5) + 0x000a| 1e | . | length: 30 0xa9-0xa9.7 (1) + | | | constructed[0:2]: 0xaa-0xc7.7 (30) + | | | [0]{}: object 0xaa-0xb8.7 (15) + 0x000a| 17 | . | class: "universal" (0) 0xaa-0xaa.1 (0.2) + 0x000a| 17 | . | form: "primitive" (0) 0xaa.2-0xaa.2 (0.1) + 0x000a| 17 | . | tag: "utc_time" (0x17) 0xaa.3-0xaa.7 (0.5) + 0x000a| 0d | . | length: 13 0xab-0xab.7 (1) + 0x000a| 31 33 30 39| 1309| value: "130915215110Z" 0xac-0xb8.7 (13) + 0x000b|31 35 32 31 35 31 31 30 5a |15215110Z | + | | | [1]{}: object 0xb9-0xc7.7 (15) + 0x000b| 17 | . | class: "universal" (0) 0xb9-0xb9.1 (0.2) + 0x000b| 17 | . | form: "primitive" (0) 0xb9.2-0xb9.2 (0.1) + 0x000b| 17 | . | tag: "utc_time" (0x17) 0xb9.3-0xb9.7 (0.5) + 0x000b| 0d | . | length: 13 0xba-0xba.7 (1) + 0x000b| 32 33 30 39 31| 23091| value: "230913215110Z" 0xbb-0xc7.7 (13) + 0x000c|33 32 31 35 31 31 30 5a |3215110Z | + | | | [4]{}: object 0xc8-0xe8.7 (33) + 0x000c| 30 | 0 | class: "universal" (0) 0xc8-0xc8.1 (0.2) + 0x000c| 30 | 0 | form: "constructed" (1) 0xc8.2-0xc8.2 (0.1) + 0x000c| 30 | 0 | tag: "sequence" (0x10) 0xc8.3-0xc8.7 (0.5) + 0x000c| 1f | . | length: 31 0xc9-0xc9.7 (1) + | | | constructed[0:1]: 0xca-0xe8.7 (31) + | | | [0]{}: object 0xca-0xe8.7 (31) + 0x000c| 31 | 1 | class: "universal" (0) 0xca-0xca.1 (0.2) + 0x000c| 31 | 1 | form: "constructed" (1) 0xca.2-0xca.2 (0.1) + 0x000c| 31 | 1 | tag: "set" (0x11) 0xca.3-0xca.7 (0.5) + 0x000c| 1d | . | length: 29 0xcb-0xcb.7 (1) + | | | constructed[0:1]: 0xcc-0xe8.7 (29) + | | | [0]{}: object 0xcc-0xe8.7 (29) + 0x000c| 30 | 0 | class: "universal" (0) 0xcc-0xcc.1 (0.2) + 0x000c| 30 | 0 | form: "constructed" (1) 0xcc.2-0xcc.2 (0.1) + 0x000c| 30 | 0 | tag: "sequence" (0x10) 0xcc.3-0xcc.7 (0.5) + 0x000c| 1b | . | length: 27 0xcd-0xcd.7 (1) + | | | constructed[0:2]: 0xce-0xe8.7 (27) + | | | [0]{}: object 0xce-0xd2.7 (5) + 0x000c| 06 | . | class: "universal" (0) 0xce-0xce.1 (0.2) + 0x000c| 06 | . | form: "primitive" (0) 0xce.2-0xce.2 (0.1) + 0x000c| 06 | . | tag: "object_identifier" (0x6) 0xce.3-0xce.7 (0.5) + 0x000c| 03| .| length: 3 0xcf-0xcf.7 (1) + | | | value[0:4]: 0xd0-0xd2.7 (3) + 0x000d|55 |U | [0]: 2 oid 0xd0-0xd0.7 (1) + 0x000d|55 |U | [1]: 5 oid 0xd0-0xd0.7 (1) + 0x000d| 04 | . | [2]: 4 oid 0xd1-0xd1.7 (1) + 0x000d| 03 | . | [3]: 3 oid 0xd2-0xd2.7 (1) + | | | [1]{}: object 0xd3-0xe8.7 (22) + 0x000d| 0c | . | class: "universal" (0) 0xd3-0xd3.1 (0.2) + 0x000d| 0c | . | form: "primitive" (0) 0xd3.2-0xd3.2 (0.1) + 0x000d| 0c | . | tag: "utf8_string" (0xc) 0xd3.3-0xd3.7 (0.5) + 0x000d| 14 | . | length: 20 0xd4-0xd4.7 (1) + 0x000d| 54 65 73 74 20 43 65 72 74 69 66| Test Certif| value: "Test Certificate RSA" 0xd5-0xe8.7 (20) + 0x000e|69 63 61 74 65 20 52 53 41 |icate RSA | + | | | [5]{}: object 0xe9-0x18a.7 (162) + 0x000e| 30 | 0 | class: "universal" (0) 0xe9-0xe9.1 (0.2) + 0x000e| 30 | 0 | form: "constructed" (1) 0xe9.2-0xe9.2 (0.1) + 0x000e| 30 | 0 | tag: "sequence" (0x10) 0xe9.3-0xe9.7 (0.5) + 0x000e| 81 9f | .. | length: 159 0xea-0xeb.7 (2) + | | | constructed[0:2]: 0xec-0x18a.7 (159) + | | | [0]{}: object 0xec-0xfa.7 (15) + 0x000e| 30 | 0 | class: "universal" (0) 0xec-0xec.1 (0.2) + 0x000e| 30 | 0 | form: "constructed" (1) 0xec.2-0xec.2 (0.1) + 0x000e| 30 | 0 | tag: "sequence" (0x10) 0xec.3-0xec.7 (0.5) + 0x000e| 0d | . | length: 13 0xed-0xed.7 (1) + | | | constructed[0:2]: 0xee-0xfa.7 (13) + | | | [0]{}: object 0xee-0xf8.7 (11) + 0x000e| 06 | . | class: "universal" (0) 0xee-0xee.1 (0.2) + 0x000e| 06 | . | form: "primitive" (0) 0xee.2-0xee.2 (0.1) + 0x000e| 06 | . | tag: "object_identifier" (0x6) 0xee.3-0xee.7 (0.5) + 0x000e| 09| .| length: 9 0xef-0xef.7 (1) + | | | value[0:7]: 0xf0-0xf8.7 (9) + 0x000f|2a |* | [0]: 1 oid 0xf0-0xf0.7 (1) + 0x000f|2a |* | [1]: 2 oid 0xf0-0xf0.7 (1) + 0x000f| 86 48 | .H | [2]: 840 oid 0xf1-0xf2.7 (2) + 0x000f| 86 f7 0d | ... | [3]: 113549 oid 0xf3-0xf5.7 (3) + 0x000f| 01 | . | [4]: 1 oid 0xf6-0xf6.7 (1) + 0x000f| 01 | . | [5]: 1 oid 0xf7-0xf7.7 (1) + 0x000f| 01 | . | [6]: 1 oid 0xf8-0xf8.7 (1) + | | | [1]{}: object 0xf9-0xfa.7 (2) + 0x000f| 05 | . | class: "universal" (0) 0xf9-0xf9.1 (0.2) + 0x000f| 05 | . | form: "primitive" (0) 0xf9.2-0xf9.2 (0.1) + 0x000f| 05 | . | tag: "null" (0x5) 0xf9.3-0xf9.7 (0.5) + 0x000f| 00 | . | length: "indefinite" (0) 0xfa-0xfa.7 (1) + | | | value: null 0xfb-NA (0) + | | | [1]{}: object 0xfb-0x18a.7 (144) + 0x000f| 03 | . | class: "universal" (0) 0xfb-0xfb.1 (0.2) + 0x000f| 03 | . | form: "primitive" (0) 0xfb.2-0xfb.2 (0.1) + 0x000f| 03 | . | tag: "bit_string" (0x3) 0xfb.3-0xfb.7 (0.5) + 0x000f| 81 8d | .. | length: 141 0xfc-0xfd.7 (2) + 0x000f| 00 | . | unused_bits_count: 0 0xfe-0xfe.7 (1) + 0x000f| 30| 0| value: raw bits 0xff-0x18a.7 (140) + 0x0010|81 89 02 81 81 00 ac 35 2a 93 7f c5 4f 18 98 b2|.......5*...O...| + * |until 0x18a.7 (140) | | + | | | [1]{}: object 0x18b-0x199.7 (15) + 0x0018| 30 | 0 | class: "universal" (0) 0x18b-0x18b.1 (0.2) + 0x0018| 30 | 0 | form: "constructed" (1) 0x18b.2-0x18b.2 (0.1) + 0x0018| 30 | 0 | tag: "sequence" (0x10) 0x18b.3-0x18b.7 (0.5) + 0x0018| 0d | . | length: 13 0x18c-0x18c.7 (1) + | | | constructed[0:2]: 0x18d-0x199.7 (13) + | | | [0]{}: object 0x18d-0x197.7 (11) + 0x0018| 06 | . | class: "universal" (0) 0x18d-0x18d.1 (0.2) + 0x0018| 06 | . | form: "primitive" (0) 0x18d.2-0x18d.2 (0.1) + 0x0018| 06 | . | tag: "object_identifier" (0x6) 0x18d.3-0x18d.7 (0.5) + 0x0018| 09 | . | length: 9 0x18e-0x18e.7 (1) + | | | value[0:7]: 0x18f-0x197.7 (9) + 0x0018| 2a| *| [0]: 1 oid 0x18f-0x18f.7 (1) + 0x0018| 2a| *| [1]: 2 oid 0x18f-0x18f.7 (1) + 0x0019|86 48 |.H | [2]: 840 oid 0x190-0x191.7 (2) + 0x0019| 86 f7 0d | ... | [3]: 113549 oid 0x192-0x194.7 (3) + 0x0019| 01 | . | [4]: 1 oid 0x195-0x195.7 (1) + 0x0019| 01 | . | [5]: 1 oid 0x196-0x196.7 (1) + 0x0019| 05 | . | [6]: 5 oid 0x197-0x197.7 (1) + | | | [1]{}: object 0x198-0x199.7 (2) + 0x0019| 05 | . | class: "universal" (0) 0x198-0x198.1 (0.2) + 0x0019| 05 | . | form: "primitive" (0) 0x198.2-0x198.2 (0.1) + 0x0019| 05 | . | tag: "null" (0x5) 0x198.3-0x198.7 (0.5) + 0x0019| 00 | . | length: "indefinite" (0) 0x199-0x199.7 (1) + | | | value: null 0x19a-NA (0) + | | | [2]{}: object 0x19a-0x21d.7 (132) + 0x0019| 03 | . | class: "universal" (0) 0x19a-0x19a.1 (0.2) + 0x0019| 03 | . | form: "primitive" (0) 0x19a.2-0x19a.2 (0.1) + 0x0019| 03 | . | tag: "bit_string" (0x3) 0x19a.3-0x19a.7 (0.5) + 0x0019| 81 81 | .. | length: 129 0x19b-0x19c.7 (2) + 0x0019| 00 | . | unused_bits_count: 0 0x19d-0x19d.7 (1) + 0x0019| 67 43| gC| value: raw bits 0x19e-0x21d.7 (128) + 0x001a|4c a8 a4 3e eb 1b 32 28 70 8b db eb fe f1 b3 70|L..>..2(p......p| + * |until 0x21d.7 (128) | | + | | | [2]{}: record 0x21e-0x2f1.7 (212) + 0x0021| 16 | . | type: "handshake" (22) (valid) 0x21e-0x21e.7 (1) + 0x0021| 03| .| version: "tls1.2" (0x303) (valid) 0x21f-0x220.7 (2) + 0x0022|03 |. | + 0x0022| 00 cf | .. | length: 207 0x221-0x222.7 (2) + | | | message{}: 0x223-0x2f1.7 (207) + 0x0022| 0c | . | type: "server_key_exchange" (12) 0x223-0x223.7 (1) + 0x0022| 00 00 cb | ... | length: 203 0x224-0x226.7 (3) + 0x0022| 00 40 a8 c5 cb 9a aa 6c e5| .@.....l.| data: raw bits 0x227-0x2f1.7 (203) + 0x0023|e9 04 7e e6 01 84 a4 81 7c ed 86 da 37 9f 6d bf|..~.....|...7.m.| + * |until 0x2f1.7 (203) | | + | | | [3]{}: record 0x2f2-0x2fa.7 (9) + 0x002f| 16 | . | type: "handshake" (22) (valid) 0x2f2-0x2f2.7 (1) + 0x002f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2f3-0x2f4.7 (2) + 0x002f| 00 04 | .. | length: 4 0x2f5-0x2f6.7 (2) + | | | message{}: 0x2f7-0x2fa.7 (4) + 0x002f| 0e | . | type: "server_hello_done" (14) 0x2f7-0x2f7.7 (1) + 0x002f| 00 00 00 | ... | length: 0 0x2f8-0x2fa.7 (3) + | | | data: raw bits 0x2fb-NA (0) + | | | [4]{}: record 0x2fb-0x300.7 (6) + 0x002f| 14 | . | type: "change_cipher_spec" (20) (valid) 0x2fb-0x2fb.7 (1) + 0x002f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2fc-0x2fd.7 (2) + 0x002f| 00 01| ..| length: 1 0x2fe-0x2ff.7 (2) + | | | message{}: 0x300-0x300.7 (1) + 0x0030|01 |. | type: 1 0x300-0x300.7 (1) + | | | [5]{}: record 0x301-0x335.7 (53) + 0x0030| 16 | . | type: "handshake" (22) (valid) 0x301-0x301.7 (1) + 0x0030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x302-0x303.7 (2) + 0x0030| 00 30 | .0 | length: 48 0x304-0x305.7 (2) + 0x0030| 98 bf 33 0f a6 e9 88 93 82 18| ..3.......| encrypted_data: raw bits 0x306-0x335.7 (48) + 0x0031|a3 0f 86 fb e8 b1 f7 40 c9 cb 5c 2a 52 77 71 45|.......@..\*RwqE| + * |until 0x335.7 (48) | | + | | | [6]{}: record 0x336-0x149a.7 (4453) + 0x0033| 17 | . | type: "application_data" (23) (valid) 0x336-0x336.7 (1) + 0x0033| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x337-0x338.7 (2) + 0x0033| 11 60 | .` | length: 4448 0x339-0x33a.7 (2) + 0x0033| 57 39 fe 98 68| W9..h| encrypted_data: raw bits 0x33b-0x149a.7 (4448) + 0x0034|19 68 1b 9e af 6b b8 8e d2 a5 52 ea 15 cf ad 1d|.h...k....R.....| + * |until 0x149a.7 (end) (4448) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_RC4_40_MD5.pcap b/format/tls/testdata/ciphers/TLS_RSA_EXPORT_WITH_RC4_40_MD5.pcap new file mode 100644 index 0000000000000000000000000000000000000000..9cff8cab6ff5df4806352d00a1995c316141c3c2 GIT binary patch literal 6512 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..2(p......p| + * |until 0x21d.7 (128) | | + | | | [2]{}: record 0x21e-0x2f1.7 (212) + 0x000021| 16 | . | type: "handshake" (22) (valid) 0x21e-0x21e.7 (1) + 0x000021| 03| .| version: "tls1.2" (0x303) (valid) 0x21f-0x220.7 (2) + 0x000022|03 |. | + 0x000022| 00 cf | .. | length: 207 0x221-0x222.7 (2) + | | | message{}: 0x223-0x2f1.7 (207) + 0x000022| 0c | . | type: "server_key_exchange" (12) 0x223-0x223.7 (1) + 0x000022| 00 00 cb | ... | length: 203 0x224-0x226.7 (3) + 0x000022| 00 40 a8 c5 cb 9a aa 6c e5| .@.....l.| data: raw bits 0x227-0x2f1.7 (203) + 0x000023|e9 04 7e e6 01 84 a4 81 7c ed 86 da 37 9f 6d bf|..~.....|...7.m.| + * |until 0x2f1.7 (203) | | + | | | [3]{}: record 0x2f2-0x2fa.7 (9) + 0x00002f| 16 | . | type: "handshake" (22) (valid) 0x2f2-0x2f2.7 (1) + 0x00002f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2f3-0x2f4.7 (2) + 0x00002f| 00 04 | .. | length: 4 0x2f5-0x2f6.7 (2) + | | | message{}: 0x2f7-0x2fa.7 (4) + 0x00002f| 0e | . | type: "server_hello_done" (14) 0x2f7-0x2f7.7 (1) + 0x00002f| 00 00 00 | ... | length: 0 0x2f8-0x2fa.7 (3) + | | | data: raw bits 0x2fb-NA (0) + | | | [4]{}: record 0x2fb-0x300.7 (6) + 0x00002f| 14 | . | type: "change_cipher_spec" (20) (valid) 0x2fb-0x2fb.7 (1) + 0x00002f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2fc-0x2fd.7 (2) + 0x00002f| 00 01| ..| length: 1 0x2fe-0x2ff.7 (2) + | | | message{}: 0x300-0x300.7 (1) + 0x000030|01 |. | type: 1 0x300-0x300.7 (1) + | | | [5]{}: record 0x301-0x325.7 (37) + 0x000030| 16 | . | type: "handshake" (22) (valid) 0x301-0x301.7 (1) + 0x000030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x302-0x303.7 (2) + 0x000030| 00 20 | . | length: 32 0x304-0x305.7 (2) + 0x000030| 8a 85 2a ba 1a d2 ae 66 cb 49| ..*....f.I| encrypted_data: raw bits 0x306-0x325.7 (32) + 0x000031|be 48 1f eb 68 81 93 21 d3 91 08 3f 3d 07 66 54|.H..h..!...?=.fT| + 0x000032|4b 39 10 b8 c9 6a |K9...j | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| b1 c6 ed b9 f5 9a 56 18 b5 e6 02 0a| ......V.....| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x326-0x146f.7 (4426) + 0x000032| 17 | . | type: "application_data" (23) (valid) 0x326-0x326.7 (1) + 0x000032| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x327-0x328.7 (2) + 0x000032| 11 45 | .E | length: 4421 0x329-0x32a.7 (2) + 0x000032| ac f0 46 6d fa| ..Fm.| encrypted_data: raw bits 0x32b-0x146f.7 (4421) + 0x000033|86 61 68 1e d5 cd e7 8a 39 cd 6a 27 21 b8 78 61|.ah.....9.j'!.xa| + * |until 0x146f.7 (end) (4421) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1134.7 (4405) + * |until 0x1134.7 (end) (4405) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1134.7 (4405) + * |until 0x1134.7 (end) (4405) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_3DES_EDE_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_3DES_EDE_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..18c7b7faf9620fd83ae333ab1075b1f1e7499fa3 GIT binary patch literal 3389 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..102ec802 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_WITH_3DES_EDE_CBC_SHA.pcap.fqtest @@ -0,0 +1,460 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_WITH_3DES_EDE_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd3d-NA (0) + | | | client{}: 0xd3d-NA (0) + | | | ip: "127.0.0.1" 0xd3d-NA (0) + | | | port: 38994 0xd3d-NA (0) + | | | has_start: true 0xd3d-NA (0) + | | | has_end: false 0xd3d-NA (0) + | | | skipped_bytes: 0 0xd3d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x19d.7 (414) + | | | records[0:6]: 0x0-0x19d.7 (414) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 56| V| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|5d 8f 90 f9 f3 74 43 36 52 32 e0 a8 78 ce db 00|]....tC6R2..x...| + 0x000002|76 7c ef 27 34 88 6e c8 43 1a bd |v|.'4.n.C.. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 0a| ..| [0]: "TLS_RSA_WITH_3DES_EDE_CBC_SHA" (0xa) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xf0.7 (139) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 86 | .. | length: 134 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xf0.7 (134) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 82 | ... | length: 130 0x6c-0x6e.7 (3) + | | | encrypted_premaster{}: 0x6f-NA (0) + 0x000006| 00| .| length: 128 0x6f-0x70.7 (2) + 0x000007|80 |. | + 0x000007| 2b 2c 43 3e d6 3b f1 39 8c 7a da 2c 96 3b 05| +,C>.;.9.z.,.;.| data: raw bits 0x71-0xf0.7 (128) + 0x000008|a8 54 1a 5f 23 66 fd f7 c0 57 bc 24 45 d0 e6 88|.T._#f...W.$E...| + * |until 0xf0.7 (128) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x133.7 (61) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 38 | .8 | length: 56 0xfa-0xfb.7 (2) + 0x00000f| 43 2c 75 06| C,u.| encrypted_data: raw bits 0xfc-0x133.7 (56) + 0x000010|e2 58 0e 41 c7 e9 7d 8a ee 9e b5 93 d8 a3 9d 93|.X.A..}.........| + * |until 0x133.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 9b 32 d9 63 92 fb 86 51 a6 97 26 10| .2.c...Q..&.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x134-0x170.7 (61) + 0x000013| 17 | . | type: "application_data" (23) (valid) 0x134-0x134.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x135-0x136.7 (2) + 0x000013| 00 38 | .8 | length: 56 0x137-0x138.7 (2) + 0x000013| 48 10 c2 8e dc c0 e8| H......| encrypted_data: raw bits 0x139-0x170.7 (56) + 0x000014|bf 60 20 dc 00 dc 19 3b 6e 19 40 1c f8 91 4a 97|.` ....;n.@...J.| + * |until 0x170.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x171-0x19d.7 (45) + 0x000017| 15 | . | type: "alert" (21) (valid) 0x171-0x171.7 (1) + 0x000017| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x172-0x173.7 (2) + 0x000017| 00 28 | .( | length: 40 0x174-0x175.7 (2) + 0x000017| ce 6e 7c 52 f2 df 91 5b 00 b6| .n|R...[..| encrypted_data: raw bits 0x176-0x19d.7 (40) + 0x000018|4e 0f e8 11 3b ef 4f 1a c7 60 89 e1 f1 f0 ee 87|N...;.O..`......| + 0x000019|c4 77 91 37 be a7 3e 53 ea 0a 97 2e ab 7e| |.w.7..>S.....~| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd3d-NA (0) + | | | ip: "127.0.0.1" 0xd3d-NA (0) + | | | port: 4430 0xd3d-NA (0) + | | | has_start: true 0xd3d-NA (0) + | | | has_end: true 0xd3d-NA (0) + | | | skipped_bytes: 0 0xd3d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x786.7 (1927) + | | | records[0:7]: 0x0-0x786.7 (1927) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 40| @| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|56 64 22 45 09 d2 dd a3 a9 4d 18 c4 7b ab 49 32|Vd"E.....M..{.I2| + 0x000002|0a 28 09 22 df 19 22 58 fd 8c a6 |.(.".."X... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 0a | .. | cipher_suit: "TLS_RSA_WITH_3DES_EDE_CBC_SHA" (0xa) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x000020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x000020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x000021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x000021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x000021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x000021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x000021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x000021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x000021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x000021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x000022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 dd|.gR....z(....~1.| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x00002b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x00002c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x00002c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x00002c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x301.7 (61) + 0x00002c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x00002c| 00 38 | .8 | length: 56 0x2c8-0x2c9.7 (2) + 0x00002c| bc 05 3a 1d 9f 64| ..:..d| encrypted_data: raw bits 0x2ca-0x301.7 (56) + 0x00002d|94 18 5e b6 41 20 7e f0 0e 64 63 62 ec 2f 96 89|..^.A ~..dcb./..| + * |until 0x301.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| a5 65 9c 77 a8 a4 1c 4c bd 62 98 fa| .e.w...L.b..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x302-0x786.7 (1157) + 0x000030| 17 | . | type: "application_data" (23) (valid) 0x302-0x302.7 (1) + 0x000030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x303-0x304.7 (2) + 0x000030| 04 80 | .. | length: 1152 0x305-0x306.7 (2) + 0x000030| 13 2e eb a5 ad 67 81 2d 1c| .....g.-.| encrypted_data: raw bits 0x307-0x786.7 (1152) + 0x000031|47 cd ea 19 62 ed af 06 f9 7b 8f 60 b4 ec 9a 0f|G...b....{.`....| + * |until 0x786.7 (end) (1152) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x111d.7 (4382) + * |until 0x111d.7 (end) (4382) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x111d.7 (4382) + * |until 0x111d.7 (end) (4382) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..2a6e1e6f82732d4a6bfd16a1458121cf9bd7af03 GIT binary patch literal 3437 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...#..| + 0x000002|fd 25 e3 7e 81 b4 0d 2d f0 f1 d6 |.%.~...-... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 2f| ./| [0]: "TLS_RSA_WITH_AES_128_CBC_SHA" (0x2f) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xf0.7 (139) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 86 | .. | length: 134 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xf0.7 (134) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 82 | ... | length: 130 0x6c-0x6e.7 (3) + | | | encrypted_premaster{}: 0x6f-NA (0) + 0x000006| 00| .| length: 128 0x6f-0x70.7 (2) + 0x000007|80 |. | + 0x000007| 29 b9 07 2d 64 86 b9 32 18 ed d7 f2 84 f1 5c| )..-d..2......\| data: raw bits 0x71-0xf0.7 (128) + 0x000008|67 94 04 4b 5e 80 98 3f f2 88 da 5f b8 87 c4 a3|g..K^..?..._....| + * |until 0xf0.7 (128) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x13b.7 (69) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 40 | .@ | length: 64 0xfa-0xfb.7 (2) + 0x00000f| 2d 7d 02 95| -}..| encrypted_data: raw bits 0xfc-0x13b.7 (64) + 0x000010|64 14 f4 c4 de f6 1a ba 33 43 3e 22 d7 19 fc 96|d.......3C>"....| + * |until 0x13b.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 16 7f 69 bc 0a 71 23 ee 7c 8a 10 ac| ..i..q#.|...| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x13c-0x180.7 (69) + 0x000013| 17 | . | type: "application_data" (23) (valid) 0x13c-0x13c.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x13d-0x13e.7 (2) + 0x000013| 00| .| length: 64 0x13f-0x140.7 (2) + 0x000014|40 |@ | + 0x000014| 02 ed 6c d6 65 b4 ba bc 03 98 31 b7 aa db c4| ..l.e.....1....| encrypted_data: raw bits 0x141-0x180.7 (64) + 0x000015|76 13 dd ee ff 37 d2 40 f9 1e 17 32 2a b8 9b bc|v....7.@...2*...| + * |until 0x180.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x181-0x1b5.7 (53) + 0x000018| 15 | . | type: "alert" (21) (valid) 0x181-0x181.7 (1) + 0x000018| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x182-0x183.7 (2) + 0x000018| 00 30 | .0 | length: 48 0x184-0x185.7 (2) + 0x000018| 9d 56 94 7d fa 02 26 76 6a ce| .V.}..&vj.| encrypted_data: raw bits 0x186-0x1b5.7 (48) + 0x000019|24 dd 84 48 04 80 81 37 87 4e 5f 6c c1 8b 5f 08|$..H...7.N_l.._.| + * |until 0x1b5.7 (end) (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd6d-NA (0) + | | | ip: "127.0.0.1" 0xd6d-NA (0) + | | | port: 4430 0xd6d-NA (0) + | | | has_start: true 0xd6d-NA (0) + | | | has_end: true 0xd6d-NA (0) + | | | skipped_bytes: 0 0xd6d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x79e.7 (1951) + | | | records[0:7]: 0x0-0x79e.7 (1951) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| c1| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|51 fc 76 5b 6c 80 2b a6 b6 ff 2c ad ea 79 38 f4|Q.v[l.+...,..y8.| + 0x000002|09 b9 2a dc 9d 5c ec 84 4e 7f 4b |..*..\..N.K | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 2f | ./ | cipher_suit: "TLS_RSA_WITH_AES_128_CBC_SHA" (0x2f) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x000020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x000020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x000021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x000021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x000021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x000021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x000021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x000021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x000021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x000021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x000022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 01|.gR....z(....~1.| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x00002b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x00002c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x00002c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x00002c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x309.7 (69) + 0x00002c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x00002c| 00 40 | .@ | length: 64 0x2c8-0x2c9.7 (2) + 0x00002c| 23 84 37 5f 84 94| #.7_..| encrypted_data: raw bits 0x2ca-0x309.7 (64) + 0x00002d|d6 af 1d 95 7b f2 9a 74 71 2e c6 02 4b 9f 7a e1|....{..tq...K.z.| + * |until 0x309.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| fb d4 4a 10 ac 9e 07 2d 13 f9 a0 7a| ..J....-...z| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x30a-0x79e.7 (1173) + 0x000030| 17 | . | type: "application_data" (23) (valid) 0x30a-0x30a.7 (1) + 0x000030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x30b-0x30c.7 (2) + 0x000030| 04 90 | .. | length: 1168 0x30d-0x30e.7 (2) + 0x000030| 49| I| encrypted_data: raw bits 0x30f-0x79e.7 (1168) + 0x000031|b4 37 f9 95 e6 47 57 e1 b4 1e f6 c0 48 bc 80 f6|.7...GW.....H...| + * |until 0x79e.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1117.7 (4376) + * |until 0x1117.7 (end) (4376) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1117.7 (4376) + * |until 0x1117.7 (end) (4376) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_CBC_SHA256.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_CBC_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..b4f81fa0ce343927765f74cf4e9cb2bf94007f11 GIT binary patch literal 3517 zcmai%2{=^$8pqF>857wX>&RMJlWqK^Ab)@%tQu+ldZbfv$XONX3G_+Qy-ApiglZ2+M~cn>pr z`~Jv)vISKCJzFGj0DAVX&1}zjR~(6pVHCgNB*RN-x01CySX*=2R2pqb{7i+083fp9 zAOMMnlZDgZfpTkM2EYaYd;);A@*!Xq6ha6lV6i~1Z|0}UGkI1tlXQe$#0o12GB5!0 z!U}@&0%)WO3dzD{Z13qMqG|8p<>cUW&c@4L#OUN>s$Pv6##OorG=g^rG); z#;iBeYC8MRm_4146WOW0rmHr&D&J(J#9oa9~^pFFg`tJ0dQx|`o&2L0{! z{1KJ}rj)6)QHRMeJGs01~SjR6iIy);QRK3}xpADv0S001L z9{{(?gDgQpx(J&3_w&@}1QaFRV@Pw>5!)bw@P}^wOeGdAv41|rBCfTT0I>Z%H0kOQk8aRTt-D%wH=Gmn%tw$ zpS4%6x8Nv8RJ+8$XnCAL*=`emXBW$5C9L!ErF(nR6rphhP;46&x%soTE>W%_mf-Z@#7^+L_|27M;P@%w~4S-mb+r}((`6Gi5w5CBX-#U|FK@l7P5CR0 zD2QA^_kFM7{GjiLlD@Jh@T^B$idv+MUB8a6sITi@bVms0?*_n28(`-kO4<(!J!d>` z9(4&bujljr`j>zB*_EQg^9x84t3%qoM`f3C#?Hm|Mg|)8dOspQh`Dm%+6 zGE|kK9QlQP-K@XO!>e!Gta_Zk3l}71qtXF`jFje;{JoRb?{z;v=vCpIP)lehMhlX@ z@5|m(ymB3w%y%gDDG!(Vyq=lDGF%g+?QD7LrlQNYz&&vbSYqOIFLODTJ#}4Kss@|6 zqp&sO2HkLV$R#)+r_>1_V5j=t(Vg1t0(`|p(C1PR?3CiaoYH`M9_&;R)aLI&m-hnM zjgYfaq(-~`(hv}SxWA`ZHMc{{+FdyB({ar9s-0}jF@CA9sOX+R zmc~=)@tvfurq^w*PaB-w>TUTvjHVAHJePmZM2?Fd(ZSdjzl^O;#XPbJDL@ z?fmL()x0ih)o=B%5G$yHb0@G}@uIGUy-B$90bf|Z=5|H(#fV@?c9@=!EX$!VeOE)R zKy+v9^{_2&QZ&QU!UQd1rIN0xjkhOCnRs1X5^2+Pz(fruWlYTBIQ%PuYbrh8v&G2z z%sicNd{9to`a?1-EeJR47){MzIVji28S8x8(cf>c~EXqDUbW9YJ$m) z0uwvxly+&EfSVfc$t**Gv66t*{YREBsFBGx^7z}lYWO{KZneFLT*{hFwB`9Bqnk2L z7d8kD6CBzAYLM^|7WP_=E^Kp{`KzH}?uLgM@$x@}p|YQ2u_-c{H%zaRrMI6V<9{~r ztOs$EbF{dQ?biKaa_lC?*e3H}v3%u>&ww)lNSWuE4_|jDL@VTqVvpn7!p%m3)RV| zSelm2Psr=VHwekwd6tFiRbWg8xx{TT=aZ)EpKyJ3?y=;P@T*Ldg;xnk`)&C`ib%t{1qhX_^u{OZ`?C9B1WYG(_Pu zew4BFl*Ed9wDd(yYDLuWWHFgHn8`1wK359gaXGcivZ~cIG|REFRGm`T7aDN7(?T+e zy=0ulxA#ut;!*a$d9GFnKlGn06pJX8!uko$2RYR2$lm3eo||mZJup>vh=1YTBZFDl zoTh=~t^vKb9X5l0F?CYTwS;~jQfGOC`6_NOs35O6eUe4(WU0~Rs_vQ6VVr9pYmSZo z>gdDXlHh%JiEmcPuL+TJ*#14yV%uztS~;Bh8)5>EKO;Q$u^3N%TVPa$v%k9QqUnX2 zQ-Yrhn$IVe#CtNOiQ#Rv3wBvFfmKD~$5uJCewzx-@V+ByhB)TsR>3f?%gk{Re?2!-#K$vDphDwpjj=#znrdd~Yf=_i^rB5?J@u2qPO6;jA*k zF^222<~ppQ@4wb3>gYLkooggYwzq?Hu>TVdbx5s;LyOEJg)!E{@EV8YYNkmENv4(r5A#DIVLb> z>$y7G;Zq!ydrr^h=z3r&dbFVJ1_pIJgOftFozH#E6xOCBFOw8CRffAwj9DEh1->f9 zxv#aQLU+4Sz2o9dn|{_a+mnbAc9KTheEG8iM(>pplddg^DNCg>2`hf=8U6a>0MnZw zg3WZm`|sQJ)LV#O%$Lm?FKOrIGT#egLVYjKxI)}}hTiD5emxLI;YRo7 zasKx80Iz2ne`266!i@cfbjGhP-mOa#vJB!t(zbko{KmKp!Qg;ag3Bn64F>Zc8GI;! z>hgQT<%U)Qd^B?iLeF;j?sp*p`vIL?w=smx+&Qn?b4jGj*!Tk literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest new file mode 100644 index 00000000..87b40610 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_CBC_SHA256.pcap.fqtest @@ -0,0 +1,461 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_WITH_AES_128_CBC_SHA256.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xdbd-NA (0) + | | | client{}: 0xdbd-NA (0) + | | | ip: "127.0.0.1" 0xdbd-NA (0) + | | | port: 39018 0xdbd-NA (0) + | | | has_start: true 0xdbd-NA (0) + | | | has_end: false 0xdbd-NA (0) + | | | skipped_bytes: 0 0xdbd-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1e5.7 (486) + | | | records[0:6]: 0x0-0x1e5.7 (486) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| ff| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|0e a3 a0 00 e1 b4 8d c2 d9 9e 04 c6 d0 6e a1 a0|.............n..| + 0x000002|61 d5 b8 dd bf 87 b0 01 74 5a 27 |a.......tZ' | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 3c| .<| [0]: "TLS_RSA_WITH_AES_128_CBC_SHA256" (0x3c) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xf0.7 (139) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 86 | .. | length: 134 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xf0.7 (134) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 82 | ... | length: 130 0x6c-0x6e.7 (3) + | | | encrypted_premaster{}: 0x6f-NA (0) + 0x000006| 00| .| length: 128 0x6f-0x70.7 (2) + 0x000007|80 |. | + 0x000007| a2 97 b5 67 91 a7 88 f7 06 d3 f3 b7 11 df 4c| ...g..........L| data: raw bits 0x71-0xf0.7 (128) + 0x000008|7a 04 2a 7c 25 7f 60 72 c7 96 3c 88 2b 64 d5 46|z.*|%.`r..<.+d.F| + * |until 0xf0.7 (128) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x14b.7 (85) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 50 | .P | length: 80 0xfa-0xfb.7 (2) + 0x00000f| 9d 96 c2 f7| ....| encrypted_data: raw bits 0xfc-0x14b.7 (80) + 0x000010|a5 2c e5 5e de 47 ed ab d2 37 11 e4 3c 91 c8 b8|.,.^.G...7..<...| + * |until 0x14b.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 91 85 ea 80 72 4c 73 df b9 27 ce 9f| ....rLs..'..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x14c-0x1a0.7 (85) + 0x000014| 17 | . | type: "application_data" (23) (valid) 0x14c-0x14c.7 (1) + 0x000014| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x14d-0x14e.7 (2) + 0x000014| 00| .| length: 80 0x14f-0x150.7 (2) + 0x000015|50 |P | + 0x000015| 7d 10 6c 81 b8 94 f3 1e b6 7d 59 ce dd b9 81| }.l......}Y....| encrypted_data: raw bits 0x151-0x1a0.7 (80) + 0x000016|b9 e7 73 3b 2f f4 33 a4 15 be 39 91 55 90 a7 55|..s;/.3...9.U..U| + * |until 0x1a0.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x1a1-0x1e5.7 (69) + 0x00001a| 15 | . | type: "alert" (21) (valid) 0x1a1-0x1a1.7 (1) + 0x00001a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1a2-0x1a3.7 (2) + 0x00001a| 00 40 | .@ | length: 64 0x1a4-0x1a5.7 (2) + 0x00001a| 8a 0b 82 02 48 62 f6 a2 f3 1e| ....Hb....| encrypted_data: raw bits 0x1a6-0x1e5.7 (64) + 0x00001b|1b 65 d7 46 a3 6f e2 02 61 eb 63 74 99 eb 93 db|.e.F.o..a.ct....| + * |until 0x1e5.7 (end) (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xdbd-NA (0) + | | | ip: "127.0.0.1" 0xdbd-NA (0) + | | | port: 4430 0xdbd-NA (0) + | | | has_start: true 0xdbd-NA (0) + | | | has_end: true 0xdbd-NA (0) + | | | skipped_bytes: 0 0xdbd-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x7be.7 (1983) + | | | records[0:7]: 0x0-0x7be.7 (1983) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 5f| _| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|75 b3 49 8d 8b 08 26 90 69 2b 17 fd c8 5d 2d 5c|u.I...&.i+...]-\| + 0x000002|3b b9 b7 5a 57 2a 06 5c b8 ed fe |;..ZW*.\... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 3c | .< | cipher_suit: "TLS_RSA_WITH_AES_128_CBC_SHA256" (0x3c) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x000020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x000020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x000021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x000021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x000021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x000021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x000021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x000021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x000021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x000021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x000022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 29|.gR....z(....~1)| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x00002b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x00002c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x00002c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x00002c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x319.7 (85) + 0x00002c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x00002c| 00 50 | .P | length: 80 0x2c8-0x2c9.7 (2) + 0x00002c| fd 43 85 9a 84 1d| .C....| encrypted_data: raw bits 0x2ca-0x319.7 (80) + 0x00002d|5b 8c 29 93 87 3c e3 c8 92 29 55 74 71 f5 20 c7|[.)..<...)Utq. .| + * |until 0x319.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 0e 9c 08 8a 10 ae 3e 67 74 87 4b 6e| ......>gt.Kn| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x31a-0x7be.7 (1189) + 0x000031| 17 | . | type: "application_data" (23) (valid) 0x31a-0x31a.7 (1) + 0x000031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31b-0x31c.7 (2) + 0x000031| 04 a0 | .. | length: 1184 0x31d-0x31e.7 (2) + 0x000031| c6| .| encrypted_data: raw bits 0x31f-0x7be.7 (1184) + 0x000032|1a 1a 96 2b 9e 90 57 7e ef 2a 0a 56 ef 40 fc bf|...+..W~.*.V.@..| + * |until 0x7be.7 (end) (1184) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1120.7 (4385) + * |until 0x1120.7 (end) (4385) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1120.7 (4385) + * |until 0x1120.7 (end) (4385) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_GCM_SHA256.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_GCM_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..d2619d9320de6daa3dd8c52f03bd443f56337fa8 GIT binary patch literal 3353 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest new file mode 100644 index 00000000..feedcf19 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_128_GCM_SHA256.pcap.fqtest @@ -0,0 +1,459 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_WITH_AES_128_GCM_SHA256.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd19-NA (0) + | | | client{}: 0xd19-NA (0) + | | | ip: "127.0.0.1" 0xd19-NA (0) + | | | port: 39017 0xd19-NA (0) + | | | has_start: true 0xd19-NA (0) + | | | has_end: false 0xd19-NA (0) + | | | skipped_bytes: 0 0xd19-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x186.7 (391) + | | | records[0:6]: 0x0-0x186.7 (391) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 5f| _| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|21 2b 09 cd c7 f5 89 a3 f3 bf 46 ac 22 30 a9 b2|!+........F."0..| + 0x000002|d3 b3 75 60 a7 28 d8 8a d8 a8 c8 |..u`.(..... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 9c| ..| [0]: "TLS_RSA_WITH_AES_128_GCM_SHA256" (0x9c) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xf0.7 (139) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 86 | .. | length: 134 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xf0.7 (134) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 82 | ... | length: 130 0x6c-0x6e.7 (3) + | | | encrypted_premaster{}: 0x6f-NA (0) + 0x000006| 00| .| length: 128 0x6f-0x70.7 (2) + 0x000007|80 |. | + 0x000007| 37 c7 2a c5 14 aa 99 ad 3c ae 75 00 77 21 2e| 7.*.....<.u.w!.| data: raw bits 0x71-0xf0.7 (128) + 0x000008|aa 5c 35 a2 69 c8 b6 2b 9b fb a2 82 d6 6f 8e c8|.\5.i..+.....o..| + * |until 0xf0.7 (128) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x12c.7 (54) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 31 | .1 | length: 49 0xfa-0xfb.7 (2) + 0x00000f| 11 c2 36 62| ..6b| encrypted_data: raw bits 0xfc-0x12c.7 (49) + 0x000010|44 65 24 de e1 63 f0 5d 34 f0 f6 c3 93 e8 b9 9a|De$..c.]4.......| + * |until 0x12c.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 21 43 b3 7c 80 4e ad a7 e5 44 c6 a4| !C.|.N...D..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x12d-0x161.7 (53) + 0x000012| 17 | . | type: "application_data" (23) (valid) 0x12d-0x12d.7 (1) + 0x000012| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x12e-0x12f.7 (2) + 0x000013|00 30 |.0 | length: 48 0x130-0x131.7 (2) + 0x000013| 11 c2 36 62 44 65 24 df 93 c2 de 05 15 2f| ..6bDe$....../| encrypted_data: raw bits 0x132-0x161.7 (48) + 0x000014|f1 18 12 b9 2c 64 2c a7 25 30 57 28 ee ac e6 16|....,d,.%0W(....| + * |until 0x161.7 (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x162-0x186.7 (37) + 0x000016| 15 | . | type: "alert" (21) (valid) 0x162-0x162.7 (1) + 0x000016| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x163-0x164.7 (2) + 0x000016| 00 20 | . | length: 32 0x165-0x166.7 (2) + 0x000016| 11 c2 36 62 44 65 24 e0 df| ..6bDe$..| encrypted_data: raw bits 0x167-0x186.7 (32) + 0x000017|43 00 76 0d 2e 43 41 73 17 0c 6b b6 a4 42 ce ca|C.v..CAs..k..B..| + 0x000018|f0 7e a5 a8 0e 7c f8| |.~...|.| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd19-NA (0) + | | | ip: "127.0.0.1" 0xd19-NA (0) + | | | port: 4430 0xd19-NA (0) + | | | has_start: true 0xd19-NA (0) + | | | has_end: true 0xd19-NA (0) + | | | skipped_bytes: 0 0xd19-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x779.7 (1914) + | | | records[0:7]: 0x0-0x779.7 (1914) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| e4| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|8d 43 14 3e 88 97 a6 8a 6f a6 c1 65 c5 57 fd a9|.C.>....o..e.W..| + 0x000002|b4 6d d3 8a ae b0 af 6c 4a c5 eb |.m.....lJ.. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 9c | .. | cipher_suit: "TLS_RSA_WITH_AES_128_GCM_SHA256" (0x9c) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x000020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x000020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x000021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x000021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x000021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x000021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x000021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x000021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x000021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x000021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x000022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 a0|.gR....z(....~1.| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x00002b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x00002c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x00002c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x00002c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x2fa.7 (54) + 0x00002c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x00002c| 00 31 | .1 | length: 49 0x2c8-0x2c9.7 (2) + 0x00002c| 3e f8 5d dd d9 56| >.]..V| encrypted_data: raw bits 0x2ca-0x2fa.7 (49) + 0x00002d|b3 ed 54 85 61 87 10 b1 e1 78 6f 0b 26 df 07 45|..T.a....xo.&..E| + * |until 0x2fa.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| b8 ee 72 e7 8b 4a d4 c1 8e fc 96 9a| ..r..J......| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2fb-0x779.7 (1151) + 0x00002f| 17 | . | type: "application_data" (23) (valid) 0x2fb-0x2fb.7 (1) + 0x00002f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2fc-0x2fd.7 (2) + 0x00002f| 04 7a| .z| length: 1146 0x2fe-0x2ff.7 (2) + 0x000030|3e f8 5d dd d9 56 b3 ee 68 0f 69 f3 d2 8c ff f4|>.]..V..h.i.....| encrypted_data: raw bits 0x300-0x779.7 (1146) + * |until 0x779.7 (end) (1146) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x112c.7 (4397) + * |until 0x112c.7 (end) (4397) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x112c.7 (4397) + * |until 0x112c.7 (end) (4397) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..813e8ff0c881a5e038250e9a78fa570f3a92f4f1 GIT binary patch literal 3437 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..bb65292c --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_CBC_SHA.pcap.fqtest @@ -0,0 +1,461 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_WITH_AES_256_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd6d-NA (0) + | | | client{}: 0xd6d-NA (0) + | | | ip: "127.0.0.1" 0xd6d-NA (0) + | | | port: 38986 0xd6d-NA (0) + | | | has_start: true 0xd6d-NA (0) + | | | has_end: false 0xd6d-NA (0) + | | | skipped_bytes: 0 0xd6d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1b5.7 (438) + | | | records[0:6]: 0x0-0x1b5.7 (438) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| f4| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|4d 6f a4 9f 33 d2 c9 b9 3f 59 45 f8 b4 fc 4d 63|Mo..3...?YE...Mc| + 0x000002|24 dc cd 1e c6 f1 75 8d ed b5 7b |$.....u...{ | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 35| .5| [0]: "TLS_RSA_WITH_AES_256_CBC_SHA" (0x35) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xf0.7 (139) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 86 | .. | length: 134 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xf0.7 (134) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 82 | ... | length: 130 0x6c-0x6e.7 (3) + | | | encrypted_premaster{}: 0x6f-NA (0) + 0x000006| 00| .| length: 128 0x6f-0x70.7 (2) + 0x000007|80 |. | + 0x000007| 32 cd b6 e6 ee db 59 fa 20 04 44 ac 65 84 66| 2.....Y. .D.e.f| data: raw bits 0x71-0xf0.7 (128) + 0x000008|cc 59 84 7d c1 05 c2 85 27 83 d3 b8 62 55 43 98|.Y.}....'...bUC.| + * |until 0xf0.7 (128) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x13b.7 (69) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 40 | .@ | length: 64 0xfa-0xfb.7 (2) + 0x00000f| 8f 5e 48 de| .^H.| encrypted_data: raw bits 0xfc-0x13b.7 (64) + 0x000010|a1 b4 59 75 1e 3b 6a 60 92 7a b0 39 68 c0 12 c5|..Yu.;j`.z.9h...| + * |until 0x13b.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 07 39 c2 33 3d 25 9f 67 dd c1 eb e8| .9.3=%.g....| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x13c-0x180.7 (69) + 0x000013| 17 | . | type: "application_data" (23) (valid) 0x13c-0x13c.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x13d-0x13e.7 (2) + 0x000013| 00| .| length: 64 0x13f-0x140.7 (2) + 0x000014|40 |@ | + 0x000014| 70 bd 00 86 b9 18 bb 48 9b d9 d9 f1 5c f8 e6| p......H....\..| encrypted_data: raw bits 0x141-0x180.7 (64) + 0x000015|3e 48 a6 87 ba 76 5e 0e 93 d8 5f b5 7b cd 1a 78|>H...v^..._.{..x| + * |until 0x180.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x181-0x1b5.7 (53) + 0x000018| 15 | . | type: "alert" (21) (valid) 0x181-0x181.7 (1) + 0x000018| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x182-0x183.7 (2) + 0x000018| 00 30 | .0 | length: 48 0x184-0x185.7 (2) + 0x000018| 2b 4a 4b 1a 22 92 6e 88 81 73| +JK.".n..s| encrypted_data: raw bits 0x186-0x1b5.7 (48) + 0x000019|5b ed 6d 6b 69 24 49 ce ab f0 3e 3a 1e 69 9c bd|[.mki$I...>:.i..| + * |until 0x1b5.7 (end) (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd6d-NA (0) + | | | ip: "127.0.0.1" 0xd6d-NA (0) + | | | port: 4430 0xd6d-NA (0) + | | | has_start: true 0xd6d-NA (0) + | | | has_end: true 0xd6d-NA (0) + | | | skipped_bytes: 0 0xd6d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x79e.7 (1951) + | | | records[0:7]: 0x0-0x79e.7 (1951) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| a3| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|29 78 a8 c0 6c 01 7a 06 0a 45 3f 75 ab 8c e8 2a|)x..l.z..E?u...*| + 0x000002|30 b3 19 22 d7 50 1d 35 da bf ca |0..".P.5... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 35 | .5 | cipher_suit: "TLS_RSA_WITH_AES_256_CBC_SHA" (0x35) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x000020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x000020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x000021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x000021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x000021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x000021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x000021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x000021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x000021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x000021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x000022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 bb|.gR....z(....~1.| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x00002b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x00002c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x00002c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x00002c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x309.7 (69) + 0x00002c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x00002c| 00 40 | .@ | length: 64 0x2c8-0x2c9.7 (2) + 0x00002c| 74 5e 56 15 0b 46| t^V..F| encrypted_data: raw bits 0x2ca-0x309.7 (64) + 0x00002d|ec b3 b8 4b b2 f6 ae 5d 1f fd 4b 9a de aa 22 a1|...K...]..K...".| + * |until 0x309.7 (64) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 1f 32 67 59 36 aa 66 fa ef 4d 2e 19| .2gY6.f..M..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x30a-0x79e.7 (1173) + 0x000030| 17 | . | type: "application_data" (23) (valid) 0x30a-0x30a.7 (1) + 0x000030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x30b-0x30c.7 (2) + 0x000030| 04 90 | .. | length: 1168 0x30d-0x30e.7 (2) + 0x000030| 66| f| encrypted_data: raw bits 0x30f-0x79e.7 (1168) + 0x000031|b8 41 fd 2a c8 ff 2e ef 0d 84 ce 50 b0 93 51 5f|.A.*.......P..Q_| + * |until 0x79e.7 (end) (1168) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1117.7 (4376) + * |until 0x1117.7 (end) (4376) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1117.7 (4376) + * |until 0x1117.7 (end) (4376) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_CBC_SHA256.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_CBC_SHA256.pcap new file mode 100644 index 0000000000000000000000000000000000000000..f50a5b9bf4f385eed3835755ba486d6e4599ba30 GIT binary patch literal 3517 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..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x000020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x000020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x000021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x000021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x000021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x000021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x000021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x000021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x000021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x000021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x000022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 5e|.gR....z(....~1^| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x00002b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x00002c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x00002c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x00002c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x319.7 (85) + 0x00002c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x00002c| 00 50 | .P | length: 80 0x2c8-0x2c9.7 (2) + 0x00002c| 2f 7d 87 b1 22 d8| /}..".| encrypted_data: raw bits 0x2ca-0x319.7 (80) + 0x00002d|70 19 bc a4 8b 5a 87 3c e2 44 ef 02 0b c4 10 d9|p....Z.<.D......| + * |until 0x319.7 (80) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 8e 2d 89 1c 88 a7 bb 57 14 c7 69 57| .-.....W..iW| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x31a-0x7be.7 (1189) + 0x000031| 17 | . | type: "application_data" (23) (valid) 0x31a-0x31a.7 (1) + 0x000031| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x31b-0x31c.7 (2) + 0x000031| 04 a0 | .. | length: 1184 0x31d-0x31e.7 (2) + 0x000031| ff| .| encrypted_data: raw bits 0x31f-0x7be.7 (1184) + 0x000032|83 59 4c cd f5 ce e2 4d 24 18 6d da d5 96 65 e7|.YL....M$.m...e.| + * |until 0x7be.7 (end) (1184) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1120.7 (4385) + * |until 0x1120.7 (end) (4385) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1120.7 (4385) + * |until 0x1120.7 (end) (4385) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_GCM_SHA384.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_GCM_SHA384.pcap new file mode 100644 index 0000000000000000000000000000000000000000..e791e4775eb3c76bf211ee04302b85ef19745f45 GIT binary patch literal 3351 zcmai%2UJsO7RTR9p(jd52?&TZDG6mT41<*5fOLeBCQ3Lj_kir;j=TGvbMxNIdHLOY|M!0PJL!2+RfGUg0Bdb* z0Khow0lI2$n;~?|P|yW**#a*_0RRYFmJzRcgVux1*9#HlZFwFmESI9pb?T#ih5QRV?ksuO*L?S>00)YfUU>6iK93{MVW=lQ_N7^64iga7KxCX6SlmC@12>}4G z83G6r*#u_vQohN6vIU6$nJp5~f`0qmR<@*RQ4PBMXMKbSb0I#U;*~&~C7s)NrA$N5 z{1X6N0Rij=2tdKZ$--#}LAgEQ2EYaYtOLMWd@OhmGI0ba@TEkhdummaj>oWZD#RPb zFJM3rjRx@h2x53qHl!^I$s=Gx4hWPmAo~Y;QM}w-0?88A$Mo>x!We=Yo=DJ8C1?-` zcn4vOD*ULn{rLX@F$Ft)f@lC4lLFvlsEC*tph80-J*wG4B&({Ra7BG$G%3ITNE-Wq zQDUh<(sJX*{inSr?S3Cuk-+IJ>3_K`n^SWeY{=9trz_wp(tWE_X|E2oS33*TbnKx_ zvHg)fYs{0zd3hpdgz`SlUFE9jm}G^1&}{Pb{9wLryBOk0vM2N45!_u_Vh~n=KA2Zi zZ3fjJ0C$E5NrHsp@-Q$hE!LS4Rh9EidOfrL`K~W9LtRZ~&Zb6cX{2}JN$}m zbJd|PfDn5yrjzzbxjs0*ryR+TEA=L2NrtJ7T3x{|zqxEI^B}6CTFu@@)FGW9osAI- z>Kf1|NPdhTd{jTLmwLp8Ym7QxSUx$>mRlEDJ&e`gm)0p>e)n~V#7EhShxsSVLU!p7 zGhFI$V!5<>ySU-$+rBoYVQ++-1t4uUI~^e0W%lI03-Hv9Jf&5z>ORl5=$gC69If$R zmb*4S$9HpxtI5VR->Q9!kse6=N8-KgsasS@dP#sN^8`0ffH|EQg4V}&^ zev*u7nYGO}U_7Ubwa-jvE;@xb3y7(+yY=~Z9B(kAF$#mFE$*sVl$53DHV+5ho$6XK z-H@LPwTf_B37x1LO$g(V+MRAO@*|z^-*VxVClfxcPNi5?T5 zRv$V)bQHX7PmYnrwcJv|DG`0_IEb<=wY;Dk*r3MoVyJ93-wBplTg~^7kD4zM3903= ze&TDjgrRETx9gc(E~PhF0T?@o@?xro1`*<@Qxw z$k*nof@Frx5I|Lt&0xnb=UI-o$|MpAmFY*gOo)_5&bUS0K!ucSA1?6Oi zNO5APjzIHdB0WQk!$T)6$*s(zo$XBCFGBAQo|9^`-R)2-CLtQf6l`eZjdt#Rnyj4~ z z2Oe8Dzt}}?Dqa*AnV0Fm^1bZZ+b`XOi=v8?VvY;0y$S-M?6mwN2ZOu)D2k7V_8sFd zQNv=#mT_7fW>VY0%O}SH_V*NWKe4cCHz&K_wC%JjBk!mYST;LBKo`TnTXK5{{ zfR({}CcjgCdVHPE|Ew8Dev>-Wcral-**~@B?H{jd493j+-ry{bGDT5Mai>NhtIr6rNR9cykA9bL%)Awtvzk_D*fjtow?!WmZ~QK^JN86NSw@z>v+` z1IU&)NU@m6d18GiWR>>}r|!Tb?^TCS*6O)ZQ7BxMh2K$fTebL$@cEY%4zh)GyUe1r zby}!xnbYF<<@|-N1gz^jyecWtf4+9n?9f>hLC4#4tb5qO=Tu7HUjfvjeH8xnJc0%9 z=f(u9Mk?{XQr`SuuG0#gu6U#K_DTx_Hcm&c5d&}KtoyarFO*1ulIW$2$_e7*oL~4% zWMn!Y8OIy%pD0PCzBCVIr_YFX%xKYaA6Hl{MU|l^ zuC1N%&OJxRGe_U|H%Y`ERf@^1w5{4B=(b^RgR$O|sG z7DIWgba1L0(qZAb9AfsvWd5b$qDrg%hxc7ev?bDFKRcK`OM3m%lFD6(%`y+jzLNZ| z-C2;-mth;kTUGKL_ulTnp2d9aAm8xY?x7xXnuX2jOQ>h*m}*+1xwd{me{k99o=er! z_}}MZw9=P{o>xTLhY9X6!6*rbeQJ&Azy>*jF0do*PL`vsk&Rn}-?fCsx=RHB{1f-w_bmVb literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest new file mode 100644 index 00000000..bfebb568 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_WITH_AES_256_GCM_SHA384.pcap.fqtest @@ -0,0 +1,460 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_WITH_AES_256_GCM_SHA384.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd17-NA (0) + | | | client{}: 0xd17-NA (0) + | | | ip: "127.0.0.1" 0xd17-NA (0) + | | | port: 38984 0xd17-NA (0) + | | | has_start: true 0xd17-NA (0) + | | | has_end: false 0xd17-NA (0) + | | | skipped_bytes: 0 0xd17-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x186.7 (391) + | | | records[0:6]: 0x0-0x186.7 (391) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 12| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|67 eb a7 9b 66 13 1e 37 98 7d 05 d5 0a 5f 30 77|g...f..7.}..._0w| + 0x000002|91 95 68 16 85 17 d5 d2 fc d4 42 |..h.......B | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 9d| ..| [0]: "TLS_RSA_WITH_AES_256_GCM_SHA384" (0x9d) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xf0.7 (139) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 86 | .. | length: 134 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xf0.7 (134) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 82 | ... | length: 130 0x6c-0x6e.7 (3) + | | | encrypted_premaster{}: 0x6f-NA (0) + 0x000006| 00| .| length: 128 0x6f-0x70.7 (2) + 0x000007|80 |. | + 0x000007| 95 79 57 94 78 b4 79 61 00 16 07 76 0d ce 94| .yW.x.ya...v...| data: raw bits 0x71-0xf0.7 (128) + 0x000008|ee 2e bd 76 9e d4 aa 03 13 1c a8 6b 44 98 21 7a|...v.......kD.!z| + * |until 0xf0.7 (128) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x12c.7 (54) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 31 | .1 | length: 49 0xfa-0xfb.7 (2) + 0x00000f| b3 f0 d4 9b| ....| encrypted_data: raw bits 0xfc-0x12c.7 (49) + 0x000010|e0 73 68 40 7e 60 3a 9f fc 64 f6 06 f8 62 9b fd|.sh@~`:..d...b..| + * |until 0x12c.7 (49) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| b3 86 60 1e 01 1b d1 dc a8 5a 60 b3| ..`......Z`.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x12d-0x161.7 (53) + 0x000012| 17 | . | type: "application_data" (23) (valid) 0x12d-0x12d.7 (1) + 0x000012| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x12e-0x12f.7 (2) + 0x000013|00 30 |.0 | length: 48 0x130-0x131.7 (2) + 0x000013| b3 f0 d4 9b e0 73 68 41 11 93 c4 e9 0d 38| .....shA.....8| encrypted_data: raw bits 0x132-0x161.7 (48) + 0x000014|8b d9 3e 96 37 41 a4 4e 6a 00 ed 59 bf f0 d9 90|..>.7A.Nj..Y....| + * |until 0x161.7 (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x162-0x186.7 (37) + 0x000016| 15 | . | type: "alert" (21) (valid) 0x162-0x162.7 (1) + 0x000016| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x163-0x164.7 (2) + 0x000016| 00 20 | . | length: 32 0x165-0x166.7 (2) + 0x000016| b3 f0 d4 9b e0 73 68 42 18| .....shB.| encrypted_data: raw bits 0x167-0x186.7 (32) + 0x000017|30 51 b8 26 5c 31 a0 fd 8a dd 72 51 7f 45 6c 29|0Q.&\1....rQ.El)| + 0x000018|91 32 49 4d d6 7a 33| |.2IM.z3| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd17-NA (0) + | | | ip: "127.0.0.1" 0xd17-NA (0) + | | | port: 4430 0xd17-NA (0) + | | | has_start: true 0xd17-NA (0) + | | | has_end: true 0xd17-NA (0) + | | | skipped_bytes: 0 0xd17-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x777.7 (1912) + | | | records[0:7]: 0x0-0x777.7 (1912) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 10 | R6,. | gmt_unix_time: 1379281936 (2013-09-15T21:52:16Z) 0xb-0xe.7 (4) + 0x000000| 44| D| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|e9 1b 35 c4 29 f1 42 02 18 f0 f7 86 73 ac da 14|..5.).B.....s...| + 0x000002|c9 50 c4 0b 49 fb a9 35 41 4e ee |.P..I..5AN. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 9d | .. | cipher_suit: "TLS_RSA_WITH_AES_256_GCM_SHA384" (0x9d) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x000020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x000020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x000021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x000021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x000021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x000021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x000021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x000021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x000021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x000021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x000022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 43|.gR....z(....~1C| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x00002b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x00002c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x00002c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x00002c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x2f9.7 (53) + 0x00002c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x00002c| 00 30 | .0 | length: 48 0x2c8-0x2c9.7 (2) + 0x00002c| 2e e7 87 ee fc e8| ......| encrypted_data: raw bits 0x2ca-0x2f9.7 (48) + 0x00002d|8d 50 89 e2 2f b1 7d 7a 95 64 09 cc c4 6f 66 66|.P../.}z.d...off| + * |until 0x2f9.7 (48) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 41 46 8b 56 d8 70 45 3f ae 08 05 12| AF.V.pE?....| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2fa-0x777.7 (1150) + 0x00002f| 17 | . | type: "application_data" (23) (valid) 0x2fa-0x2fa.7 (1) + 0x00002f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2fb-0x2fc.7 (2) + 0x00002f| 04 79 | .y | length: 1145 0x2fd-0x2fe.7 (2) + 0x00002f| 2e| .| encrypted_data: raw bits 0x2ff-0x777.7 (1145) + 0x000030|e7 87 ee fc e8 8d 51 a0 f6 75 31 4f 66 5f cc 18|......Q..u1Of_..| + * |until 0x777.7 (end) (1145) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x112c.7 (4397) + * |until 0x112c.7 (end) (4397) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x112c.7 (4397) + * |until 0x112c.7 (end) (4397) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..237e5ee9c2b46de0f5e1d4db892d498404e91200 GIT binary patch literal 3437 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..3b7a9ef3 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap.fqtest @@ -0,0 +1,438 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_WITH_CAMELLIA_128_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd6d-NA (0) + | | | client{}: 0xd6d-NA (0) + | | | ip: "127.0.0.1" 0xd6d-NA (0) + | | | port: 39021 0xd6d-NA (0) + | | | has_start: true 0xd6d-NA (0) + | | | has_end: false 0xd6d-NA (0) + | | | skipped_bytes: 0 0xd6d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1b5.7 (438) + | | | records[0:6]: 0x0-0x1b5.7 (438) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000| ff| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|e9 8c eb d1 aa d6 8b 5e 18 3a bc 0c 4e e2 fe 0b|.......^.:..N...| + 0x002|d6 81 7a 16 52 fb dd 39 24 63 9e |..z.R..9$c. | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x002| 00 41| .A| [0]: "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA" (0x41) cipher_suit 0x2e-0x2f.7 (2) + 0x003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xf0.7 (139) + 0x006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x006| 00 86 | .. | length: 134 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xf0.7 (134) + 0x006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x006| 00 00 82 | ... | length: 130 0x6c-0x6e.7 (3) + | | | encrypted_premaster{}: 0x6f-NA (0) + 0x006| 00| .| length: 128 0x6f-0x70.7 (2) + 0x007|80 |. | + 0x007| 7f a5 75 67 6a 14 8f 20 0d ac fc f7 bd 92 ae| ..ugj.. .......| data: raw bits 0x71-0xf0.7 (128) + 0x008|b5 2a db 17 55 72 d3 d1 c8 93 c9 2d 9a 36 10 36|.*..Ur.....-.6.6| + * |until 0xf0.7 (128) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x13b.7 (69) + 0x00f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00f| 00 40 | .@ | length: 64 0xfa-0xfb.7 (2) + 0x00f| 38 80 48 fb| 8.H.| encrypted_data: raw bits 0xfc-0x13b.7 (64) + 0x010|da a5 89 8b 42 4a f9 e5 19 e2 5d 8b 92 bc c9 42|....BJ....]....B| + * |until 0x13b.7 (64) | | + | | | [4]{}: record 0x13c-0x180.7 (69) + 0x013| 17 | . | type: "application_data" (23) (valid) 0x13c-0x13c.7 (1) + 0x013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x13d-0x13e.7 (2) + 0x013| 00| .| length: 64 0x13f-0x140.7 (2) + 0x014|40 |@ | + 0x014| a0 4b 0a 7a f5 04 cd c5 b8 a5 7e 6c 71 ba 7d| .K.z......~lq.}| encrypted_data: raw bits 0x141-0x180.7 (64) + 0x015|c7 87 dd 44 ea 30 bf dc 98 fe 19 09 92 58 c5 6d|...D.0.......X.m| + * |until 0x180.7 (64) | | + | | | [5]{}: record 0x181-0x1b5.7 (53) + 0x018| 15 | . | type: "alert" (21) (valid) 0x181-0x181.7 (1) + 0x018| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x182-0x183.7 (2) + 0x018| 00 30 | .0 | length: 48 0x184-0x185.7 (2) + 0x018| 95 bc 95 2e 7d fd 75 7c 4d 98| ....}.u|M.| encrypted_data: raw bits 0x186-0x1b5.7 (48) + 0x019|35 74 e5 79 ea 6f 46 cc 31 71 31 81 11 47 aa f0|5t.y.oF.1q1..G..| + * |until 0x1b5.7 (end) (48) | | + | | | server{}: 0xd6d-NA (0) + | | | ip: "127.0.0.1" 0xd6d-NA (0) + | | | port: 4430 0xd6d-NA (0) + | | | has_start: true 0xd6d-NA (0) + | | | has_end: true 0xd6d-NA (0) + | | | skipped_bytes: 0 0xd6d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x79e.7 (1951) + | | | records[0:7]: 0x0-0x79e.7 (1951) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000| b8| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|9b 37 0e f6 66 b0 50 f2 6c 36 c1 de 09 33 59 3e|.7..f.P.l6...3Y>| + 0x002|f0 24 8f 2c fb 00 71 32 2f 34 2c |.$.,..q2/4, | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 41 | .A | cipher_suit: "TLS_RSA_WITH_CAMELLIA_128_CBC_SHA" (0x41) 0x2c-0x2d.7 (2) + 0x002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 7d|.gR....z(....~1}| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x02b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x02c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x02c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x02c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x309.7 (69) + 0x02c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x02c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x02c| 00 40 | .@ | length: 64 0x2c8-0x2c9.7 (2) + 0x02c| 62 a3 a7 36 f4 e8| b..6..| encrypted_data: raw bits 0x2ca-0x309.7 (64) + 0x02d|66 a2 9d 06 ed 53 58 85 00 dd 97 64 d5 46 72 c4|f....SX....d.Fr.| + * |until 0x309.7 (64) | | + | | | [6]{}: record 0x30a-0x79e.7 (1173) + 0x030| 17 | . | type: "application_data" (23) (valid) 0x30a-0x30a.7 (1) + 0x030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x30b-0x30c.7 (2) + 0x030| 04 90 | .. | length: 1168 0x30d-0x30e.7 (2) + 0x030| b0| .| encrypted_data: raw bits 0x30f-0x79e.7 (1168) + 0x031|3a cf b0 4c e5 20 85 b7 34 fa 5a e2 bd 62 59 0b|:..L. ..4.Z..bY.| + * |until 0x79e.7 (end) (1168) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_CAMELLIA_256_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..def7420e38d4f8e42557cc64eec817b316de9824 GIT binary patch literal 3437 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.....:..| + 0x002|76 54 19 ff 25 b8 02 5e 4e d1 56 |vT..%..^N.V | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 84 | .. | cipher_suit: "TLS_RSA_WITH_CAMELLIA_256_CBC_SHA" (0x84) 0x2c-0x2d.7 (2) + 0x002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 aa|.gR....z(....~1.| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x02b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x02c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x02c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x02c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x309.7 (69) + 0x02c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x02c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x02c| 00 40 | .@ | length: 64 0x2c8-0x2c9.7 (2) + 0x02c| 71 fc e0 70 d6 3b| q..p.;| encrypted_data: raw bits 0x2ca-0x309.7 (64) + 0x02d|1f db d0 3d b7 5e b9 cf 0e fa 55 8e 0d 6e 38 f7|...=.^....U..n8.| + * |until 0x309.7 (64) | | + | | | [6]{}: record 0x30a-0x79e.7 (1173) + 0x030| 17 | . | type: "application_data" (23) (valid) 0x30a-0x30a.7 (1) + 0x030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x30b-0x30c.7 (2) + 0x030| 04 90 | .. | length: 1168 0x30d-0x30e.7 (2) + 0x030| 27| '| encrypted_data: raw bits 0x30f-0x79e.7 (1168) + 0x031|87 c7 07 3c 89 f9 99 4f c0 00 34 15 b1 93 29 9b|...<...O..4...).| + * |until 0x79e.7 (end) (1168) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_DES_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_DES_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..7114ecb4501036b5dde03f6bf7d9fbcaf8d1297d GIT binary patch literal 3397 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_DES_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_WITH_DES_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..6c711991 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_WITH_DES_CBC_SHA.pcap.fqtest @@ -0,0 +1,460 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_WITH_DES_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd45-NA (0) + | | | client{}: 0xd45-NA (0) + | | | ip: "127.0.0.1" 0xd45-NA (0) + | | | port: 39031 0xd45-NA (0) + | | | has_start: true 0xd45-NA (0) + | | | has_end: false 0xd45-NA (0) + | | | skipped_bytes: 0 0xd45-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x19d.7 (414) + | | | records[0:6]: 0x0-0x19d.7 (414) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 2d| -| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|8f 6b 82 ed 16 e9 86 69 ad ad 7f 8c 37 bd 3e 57|.k.....i....7.>W| + 0x000002|3c a4 41 fe ad b0 e2 da 99 6e a1 |<.A......n. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 09| ..| [0]: "TLS_RSA_WITH_DES_CBC_SHA" (0x9) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xf0.7 (139) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 86 | .. | length: 134 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xf0.7 (134) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 82 | ... | length: 130 0x6c-0x6e.7 (3) + | | | encrypted_premaster{}: 0x6f-NA (0) + 0x000006| 00| .| length: 128 0x6f-0x70.7 (2) + 0x000007|80 |. | + 0x000007| 90 6a ee 58 c8 58 d2 4e c1 54 23 21 bf 08 e7| .j.X.X.N.T#!...| data: raw bits 0x71-0xf0.7 (128) + 0x000008|89 8f 91 b2 1d 06 20 1c dc 2e d6 70 d3 f8 96 68|...... ....p...h| + * |until 0xf0.7 (128) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x133.7 (61) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 38 | .8 | length: 56 0xfa-0xfb.7 (2) + 0x00000f| 31 92 96 3d| 1..=| encrypted_data: raw bits 0xfc-0x133.7 (56) + 0x000010|a7 61 78 80 e5 41 51 da 21 1b e2 43 d4 4a 76 68|.ax..AQ.!..C.Jvh| + * |until 0x133.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 1f 96 29 8c f2 1c de 6c e3 c0 2a 8d| ..)....l..*.| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x134-0x170.7 (61) + 0x000013| 17 | . | type: "application_data" (23) (valid) 0x134-0x134.7 (1) + 0x000013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x135-0x136.7 (2) + 0x000013| 00 38 | .8 | length: 56 0x137-0x138.7 (2) + 0x000013| 32 42 b1 3e 0a 93 3b| 2B.>..;| encrypted_data: raw bits 0x139-0x170.7 (56) + 0x000014|44 f2 3c ac bc 12 6e 9e e8 c3 ee 1e 32 37 ad c5|D.<...n.....27..| + * |until 0x170.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x171-0x19d.7 (45) + 0x000017| 15 | . | type: "alert" (21) (valid) 0x171-0x171.7 (1) + 0x000017| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x172-0x173.7 (2) + 0x000017| 00 28 | .( | length: 40 0x174-0x175.7 (2) + 0x000017| 76 73 86 04 c4 0c 4e 4e f0 9e| vs....NN..| encrypted_data: raw bits 0x176-0x19d.7 (40) + 0x000018|cc 42 ef 57 7a af 85 f0 18 10 a5 3f 2e f9 29 32|.B.Wz......?..)2| + 0x000019|90 3c a3 5a 46 e0 9c 62 dd 38 b8 a1 77 80| |.<.ZF..b.8..w.| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd45-NA (0) + | | | ip: "127.0.0.1" 0xd45-NA (0) + | | | port: 4430 0xd45-NA (0) + | | | has_start: true 0xd45-NA (0) + | | | has_end: true 0xd45-NA (0) + | | | skipped_bytes: 0 0xd45-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x78e.7 (1935) + | | | records[0:7]: 0x0-0x78e.7 (1935) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 18| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|41 fe f4 d2 1c 2e 34 52 13 a9 b9 1e f1 ea 29 52|A.....4R......)R| + 0x000002|a0 2d 6a 11 bf 4b dc 31 7b 1e 93 |.-j..K.1{.. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 09 | .. | cipher_suit: "TLS_RSA_WITH_DES_CBC_SHA" (0x9) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x000020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x000020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x000021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x000021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x000021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x000021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x000021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x000021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x000021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x000021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x000022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 41|.gR....z(....~1A| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x00002b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x00002c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x00002c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x00002c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x301.7 (61) + 0x00002c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x00002c| 00 38 | .8 | length: 56 0x2c8-0x2c9.7 (2) + 0x00002c| d7 b5 c3 9f b4 4b| .....K| encrypted_data: raw bits 0x2ca-0x301.7 (56) + 0x00002d|91 1a 44 64 3b 8d ee df 21 86 7b 5e bb 29 c2 97|..Dd;...!.{^.)..| + * |until 0x301.7 (56) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 8b 0c cf 29 56 e5 af e3 3c c8 e2 bb| ...)V...<...| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x302-0x78e.7 (1165) + 0x000030| 17 | . | type: "application_data" (23) (valid) 0x302-0x302.7 (1) + 0x000030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x303-0x304.7 (2) + 0x000030| 04 88 | .. | length: 1160 0x305-0x306.7 (2) + 0x000030| a0 53 a5 2c 1c 69 25 6f f4| .S.,.i%o.| encrypted_data: raw bits 0x307-0x78e.7 (1160) + 0x000031|7a c0 23 8c de a5 e9 bb 5b 01 24 9f 2b ae f3 52|z.#.....[.$.+..R| + * |until 0x78e.7 (end) (1160) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x111a.7 (4379) + * |until 0x111a.7 (end) (4379) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x111a.7 (4379) + * |until 0x111a.7 (end) (4379) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_IDEA_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_IDEA_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..86813014a1afe5ad36f7ecb1fc3b2f859d6aee67 GIT binary patch literal 3389 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 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_IDEA_CBC_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_WITH_IDEA_CBC_SHA.pcap.fqtest new file mode 100644 index 00000000..878f00b7 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_WITH_IDEA_CBC_SHA.pcap.fqtest @@ -0,0 +1,437 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_WITH_IDEA_CBC_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd3d-NA (0) + | | | client{}: 0xd3d-NA (0) + | | | ip: "127.0.0.1" 0xd3d-NA (0) + | | | port: 39022 0xd3d-NA (0) + | | | has_start: true 0xd3d-NA (0) + | | | has_end: false 0xd3d-NA (0) + | | | skipped_bytes: 0 0xd3d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x19d.7 (414) + | | | records[0:6]: 0x0-0x19d.7 (414) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000| 39| 9| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|a8 df a4 1a 89 46 70 4c fe 30 e4 30 7d 9d be 7e|.....FpL.0.0}..~| + 0x002|84 e8 7a b0 99 34 a7 73 f6 7f ee |..z..4.s... | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x002| 00 07| ..| [0]: "TLS_RSA_WITH_IDEA_CBC_SHA" (0x7) cipher_suit 0x2e-0x2f.7 (2) + 0x003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xf0.7 (139) + 0x006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x006| 00 86 | .. | length: 134 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xf0.7 (134) + 0x006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x006| 00 00 82 | ... | length: 130 0x6c-0x6e.7 (3) + | | | encrypted_premaster{}: 0x6f-NA (0) + 0x006| 00| .| length: 128 0x6f-0x70.7 (2) + 0x007|80 |. | + 0x007| 02 45 da 14 da 84 61 c7 d7 0e 4a e7 fb c6 3c| .E....a...J...<| data: raw bits 0x71-0xf0.7 (128) + 0x008|2d ac 75 2f d0 41 fa c3 31 c9 3f 45 1f 3e 27 a8|-.u/.A..1.?E.>'.| + * |until 0xf0.7 (128) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x133.7 (61) + 0x00f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00f| 00 38 | .8 | length: 56 0xfa-0xfb.7 (2) + 0x00f| fc b8 b2 f0| ....| encrypted_data: raw bits 0xfc-0x133.7 (56) + 0x010|7e fc b7 86 1d 36 89 4b 32 5d 53 bd dc 2a 2c c3|~....6.K2]S..*,.| + * |until 0x133.7 (56) | | + | | | [4]{}: record 0x134-0x170.7 (61) + 0x013| 17 | . | type: "application_data" (23) (valid) 0x134-0x134.7 (1) + 0x013| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x135-0x136.7 (2) + 0x013| 00 38 | .8 | length: 56 0x137-0x138.7 (2) + 0x013| 1e 64 64 e4 cf 11 a4| .dd....| encrypted_data: raw bits 0x139-0x170.7 (56) + 0x014|14 5d 38 82 74 3f a7 1b a1 65 60 0b 0e 1a ee 96|.]8.t?...e`.....| + * |until 0x170.7 (56) | | + | | | [5]{}: record 0x171-0x19d.7 (45) + 0x017| 15 | . | type: "alert" (21) (valid) 0x171-0x171.7 (1) + 0x017| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x172-0x173.7 (2) + 0x017| 00 28 | .( | length: 40 0x174-0x175.7 (2) + 0x017| 00 0d a4 2d 85 67 d2 da 6e 20| ...-.g..n | encrypted_data: raw bits 0x176-0x19d.7 (40) + 0x018|60 ba 0e 75 d2 09 09 65 b4 74 01 41 cf 37 ff 38|`..u...e.t.A.7.8| + 0x019|a0 a0 9e 3a a1 a4 f8 d1 41 b2 5b 3b d6 03| |...:....A.[;..| | + | | | server{}: 0xd3d-NA (0) + | | | ip: "127.0.0.1" 0xd3d-NA (0) + | | | port: 4430 0xd3d-NA (0) + | | | has_start: true 0xd3d-NA (0) + | | | has_end: true 0xd3d-NA (0) + | | | skipped_bytes: 0 0xd3d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x786.7 (1927) + | | | records[0:7]: 0x0-0x786.7 (1927) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000| 90| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|f5 14 a2 57 7e 4e b8 c1 2d 02 e4 6e 6f 1e f6 17|...W~N..-..no...| + 0x002|3e fb e6 62 57 87 5c 16 04 63 2d |>..bW.\..c- | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 07 | .. | cipher_suit: "TLS_RSA_WITH_IDEA_CBC_SHA" (0x7) 0x2c-0x2d.7 (2) + 0x002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 e7|.gR....z(....~1.| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x02b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x02c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x02c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x02c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x301.7 (61) + 0x02c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x02c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x02c| 00 38 | .8 | length: 56 0x2c8-0x2c9.7 (2) + 0x02c| 6d 84 17 07 6c 7c| m...l|| encrypted_data: raw bits 0x2ca-0x301.7 (56) + 0x02d|a9 82 99 4c 03 d5 bf 17 44 65 b8 66 8e 0b 2e cf|...L....De.f....| + * |until 0x301.7 (56) | | + | | | [6]{}: record 0x302-0x786.7 (1157) + 0x030| 17 | . | type: "application_data" (23) (valid) 0x302-0x302.7 (1) + 0x030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x303-0x304.7 (2) + 0x030| 04 80 | .. | length: 1152 0x305-0x306.7 (2) + 0x030| da 25 2d 3c 07 9f 24 f5 ef| .%-<..$..| encrypted_data: raw bits 0x307-0x786.7 (1152) + 0x031|9d 97 a6 69 29 b6 ad 4a ed 71 b4 e5 3e 14 4e a8|...i)..J.q..>.N.| + * |until 0x786.7 (end) (1152) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_MD5.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_MD5.pcap new file mode 100644 index 0000000000000000000000000000000000000000..9b7aa21e8902d6daf0c9df5d09cd5853ac82b8a0 GIT binary patch literal 6352 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 A2LJ#7 literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_MD5.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_MD5.pcap.fqtest new file mode 100644 index 00000000..a4485501 --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_MD5.pcap.fqtest @@ -0,0 +1,371 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_WITH_RC4_128_MD5.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0x18d0-NA (0) + | | | client{}: 0x18d0-NA (0) + | | | ip: "127.0.0.1" 0x18d0-NA (0) + | | | port: 39028 0x18d0-NA (0) + | | | has_start: true 0x18d0-NA (0) + | | | has_end: false 0x18d0-NA (0) + | | | skipped_bytes: 0 0x18d0-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x127.7 (296) + | | | ssl_v2{}: 0x0-0x33.7 (52) + 0x000000|80 32 |.2 | length: 50 0x0-0x1.7 (2) + 0x000000| 01 | . | type: 1 0x2-0x2.7 (1) + 0x000000| 03 03 | .. | tls_version: 771 0x3-0x4.7 (2) + 0x000000| 00 09 | .. | cipher_spec_length: 9 0x5-0x6.7 (2) + 0x000000| 00 00 | .. | session_id_length: 0 0x7-0x8.7 (2) + 0x000000| 00 20 | . | challenge_length: 32 0x9-0xa.7 (2) + | | | cipher_specs[0:3]: 0xb-0x13.7 (9) + 0x000000| 00 00 04 | ... | [0]: "TLS_RSA_WITH_RC4_128_MD5" (0x4) cipher_spec 0xb-0xd.7 (3) + 0x000000| 01 00| ..| [1]: "SSL_CK_RC4_128_WITH_MD5" (0x10080) cipher_spec 0xe-0x10.7 (3) + 0x000001|80 |. | + 0x000001| 00 00 ff | ... | [2]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_spec 0x11-0x13.7 (3) + | | | session_id: raw bits 0x14-NA (0) + 0x000001| 45 75 c2 fa 38 3b 34 ff 9c 5a a5 3c| Eu..8;4..Z.<| challenge: raw bits 0x14-0x33.7 (32) + 0x000002|27 a3 11 88 a5 cb d9 97 6d d1 cb ee 23 12 4a ba|'.......m...#.J.| + 0x000003|07 8b c2 f1 |.... | + | | | records[0:5]: 0x34-0x127.7 (244) + | | | [0]{}: record 0x34-0xbe.7 (139) + 0x000003| 16 | . | type: "handshake" (22) (valid) 0x34-0x34.7 (1) + 0x000003| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x35-0x36.7 (2) + 0x000003| 00 86 | .. | length: 134 0x37-0x38.7 (2) + | | | message{}: 0x39-0xbe.7 (134) + 0x000003| 10 | . | type: "client_key_exchange" (16) 0x39-0x39.7 (1) + 0x000003| 00 00 82 | ... | length: 130 0x3a-0x3c.7 (3) + | | | encrypted_premaster{}: 0x3d-NA (0) + 0x000003| 00 80 | .. | length: 128 0x3d-0x3e.7 (2) + 0x000003| 34| 4| data: raw bits 0x3f-0xbe.7 (128) + 0x000004|98 3d 5b b8 a4 26 53 7f 29 df 1a aa cd 32 b5 b5|.=[..&S.)....2..| + * |until 0xbe.7 (128) | | + | | | [1]{}: record 0xbf-0xc4.7 (6) + 0x00000b| 14| .| type: "change_cipher_spec" (20) (valid) 0xbf-0xbf.7 (1) + 0x00000c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0xc0-0xc1.7 (2) + 0x00000c| 00 01 | .. | length: 1 0xc2-0xc3.7 (2) + | | | message{}: 0xc4-0xc4.7 (1) + 0x00000c| 01 | . | type: 1 0xc4-0xc4.7 (1) + | | | [2]{}: record 0xc5-0xe9.7 (37) + 0x00000c| 16 | . | type: "handshake" (22) (valid) 0xc5-0xc5.7 (1) + 0x00000c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xc6-0xc7.7 (2) + 0x00000c| 00 20 | . | length: 32 0xc8-0xc9.7 (2) + 0x00000c| 97 d3 ee 51 34 a5| ...Q4.| encrypted_data: raw bits 0xca-0xe9.7 (32) + 0x00000d|2f 02 2f de 6a 3d f5 5e 65 d9 90 2a 53 46 f7 46|/./.j=.^e..*SF.F| + 0x00000e|eb 37 e2 3b dd 27 65 b1 86 6a |.7.;.'e..j | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 69 ca b3 c0 60 22 12 2e 9e 0b d6 1b| i...`"......| verify_data: raw bits 0x4-0xf.7 (12) + | | | [3]{}: record 0xea-0x110.7 (39) + 0x00000e| 17 | . | type: "application_data" (23) (valid) 0xea-0xea.7 (1) + 0x00000e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xeb-0xec.7 (2) + 0x00000e| 00 22 | ." | length: 34 0xed-0xee.7 (2) + 0x00000e| 95| .| encrypted_data: raw bits 0xef-0x110.7 (34) + 0x00000f|b1 e0 20 79 d5 d7 a3 f1 04 a4 f8 eb 47 1c bb 65|.. y........G..e| + * |until 0x110.7 (34) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [4]{}: record 0x111-0x127.7 (23) + 0x000011| 15 | . | type: "alert" (21) (valid) 0x111-0x111.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x112-0x113.7 (2) + 0x000011| 00 12 | .. | length: 18 0x114-0x115.7 (2) + 0x000011| c2 65 49 82 64 74 94 59 9d 45| .eI.dt.Y.E| encrypted_data: raw bits 0x116-0x127.7 (18) + 0x000012|7c 3f fc 23 83 64 51 0f| ||?.#.dQ.| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0x18d0-NA (0) + | | | ip: "127.0.0.1" 0x18d0-NA (0) + | | | port: 4430 0x18d0-NA (0) + | | | has_start: true 0x18d0-NA (0) + | | | has_end: true 0x18d0-NA (0) + | | | skipped_bytes: 0 0x18d0-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x138f.7 (5008) + | | | records[0:6]: 0x0-0x138f.7 (5008) + | | | [0]{}: record 0x0-0x55.7 (86) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 51 | .Q | length: 81 0x3-0x4.7 (2) + | | | message{}: 0x5-0x55.7 (81) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 4d | ..M | length: 77 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 78| x| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|a1 7a ff 8a bb ca e8 8d 88 a3 a6 76 b6 90 e2 e7|.z.........v....| + 0x000002|1f 41 33 36 32 10 2b ab b3 4b fa |.A362.+..K. | + 0x000002| 20 | | session_id_length: 32 0x2b-0x2b.7 (1) + 0x000002| 3e 3b 6c 62| >;lb| session_id: raw bits 0x2c-0x4b.7 (32) + 0x000003|12 f2 88 5e 31 d8 64 a1 34 21 4d f5 40 49 e9 0f|...^1.d.4!M.@I..| + 0x000004|d0 88 24 8c ae 91 cf 89 da 13 73 98 |..$.......s. | + 0x000004| 00 04 | .. | cipher_suit: "TLS_RSA_WITH_RC4_128_MD5" (0x4) 0x4c-0x4d.7 (2) + 0x000004| 00 | . | compression_method: "null" (0x0) 0x4e-0x4e.7 (1) + 0x000004| 00| .| extensions_length: 5 0x4f-0x50.7 (2) + 0x000005|05 |. | + | | | extensions[0:1]: 0x51-0x55.7 (5) + | | | [0]{}: extension 0x51-0x55.7 (5) + 0x000005| ff 01 | .. | type: "renegotiation_info" (65281) 0x51-0x52.7 (2) + 0x000005| 00 01 | .. | length: 1 0x53-0x54.7 (2) + 0x000005| 00 | . | data: raw bits 0x55-0x55.7 (1) + | | | [1]{}: record 0x56-0x21d.7 (456) + 0x000005| 16 | . | type: "handshake" (22) (valid) 0x56-0x56.7 (1) + 0x000005| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x57-0x58.7 (2) + 0x000005| 01 c3 | .. | length: 451 0x59-0x5a.7 (2) + | | | message{}: 0x5b-0x21d.7 (451) + 0x000005| 0b | . | type: "certificate" (11) 0x5b-0x5b.7 (1) + 0x000005| 00 01 bf | ... | length: 447 0x5c-0x5e.7 (3) + 0x000005| 00| .| certificates_length: 444 0x5f-0x61.7 (3) + 0x000006|01 bc |.. | + | | | certificates[0:1]: 0x62-0x21d.7 (444) + | | | [0]{}: certificate 0x62-0x21d.7 (444) + 0x000006| 00 01 b9 | ... | length: 441 0x62-0x64.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x65-0x21d.7 (441) + 0x000006| 30 | 0 | class: "universal" (0) 0x65-0x65.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x65.2-0x65.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x65.3-0x65.7 (0.5) + 0x000006| 82 01 b5 | ... | length: 437 0x66-0x68.7 (3) + | | | constructed[0:3]: 0x69-0x21d.7 (437) + | | | [0]{}: object 0x69-0x18a.7 (290) + 0x000006| 30 | 0 | class: "universal" (0) 0x69-0x69.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x69.2-0x69.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x69.3-0x69.7 (0.5) + 0x000006| 82 01 1e | ... | length: 286 0x6a-0x6c.7 (3) + | | | constructed[0:6]: 0x6d-0x18a.7 (286) + | | | [0]{}: object 0x6d-0x77.7 (11) + 0x000006| 02 | . | class: "universal" (0) 0x6d-0x6d.1 (0.2) + 0x000006| 02 | . | form: "primitive" (0) 0x6d.2-0x6d.2 (0.1) + 0x000006| 02 | . | tag: "integer" (0x2) 0x6d.3-0x6d.7 (0.5) + 0x000006| 09 | . | length: 9 0x6e-0x6e.7 (1) + 0x000006| 00| .| value: 17629111853558544324 0x6f-0x77.7 (9) + 0x000007|f4 a7 2f d3 e8 fc 37 c4 |../...7. | + | | | [1]{}: object 0x78-0x86.7 (15) + 0x000007| 30 | 0 | class: "universal" (0) 0x78-0x78.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x78.2-0x78.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x78.3-0x78.7 (0.5) + 0x000007| 0d | . | length: 13 0x79-0x79.7 (1) + | | | constructed[0:2]: 0x7a-0x86.7 (13) + | | | [0]{}: object 0x7a-0x84.7 (11) + 0x000007| 06 | . | class: "universal" (0) 0x7a-0x7a.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x7a.2-0x7a.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x7a.3-0x7a.7 (0.5) + 0x000007| 09 | . | length: 9 0x7b-0x7b.7 (1) + | | | value[0:7]: 0x7c-0x84.7 (9) + 0x000007| 2a | * | [0]: 1 oid 0x7c-0x7c.7 (1) + 0x000007| 2a | * | [1]: 2 oid 0x7c-0x7c.7 (1) + 0x000007| 86 48 | .H | [2]: 840 oid 0x7d-0x7e.7 (2) + 0x000007| 86| .| [3]: 113549 oid 0x7f-0x81.7 (3) + 0x000008|f7 0d |.. | + 0x000008| 01 | . | [4]: 1 oid 0x82-0x82.7 (1) + 0x000008| 01 | . | [5]: 1 oid 0x83-0x83.7 (1) + 0x000008| 05 | . | [6]: 5 oid 0x84-0x84.7 (1) + | | | [1]{}: object 0x85-0x86.7 (2) + 0x000008| 05 | . | class: "universal" (0) 0x85-0x85.1 (0.2) + 0x000008| 05 | . | form: "primitive" (0) 0x85.2-0x85.2 (0.1) + 0x000008| 05 | . | tag: "null" (0x5) 0x85.3-0x85.7 (0.5) + 0x000008| 00 | . | length: "indefinite" (0) 0x86-0x86.7 (1) + | | | value: null 0x87-NA (0) + | | | [2]{}: object 0x87-0xa7.7 (33) + 0x000008| 30 | 0 | class: "universal" (0) 0x87-0x87.1 (0.2) + 0x000008| 30 | 0 | form: "constructed" (1) 0x87.2-0x87.2 (0.1) + 0x000008| 30 | 0 | tag: "sequence" (0x10) 0x87.3-0x87.7 (0.5) + 0x000008| 1f | . | length: 31 0x88-0x88.7 (1) + | | | constructed[0:1]: 0x89-0xa7.7 (31) + | | | [0]{}: object 0x89-0xa7.7 (31) + 0x000008| 31 | 1 | class: "universal" (0) 0x89-0x89.1 (0.2) + 0x000008| 31 | 1 | form: "constructed" (1) 0x89.2-0x89.2 (0.1) + 0x000008| 31 | 1 | tag: "set" (0x11) 0x89.3-0x89.7 (0.5) + 0x000008| 1d | . | length: 29 0x8a-0x8a.7 (1) + | | | constructed[0:1]: 0x8b-0xa7.7 (29) + | | | [0]{}: object 0x8b-0xa7.7 (29) + 0x000008| 30 | 0 | class: "universal" (0) 0x8b-0x8b.1 (0.2) + 0x000008| 30 | 0 | form: "constructed" (1) 0x8b.2-0x8b.2 (0.1) + 0x000008| 30 | 0 | tag: "sequence" (0x10) 0x8b.3-0x8b.7 (0.5) + 0x000008| 1b | . | length: 27 0x8c-0x8c.7 (1) + | | | constructed[0:2]: 0x8d-0xa7.7 (27) + | | | [0]{}: object 0x8d-0x91.7 (5) + 0x000008| 06 | . | class: "universal" (0) 0x8d-0x8d.1 (0.2) + 0x000008| 06 | . | form: "primitive" (0) 0x8d.2-0x8d.2 (0.1) + 0x000008| 06 | . | tag: "object_identifier" (0x6) 0x8d.3-0x8d.7 (0.5) + 0x000008| 03 | . | length: 3 0x8e-0x8e.7 (1) + | | | value[0:4]: 0x8f-0x91.7 (3) + 0x000008| 55| U| [0]: 2 oid 0x8f-0x8f.7 (1) + 0x000008| 55| U| [1]: 5 oid 0x8f-0x8f.7 (1) + 0x000009|04 |. | [2]: 4 oid 0x90-0x90.7 (1) + 0x000009| 03 | . | [3]: 3 oid 0x91-0x91.7 (1) + | | | [1]{}: object 0x92-0xa7.7 (22) + 0x000009| 0c | . | class: "universal" (0) 0x92-0x92.1 (0.2) + 0x000009| 0c | . | form: "primitive" (0) 0x92.2-0x92.2 (0.1) + 0x000009| 0c | . | tag: "utf8_string" (0xc) 0x92.3-0x92.7 (0.5) + 0x000009| 14 | . | length: 20 0x93-0x93.7 (1) + 0x000009| 54 65 73 74 20 43 65 72 74 69 66 69| Test Certifi| value: "Test Certificate RSA" 0x94-0xa7.7 (20) + 0x00000a|63 61 74 65 20 52 53 41 |cate RSA | + | | | [3]{}: object 0xa8-0xc7.7 (32) + 0x00000a| 30 | 0 | class: "universal" (0) 0xa8-0xa8.1 (0.2) + 0x00000a| 30 | 0 | form: "constructed" (1) 0xa8.2-0xa8.2 (0.1) + 0x00000a| 30 | 0 | tag: "sequence" (0x10) 0xa8.3-0xa8.7 (0.5) + 0x00000a| 1e | . | length: 30 0xa9-0xa9.7 (1) + | | | constructed[0:2]: 0xaa-0xc7.7 (30) + | | | [0]{}: object 0xaa-0xb8.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xaa-0xaa.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xaa.2-0xaa.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xaa.3-0xaa.7 (0.5) + 0x00000a| 0d | . | length: 13 0xab-0xab.7 (1) + 0x00000a| 31 33 30 39| 1309| value: "130915215110Z" 0xac-0xb8.7 (13) + 0x00000b|31 35 32 31 35 31 31 30 5a |15215110Z | + | | | [1]{}: object 0xb9-0xc7.7 (15) + 0x00000b| 17 | . | class: "universal" (0) 0xb9-0xb9.1 (0.2) + 0x00000b| 17 | . | form: "primitive" (0) 0xb9.2-0xb9.2 (0.1) + 0x00000b| 17 | . | tag: "utc_time" (0x17) 0xb9.3-0xb9.7 (0.5) + 0x00000b| 0d | . | length: 13 0xba-0xba.7 (1) + 0x00000b| 32 33 30 39 31| 23091| value: "230913215110Z" 0xbb-0xc7.7 (13) + 0x00000c|33 32 31 35 31 31 30 5a |3215110Z | + | | | [4]{}: object 0xc8-0xe8.7 (33) + 0x00000c| 30 | 0 | class: "universal" (0) 0xc8-0xc8.1 (0.2) + 0x00000c| 30 | 0 | form: "constructed" (1) 0xc8.2-0xc8.2 (0.1) + 0x00000c| 30 | 0 | tag: "sequence" (0x10) 0xc8.3-0xc8.7 (0.5) + 0x00000c| 1f | . | length: 31 0xc9-0xc9.7 (1) + | | | constructed[0:1]: 0xca-0xe8.7 (31) + | | | [0]{}: object 0xca-0xe8.7 (31) + 0x00000c| 31 | 1 | class: "universal" (0) 0xca-0xca.1 (0.2) + 0x00000c| 31 | 1 | form: "constructed" (1) 0xca.2-0xca.2 (0.1) + 0x00000c| 31 | 1 | tag: "set" (0x11) 0xca.3-0xca.7 (0.5) + 0x00000c| 1d | . | length: 29 0xcb-0xcb.7 (1) + | | | constructed[0:1]: 0xcc-0xe8.7 (29) + | | | [0]{}: object 0xcc-0xe8.7 (29) + 0x00000c| 30 | 0 | class: "universal" (0) 0xcc-0xcc.1 (0.2) + 0x00000c| 30 | 0 | form: "constructed" (1) 0xcc.2-0xcc.2 (0.1) + 0x00000c| 30 | 0 | tag: "sequence" (0x10) 0xcc.3-0xcc.7 (0.5) + 0x00000c| 1b | . | length: 27 0xcd-0xcd.7 (1) + | | | constructed[0:2]: 0xce-0xe8.7 (27) + | | | [0]{}: object 0xce-0xd2.7 (5) + 0x00000c| 06 | . | class: "universal" (0) 0xce-0xce.1 (0.2) + 0x00000c| 06 | . | form: "primitive" (0) 0xce.2-0xce.2 (0.1) + 0x00000c| 06 | . | tag: "object_identifier" (0x6) 0xce.3-0xce.7 (0.5) + 0x00000c| 03| .| length: 3 0xcf-0xcf.7 (1) + | | | value[0:4]: 0xd0-0xd2.7 (3) + 0x00000d|55 |U | [0]: 2 oid 0xd0-0xd0.7 (1) + 0x00000d|55 |U | [1]: 5 oid 0xd0-0xd0.7 (1) + 0x00000d| 04 | . | [2]: 4 oid 0xd1-0xd1.7 (1) + 0x00000d| 03 | . | [3]: 3 oid 0xd2-0xd2.7 (1) + | | | [1]{}: object 0xd3-0xe8.7 (22) + 0x00000d| 0c | . | class: "universal" (0) 0xd3-0xd3.1 (0.2) + 0x00000d| 0c | . | form: "primitive" (0) 0xd3.2-0xd3.2 (0.1) + 0x00000d| 0c | . | tag: "utf8_string" (0xc) 0xd3.3-0xd3.7 (0.5) + 0x00000d| 14 | . | length: 20 0xd4-0xd4.7 (1) + 0x00000d| 54 65 73 74 20 43 65 72 74 69 66| Test Certif| value: "Test Certificate RSA" 0xd5-0xe8.7 (20) + 0x00000e|69 63 61 74 65 20 52 53 41 |icate RSA | + | | | [5]{}: object 0xe9-0x18a.7 (162) + 0x00000e| 30 | 0 | class: "universal" (0) 0xe9-0xe9.1 (0.2) + 0x00000e| 30 | 0 | form: "constructed" (1) 0xe9.2-0xe9.2 (0.1) + 0x00000e| 30 | 0 | tag: "sequence" (0x10) 0xe9.3-0xe9.7 (0.5) + 0x00000e| 81 9f | .. | length: 159 0xea-0xeb.7 (2) + | | | constructed[0:2]: 0xec-0x18a.7 (159) + | | | [0]{}: object 0xec-0xfa.7 (15) + 0x00000e| 30 | 0 | class: "universal" (0) 0xec-0xec.1 (0.2) + 0x00000e| 30 | 0 | form: "constructed" (1) 0xec.2-0xec.2 (0.1) + 0x00000e| 30 | 0 | tag: "sequence" (0x10) 0xec.3-0xec.7 (0.5) + 0x00000e| 0d | . | length: 13 0xed-0xed.7 (1) + | | | constructed[0:2]: 0xee-0xfa.7 (13) + | | | [0]{}: object 0xee-0xf8.7 (11) + 0x00000e| 06 | . | class: "universal" (0) 0xee-0xee.1 (0.2) + 0x00000e| 06 | . | form: "primitive" (0) 0xee.2-0xee.2 (0.1) + 0x00000e| 06 | . | tag: "object_identifier" (0x6) 0xee.3-0xee.7 (0.5) + 0x00000e| 09| .| length: 9 0xef-0xef.7 (1) + | | | value[0:7]: 0xf0-0xf8.7 (9) + 0x00000f|2a |* | [0]: 1 oid 0xf0-0xf0.7 (1) + 0x00000f|2a |* | [1]: 2 oid 0xf0-0xf0.7 (1) + 0x00000f| 86 48 | .H | [2]: 840 oid 0xf1-0xf2.7 (2) + 0x00000f| 86 f7 0d | ... | [3]: 113549 oid 0xf3-0xf5.7 (3) + 0x00000f| 01 | . | [4]: 1 oid 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | [5]: 1 oid 0xf7-0xf7.7 (1) + 0x00000f| 01 | . | [6]: 1 oid 0xf8-0xf8.7 (1) + | | | [1]{}: object 0xf9-0xfa.7 (2) + 0x00000f| 05 | . | class: "universal" (0) 0xf9-0xf9.1 (0.2) + 0x00000f| 05 | . | form: "primitive" (0) 0xf9.2-0xf9.2 (0.1) + 0x00000f| 05 | . | tag: "null" (0x5) 0xf9.3-0xf9.7 (0.5) + 0x00000f| 00 | . | length: "indefinite" (0) 0xfa-0xfa.7 (1) + | | | value: null 0xfb-NA (0) + | | | [1]{}: object 0xfb-0x18a.7 (144) + 0x00000f| 03 | . | class: "universal" (0) 0xfb-0xfb.1 (0.2) + 0x00000f| 03 | . | form: "primitive" (0) 0xfb.2-0xfb.2 (0.1) + 0x00000f| 03 | . | tag: "bit_string" (0x3) 0xfb.3-0xfb.7 (0.5) + 0x00000f| 81 8d | .. | length: 141 0xfc-0xfd.7 (2) + 0x00000f| 00 | . | unused_bits_count: 0 0xfe-0xfe.7 (1) + 0x00000f| 30| 0| value: raw bits 0xff-0x18a.7 (140) + 0x000010|81 89 02 81 81 00 ac 35 2a 93 7f c5 4f 18 98 b2|.......5*...O...| + * |until 0x18a.7 (140) | | + | | | [1]{}: object 0x18b-0x199.7 (15) + 0x000018| 30 | 0 | class: "universal" (0) 0x18b-0x18b.1 (0.2) + 0x000018| 30 | 0 | form: "constructed" (1) 0x18b.2-0x18b.2 (0.1) + 0x000018| 30 | 0 | tag: "sequence" (0x10) 0x18b.3-0x18b.7 (0.5) + 0x000018| 0d | . | length: 13 0x18c-0x18c.7 (1) + | | | constructed[0:2]: 0x18d-0x199.7 (13) + | | | [0]{}: object 0x18d-0x197.7 (11) + 0x000018| 06 | . | class: "universal" (0) 0x18d-0x18d.1 (0.2) + 0x000018| 06 | . | form: "primitive" (0) 0x18d.2-0x18d.2 (0.1) + 0x000018| 06 | . | tag: "object_identifier" (0x6) 0x18d.3-0x18d.7 (0.5) + 0x000018| 09 | . | length: 9 0x18e-0x18e.7 (1) + | | | value[0:7]: 0x18f-0x197.7 (9) + 0x000018| 2a| *| [0]: 1 oid 0x18f-0x18f.7 (1) + 0x000018| 2a| *| [1]: 2 oid 0x18f-0x18f.7 (1) + 0x000019|86 48 |.H | [2]: 840 oid 0x190-0x191.7 (2) + 0x000019| 86 f7 0d | ... | [3]: 113549 oid 0x192-0x194.7 (3) + 0x000019| 01 | . | [4]: 1 oid 0x195-0x195.7 (1) + 0x000019| 01 | . | [5]: 1 oid 0x196-0x196.7 (1) + 0x000019| 05 | . | [6]: 5 oid 0x197-0x197.7 (1) + | | | [1]{}: object 0x198-0x199.7 (2) + 0x000019| 05 | . | class: "universal" (0) 0x198-0x198.1 (0.2) + 0x000019| 05 | . | form: "primitive" (0) 0x198.2-0x198.2 (0.1) + 0x000019| 05 | . | tag: "null" (0x5) 0x198.3-0x198.7 (0.5) + 0x000019| 00 | . | length: "indefinite" (0) 0x199-0x199.7 (1) + | | | value: null 0x19a-NA (0) + | | | [2]{}: object 0x19a-0x21d.7 (132) + 0x000019| 03 | . | class: "universal" (0) 0x19a-0x19a.1 (0.2) + 0x000019| 03 | . | form: "primitive" (0) 0x19a.2-0x19a.2 (0.1) + 0x000019| 03 | . | tag: "bit_string" (0x3) 0x19a.3-0x19a.7 (0.5) + 0x000019| 81 81 | .. | length: 129 0x19b-0x19c.7 (2) + 0x000019| 00 | . | unused_bits_count: 0 0x19d-0x19d.7 (1) + 0x000019| 67 43| gC| value: raw bits 0x19e-0x21d.7 (128) + 0x00001a|4c a8 a4 3e eb 1b 32 28 70 8b db eb fe f1 b3 70|L..>..2(p......p| + * |until 0x21d.7 (128) | | + | | | [2]{}: record 0x21e-0x226.7 (9) + 0x000021| 16 | . | type: "handshake" (22) (valid) 0x21e-0x21e.7 (1) + 0x000021| 03| .| version: "tls1.2" (0x303) (valid) 0x21f-0x220.7 (2) + 0x000022|03 |. | + 0x000022| 00 04 | .. | length: 4 0x221-0x222.7 (2) + | | | message{}: 0x223-0x226.7 (4) + 0x000022| 0e | . | type: "server_hello_done" (14) 0x223-0x223.7 (1) + 0x000022| 00 00 00 | ... | length: 0 0x224-0x226.7 (3) + | | | data: raw bits 0x227-NA (0) + | | | [3]{}: record 0x227-0x22c.7 (6) + 0x000022| 14 | . | type: "change_cipher_spec" (20) (valid) 0x227-0x227.7 (1) + 0x000022| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x228-0x229.7 (2) + 0x000022| 00 01 | .. | length: 1 0x22a-0x22b.7 (2) + | | | message{}: 0x22c-0x22c.7 (1) + 0x000022| 01 | . | type: 1 0x22c-0x22c.7 (1) + | | | [4]{}: record 0x22d-0x251.7 (37) + 0x000022| 16 | . | type: "handshake" (22) (valid) 0x22d-0x22d.7 (1) + 0x000022| 03 03| ..| version: "tls1.2" (0x303) (valid) 0x22e-0x22f.7 (2) + 0x000023|00 20 |. | length: 32 0x230-0x231.7 (2) + 0x000023| b8 bf 79 c6 2b 43 d1 b0 15 e2 33 bb 94 12| ..y.+C....3...| encrypted_data: raw bits 0x232-0x251.7 (32) + 0x000024|75 89 64 59 a2 86 4c 2a 38 29 7d fe bf b8 b4 f9|u.dY..L*8)}.....| + 0x000025|f8 c0 |.. | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 51 e0 4b 5c 41 0e ca bf 4f e8 d9 42| Q.K\A...O..B| verify_data: raw bits 0x4-0xf.7 (12) + | | | [5]{}: record 0x252-0x138f.7 (4414) + 0x000025| 17 | . | type: "application_data" (23) (valid) 0x252-0x252.7 (1) + 0x000025| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x253-0x254.7 (2) + 0x000025| 11 39 | .9 | length: 4409 0x255-0x256.7 (2) + 0x000025| e3 04 c4 70 61 49 69 64 7f| ...paIid.| encrypted_data: raw bits 0x257-0x138f.7 (4409) + 0x000026|44 ad 9e ba ff 14 04 34 e1 e1 cf 2f 5a 73 ec ac|D......4.../Zs..| + * |until 0x138f.7 (end) (4409) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x1128.7 (4393) + * |until 0x1128.7 (end) (4393) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x1128.7 (4393) + * |until 0x1128.7 (end) (4393) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_SHA.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..c93ce27ed7bc803ed3ada6b33b270e2efb08c93c GIT binary patch literal 3333 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 YJ|RgCy`m-gQ7jR8_Y~~sIq(krZ(!uxd;kCd literal 0 HcmV?d00001 diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_SHA.pcap.fqtest b/format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_SHA.pcap.fqtest new file mode 100644 index 00000000..eaa77dec --- /dev/null +++ b/format/tls/testdata/ciphers/TLS_RSA_WITH_RC4_128_SHA.pcap.fqtest @@ -0,0 +1,460 @@ +$ fq -o keylog=@all.keylog ".tcp_connections[0] | dv" TLS_RSA_WITH_RC4_128_SHA.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0xd05-NA (0) + | | | client{}: 0xd05-NA (0) + | | | ip: "127.0.0.1" 0xd05-NA (0) + | | | port: 39027 0xd05-NA (0) + | | | has_start: true 0xd05-NA (0) + | | | has_end: false 0xd05-NA (0) + | | | skipped_bytes: 0 0xd05-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x17a.7 (379) + | | | records[0:6]: 0x0-0x17a.7 (379) + | | | [0]{}: record 0x0-0x65.7 (102) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 61 | .a | length: 97 0x3-0x4.7 (2) + | | | message{}: 0x5-0x65.7 (97) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 5d | ..] | length: 93 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| 3d| =| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|58 23 59 78 a2 60 6f 9d 0b 88 84 d3 e7 6b e1 b1|X#Yx.`o......k..| + 0x000002|12 0a b0 5d d3 c8 22 56 04 9c 9f |...].."V... | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 04 | .. | cipher_suits_length: 4 0x2c-0x2d.7 (2) + | | | cipher_suits[0:2]: 0x2e-0x31.7 (4) + 0x000002| 00 05| ..| [0]: "TLS_RSA_WITH_RC4_128_SHA" (0x5) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|00 ff |.. | [1]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x30-0x31.7 (2) + 0x000003| 02 | . | compression_methods_length: 2 0x32-0x32.7 (1) + | | | compression_methods[0:2]: 0x33-0x34.7 (2) + 0x000003| 01 | . | [0]: "deflate" (0x1) compression_method 0x33-0x33.7 (1) + 0x000003| 00 | . | [1]: "null" (0x0) compression_method 0x34-0x34.7 (1) + 0x000003| 00 2f | ./ | extensions_length: 47 0x35-0x36.7 (2) + | | | extensions[0:3]: 0x37-0x65.7 (47) + | | | [0]{}: extension 0x37-0x3a.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x37-0x38.7 (2) + 0x000003| 00 00 | .. | length: 0 0x39-0x3a.7 (2) + | | | [1]{}: extension 0x3b-0x60.7 (38) + 0x000003| 00 0d | .. | type: "signature_algorithms" (13) 0x3b-0x3c.7 (2) + 0x000003| 00 22 | ." | length: 34 0x3d-0x3e.7 (2) + 0x000003| 00| .| signature_algorithm_length: 32 0x3f-0x40.7 (2) + 0x000004|20 | | + | | | signature_algorithms[0:16]: 0x41-0x60.7 (32) + | | | [0]{}: signature_algorithm 0x41-0x42.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x41-0x41.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x42-0x42.7 (1) + | | | [1]{}: signature_algorithm 0x43-0x44.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x43-0x43.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x44-0x44.7 (1) + | | | [2]{}: signature_algorithm 0x45-0x46.7 (2) + 0x000004| 06 | . | hash: "sha512" (6) 0x45-0x45.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x46-0x46.7 (1) + | | | [3]{}: signature_algorithm 0x47-0x48.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x47-0x47.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x48-0x48.7 (1) + | | | [4]{}: signature_algorithm 0x49-0x4a.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x49-0x49.7 (1) + 0x000004| 02 | . | signature: "dsa" (2) 0x4a-0x4a.7 (1) + | | | [5]{}: signature_algorithm 0x4b-0x4c.7 (2) + 0x000004| 05 | . | hash: "sha384" (5) 0x4b-0x4b.7 (1) + 0x000004| 03 | . | signature: "ecdsa" (3) 0x4c-0x4c.7 (1) + | | | [6]{}: signature_algorithm 0x4d-0x4e.7 (2) + 0x000004| 04 | . | hash: "sha256" (4) 0x4d-0x4d.7 (1) + 0x000004| 01 | . | signature: "rsa" (1) 0x4e-0x4e.7 (1) + | | | [7]{}: signature_algorithm 0x4f-0x50.7 (2) + 0x000004| 04| .| hash: "sha256" (4) 0x4f-0x4f.7 (1) + 0x000005|02 |. | signature: "dsa" (2) 0x50-0x50.7 (1) + | | | [8]{}: signature_algorithm 0x51-0x52.7 (2) + 0x000005| 04 | . | hash: "sha256" (4) 0x51-0x51.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x52-0x52.7 (1) + | | | [9]{}: signature_algorithm 0x53-0x54.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x53-0x53.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x54-0x54.7 (1) + | | | [10]{}: signature_algorithm 0x55-0x56.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x55-0x55.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x56-0x56.7 (1) + | | | [11]{}: signature_algorithm 0x57-0x58.7 (2) + 0x000005| 03 | . | hash: "sha224" (3) 0x57-0x57.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x58-0x58.7 (1) + | | | [12]{}: signature_algorithm 0x59-0x5a.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x59-0x59.7 (1) + 0x000005| 01 | . | signature: "rsa" (1) 0x5a-0x5a.7 (1) + | | | [13]{}: signature_algorithm 0x5b-0x5c.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5b-0x5b.7 (1) + 0x000005| 02 | . | signature: "dsa" (2) 0x5c-0x5c.7 (1) + | | | [14]{}: signature_algorithm 0x5d-0x5e.7 (2) + 0x000005| 02 | . | hash: "sha1" (2) 0x5d-0x5d.7 (1) + 0x000005| 03 | . | signature: "ecdsa" (3) 0x5e-0x5e.7 (1) + | | | [15]{}: signature_algorithm 0x5f-0x60.7 (2) + 0x000005| 01| .| hash: "md5" (1) 0x5f-0x5f.7 (1) + 0x000006|01 |. | signature: "rsa" (1) 0x60-0x60.7 (1) + | | | [2]{}: extension 0x61-0x65.7 (5) + 0x000006| 00 0f | .. | type: "heartbeat" (15) 0x61-0x62.7 (2) + 0x000006| 00 01 | .. | length: 1 0x63-0x64.7 (2) + 0x000006| 01 | . | data: raw bits 0x65-0x65.7 (1) + | | | [1]{}: record 0x66-0xf0.7 (139) + 0x000006| 16 | . | type: "handshake" (22) (valid) 0x66-0x66.7 (1) + 0x000006| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x67-0x68.7 (2) + 0x000006| 00 86 | .. | length: 134 0x69-0x6a.7 (2) + | | | message{}: 0x6b-0xf0.7 (134) + 0x000006| 10 | . | type: "client_key_exchange" (16) 0x6b-0x6b.7 (1) + 0x000006| 00 00 82 | ... | length: 130 0x6c-0x6e.7 (3) + | | | encrypted_premaster{}: 0x6f-NA (0) + 0x000006| 00| .| length: 128 0x6f-0x70.7 (2) + 0x000007|80 |. | + 0x000007| a8 d7 1c a4 28 82 be 84 a3 8c af b2 73 0a f3| ....(.......s..| data: raw bits 0x71-0xf0.7 (128) + 0x000008|0b 11 08 b4 59 5d 19 0c f6 b2 be 10 8c 27 34 16|....Y].......'4.| + * |until 0xf0.7 (128) | | + | | | [2]{}: record 0xf1-0xf6.7 (6) + 0x00000f| 14 | . | type: "change_cipher_spec" (20) (valid) 0xf1-0xf1.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf2-0xf3.7 (2) + 0x00000f| 00 01 | .. | length: 1 0xf4-0xf5.7 (2) + | | | message{}: 0xf6-0xf6.7 (1) + 0x00000f| 01 | . | type: 1 0xf6-0xf6.7 (1) + | | | [3]{}: record 0xf7-0x128.7 (50) + 0x00000f| 16 | . | type: "handshake" (22) (valid) 0xf7-0xf7.7 (1) + 0x00000f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xf8-0xf9.7 (2) + 0x00000f| 00 2d | .- | length: 45 0xfa-0xfb.7 (2) + 0x00000f| bc 12 f0 eb| ....| encrypted_data: raw bits 0xfc-0x128.7 (45) + 0x000010|b6 1a 73 6e 7a 08 b4 84 23 9b 1c 9b 0f 04 a2 3e|..snz...#......>| + * |until 0x128.7 (45) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 70 15 db 6d 63 56 42 f7 96 ac 3f 50| p..mcVB...?P| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x129-0x159.7 (49) + 0x000012| 17 | . | type: "application_data" (23) (valid) 0x129-0x129.7 (1) + 0x000012| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x12a-0x12b.7 (2) + 0x000012| 00 2c | ., | length: 44 0x12c-0x12d.7 (2) + 0x000012| 3d b4| =.| encrypted_data: raw bits 0x12e-0x159.7 (44) + 0x000013|97 c1 eb dd 0d 42 30 b3 4a 5a 28 36 4a ec 7b 7f|.....B0.JZ(6J.{.| + * |until 0x159.7 (44) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| message: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | [5]{}: record 0x15a-0x17a.7 (33) + 0x000015| 15 | . | type: "alert" (21) (valid) 0x15a-0x15a.7 (1) + 0x000015| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x15b-0x15c.7 (2) + 0x000015| 00 1c | .. | length: 28 0x15d-0x15e.7 (2) + 0x000015| dc| .| encrypted_data: raw bits 0x15f-0x17a.7 (28) + 0x000016|70 65 65 39 ea be 70 77 69 f0 f8 f0 66 a2 b2 2b|pee9..pwi...f..+| + 0x000017|92 72 d8 e4 71 44 df ab b7 ac f6| |.r..qD.....| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 30 0d 0a|GET / HTTP/1.0..| stream: raw bits 0x0-0x11.7 (18) + 0x0000|0d 0a| |..| | + | | | server{}: 0xd05-NA (0) + | | | ip: "127.0.0.1" 0xd05-NA (0) + | | | port: 4430 0xd05-NA (0) + | | | has_start: true 0xd05-NA (0) + | | | has_end: true 0xd05-NA (0) + | | | skipped_bytes: 0 0xd05-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x771.7 (1906) + | | | records[0:7]: 0x0-0x771.7 (1906) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000000| f2| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|33 d4 bb 4b de 54 1e 73 81 b0 a5 5b 35 5d 8d 22|3..K.T.s...[5]."| + 0x000002|50 07 7c 9e 71 87 e9 f9 dc 49 1e |P.|.q....I. | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 05 | .. | cipher_suit: "TLS_RSA_WITH_RC4_128_SHA" (0x5) 0x2c-0x2d.7 (2) + 0x000002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x000002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x000003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x000003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x000003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x000003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x000003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x000003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x000003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x000003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x000003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x000003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x000004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x000004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x000004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x000004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x000004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x000004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x000004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x000004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x000004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x000004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x000005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x000005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x000005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x000005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x000005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x000005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x000005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x000005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x000005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x000005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x000006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x000006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x000006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x000006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x000006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x000006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x000006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x000006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x000006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x000006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x000006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x000006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x000006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x000006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x000006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x000006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x000006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x000006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x000006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x000006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x000007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x000007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x000007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x000007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x000007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x000007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x000007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x000007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x000007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x000007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x000007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x000007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x000007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x000007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x000007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x000007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x000007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x000007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x000007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x000007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x000007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x000007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x000007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x000007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x000007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x000008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x000009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x000009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x000009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x000009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x000009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x000009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x000009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x000009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x000009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00000a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00000a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00000a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00000a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00000a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00000b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00000b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00000b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00000b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00000b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00000b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00000b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00000b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00000b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00000b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00000b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00000c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00000d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00000d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00000d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00000d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00000d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00000d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00000d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00000d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00000d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00000e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00000e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00000e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00000e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00000e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00000e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00000e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00000e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00000e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00000f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x000017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x000017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x000017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x000017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x000017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x000017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x000017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x000017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x000017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x000017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x000017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x000017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x000017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x000017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x000018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x000018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x000018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x000018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x000018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x000018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x000018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x000018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x000018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x000018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x000018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x000019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x000020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x000020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x000020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x000020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x000020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x000021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x000021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x000021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x000021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x000021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x000021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x000021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x000021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x000022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 df|.gR....z(....~1.| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x00002b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x00002c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x00002c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x00002c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x2f6.7 (50) + 0x00002c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x00002c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x00002c| 00 2d | .- | length: 45 0x2c8-0x2c9.7 (2) + 0x00002c| 49 18 53 bc ac 8f| I.S...| encrypted_data: raw bits 0x2ca-0x2f6.7 (45) + 0x00002d|47 3b 3c ff 1b a8 e2 51 c9 51 34 5e b9 6c c3 1a|G;<....Q.Q4^.l..| + * |until 0x2f6.7 (45) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| 88 6e b8 35 52 8b 90 6b d5 6b 03 d5| .n.5R..k.k..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [6]{}: record 0x2f7-0x771.7 (1147) + 0x00002f| 17 | . | type: "application_data" (23) (valid) 0x2f7-0x2f7.7 (1) + 0x00002f| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2f8-0x2f9.7 (2) + 0x00002f| 04 76 | .v | length: 1142 0x2fa-0x2fb.7 (2) + 0x00002f| 6b 44 72 dd| kDr.| encrypted_data: raw bits 0x2fc-0x771.7 (1142) + 0x000030|23 db 2b 31 b4 53 a7 ad dc fd 47 f1 53 fd 74 e2|#.+1.S....G.S.t.| + * |until 0x771.7 (end) (1142) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| message: raw bits 0x0-0x110e.7 (4367) + * |until 0x110e.7 (end) (4367) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 30 20 32 30 30 20 6f 6b 0d|HTTP/1.0 200 ok.| stream: raw bits 0x0-0x110e.7 (4367) + * |until 0x110e.7 (end) (4367) | | diff --git a/format/tls/testdata/ciphers/TLS_RSA_WITH_SEED_CBC_SHA.pcap b/format/tls/testdata/ciphers/TLS_RSA_WITH_SEED_CBC_SHA.pcap new file mode 100644 index 0000000000000000000000000000000000000000..7388cf1bd680630221ba6fd624ad84791b019be4 GIT binary patch literal 3437 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..J....o| + * |until 0x180.7 (64) | | + | | | [5]{}: record 0x181-0x1b5.7 (53) + 0x018| 15 | . | type: "alert" (21) (valid) 0x181-0x181.7 (1) + 0x018| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x182-0x183.7 (2) + 0x018| 00 30 | .0 | length: 48 0x184-0x185.7 (2) + 0x018| 75 9a 73 a8 98 01 cd 0e b1 a4| u.s.......| encrypted_data: raw bits 0x186-0x1b5.7 (48) + 0x019|b5 23 58 df 7e 99 46 6d 21 75 8d a9 86 8e 86 f7|.#X.~.Fm!u......| + * |until 0x1b5.7 (end) (48) | | + | | | server{}: 0xd6d-NA (0) + | | | ip: "127.0.0.1" 0xd6d-NA (0) + | | | port: 4430 0xd6d-NA (0) + | | | has_start: true 0xd6d-NA (0) + | | | has_end: true 0xd6d-NA (0) + | | | skipped_bytes: 0 0xd6d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x79e.7 (1951) + | | | records[0:7]: 0x0-0x79e.7 (1951) + | | | [0]{}: record 0x0-0x3e.7 (63) + 0x000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000| 00 3a | .: | length: 58 0x3-0x4.7 (2) + | | | message{}: 0x5-0x3e.7 (58) + 0x000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000| 00 00 36 | ..6 | length: 54 0x6-0x8.7 (3) + 0x000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000| 52 36 2c 11 | R6,. | gmt_unix_time: 1379281937 (2013-09-15T21:52:17Z) 0xb-0xe.7 (4) + 0x000| 3e| >| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x001|2f 60 25 cf 9c c2 b1 3d 10 1d 35 8e 89 71 b0 e4|/`%....=..5..q..| + 0x002|27 b0 85 01 b9 a4 0b 2d f5 1f 14 |'......-... | + 0x002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x002| 00 96 | .. | cipher_suit: "TLS_RSA_WITH_SEED_CBC_SHA" (0x96) 0x2c-0x2d.7 (2) + 0x002| 01 | . | compression_method: "deflate" (0x1) 0x2e-0x2e.7 (1) + 0x002| 00| .| extensions_length: 14 0x2f-0x30.7 (2) + 0x003|0e |. | + | | | extensions[0:3]: 0x31-0x3e.7 (14) + | | | [0]{}: extension 0x31-0x35.7 (5) + 0x003| ff 01 | .. | type: "renegotiation_info" (65281) 0x31-0x32.7 (2) + 0x003| 00 01 | .. | length: 1 0x33-0x34.7 (2) + 0x003| 00 | . | data: raw bits 0x35-0x35.7 (1) + | | | [1]{}: extension 0x36-0x39.7 (4) + 0x003| 00 23 | .# | type: "session_ticket" (35) 0x36-0x37.7 (2) + 0x003| 00 00 | .. | length: 0 0x38-0x39.7 (2) + | | | [2]{}: extension 0x3a-0x3e.7 (5) + 0x003| 00 0f | .. | type: "heartbeat" (15) 0x3a-0x3b.7 (2) + 0x003| 00 01 | .. | length: 1 0x3c-0x3d.7 (2) + 0x003| 01 | . | data: raw bits 0x3e-0x3e.7 (1) + | | | [1]{}: record 0x3f-0x206.7 (456) + 0x003| 16| .| type: "handshake" (22) (valid) 0x3f-0x3f.7 (1) + 0x004|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x40-0x41.7 (2) + 0x004| 01 c3 | .. | length: 451 0x42-0x43.7 (2) + | | | message{}: 0x44-0x206.7 (451) + 0x004| 0b | . | type: "certificate" (11) 0x44-0x44.7 (1) + 0x004| 00 01 bf | ... | length: 447 0x45-0x47.7 (3) + 0x004| 00 01 bc | ... | certificates_length: 444 0x48-0x4a.7 (3) + | | | certificates[0:1]: 0x4b-0x206.7 (444) + | | | [0]{}: certificate 0x4b-0x206.7 (444) + 0x004| 00 01 b9 | ... | length: 441 0x4b-0x4d.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x4e-0x206.7 (441) + 0x004| 30 | 0 | class: "universal" (0) 0x4e-0x4e.1 (0.2) + 0x004| 30 | 0 | form: "constructed" (1) 0x4e.2-0x4e.2 (0.1) + 0x004| 30 | 0 | tag: "sequence" (0x10) 0x4e.3-0x4e.7 (0.5) + 0x004| 82| .| length: 437 0x4f-0x51.7 (3) + 0x005|01 b5 |.. | + | | | constructed[0:3]: 0x52-0x206.7 (437) + | | | [0]{}: object 0x52-0x173.7 (290) + 0x005| 30 | 0 | class: "universal" (0) 0x52-0x52.1 (0.2) + 0x005| 30 | 0 | form: "constructed" (1) 0x52.2-0x52.2 (0.1) + 0x005| 30 | 0 | tag: "sequence" (0x10) 0x52.3-0x52.7 (0.5) + 0x005| 82 01 1e | ... | length: 286 0x53-0x55.7 (3) + | | | constructed[0:6]: 0x56-0x173.7 (286) + | | | [0]{}: object 0x56-0x60.7 (11) + 0x005| 02 | . | class: "universal" (0) 0x56-0x56.1 (0.2) + 0x005| 02 | . | form: "primitive" (0) 0x56.2-0x56.2 (0.1) + 0x005| 02 | . | tag: "integer" (0x2) 0x56.3-0x56.7 (0.5) + 0x005| 09 | . | length: 9 0x57-0x57.7 (1) + 0x005| 00 f4 a7 2f d3 e8 fc 37| .../...7| value: 17629111853558544324 0x58-0x60.7 (9) + 0x006|c4 |. | + | | | [1]{}: object 0x61-0x6f.7 (15) + 0x006| 30 | 0 | class: "universal" (0) 0x61-0x61.1 (0.2) + 0x006| 30 | 0 | form: "constructed" (1) 0x61.2-0x61.2 (0.1) + 0x006| 30 | 0 | tag: "sequence" (0x10) 0x61.3-0x61.7 (0.5) + 0x006| 0d | . | length: 13 0x62-0x62.7 (1) + | | | constructed[0:2]: 0x63-0x6f.7 (13) + | | | [0]{}: object 0x63-0x6d.7 (11) + 0x006| 06 | . | class: "universal" (0) 0x63-0x63.1 (0.2) + 0x006| 06 | . | form: "primitive" (0) 0x63.2-0x63.2 (0.1) + 0x006| 06 | . | tag: "object_identifier" (0x6) 0x63.3-0x63.7 (0.5) + 0x006| 09 | . | length: 9 0x64-0x64.7 (1) + | | | value[0:7]: 0x65-0x6d.7 (9) + 0x006| 2a | * | [0]: 1 oid 0x65-0x65.7 (1) + 0x006| 2a | * | [1]: 2 oid 0x65-0x65.7 (1) + 0x006| 86 48 | .H | [2]: 840 oid 0x66-0x67.7 (2) + 0x006| 86 f7 0d | ... | [3]: 113549 oid 0x68-0x6a.7 (3) + 0x006| 01 | . | [4]: 1 oid 0x6b-0x6b.7 (1) + 0x006| 01 | . | [5]: 1 oid 0x6c-0x6c.7 (1) + 0x006| 05 | . | [6]: 5 oid 0x6d-0x6d.7 (1) + | | | [1]{}: object 0x6e-0x6f.7 (2) + 0x006| 05 | . | class: "universal" (0) 0x6e-0x6e.1 (0.2) + 0x006| 05 | . | form: "primitive" (0) 0x6e.2-0x6e.2 (0.1) + 0x006| 05 | . | tag: "null" (0x5) 0x6e.3-0x6e.7 (0.5) + 0x006| 00| .| length: "indefinite" (0) 0x6f-0x6f.7 (1) + | | | value: null 0x70-NA (0) + | | | [2]{}: object 0x70-0x90.7 (33) + 0x007|30 |0 | class: "universal" (0) 0x70-0x70.1 (0.2) + 0x007|30 |0 | form: "constructed" (1) 0x70.2-0x70.2 (0.1) + 0x007|30 |0 | tag: "sequence" (0x10) 0x70.3-0x70.7 (0.5) + 0x007| 1f | . | length: 31 0x71-0x71.7 (1) + | | | constructed[0:1]: 0x72-0x90.7 (31) + | | | [0]{}: object 0x72-0x90.7 (31) + 0x007| 31 | 1 | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x007| 31 | 1 | form: "constructed" (1) 0x72.2-0x72.2 (0.1) + 0x007| 31 | 1 | tag: "set" (0x11) 0x72.3-0x72.7 (0.5) + 0x007| 1d | . | length: 29 0x73-0x73.7 (1) + | | | constructed[0:1]: 0x74-0x90.7 (29) + | | | [0]{}: object 0x74-0x90.7 (29) + 0x007| 30 | 0 | class: "universal" (0) 0x74-0x74.1 (0.2) + 0x007| 30 | 0 | form: "constructed" (1) 0x74.2-0x74.2 (0.1) + 0x007| 30 | 0 | tag: "sequence" (0x10) 0x74.3-0x74.7 (0.5) + 0x007| 1b | . | length: 27 0x75-0x75.7 (1) + | | | constructed[0:2]: 0x76-0x90.7 (27) + | | | [0]{}: object 0x76-0x7a.7 (5) + 0x007| 06 | . | class: "universal" (0) 0x76-0x76.1 (0.2) + 0x007| 06 | . | form: "primitive" (0) 0x76.2-0x76.2 (0.1) + 0x007| 06 | . | tag: "object_identifier" (0x6) 0x76.3-0x76.7 (0.5) + 0x007| 03 | . | length: 3 0x77-0x77.7 (1) + | | | value[0:4]: 0x78-0x7a.7 (3) + 0x007| 55 | U | [0]: 2 oid 0x78-0x78.7 (1) + 0x007| 55 | U | [1]: 5 oid 0x78-0x78.7 (1) + 0x007| 04 | . | [2]: 4 oid 0x79-0x79.7 (1) + 0x007| 03 | . | [3]: 3 oid 0x7a-0x7a.7 (1) + | | | [1]{}: object 0x7b-0x90.7 (22) + 0x007| 0c | . | class: "universal" (0) 0x7b-0x7b.1 (0.2) + 0x007| 0c | . | form: "primitive" (0) 0x7b.2-0x7b.2 (0.1) + 0x007| 0c | . | tag: "utf8_string" (0xc) 0x7b.3-0x7b.7 (0.5) + 0x007| 14 | . | length: 20 0x7c-0x7c.7 (1) + 0x007| 54 65 73| Tes| value: "Test Certificate RSA" 0x7d-0x90.7 (20) + 0x008|74 20 43 65 72 74 69 66 69 63 61 74 65 20 52 53|t Certificate RS| + 0x009|41 |A | + | | | [3]{}: object 0x91-0xb0.7 (32) + 0x009| 30 | 0 | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x009| 30 | 0 | form: "constructed" (1) 0x91.2-0x91.2 (0.1) + 0x009| 30 | 0 | tag: "sequence" (0x10) 0x91.3-0x91.7 (0.5) + 0x009| 1e | . | length: 30 0x92-0x92.7 (1) + | | | constructed[0:2]: 0x93-0xb0.7 (30) + | | | [0]{}: object 0x93-0xa1.7 (15) + 0x009| 17 | . | class: "universal" (0) 0x93-0x93.1 (0.2) + 0x009| 17 | . | form: "primitive" (0) 0x93.2-0x93.2 (0.1) + 0x009| 17 | . | tag: "utc_time" (0x17) 0x93.3-0x93.7 (0.5) + 0x009| 0d | . | length: 13 0x94-0x94.7 (1) + 0x009| 31 33 30 39 31 35 32 31 35 31 31| 13091521511| value: "130915215110Z" 0x95-0xa1.7 (13) + 0x00a|30 5a |0Z | + | | | [1]{}: object 0xa2-0xb0.7 (15) + 0x00a| 17 | . | class: "universal" (0) 0xa2-0xa2.1 (0.2) + 0x00a| 17 | . | form: "primitive" (0) 0xa2.2-0xa2.2 (0.1) + 0x00a| 17 | . | tag: "utc_time" (0x17) 0xa2.3-0xa2.7 (0.5) + 0x00a| 0d | . | length: 13 0xa3-0xa3.7 (1) + 0x00a| 32 33 30 39 31 33 32 31 35 31 31 30| 230913215110| value: "230913215110Z" 0xa4-0xb0.7 (13) + 0x00b|5a |Z | + | | | [4]{}: object 0xb1-0xd1.7 (33) + 0x00b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x00b| 1f | . | length: 31 0xb2-0xb2.7 (1) + | | | constructed[0:1]: 0xb3-0xd1.7 (31) + | | | [0]{}: object 0xb3-0xd1.7 (31) + 0x00b| 31 | 1 | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x00b| 31 | 1 | form: "constructed" (1) 0xb3.2-0xb3.2 (0.1) + 0x00b| 31 | 1 | tag: "set" (0x11) 0xb3.3-0xb3.7 (0.5) + 0x00b| 1d | . | length: 29 0xb4-0xb4.7 (1) + | | | constructed[0:1]: 0xb5-0xd1.7 (29) + | | | [0]{}: object 0xb5-0xd1.7 (29) + 0x00b| 30 | 0 | class: "universal" (0) 0xb5-0xb5.1 (0.2) + 0x00b| 30 | 0 | form: "constructed" (1) 0xb5.2-0xb5.2 (0.1) + 0x00b| 30 | 0 | tag: "sequence" (0x10) 0xb5.3-0xb5.7 (0.5) + 0x00b| 1b | . | length: 27 0xb6-0xb6.7 (1) + | | | constructed[0:2]: 0xb7-0xd1.7 (27) + | | | [0]{}: object 0xb7-0xbb.7 (5) + 0x00b| 06 | . | class: "universal" (0) 0xb7-0xb7.1 (0.2) + 0x00b| 06 | . | form: "primitive" (0) 0xb7.2-0xb7.2 (0.1) + 0x00b| 06 | . | tag: "object_identifier" (0x6) 0xb7.3-0xb7.7 (0.5) + 0x00b| 03 | . | length: 3 0xb8-0xb8.7 (1) + | | | value[0:4]: 0xb9-0xbb.7 (3) + 0x00b| 55 | U | [0]: 2 oid 0xb9-0xb9.7 (1) + 0x00b| 55 | U | [1]: 5 oid 0xb9-0xb9.7 (1) + 0x00b| 04 | . | [2]: 4 oid 0xba-0xba.7 (1) + 0x00b| 03 | . | [3]: 3 oid 0xbb-0xbb.7 (1) + | | | [1]{}: object 0xbc-0xd1.7 (22) + 0x00b| 0c | . | class: "universal" (0) 0xbc-0xbc.1 (0.2) + 0x00b| 0c | . | form: "primitive" (0) 0xbc.2-0xbc.2 (0.1) + 0x00b| 0c | . | tag: "utf8_string" (0xc) 0xbc.3-0xbc.7 (0.5) + 0x00b| 14 | . | length: 20 0xbd-0xbd.7 (1) + 0x00b| 54 65| Te| value: "Test Certificate RSA" 0xbe-0xd1.7 (20) + 0x00c|73 74 20 43 65 72 74 69 66 69 63 61 74 65 20 52|st Certificate R| + 0x00d|53 41 |SA | + | | | [5]{}: object 0xd2-0x173.7 (162) + 0x00d| 30 | 0 | class: "universal" (0) 0xd2-0xd2.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd2.2-0xd2.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd2.3-0xd2.7 (0.5) + 0x00d| 81 9f | .. | length: 159 0xd3-0xd4.7 (2) + | | | constructed[0:2]: 0xd5-0x173.7 (159) + | | | [0]{}: object 0xd5-0xe3.7 (15) + 0x00d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x00d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x00d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x00d| 0d | . | length: 13 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xe3.7 (13) + | | | [0]{}: object 0xd7-0xe1.7 (11) + 0x00d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x00d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x00d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x00d| 09 | . | length: 9 0xd8-0xd8.7 (1) + | | | value[0:7]: 0xd9-0xe1.7 (9) + 0x00d| 2a | * | [0]: 1 oid 0xd9-0xd9.7 (1) + 0x00d| 2a | * | [1]: 2 oid 0xd9-0xd9.7 (1) + 0x00d| 86 48 | .H | [2]: 840 oid 0xda-0xdb.7 (2) + 0x00d| 86 f7 0d | ... | [3]: 113549 oid 0xdc-0xde.7 (3) + 0x00d| 01| .| [4]: 1 oid 0xdf-0xdf.7 (1) + 0x00e|01 |. | [5]: 1 oid 0xe0-0xe0.7 (1) + 0x00e| 01 | . | [6]: 1 oid 0xe1-0xe1.7 (1) + | | | [1]{}: object 0xe2-0xe3.7 (2) + 0x00e| 05 | . | class: "universal" (0) 0xe2-0xe2.1 (0.2) + 0x00e| 05 | . | form: "primitive" (0) 0xe2.2-0xe2.2 (0.1) + 0x00e| 05 | . | tag: "null" (0x5) 0xe2.3-0xe2.7 (0.5) + 0x00e| 00 | . | length: "indefinite" (0) 0xe3-0xe3.7 (1) + | | | value: null 0xe4-NA (0) + | | | [1]{}: object 0xe4-0x173.7 (144) + 0x00e| 03 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00e| 03 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00e| 03 | . | tag: "bit_string" (0x3) 0xe4.3-0xe4.7 (0.5) + 0x00e| 81 8d | .. | length: 141 0xe5-0xe6.7 (2) + 0x00e| 00 | . | unused_bits_count: 0 0xe7-0xe7.7 (1) + 0x00e| 30 81 89 02 81 81 00 ac| 0.......| value: raw bits 0xe8-0x173.7 (140) + 0x00f|35 2a 93 7f c5 4f 18 98 b2 9f a0 fb 34 e6 e2 8b|5*...O......4...| + * |until 0x173.7 (140) | | + | | | [1]{}: object 0x174-0x182.7 (15) + 0x017| 30 | 0 | class: "universal" (0) 0x174-0x174.1 (0.2) + 0x017| 30 | 0 | form: "constructed" (1) 0x174.2-0x174.2 (0.1) + 0x017| 30 | 0 | tag: "sequence" (0x10) 0x174.3-0x174.7 (0.5) + 0x017| 0d | . | length: 13 0x175-0x175.7 (1) + | | | constructed[0:2]: 0x176-0x182.7 (13) + | | | [0]{}: object 0x176-0x180.7 (11) + 0x017| 06 | . | class: "universal" (0) 0x176-0x176.1 (0.2) + 0x017| 06 | . | form: "primitive" (0) 0x176.2-0x176.2 (0.1) + 0x017| 06 | . | tag: "object_identifier" (0x6) 0x176.3-0x176.7 (0.5) + 0x017| 09 | . | length: 9 0x177-0x177.7 (1) + | | | value[0:7]: 0x178-0x180.7 (9) + 0x017| 2a | * | [0]: 1 oid 0x178-0x178.7 (1) + 0x017| 2a | * | [1]: 2 oid 0x178-0x178.7 (1) + 0x017| 86 48 | .H | [2]: 840 oid 0x179-0x17a.7 (2) + 0x017| 86 f7 0d | ... | [3]: 113549 oid 0x17b-0x17d.7 (3) + 0x017| 01 | . | [4]: 1 oid 0x17e-0x17e.7 (1) + 0x017| 01| .| [5]: 1 oid 0x17f-0x17f.7 (1) + 0x018|05 |. | [6]: 5 oid 0x180-0x180.7 (1) + | | | [1]{}: object 0x181-0x182.7 (2) + 0x018| 05 | . | class: "universal" (0) 0x181-0x181.1 (0.2) + 0x018| 05 | . | form: "primitive" (0) 0x181.2-0x181.2 (0.1) + 0x018| 05 | . | tag: "null" (0x5) 0x181.3-0x181.7 (0.5) + 0x018| 00 | . | length: "indefinite" (0) 0x182-0x182.7 (1) + | | | value: null 0x183-NA (0) + | | | [2]{}: object 0x183-0x206.7 (132) + 0x018| 03 | . | class: "universal" (0) 0x183-0x183.1 (0.2) + 0x018| 03 | . | form: "primitive" (0) 0x183.2-0x183.2 (0.1) + 0x018| 03 | . | tag: "bit_string" (0x3) 0x183.3-0x183.7 (0.5) + 0x018| 81 81 | .. | length: 129 0x184-0x185.7 (2) + 0x018| 00 | . | unused_bits_count: 0 0x186-0x186.7 (1) + 0x018| 67 43 4c a8 a4 3e eb 1b 32| gCL..>..2| value: raw bits 0x187-0x206.7 (128) + 0x019|28 70 8b db eb fe f1 b3 70 39 95 34 33 26 ef 54|(p......p9.43&.T| + * |until 0x206.7 (128) | | + | | | [2]{}: record 0x207-0x20f.7 (9) + 0x020| 16 | . | type: "handshake" (22) (valid) 0x207-0x207.7 (1) + 0x020| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x208-0x209.7 (2) + 0x020| 00 04 | .. | length: 4 0x20a-0x20b.7 (2) + | | | message{}: 0x20c-0x20f.7 (4) + 0x020| 0e | . | type: "server_hello_done" (14) 0x20c-0x20c.7 (1) + 0x020| 00 00 00| ...| length: 0 0x20d-0x20f.7 (3) + | | | data: raw bits 0x210-NA (0) + | | | [3]{}: record 0x210-0x2be.7 (175) + 0x021|16 |. | type: "handshake" (22) (valid) 0x210-0x210.7 (1) + 0x021| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x211-0x212.7 (2) + 0x021| 00 aa | .. | length: 170 0x213-0x214.7 (2) + | | | message{}: 0x215-0x2be.7 (170) + 0x021| 04 | . | type: "new_session_ticket" (4) 0x215-0x215.7 (1) + 0x021| 00 00 a6 | ... | length: 166 0x216-0x218.7 (3) + 0x021| 00 00 01 2c | ..., | lifetime_hint: 300 0x219-0x21c.7 (4) + 0x021| 00 a0 | .. | ticket_length: 160 0x21d-0x21e.7 (2) + 0x021| c0| .| ticket: raw bits 0x21f-0x2be.7 (160) + 0x022|b4 67 52 a5 ca da 99 7a 28 d7 eb e7 a1 7e 31 c8|.gR....z(....~1.| + * |until 0x2be.7 (160) | | + | | | [4]{}: record 0x2bf-0x2c4.7 (6) + 0x02b| 14| .| type: "change_cipher_spec" (20) (valid) 0x2bf-0x2bf.7 (1) + 0x02c|03 03 |.. | version: "tls1.2" (0x303) (valid) 0x2c0-0x2c1.7 (2) + 0x02c| 00 01 | .. | length: 1 0x2c2-0x2c3.7 (2) + | | | message{}: 0x2c4-0x2c4.7 (1) + 0x02c| 01 | . | type: 1 0x2c4-0x2c4.7 (1) + | | | [5]{}: record 0x2c5-0x309.7 (69) + 0x02c| 16 | . | type: "handshake" (22) (valid) 0x2c5-0x2c5.7 (1) + 0x02c| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x2c6-0x2c7.7 (2) + 0x02c| 00 40 | .@ | length: 64 0x2c8-0x2c9.7 (2) + 0x02c| 23 5c 3c 7b a0 49| #\<{.I| encrypted_data: raw bits 0x2ca-0x309.7 (64) + 0x02d|32 4c 02 43 b2 2a aa c9 98 e4 b8 3b 78 ab 62 14|2L.C.*.....;x.b.| + * |until 0x309.7 (64) | | + | | | [6]{}: record 0x30a-0x79e.7 (1173) + 0x030| 17 | . | type: "application_data" (23) (valid) 0x30a-0x30a.7 (1) + 0x030| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x30b-0x30c.7 (2) + 0x030| 04 90 | .. | length: 1168 0x30d-0x30e.7 (2) + 0x030| ac| .| encrypted_data: raw bits 0x30f-0x79e.7 (1168) + 0x031|ca b9 7f 7f 0b 94 c8 e3 89 26 21 aa c0 f5 a9 b9|.........&!.....| + * |until 0x79e.7 (end) (1168) | | diff --git a/format/tls/testdata/ciphers/all.keylog b/format/tls/testdata/ciphers/all.keylog new file mode 100644 index 00000000..9f8725a9 --- /dev/null +++ b/format/tls/testdata/ciphers/all.keylog @@ -0,0 +1,219 @@ +# Cipher Suite ECDHE-RSA-AES256-GCM-SHA384 +CLIENT_RANDOM 52362c10a2665e323a2adb4b9da0c10d4a8823719272f8b4c97af24f92784812 9F9A0F19A02BDDBE1A05926597D622CCA06D2AF416A28AD9C03163B87FF1B0C67824BBDB595B32D8027DB566EC04FB25 +CLIENT_RANDOM 52362c1012cf23628256e745e903cea696e9f62a60ba0ae8311d70dea5e41949 9F9A0F19A02BDDBE1A05926597D622CCA06D2AF416A28AD9C03163B87FF1B0C67824BBDB595B32D8027DB566EC04FB25 +# Cipher Suite ECDHE-ECDSA-AES256-GCM-SHA384 +CLIENT_RANDOM 52362c10dc11d7fda79a49a516e8b725ee3f453b74307c9a84d0bd557a0ed992 C8614BBBC645CE250080C506527596A7FAAC5158E7DF4C5630210520855F6DB501EA396830F1409ACFB49B1BB4AED9CF +CLIENT_RANDOM 52362c10a4530e7bcee0704c9dce137017972c1bbeaa8143cea2f17b7881a837 C8614BBBC645CE250080C506527596A7FAAC5158E7DF4C5630210520855F6DB501EA396830F1409ACFB49B1BB4AED9CF +# Cipher Suite ECDHE-RSA-AES256-SHA384 +CLIENT_RANDOM 52362c108f76c8c0dcce66f5d575a72c5c33900bd3159b803757aaa528599297 7C76985C7E4961A89AF1771A17BB7129AA8E43341F1A1CE23B71F9A1837D8DFFF6404E2B87AE52B28623CEAD30BE3B2C +CLIENT_RANDOM 52362c101f4ff95c15cb6d385a1d4e432f5c6bbfaeadd37ae192c298675e4b10 7C76985C7E4961A89AF1771A17BB7129AA8E43341F1A1CE23B71F9A1837D8DFFF6404E2B87AE52B28623CEAD30BE3B2C +# Cipher Suite ECDHE-ECDSA-AES256-SHA384 +CLIENT_RANDOM 52362c1047ce0b34c18471f06cbc00c0fc8b0569a2db68aeb08fcff5bb86ff35 EECB64AE71CFAB29AF82D053664C4255F2598B5BD7CB5386DA8460273E82F0DF5EF13914EF99AE899A5924D3E26E3CEC +CLIENT_RANDOM 52362c10b2dea601cfa46be974650eefd0ff91aefcd9dbd6fcf66f2582b62484 EECB64AE71CFAB29AF82D053664C4255F2598B5BD7CB5386DA8460273E82F0DF5EF13914EF99AE899A5924D3E26E3CEC +# Cipher Suite ECDHE-RSA-AES256-SHA +CLIENT_RANDOM 52362c10be8774a91228070fe82326ef3378ab509ccf45d5d1a8b823a08d6d57 BD7FB3411FFB1ED0AFA54825CB26317853755FF90D59D6A1B585B6A7BFFA8B71F87A7978738DE6F50D9254E7E944AE78 +CLIENT_RANDOM 52362c104c53e6887c74b52d32c8e2c319ade9992dda6b4f0824877583443af7 BD7FB3411FFB1ED0AFA54825CB26317853755FF90D59D6A1B585B6A7BFFA8B71F87A7978738DE6F50D9254E7E944AE78 +# Cipher Suite ECDHE-ECDSA-AES256-SHA +CLIENT_RANDOM 52362c10b33d30f7a3876112a1e0b77d87e1a533686102e95ad7c5d29c77dfee 582AD7DF727767A535E48178C2A0F3D49A0BF7F2A0418106CC61A5E5934336F800919B83B74D4677005ACF05E3235289 +CLIENT_RANDOM 52362c10620d4f12a0ed6853e43153a13fa7e5a3eb26a497156cfd5eef082d49 582AD7DF727767A535E48178C2A0F3D49A0BF7F2A0418106CC61A5E5934336F800919B83B74D4677005ACF05E3235289 +# Cipher Suite DHE-DSS-AES256-GCM-SHA384 +CLIENT_RANDOM 52362c10e745c7a9d66cf4baf8f2c3e2e6df98b10d43b71f8c3f2cd365f3b238 CA5ADEA52509FF78FA5AB54FD7BCBE746408A605B9242F99EE478B4ED12970A732512EF4F5268A78CEC981F88E9EB698 +CLIENT_RANDOM 52362c102b43b6b0b943960bc715efccb87e8175806788f1d167604a6c519f50 CA5ADEA52509FF78FA5AB54FD7BCBE746408A605B9242F99EE478B4ED12970A732512EF4F5268A78CEC981F88E9EB698 +# Cipher Suite DHE-RSA-AES256-GCM-SHA384 +CLIENT_RANDOM 52362c10517bb5ca80a2fb76ca079108e3622a81e51ac680f8f59d23c0930ebd 68082E6823A9A37F3F1617EDAA3B310396A80615B8461C6223EE273A9C35F61A7385A85D4351E58C7E5318CAFA25A6A2 +CLIENT_RANDOM 52362c10915a44470a8ed331d7d3be3bc005bfb1869fda5d96b122f90020b056 68082E6823A9A37F3F1617EDAA3B310396A80615B8461C6223EE273A9C35F61A7385A85D4351E58C7E5318CAFA25A6A2 +# Cipher Suite DHE-RSA-AES256-SHA256 +CLIENT_RANDOM 52362c10290c68b9823744f8a8271f85ffa8ecc018ed3612c42cead99776d8fa 9F818DF288143418E5E61CB384AD3562FBF28A976E76E6156C3A1AE34972B07EB1B44F8FFBA0F4E9719B9FF18BE2446C +CLIENT_RANDOM 52362c10bf2c1ef46b0acf581bb3f98c7a857291b260a49a2620007a8bf7cdeb 9F818DF288143418E5E61CB384AD3562FBF28A976E76E6156C3A1AE34972B07EB1B44F8FFBA0F4E9719B9FF18BE2446C +# Cipher Suite DHE-DSS-AES256-SHA256 +CLIENT_RANDOM 52362c10a3b4e982460ed098086a76c96b4ec7bff293a85fd13f61829b603e40 7407B53E86ECEF8C46DBF99C468B1E4F6D89BDC49E018545C5B59AD89AC0B53AB735B9AEA84EB82380FF75252F0371E9 +CLIENT_RANDOM 52362c10b968e237be6d55f016f143efc91b42d977440321aaddef54ed627538 7407B53E86ECEF8C46DBF99C468B1E4F6D89BDC49E018545C5B59AD89AC0B53AB735B9AEA84EB82380FF75252F0371E9 +# Cipher Suite DHE-RSA-AES256-SHA +CLIENT_RANDOM 52362c1071edfc0b343a503326a7d217739ed8262fc4748d494e3831f1285894 864B07C84B5941D27EF44D48A20A06A7145EADEE588473B1B1930DB0932384F452FAD0867C1E830BB764112A26162972 +CLIENT_RANDOM 52362c10afbd2d1974cd2f1d4916825c3b8b10af81f43a1c069706c211e677c6 864B07C84B5941D27EF44D48A20A06A7145EADEE588473B1B1930DB0932384F452FAD0867C1E830BB764112A26162972 +# Cipher Suite DHE-DSS-AES256-SHA +CLIENT_RANDOM 52362c10043ad64aa698c1da4e6602ed5302f6bc8920fd23914a276b3bac487b 67A8419F0D444E1AF3CC31FFD8C3BC20B51AA0F3F839878CD890F16344289774B91A7F59914C42FEFCF73A34C2AB583A +CLIENT_RANDOM 52362c10a26206ee0d90f7ad1c72b6f39e08f165712539fe6dfff76e6d3c9aaf 67A8419F0D444E1AF3CC31FFD8C3BC20B51AA0F3F839878CD890F16344289774B91A7F59914C42FEFCF73A34C2AB583A +# Cipher Suite DHE-RSA-CAMELLIA256-SHA +CLIENT_RANDOM 52362c10111d7ada65c1f8ef74e63435321ecae860c418d391dc0a3aa1318122 8ED0129B9FA207F456D7BAB8CF4DD1B1157D4DC0F8FA3ADE4FACA82F7A746E1C078639513B00AF23EC10EF816F78AC61 +CLIENT_RANDOM 52362c107b28cfec4c36b8128b63c138854ea0fbde98fd4f3f14e0fe195d6196 8ED0129B9FA207F456D7BAB8CF4DD1B1157D4DC0F8FA3ADE4FACA82F7A746E1C078639513B00AF23EC10EF816F78AC61 +# Cipher Suite DHE-DSS-CAMELLIA256-SHA +CLIENT_RANDOM 52362c10f5a596401955d9ce5a12a0c269df79f73b1db79d4405df15def5b973 05AE44D22CAD2C3A0A1B4B8F4E9A0E39987953AEBB4A425001844B81EA08BB8608B87DE802BE0219B6B7B60D112BC56F +CLIENT_RANDOM 52362c103ea5f4085f493a4c5964a9a96baa38397cc625c514bee62bf1afb1db 05AE44D22CAD2C3A0A1B4B8F4E9A0E39987953AEBB4A425001844B81EA08BB8608B87DE802BE0219B6B7B60D112BC56F +# Cipher Suite ECDH-RSA-AES256-GCM-SHA384 +CLIENT_RANDOM 52362c10f92c6848635641f3c49ed0c9dc3351657ad53e66584a143754c4c209 1427AC9167559BDEAB30EBB300D6C8E17CB53D504356192EFF47CBAF8B5D3B7F45EF470D67FC15E9B57C38A834B8CC7B +CLIENT_RANDOM 52362c10ba0c1f836bc378c65f21bb4ab9316fbabfbaa20aacf76a61c3ab2b88 1427AC9167559BDEAB30EBB300D6C8E17CB53D504356192EFF47CBAF8B5D3B7F45EF470D67FC15E9B57C38A834B8CC7B +# Cipher Suite ECDH-ECDSA-AES256-GCM-SHA384 +CLIENT_RANDOM 52362c107f910cc2c89b828643a265db5ca409efaf4c8a4f810ddbdd0cbe6660 1A8372176BDF0A7ACE03BC9F6A85EADA6653ED43B6F71D4129F3CCE7641C914CB59CD5BE93429F0D6591DBB4D0688A6E +CLIENT_RANDOM 52362c10fccc6314bfbf2ac8806e746f480854ec67b72fd113512f21aded32b4 1A8372176BDF0A7ACE03BC9F6A85EADA6653ED43B6F71D4129F3CCE7641C914CB59CD5BE93429F0D6591DBB4D0688A6E +# Cipher Suite ECDH-RSA-AES256-SHA384 +CLIENT_RANDOM 52362c10519e900710345e9065fbce023f7c13c5bf179ed0cd02ff9bfdf0ac21 3865DE9BF643EC2DB0AB4535685B08BD6AF5D8312446D3E5610780F17D2C20058D587BFE2B9B00607BE81DD2621EA461 +CLIENT_RANDOM 52362c1061cef8205c93e66e3fbec7540e245258addc48e1ec244492ea2f9dbf 3865DE9BF643EC2DB0AB4535685B08BD6AF5D8312446D3E5610780F17D2C20058D587BFE2B9B00607BE81DD2621EA461 +# Cipher Suite ECDH-ECDSA-AES256-SHA384 +CLIENT_RANDOM 52362c10a27e4a9c6fb5b69ed4ad3ddf41142762321d7a754d31db2ddc39dada E92BFBB37ED53A89B8E5E00D2B371EB606CC64BC07C82E2D64068F1C44D4F60A0D0664EF1104A86C9D7B2881FE089AD2 +CLIENT_RANDOM 52362c106c51282e7d6ad6200c844ef4add44c5254c422ea275d7b1ff993d10d E92BFBB37ED53A89B8E5E00D2B371EB606CC64BC07C82E2D64068F1C44D4F60A0D0664EF1104A86C9D7B2881FE089AD2 +# Cipher Suite ECDH-RSA-AES256-SHA +CLIENT_RANDOM 52362c10479233f35e604435837f00dd6a5c9f196d4007bd492ee5b2849f50ac FEAE9B9AD3F7EC199B310DE915444EDB613398FCFC3B25789B9DD91AA8CE84414D8F70DD5A5D1528324F7284D5900762 +CLIENT_RANDOM 52362c10cabcd7802e115bed52afdedae0e9d65eebf9b9a98725c0742a3978ff FEAE9B9AD3F7EC199B310DE915444EDB613398FCFC3B25789B9DD91AA8CE84414D8F70DD5A5D1528324F7284D5900762 +# Cipher Suite ECDH-ECDSA-AES256-SHA +CLIENT_RANDOM 52362c100ddb0e59d14493a00615d46c53c355b9d3ecf41c428541f4892a8655 A381ECC3AA017B30D729676A07EB16CF9CF23134A7CE5217EEB2E35FC4858BA1B2FE9116AF3B81FCDC99C9D7E24CC632 +CLIENT_RANDOM 52362c10990bc0bc49fcb21712ca113f855c8395d3295807465a46f667cc11c2 A381ECC3AA017B30D729676A07EB16CF9CF23134A7CE5217EEB2E35FC4858BA1B2FE9116AF3B81FCDC99C9D7E24CC632 +# Cipher Suite AES256-GCM-SHA384 +CLIENT_RANDOM 52362c1044e91b35c429f1420218f0f78673acda14c950c40b49fba935414eee 5A45A031F3CFD5F7D66227C55F3012CB2DF38B86017029B43956F5191B62B71C1832310C84A10D46D39B1203EA08E1DD +CLIENT_RANDOM 52362c101267eba79b66131e37987d05d50a5f3077919568168517d5d2fcd442 5A45A031F3CFD5F7D66227C55F3012CB2DF38B86017029B43956F5191B62B71C1832310C84A10D46D39B1203EA08E1DD +# Cipher Suite AES256-SHA256 +CLIENT_RANDOM 52362c11110f64769ee957c5c436e4a175e2a546a6862182585c7ffa6bfda738 EAE6F152E40F5E65965A6FE6BC5EAC5BFED6084D53E274DEAD56FD382237AE31596158A1F2B6E0DDED7ECCC4413B1F14 +CLIENT_RANDOM 52362c11ac83a92ca793725e9277cd7920996f91d61de7c2cbed30fb1802fc3a EAE6F152E40F5E65965A6FE6BC5EAC5BFED6084D53E274DEAD56FD382237AE31596158A1F2B6E0DDED7ECCC4413B1F14 +# Cipher Suite AES256-SHA +CLIENT_RANDOM 52362c11f44d6fa49f33d2c9b93f5945f8b4fc4d6324dccd1ec6f1758dedb57b D764625DE57768F90972FEC7A5EAE89ED16FA9FED74C2A26825466C0025B4E2B8A8D44B7DA80FAA8973092AAC4BA81FA +CLIENT_RANDOM 52362c11a32978a8c06c017a060a453f75ab8ce82a30b31922d7501d35dabfca D764625DE57768F90972FEC7A5EAE89ED16FA9FED74C2A26825466C0025B4E2B8A8D44B7DA80FAA8973092AAC4BA81FA +# Cipher Suite CAMELLIA256-SHA +CLIENT_RANDOM 52362c11a0082472504009b23ef69a8fdaa03a1287765419ff25b8025e4ed156 75BDA487629564BEA99BDC80E9CBEFA0C636E4B2F6FA3569DAE8825065094CE85470185C5585D79A8C65145ED02C5D06 +CLIENT_RANDOM 52362c1126d5d4c1707322ffa776d04805112d70bbc33d09c87b41254d965ae4 75BDA487629564BEA99BDC80E9CBEFA0C636E4B2F6FA3569DAE8825065094CE85470185C5585D79A8C65145ED02C5D06 +# Cipher Suite ECDHE-RSA-DES-CBC3-SHA +CLIENT_RANDOM 52362c11c5d982c15394f4bb6e83ffb51caad5aacd4a69baee31edffb2df8990 7CAB907B307A0C6EF0B35C080F19363182BCBB9C5DE4DB19587E1D6E35A2530F75A4CE6AD954CCA24DCE3DE666742FFB +CLIENT_RANDOM 52362c11c36a0c2459170ec50ec783378f88125b203ae3c7333e6a0e6244053c 7CAB907B307A0C6EF0B35C080F19363182BCBB9C5DE4DB19587E1D6E35A2530F75A4CE6AD954CCA24DCE3DE666742FFB +# Cipher Suite ECDHE-ECDSA-DES-CBC3-SHA +CLIENT_RANDOM 52362c1165a222f1cfc061d331e9df127b7ffbbd8320f181053adcdc25628e51 E50885985680A95929E6BAB60A948EC2579AE25ADCC2FC94A99140CDE4211EB4F071089F526936E0F0C4E7008D85EC02 +CLIENT_RANDOM 52362c11a3c6419f3717023e55ae1550f87af6f4713a9b1abe19ff4802bd2bf0 E50885985680A95929E6BAB60A948EC2579AE25ADCC2FC94A99140CDE4211EB4F071089F526936E0F0C4E7008D85EC02 +# Cipher Suite EDH-RSA-DES-CBC3-SHA +CLIENT_RANDOM 52362c11a40a0c4bef4c36b34277494956349f15ca71e3767fa2d209a2f9c4db 3813FF5C7D7C04499F2732A959D8BD52491315A1C5B86FD456D10D03D6D66D1E3BB18A60C6044321794E49AD574E7E7D +CLIENT_RANDOM 52362c11182352a6de7fa16911c5811a3d59a002026c8940f97154840886cc75 3813FF5C7D7C04499F2732A959D8BD52491315A1C5B86FD456D10D03D6D66D1E3BB18A60C6044321794E49AD574E7E7D +# Cipher Suite EDH-DSS-DES-CBC3-SHA +CLIENT_RANDOM 52362c11f8a5acee04c88900c4b0b965e75c90704584144002092f79be7171b8 396B8B8D333F3276F29DDF25BB37A9FA91F7776A567F1E980157A78571080EC7EE126530A657D199FD17AD5514477771 +CLIENT_RANDOM 52362c11ff7bc1bc5487392ea00931e1c432fd5e1d58397f852e9652801833a7 396B8B8D333F3276F29DDF25BB37A9FA91F7776A567F1E980157A78571080EC7EE126530A657D199FD17AD5514477771 +# Cipher Suite ECDH-RSA-DES-CBC3-SHA +CLIENT_RANDOM 52362c11063432cc84c9862dd709c8b1989c7de85ebdd48d70181ca7e4503cf4 8C8B8740B3DF1CF2F45B2368484E010A957EA27B9EF51697C745CFC045E073239018D8C8C1A3521EA6CAD72E93B4B85A +CLIENT_RANDOM 52362c110a91fff559eaabcad0bc620c0c8a8abe19afd190294bac643c0a8725 8C8B8740B3DF1CF2F45B2368484E010A957EA27B9EF51697C745CFC045E073239018D8C8C1A3521EA6CAD72E93B4B85A +# Cipher Suite ECDH-ECDSA-DES-CBC3-SHA +CLIENT_RANDOM 52362c11d1cd8d3e2f51c7a440cc4a231045cb8dbfcd298836af1213f181f05c CFE25A8179219694D8DB62940D6873C8A53BB9B77BE61DC515EE0D3E90463A7DBA09CD6EC69356DEEEE8B7C82F38E9C1 +CLIENT_RANDOM 52362c11eff648fef585b88eee6d8fe7ea20b8a8efba7d989413207592bbbdf3 CFE25A8179219694D8DB62940D6873C8A53BB9B77BE61DC515EE0D3E90463A7DBA09CD6EC69356DEEEE8B7C82F38E9C1 +# Cipher Suite DES-CBC3-SHA +CLIENT_RANDOM 52362c11565d8f90f9f37443365232e0a878cedb00767cef2734886ec8431abd 42C000F152DA2A27B17B11ABC19DB1A53E0AB28609DD4DDD5D77CB3C8D95BFD1FEBB0E6C54507DC86CEA774736BD06DA +CLIENT_RANDOM 52362c11405664224509d2dda3a94d18c47bab49320a280922df192258fd8ca6 42C000F152DA2A27B17B11ABC19DB1A53E0AB28609DD4DDD5D77CB3C8D95BFD1FEBB0E6C54507DC86CEA774736BD06DA +# Cipher Suite ECDHE-RSA-AES128-GCM-SHA256 +CLIENT_RANDOM 52362c11e2efd74f51996c0c27873269493ae8ae238a7a3d4f1a23ea023caecc A479844BBE11072BB366004546EDA7F742161928FA72A7C38D01C929EADAA278622CFCC0B7FD8E137025B0D17C965D7A +CLIENT_RANDOM 52362c11fad4393a5b4b94e0fa5b028a5c50ab819bf1d8615862b4604d5d06f1 A479844BBE11072BB366004546EDA7F742161928FA72A7C38D01C929EADAA278622CFCC0B7FD8E137025B0D17C965D7A +# Cipher Suite ECDHE-ECDSA-AES128-GCM-SHA256 +CLIENT_RANDOM 52362c11148db7d5436142b499e950f45a9a81cd76bac23b6c188e4d803f9ef9 F8F6B51C844AE610B046743F0787CE759EA36C2FEA1288A066DCD45BCFAF6FC98CB78D9A13D8817769F17DE80B8488C1 +CLIENT_RANDOM 52362c11a45081e738cfd40b2732cdf919d9637358045fba53cb9176127ae8cc F8F6B51C844AE610B046743F0787CE759EA36C2FEA1288A066DCD45BCFAF6FC98CB78D9A13D8817769F17DE80B8488C1 +# Cipher Suite ECDHE-RSA-AES128-SHA256 +CLIENT_RANDOM 52362c1183b3bd1f4a0b8182b72cb776cab0908b11667bffe66018dae595d253 D5230B2F78928A2DA043853E9D63C9E75110BF367CCA4A4732332B6C33ED40AC1DFF2EF3E4CD121A904D537D49D688D4 +CLIENT_RANDOM 52362c11ab28ef3ffe17f2cc7d9c0f5926307e69a8c595a7fb2801117d44051b D5230B2F78928A2DA043853E9D63C9E75110BF367CCA4A4732332B6C33ED40AC1DFF2EF3E4CD121A904D537D49D688D4 +# Cipher Suite ECDHE-ECDSA-AES128-SHA256 +CLIENT_RANDOM 52362c11b640ffec8ba8a097e03055bfd2ddff81c7871dcaf5ae9f83d97b3851 4E7F791622A31B90921F6F23F1043613D21BE99F8FD34713436419816E8297323566347D9481473994C55973B4FFEF1C +CLIENT_RANDOM 52362c11220ab9b3153147e98d2328b5c2e472d9d40d548be05168fb5c094d9b 4E7F791622A31B90921F6F23F1043613D21BE99F8FD34713436419816E8297323566347D9481473994C55973B4FFEF1C +# Cipher Suite ECDHE-RSA-AES128-SHA +CLIENT_RANDOM 52362c119fdd9fbe08b5a2d433b2db2c39ce7a1c8d7c6cfc89b2ebbb40e3be89 761254A338A335F1BF936804BF76CF44AFF3D30D36822F4802718A904A02C974691E82227C2CCDEAE3C59A6C093AAAAE +CLIENT_RANDOM 52362c11d2ee1ccb85e52b70a0889c3e4d161e7f1e2f65bce5e2f8120a714187 761254A338A335F1BF936804BF76CF44AFF3D30D36822F4802718A904A02C974691E82227C2CCDEAE3C59A6C093AAAAE +# Cipher Suite ECDHE-ECDSA-AES128-SHA +CLIENT_RANDOM 52362c110c5e36ec304edf897e1aec3a2a33de9c85c9331a52ff715ef4f5a8fd 814287453F6F8CB6C8E83D205C4A4A4A3DD083510D9F34D024E47FD075513A5678167569030DC89557E30E3A21A29FFA +CLIENT_RANDOM 52362c11e2f4401b52aff47a3456526524d188da30dd21371cc47923fb13621b 814287453F6F8CB6C8E83D205C4A4A4A3DD083510D9F34D024E47FD075513A5678167569030DC89557E30E3A21A29FFA +# Cipher Suite DHE-DSS-AES128-GCM-SHA256 +CLIENT_RANDOM 52362c11f9e4a177683b92f00c683507c38acb611ecf27e801706e5fe9c1e005 A80779FB8EA3FAC4E412CDA7D9709D3AFC584943563B891F28CB75238869150E855CAEE300413E63FF94B92C9407F413 +CLIENT_RANDOM 52362c1133ea00c0a59e71cf5b5e86ce44a58da261336bbfa7ab6a708fff414f A80779FB8EA3FAC4E412CDA7D9709D3AFC584943563B891F28CB75238869150E855CAEE300413E63FF94B92C9407F413 +# Cipher Suite DHE-RSA-AES128-GCM-SHA256 +CLIENT_RANDOM 52362c11a55ab98a58296007579e180722812d4003f7e099d544f3030dc086a9 56775622D5205A82607A4E9EFB716F693DF827D44695FCB63D2BDEEE76EA4F905E8125D98441D1819297C497172A2292 +CLIENT_RANDOM 52362c1184ee4756a6f0ad440075b9173f1a810bd64317cbd55d1e58e060a310 56775622D5205A82607A4E9EFB716F693DF827D44695FCB63D2BDEEE76EA4F905E8125D98441D1819297C497172A2292 +# Cipher Suite DHE-RSA-AES128-SHA256 +CLIENT_RANDOM 52362c119b62cbb23dce1927ec4b861eee45a7fb39b099959ecae5637b7b69ae D03E160781D4DF5D72095498F4CCCC35F33A7C8B871A005192DD0B10E7508C6DDFEF04A5A350064205CD1CDDE3DFEA2E +CLIENT_RANDOM 52362c1142c0678233fd020a30b202d7c1f01488e6b5315dfd395e782c49945c D03E160781D4DF5D72095498F4CCCC35F33A7C8B871A005192DD0B10E7508C6DDFEF04A5A350064205CD1CDDE3DFEA2E +# Cipher Suite DHE-DSS-AES128-SHA256 +CLIENT_RANDOM 52362c1131e949825b5e1a55a053019febd9d6db0a6c5f1f605fd53720502af9 075C8CB0373F42EF59E102D89E9479BCBB07B8363F7EA93384A015BD8103ED1C6D665F70E390D6DA3A03312F3C97B159 +CLIENT_RANDOM 52362c111f0833be8de41055a12b88418799d49e9b47b1be30f544476bb9930e 075C8CB0373F42EF59E102D89E9479BCBB07B8363F7EA93384A015BD8103ED1C6D665F70E390D6DA3A03312F3C97B159 +# Cipher Suite DHE-RSA-AES128-SHA +CLIENT_RANDOM 52362c11ebbd2d079681549dfdd3161f694bfcc2c6a76af6c7fe8f4ce8ced3f7 6587BFB3F77A5F981FE878EBDE10C6A7095CF9CF1165DC079E9045FBE1C1DBCA5A3AAC30058FB46181C6BF6648A4D5C5 +CLIENT_RANDOM 52362c119062b6d7dbb53b00307d474310470b5648568c86aadfc90b2b3a155c 6587BFB3F77A5F981FE878EBDE10C6A7095CF9CF1165DC079E9045FBE1C1DBCA5A3AAC30058FB46181C6BF6648A4D5C5 +# Cipher Suite DHE-DSS-AES128-SHA +CLIENT_RANDOM 52362c115b4b83c268058995663e93061f8118c1cb3579cc68c068f4570805ff D01B44B10A72E2C4805D55C4B004B06CF0EEF7CE613E1F10B34F665A887DABBC82204DFB6EB82D3E306030735EDCD0EC +CLIENT_RANDOM 52362c1117e33e4c7e17a2fcbca4b0059a3e8ea6e7c4bfe2c879da6ff3ae32cd D01B44B10A72E2C4805D55C4B004B06CF0EEF7CE613E1F10B34F665A887DABBC82204DFB6EB82D3E306030735EDCD0EC +# Cipher Suite DHE-RSA-SEED-SHA +CLIENT_RANDOM 52362c11b0f138fa28bc29903e6d65de70245623c5d282063adaf6606cd1868f FE9C447F92D41CCC7CD5838EF2CD4AB64BEFD5679E82125F1956218641BA2999AB8C96B7650D34F1F26792A1DB4C8E93 +CLIENT_RANDOM 52362c11ceb2ac82f5930ba90f1140deb1545ccf4e5c4934dab4db457478c905 FE9C447F92D41CCC7CD5838EF2CD4AB64BEFD5679E82125F1956218641BA2999AB8C96B7650D34F1F26792A1DB4C8E93 +# Cipher Suite DHE-DSS-SEED-SHA +CLIENT_RANDOM 52362c11bc7ac8e30396d39b1519d1c7d368a31b2fec5428c063ddaa304e7d58 9F7A0F2C7A6C2610360EF421A72C0A48991E1F9A3DC4FEEEE1F6B24D25525489B42486AE953133105C43F45906BCAEDA +CLIENT_RANDOM 52362c11b0c97a93cdc90c3311003993c777ac30f238cbddf058511ae8c48788 9F7A0F2C7A6C2610360EF421A72C0A48991E1F9A3DC4FEEEE1F6B24D25525489B42486AE953133105C43F45906BCAEDA +# Cipher Suite DHE-RSA-CAMELLIA128-SHA +CLIENT_RANDOM 52362c119d3e055c143efcb44fcfba695685044465c0705a6b71a86c757b842a 38EA70E20375C2991FED7DC27D93A7EC342502823F22C888708C40E53319EEEF5692832F86EE90F0F94BC70CB52F7700 +CLIENT_RANDOM 52362c1142a6d31f250ff0ebe4491fbbcc36ca468794f35758cba7d1708ea616 38EA70E20375C2991FED7DC27D93A7EC342502823F22C888708C40E53319EEEF5692832F86EE90F0F94BC70CB52F7700 +# Cipher Suite DHE-DSS-CAMELLIA128-SHA +CLIENT_RANDOM 52362c117e146a7da20e0e64497970fe16d6d37459a4d75a673daf7735e284f5 00C0E17E041A0CF7F519FB53863516177142CD3E61CB070E44151BFAA1D5BE054F9B94A928B0C0510452CDE6DBF1562D +CLIENT_RANDOM 52362c11bc093d68054369b9ce3fedf99eaad902e25dced37e6486179c5c2fd2 00C0E17E041A0CF7F519FB53863516177142CD3E61CB070E44151BFAA1D5BE054F9B94A928B0C0510452CDE6DBF1562D +# Cipher Suite ECDH-RSA-AES128-GCM-SHA256 +CLIENT_RANDOM 52362c11ce47f1cde49844cf4107b2865179c1ce5403e798682840a8cbcec203 EB6130C0C14C77230895489EC3C9B496670FAD0C19C939CF389396E4C5928CA3F8D0C94C85E72B7A84EED15AC7E828D7 +CLIENT_RANDOM 52362c11fc5ff7cd98b7fd5a8d655983e1be9658852dbb4ced89f6d15eb1a71d EB6130C0C14C77230895489EC3C9B496670FAD0C19C939CF389396E4C5928CA3F8D0C94C85E72B7A84EED15AC7E828D7 +# Cipher Suite ECDH-ECDSA-AES128-GCM-SHA256 +CLIENT_RANDOM 52362c1114e663f1a218e06e0732eda8feaafc5b4db8802763bf95b2a73064dc FB48CE901F256E52C4C5F2C9D534C403407A8FA9D239E4C47E4F43C039BE6E1B3F7F14CEBCC1FB049DF4359166286B81 +CLIENT_RANDOM 52362c110b500929d647888c32c33b7a1d0cb703cef46550296b14f20acc3994 FB48CE901F256E52C4C5F2C9D534C403407A8FA9D239E4C47E4F43C039BE6E1B3F7F14CEBCC1FB049DF4359166286B81 +# Cipher Suite ECDH-RSA-AES128-SHA256 +CLIENT_RANDOM 52362c11f5dfcad5d6b57d522e835df254ab8b6a63b10b45b4a62a8b82f0ac45 0E8900A5C05306E91CE4D1AE6ECE92784C3242C0A0C6948FEB175E5D981650B63A0E0A34BFFC526CE5DD73BFA0D2D08C +CLIENT_RANDOM 52362c1114dc64b05d6b5e733e6d55f257b88fa3abfdbefb5cf7def9fa9c825c 0E8900A5C05306E91CE4D1AE6ECE92784C3242C0A0C6948FEB175E5D981650B63A0E0A34BFFC526CE5DD73BFA0D2D08C +# Cipher Suite ECDH-ECDSA-AES128-SHA256 +CLIENT_RANDOM 52362c1134da34ff1df7575cc7ef463d3f0ef2afa84dc2f0ce1b6233d198c1bf F4A29622388983C89BB6C2437BFE8CFAA596EE39782E2EE5CB0D9D2EC1379A60D7F2236DBB7D35389E88B5B1767C8658 +CLIENT_RANDOM 52362c117c210d4a2dea1d3211669062b03d26b461fff340c6839fb47d7b23e8 F4A29622388983C89BB6C2437BFE8CFAA596EE39782E2EE5CB0D9D2EC1379A60D7F2236DBB7D35389E88B5B1767C8658 +# Cipher Suite ECDH-RSA-AES128-SHA +CLIENT_RANDOM 52362c11bd84568299b58454be24f0c784ee54261cdef0fbe25ca50a844b2d8c 9121B113BB6E612019F112A3A08C10AF9E2FCF07C52155DE4FB7CE34FACC8E484C9397ABFB5EB21A1A98E332A04D9BE7 +CLIENT_RANDOM 52362c116f413f9dad7438519042d1fb65fe9a7f4699f3e29be9ea314fff364b 9121B113BB6E612019F112A3A08C10AF9E2FCF07C52155DE4FB7CE34FACC8E484C9397ABFB5EB21A1A98E332A04D9BE7 +# Cipher Suite ECDH-ECDSA-AES128-SHA +CLIENT_RANDOM 52362c116083dff0df331ba80178023b008421e7fab1ee0d87d7fd6fad807110 D37E59A72D4A3020AA24DD50D652A74B54F959B0B555C88377089C8F7C0DFD52B98BD0EEB15726ED0E5E024CB569FA1D +CLIENT_RANDOM 52362c11b9a141c20d3464496a3544850311b5ccd6614ca41902d1312e9bd40e D37E59A72D4A3020AA24DD50D652A74B54F959B0B555C88377089C8F7C0DFD52B98BD0EEB15726ED0E5E024CB569FA1D +# Cipher Suite AES128-GCM-SHA256 +CLIENT_RANDOM 52362c11e48d43143e8897a68a6fa6c165c557fda9b46dd38aaeb0af6c4ac5eb 684277D17574728AC9DCF82027F2130463FA26E739D8F5C27B3915BBC08CE1DADC11860725925648C494FE84CECAE427 +CLIENT_RANDOM 52362c115f212b09cdc7f589a3f3bf46ac2230a9b2d3b37560a728d88ad8a8c8 684277D17574728AC9DCF82027F2130463FA26E739D8F5C27B3915BBC08CE1DADC11860725925648C494FE84CECAE427 +# Cipher Suite AES128-SHA256 +CLIENT_RANDOM 52362c115f75b3498d8b082690692b17fdc85d2d5c3bb9b75a572a065cb8edfe CC33AC8ED676A6A2A45DA71581DA2FB697FBA188A152FA81FECF88AFB8648727E1D54CF33BD10AAC5B84CDADD8C983D7 +CLIENT_RANDOM 52362c11ff0ea3a000e1b48dc2d99e04c6d06ea1a061d5b8ddbf87b001745a27 CC33AC8ED676A6A2A45DA71581DA2FB697FBA188A152FA81FECF88AFB8648727E1D54CF33BD10AAC5B84CDADD8C983D7 +# Cipher Suite AES128-SHA +CLIENT_RANDOM 52362c1149304949df1052c2e4233ed4120123b6d4fd25e37e81b40d2df0f1d6 B575F780744D67B43F013BAA127442B2A64D76CDE0FF192266FE1DB95D8A68ED3A587366742B67FF669E3387BB570E0F +CLIENT_RANDOM 52362c11c151fc765b6c802ba6b6ff2cadea7938f409b92adc9d5cec844e7f4b B575F780744D67B43F013BAA127442B2A64D76CDE0FF192266FE1DB95D8A68ED3A587366742B67FF669E3387BB570E0F +# Cipher Suite SEED-SHA +CLIENT_RANDOM 52362c113e2f6025cf9cc2b13d101d358e8971b0e427b08501b9a40b2df51f14 5F5E9F2CEE781D9759CFD0B861AA3E1DEFB18A3F137A4336840566A4BC50E2B9BCBDA77805D3421E8B5199F96398522B +CLIENT_RANDOM 52362c11dda69b7996360ade7a5272b095d1f1fb498ef5d86d429a7382cee9f6 5F5E9F2CEE781D9759CFD0B861AA3E1DEFB18A3F137A4336840566A4BC50E2B9BCBDA77805D3421E8B5199F96398522B +# Cipher Suite CAMELLIA128-SHA +CLIENT_RANDOM 52362c11ffe98cebd1aad68b5e183abc0c4ee2fe0bd6817a1652fbdd3924639e A3E58607DEE70B3E7AEA635A9FC55CB3566728CEF80EFF344FDAE385475ED04DD42FA910BB518798DB57B3607FEF873D +CLIENT_RANDOM 52362c11b89b370ef666b050f26c36c1de0933593ef0248f2cfb0071322f342c A3E58607DEE70B3E7AEA635A9FC55CB3566728CEF80EFF344FDAE385475ED04DD42FA910BB518798DB57B3607FEF873D +# Cipher Suite IDEA-CBC-SHA +CLIENT_RANDOM 52362c1190f514a2577e4eb8c12d02e46e6f1ef6173efbe66257875c1604632d 6796B5BBBD271496ACB18D593EEEA7141AE9DC4646B63BE6D470E5215A0D5563EF090188B9810836A5D3DC1B8FDE5048 +CLIENT_RANDOM 52362c1139a8dfa41a8946704cfe30e4307d9dbe7e84e87ab09934a773f67fee 6796B5BBBD271496ACB18D593EEEA7141AE9DC4646B63BE6D470E5215A0D5563EF090188B9810836A5D3DC1B8FDE5048 +# Cipher Suite ECDHE-RSA-RC4-SHA +CLIENT_RANDOM 52362c11a711287ea7b0d48f21c1f2db30b2778b0e6ef8c8f9cd314cbe90b0cd F18D9CBA2A426DD66D1A45A988192BB82D5EBAA81C39BB2163F01B3A5B1FF7C7B5D74237144AEF681D97811D91F2C42D +CLIENT_RANDOM 52362c119ff3dadafc030ed2cb264020b5ecb9a18dc970a5363d5aa9dff98b0e F18D9CBA2A426DD66D1A45A988192BB82D5EBAA81C39BB2163F01B3A5B1FF7C7B5D74237144AEF681D97811D91F2C42D +# Cipher Suite ECDHE-ECDSA-RC4-SHA +CLIENT_RANDOM 52362c1144f5cdd92511e3190e0887d3f9eb80eb6bc60ba486987b9337552814 26A99580A4024AE3A5ADACA9BBC7C68C705C2ED01E37F33B9ACF06F639FE93A4687EA17D54770BBBE47D298F1B0043F2 +CLIENT_RANDOM 52362c11f2a5036f90428c9e47a04a7805d5aa5a923e7db7f2c9279d21e21158 26A99580A4024AE3A5ADACA9BBC7C68C705C2ED01E37F33B9ACF06F639FE93A4687EA17D54770BBBE47D298F1B0043F2 +# Cipher Suite ECDH-RSA-RC4-SHA +CLIENT_RANDOM 52362c117edfd4758468e764de8f5f0cf48efba7656d7384e6f329e027a8518c 380BB66721C84BAA5B74BA51C9F770E7F1FB82E6766D5611FD1F0E113AA3085580A5FFE51BE819074CE27D87EFD59740 +CLIENT_RANDOM 52362c110fa8631eb6fa4105fd1a6fd24963393a6fbcdd33d93bf8b1e347f976 380BB66721C84BAA5B74BA51C9F770E7F1FB82E6766D5611FD1F0E113AA3085580A5FFE51BE819074CE27D87EFD59740 +# Cipher Suite ECDH-ECDSA-RC4-SHA +CLIENT_RANDOM 52362c118d5fdc0e3252769abbb91de2952b152587c34924589b73e510093530 C3863F5314D57BA847EB15717DE1443ABEC5DDE1CADBE34DBB1566376D903EF9C814087F4462CB5F5FD09A61EC608065 +CLIENT_RANDOM 52362c11f11063e669206fdd99bc89c663263f0e5888a3eb6b03f93288df90dc C3863F5314D57BA847EB15717DE1443ABEC5DDE1CADBE34DBB1566376D903EF9C814087F4462CB5F5FD09A61EC608065 +# Cipher Suite RC4-SHA +CLIENT_RANDOM 52362c113d58235978a2606f9d0b8884d3e76be1b1120ab05dd3c82256049c9f 62BDF1495C38E07A039311F45E641F18F8CC522163D6FB39B9BE0A6FCC0DBA17A36EA252D4EB21C9701945EE269C725E +CLIENT_RANDOM 52362c11f233d4bb4bde541e7381b0a55b355d8d2250077c9e7187e9f9dc491e 62BDF1495C38E07A039311F45E641F18F8CC522163D6FB39B9BE0A6FCC0DBA17A36EA252D4EB21C9701945EE269C725E +# Cipher Suite RC4-MD5 +CLIENT_RANDOM 4575c2fa383b34ff9c5aa53c27a31188a5cbd9976dd1cbee23124aba078bc2f1 15FDADE5E6278E636A9DD064560E54C5BACDAC6E9C0E83372B50D7C35FD7467BDB7E5725E9E611628E753202A371D632 +CLIENT_RANDOM 52362c1178a17aff8abbcae88d88a3a676b690e2e71f41333632102babb34bfa 15FDADE5E6278E636A9DD064560E54C5BACDAC6E9C0E83372B50D7C35FD7467BDB7E5725E9E611628E753202A371D632 +# Cipher Suite EDH-RSA-DES-CBC-SHA +CLIENT_RANDOM 52362c1143bbfcc905cc749b716744db0da3d20ce73e6d36220753041d4040cd 415A677D16E480F23915EB947E054EFD2E4A3F745C8776C097FF950208757077AAE87966E2A67FDCC3CAF7CD167A80DD +CLIENT_RANDOM 52362c11ad0bec20a9c96a45ba085937e38155dc14cf43715ceb5c5c9a5f9f02 415A677D16E480F23915EB947E054EFD2E4A3F745C8776C097FF950208757077AAE87966E2A67FDCC3CAF7CD167A80DD +# Cipher Suite EDH-DSS-DES-CBC-SHA +CLIENT_RANDOM 52362c11ea3f30b08e1b89ebf775bb4162ead63ace9c9089ef61271020907bf2 E64A94E7158E131B77D634C48C48275D1B311F64AB43E48153295EBA32236F21676B7827E8ADA12C8187B27E2E99ACE5 +CLIENT_RANDOM 52362c11301ca561dc6e3ea3f9650d9936c45c17c2903caf02fd4ed77df3d778 E64A94E7158E131B77D634C48C48275D1B311F64AB43E48153295EBA32236F21676B7827E8ADA12C8187B27E2E99ACE5 +# Cipher Suite DES-CBC-SHA +CLIENT_RANDOM 52362c111841fef4d21c2e345213a9b91ef1ea2952a02d6a11bf4bdc317b1e93 5A5A96307101D134F5A832068F7F3C07E9DD3639F997F8F514666E3839B2A747D488CAD1291A2C40E5220179B65B47FA +CLIENT_RANDOM 52362c112d8f6b82ed16e98669adad7f8c37bd3e573ca441feadb0e2da996ea1 5A5A96307101D134F5A832068F7F3C07E9DD3639F997F8F514666E3839B2A747D488CAD1291A2C40E5220179B65B47FA +# Cipher Suite EXP-EDH-RSA-DES-CBC-SHA +CLIENT_RANDOM 52362c11ed309b0df71e97f6fe7a5630115a73a031a8660044ac05349345e078 017700A6CFDEA17B9BE34B02C3D2B4A617EAE99D1972B2D28BAD862FEC56FD0BBD2FBD9ED557FDEB245373998C10151F +CLIENT_RANDOM 52362c11c03c59902cba8131da7b1dd91a63c218567aafee854a6f68dfaf802c 017700A6CFDEA17B9BE34B02C3D2B4A617EAE99D1972B2D28BAD862FEC56FD0BBD2FBD9ED557FDEB245373998C10151F +# Cipher Suite EXP-EDH-DSS-DES-CBC-SHA +CLIENT_RANDOM 52362c1128d90fecb26441d16d40377a8b21b042039bb734e284ac88126d573d 155F129D05402271269E1B894730FA94B9476F7ABBF7FD9F400FFFDF63FBE3E3F850AE2D839829EFE4E3C94D6AFB86EE +CLIENT_RANDOM 52362c1189985878056901b3f398c6c91268fcfd21a6f63282ee18d9750fbb50 155F129D05402271269E1B894730FA94B9476F7ABBF7FD9F400FFFDF63FBE3E3F850AE2D839829EFE4E3C94D6AFB86EE +# Cipher Suite EXP-DES-CBC-SHA +CLIENT_RANDOM 52362c112c084c4d7323987068c59e1856590ff2080bc42ffd2b5b50f6d01812 50FB17969FDA47BCFE33B1B07959D3A6FB68611DF290C24A449D79847B22A6D2B64478F7F4AEB38C6DCB6818335A1512 +CLIENT_RANDOM 52362c112f6169f96fbc1426fa3bbf2efae1d53986cd1abfc4c266317103ba66 50FB17969FDA47BCFE33B1B07959D3A6FB68611DF290C24A449D79847B22A6D2B64478F7F4AEB38C6DCB6818335A1512 +# Cipher Suite EXP-RC2-CBC-MD5 +CLIENT_RANDOM 6e9015fda12c6fae63ef1ddf06be63aa65ed23349f74e703764e5100282d3382 D1940A0057008819B3B139B4C9F5328F8AEEECB844CB2A4F31C841722510D757BA870A089A89FEC788A0E42E61F30BD1 +CLIENT_RANDOM 52362c11659db70ffa877f2ec79984bfb38a702ae9477341060f8caf3599bf88 D1940A0057008819B3B139B4C9F5328F8AEEECB844CB2A4F31C841722510D757BA870A089A89FEC788A0E42E61F30BD1 +# Cipher Suite EXP-RC4-MD5 +CLIENT_RANDOM 3b5cffc32014f2cf0f8bee7d33c1ac3020d54115862a3aaedcf3e5557caf9218 2F94FD5BE4DD0473BBEC947189729C887A32A2815F185D813C5B354510570E0B8A9673646594906504A3C8575B5F43C8 +CLIENT_RANDOM 52362c11b0ec097c100f6b3926742917017075e77e3d0842242cec3a53449400 2F94FD5BE4DD0473BBEC947189729C887A32A2815F185D813C5B354510570E0B8A9673646594906504A3C8575B5F43C8 diff --git a/format/tls/testdata/dump-broken.pcapng b/format/tls/testdata/dump-broken.pcapng new file mode 100644 index 0000000000000000000000000000000000000000..c5b2310a9495fb9ddce6f585f3d1d5109039a123 GIT binary patch literal 7568 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 z | + 0x0004| 00 06 | .. | cipher_suit: "TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5" (0x6) 0x4c-0x4d.7 (2) + 0x0004| 00 | . | compression_method: "null" (0x0) 0x4e-0x4e.7 (1) + 0x0004| 00| .| extensions_length: 5 0x4f-0x50.7 (2) + 0x0005|05 |. | + | | | extensions[0:1]: 0x51-0x55.7 (5) + | | | [0]{}: extension 0x51-0x55.7 (5) + 0x0005| ff 01 | .. | type: "renegotiation_info" (65281) 0x51-0x52.7 (2) + 0x0005| 00 01 | .. | length: 1 0x53-0x54.7 (2) + 0x0005| 00 | . | data: raw bits 0x55-0x55.7 (1) + | | | [1]{}: record 0x56-0x381.7 (812) + 0x0005| 16 | . | type: "handshake" (22) (valid) 0x56-0x56.7 (1) + 0x0005| 03 00 | .. | version: "ssl" (0x300) (valid) 0x57-0x58.7 (2) + 0x0005| 03 27 | .' | length: 807 0x59-0x5a.7 (2) + | | | message{}: 0x5b-0x381.7 (807) + 0x0005| 0b | . | type: "certificate" (11) 0x5b-0x5b.7 (1) + 0x0005| 00 03 23 | ..# | length: 803 0x5c-0x5e.7 (3) + 0x0005| 00| .| certificates_length: 800 0x5f-0x61.7 (3) + 0x0006|03 20 |. | + | | | certificates[0:1]: 0x62-0x381.7 (800) + | | | [0]{}: certificate 0x62-0x381.7 (800) + 0x0006| 00 03 1d | ... | length: 797 0x62-0x64.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x65-0x381.7 (797) + 0x0006| 30 | 0 | class: "universal" (0) 0x65-0x65.1 (0.2) + 0x0006| 30 | 0 | form: "constructed" (1) 0x65.2-0x65.2 (0.1) + 0x0006| 30 | 0 | tag: "sequence" (0x10) 0x65.3-0x65.7 (0.5) + 0x0006| 82 03 19 | ... | length: 793 0x66-0x68.7 (3) + | | | constructed[0:3]: 0x69-0x381.7 (793) + | | | [0]{}: object 0x69-0x26d.7 (517) + 0x0006| 30 | 0 | class: "universal" (0) 0x69-0x69.1 (0.2) + 0x0006| 30 | 0 | form: "constructed" (1) 0x69.2-0x69.2 (0.1) + 0x0006| 30 | 0 | tag: "sequence" (0x10) 0x69.3-0x69.7 (0.5) + 0x0006| 82 02 01 | ... | length: 513 0x6a-0x6c.7 (3) + | | | constructed[0:8]: 0x6d-0x26d.7 (513) + | | | [0]{}: object 0x6d-0x71.7 (5) + 0x0006| a0 | . | class: "context" (2) 0x6d-0x6d.1 (0.2) + 0x0006| a0 | . | form: "constructed" (1) 0x6d.2-0x6d.2 (0.1) + 0x0006| a0 | . | tag: 0 0x6d.3-0x6d.7 (0.5) + 0x0006| 03 | . | length: 3 0x6e-0x6e.7 (1) + | | | constructed[0:1]: 0x6f-0x71.7 (3) + | | | [0]{}: object 0x6f-0x71.7 (3) + 0x0006| 02| .| class: "universal" (0) 0x6f-0x6f.1 (0.2) + 0x0006| 02| .| form: "primitive" (0) 0x6f.2-0x6f.2 (0.1) + 0x0006| 02| .| tag: "integer" (0x2) 0x6f.3-0x6f.7 (0.5) + 0x0007|01 |. | length: 1 0x70-0x70.7 (1) + 0x0007| 02 | . | value: 2 0x71-0x71.7 (1) + | | | [1]{}: object 0x72-0x7c.7 (11) + 0x0007| 02 | . | class: "universal" (0) 0x72-0x72.1 (0.2) + 0x0007| 02 | . | form: "primitive" (0) 0x72.2-0x72.2 (0.1) + 0x0007| 02 | . | tag: "integer" (0x2) 0x72.3-0x72.7 (0.5) + 0x0007| 09 | . | length: 9 0x73-0x73.7 (1) + 0x0007| 00 f1 ba 44 67 c2 52 0e be | ...Dg.R.. | value: 17418309721241292478 0x74-0x7c.7 (9) + | | | [2]{}: object 0x7d-0x8b.7 (15) + 0x0007| 30 | 0 | class: "universal" (0) 0x7d-0x7d.1 (0.2) + 0x0007| 30 | 0 | form: "constructed" (1) 0x7d.2-0x7d.2 (0.1) + 0x0007| 30 | 0 | tag: "sequence" (0x10) 0x7d.3-0x7d.7 (0.5) + 0x0007| 0d | . | length: 13 0x7e-0x7e.7 (1) + | | | constructed[0:2]: 0x7f-0x8b.7 (13) + | | | [0]{}: object 0x7f-0x89.7 (11) + 0x0007| 06| .| class: "universal" (0) 0x7f-0x7f.1 (0.2) + 0x0007| 06| .| form: "primitive" (0) 0x7f.2-0x7f.2 (0.1) + 0x0007| 06| .| tag: "object_identifier" (0x6) 0x7f.3-0x7f.7 (0.5) + 0x0008|09 |. | length: 9 0x80-0x80.7 (1) + | | | value[0:7]: 0x81-0x89.7 (9) + 0x0008| 2a | * | [0]: 1 oid 0x81-0x81.7 (1) + 0x0008| 2a | * | [1]: 2 oid 0x81-0x81.7 (1) + 0x0008| 86 48 | .H | [2]: 840 oid 0x82-0x83.7 (2) + 0x0008| 86 f7 0d | ... | [3]: 113549 oid 0x84-0x86.7 (3) + 0x0008| 01 | . | [4]: 1 oid 0x87-0x87.7 (1) + 0x0008| 01 | . | [5]: 1 oid 0x88-0x88.7 (1) + 0x0008| 05 | . | [6]: 5 oid 0x89-0x89.7 (1) + | | | [1]{}: object 0x8a-0x8b.7 (2) + 0x0008| 05 | . | class: "universal" (0) 0x8a-0x8a.1 (0.2) + 0x0008| 05 | . | form: "primitive" (0) 0x8a.2-0x8a.2 (0.1) + 0x0008| 05 | . | tag: "null" (0x5) 0x8a.3-0x8a.7 (0.5) + 0x0008| 00 | . | length: "indefinite" (0) 0x8b-0x8b.7 (1) + | | | value: null 0x8c-NA (0) + | | | [3]{}: object 0x8c-0xb0.7 (37) + 0x0008| 30 | 0 | class: "universal" (0) 0x8c-0x8c.1 (0.2) + 0x0008| 30 | 0 | form: "constructed" (1) 0x8c.2-0x8c.2 (0.1) + 0x0008| 30 | 0 | tag: "sequence" (0x10) 0x8c.3-0x8c.7 (0.5) + 0x0008| 23 | # | length: 35 0x8d-0x8d.7 (1) + | | | constructed[0:1]: 0x8e-0xb0.7 (35) + | | | [0]{}: object 0x8e-0xb0.7 (35) + 0x0008| 31 | 1 | class: "universal" (0) 0x8e-0x8e.1 (0.2) + 0x0008| 31 | 1 | form: "constructed" (1) 0x8e.2-0x8e.2 (0.1) + 0x0008| 31 | 1 | tag: "set" (0x11) 0x8e.3-0x8e.7 (0.5) + 0x0008| 21| !| length: 33 0x8f-0x8f.7 (1) + | | | constructed[0:1]: 0x90-0xb0.7 (33) + | | | [0]{}: object 0x90-0xb0.7 (33) + 0x0009|30 |0 | class: "universal" (0) 0x90-0x90.1 (0.2) + 0x0009|30 |0 | form: "constructed" (1) 0x90.2-0x90.2 (0.1) + 0x0009|30 |0 | tag: "sequence" (0x10) 0x90.3-0x90.7 (0.5) + 0x0009| 1f | . | length: 31 0x91-0x91.7 (1) + | | | constructed[0:2]: 0x92-0xb0.7 (31) + | | | [0]{}: object 0x92-0x96.7 (5) + 0x0009| 06 | . | class: "universal" (0) 0x92-0x92.1 (0.2) + 0x0009| 06 | . | form: "primitive" (0) 0x92.2-0x92.2 (0.1) + 0x0009| 06 | . | tag: "object_identifier" (0x6) 0x92.3-0x92.7 (0.5) + 0x0009| 03 | . | length: 3 0x93-0x93.7 (1) + | | | value[0:4]: 0x94-0x96.7 (3) + 0x0009| 55 | U | [0]: 2 oid 0x94-0x94.7 (1) + 0x0009| 55 | U | [1]: 5 oid 0x94-0x94.7 (1) + 0x0009| 04 | . | [2]: 4 oid 0x95-0x95.7 (1) + 0x0009| 03 | . | [3]: 3 oid 0x96-0x96.7 (1) + | | | [1]{}: object 0x97-0xb0.7 (26) + 0x0009| 0c | . | class: "universal" (0) 0x97-0x97.1 (0.2) + 0x0009| 0c | . | form: "primitive" (0) 0x97.2-0x97.2 (0.1) + 0x0009| 0c | . | tag: "utf8_string" (0xc) 0x97.3-0x97.7 (0.5) + 0x0009| 18 | . | length: 24 0x98-0x98.7 (1) + 0x0009| 2a 2e 6c 6f 63 61 6c| *.local| value: "*.local.al.lekensteyn.nl" 0x99-0xb0.7 (24) + 0x000a|2e 61 6c 2e 6c 65 6b 65 6e 73 74 65 79 6e 2e 6e|.al.lekensteyn.n| + 0x000b|6c |l | + | | | [4]{}: object 0xb1-0xd0.7 (32) + 0x000b| 30 | 0 | class: "universal" (0) 0xb1-0xb1.1 (0.2) + 0x000b| 30 | 0 | form: "constructed" (1) 0xb1.2-0xb1.2 (0.1) + 0x000b| 30 | 0 | tag: "sequence" (0x10) 0xb1.3-0xb1.7 (0.5) + 0x000b| 1e | . | length: 30 0xb2-0xb2.7 (1) + | | | constructed[0:2]: 0xb3-0xd0.7 (30) + | | | [0]{}: object 0xb3-0xc1.7 (15) + 0x000b| 17 | . | class: "universal" (0) 0xb3-0xb3.1 (0.2) + 0x000b| 17 | . | form: "primitive" (0) 0xb3.2-0xb3.2 (0.1) + 0x000b| 17 | . | tag: "utc_time" (0x17) 0xb3.3-0xb3.7 (0.5) + 0x000b| 0d | . | length: 13 0xb4-0xb4.7 (1) + 0x000b| 31 33 30 39 31 33 31 39 35 32 32| 13091319522| value: "130913195225Z" 0xb5-0xc1.7 (13) + 0x000c|35 5a |5Z | + | | | [1]{}: object 0xc2-0xd0.7 (15) + 0x000c| 17 | . | class: "universal" (0) 0xc2-0xc2.1 (0.2) + 0x000c| 17 | . | form: "primitive" (0) 0xc2.2-0xc2.2 (0.1) + 0x000c| 17 | . | tag: "utc_time" (0x17) 0xc2.3-0xc2.7 (0.5) + 0x000c| 0d | . | length: 13 0xc3-0xc3.7 (1) + 0x000c| 32 33 30 39 31 31 31 39 35 32 32 35| 230911195225| value: "230911195225Z" 0xc4-0xd0.7 (13) + 0x000d|5a |Z | + | | | [5]{}: object 0xd1-0xf5.7 (37) + 0x000d| 30 | 0 | class: "universal" (0) 0xd1-0xd1.1 (0.2) + 0x000d| 30 | 0 | form: "constructed" (1) 0xd1.2-0xd1.2 (0.1) + 0x000d| 30 | 0 | tag: "sequence" (0x10) 0xd1.3-0xd1.7 (0.5) + 0x000d| 23 | # | length: 35 0xd2-0xd2.7 (1) + | | | constructed[0:1]: 0xd3-0xf5.7 (35) + | | | [0]{}: object 0xd3-0xf5.7 (35) + 0x000d| 31 | 1 | class: "universal" (0) 0xd3-0xd3.1 (0.2) + 0x000d| 31 | 1 | form: "constructed" (1) 0xd3.2-0xd3.2 (0.1) + 0x000d| 31 | 1 | tag: "set" (0x11) 0xd3.3-0xd3.7 (0.5) + 0x000d| 21 | ! | length: 33 0xd4-0xd4.7 (1) + | | | constructed[0:1]: 0xd5-0xf5.7 (33) + | | | [0]{}: object 0xd5-0xf5.7 (33) + 0x000d| 30 | 0 | class: "universal" (0) 0xd5-0xd5.1 (0.2) + 0x000d| 30 | 0 | form: "constructed" (1) 0xd5.2-0xd5.2 (0.1) + 0x000d| 30 | 0 | tag: "sequence" (0x10) 0xd5.3-0xd5.7 (0.5) + 0x000d| 1f | . | length: 31 0xd6-0xd6.7 (1) + | | | constructed[0:2]: 0xd7-0xf5.7 (31) + | | | [0]{}: object 0xd7-0xdb.7 (5) + 0x000d| 06 | . | class: "universal" (0) 0xd7-0xd7.1 (0.2) + 0x000d| 06 | . | form: "primitive" (0) 0xd7.2-0xd7.2 (0.1) + 0x000d| 06 | . | tag: "object_identifier" (0x6) 0xd7.3-0xd7.7 (0.5) + 0x000d| 03 | . | length: 3 0xd8-0xd8.7 (1) + | | | value[0:4]: 0xd9-0xdb.7 (3) + 0x000d| 55 | U | [0]: 2 oid 0xd9-0xd9.7 (1) + 0x000d| 55 | U | [1]: 5 oid 0xd9-0xd9.7 (1) + 0x000d| 04 | . | [2]: 4 oid 0xda-0xda.7 (1) + 0x000d| 03 | . | [3]: 3 oid 0xdb-0xdb.7 (1) + | | | [1]{}: object 0xdc-0xf5.7 (26) + 0x000d| 0c | . | class: "universal" (0) 0xdc-0xdc.1 (0.2) + 0x000d| 0c | . | form: "primitive" (0) 0xdc.2-0xdc.2 (0.1) + 0x000d| 0c | . | tag: "utf8_string" (0xc) 0xdc.3-0xdc.7 (0.5) + 0x000d| 18 | . | length: 24 0xdd-0xdd.7 (1) + 0x000d| 2a 2e| *.| value: "*.local.al.lekensteyn.nl" 0xde-0xf5.7 (24) + 0x000e|6c 6f 63 61 6c 2e 61 6c 2e 6c 65 6b 65 6e 73 74|local.al.lekenst| + 0x000f|65 79 6e 2e 6e 6c |eyn.nl | + | | | [6]{}: object 0xf6-0x21b.7 (294) + 0x000f| 30 | 0 | class: "universal" (0) 0xf6-0xf6.1 (0.2) + 0x000f| 30 | 0 | form: "constructed" (1) 0xf6.2-0xf6.2 (0.1) + 0x000f| 30 | 0 | tag: "sequence" (0x10) 0xf6.3-0xf6.7 (0.5) + 0x000f| 82 01 22 | .." | length: 290 0xf7-0xf9.7 (3) + | | | constructed[0:2]: 0xfa-0x21b.7 (290) + | | | [0]{}: object 0xfa-0x108.7 (15) + 0x000f| 30 | 0 | class: "universal" (0) 0xfa-0xfa.1 (0.2) + 0x000f| 30 | 0 | form: "constructed" (1) 0xfa.2-0xfa.2 (0.1) + 0x000f| 30 | 0 | tag: "sequence" (0x10) 0xfa.3-0xfa.7 (0.5) + 0x000f| 0d | . | length: 13 0xfb-0xfb.7 (1) + | | | constructed[0:2]: 0xfc-0x108.7 (13) + | | | [0]{}: object 0xfc-0x106.7 (11) + 0x000f| 06 | . | class: "universal" (0) 0xfc-0xfc.1 (0.2) + 0x000f| 06 | . | form: "primitive" (0) 0xfc.2-0xfc.2 (0.1) + 0x000f| 06 | . | tag: "object_identifier" (0x6) 0xfc.3-0xfc.7 (0.5) + 0x000f| 09 | . | length: 9 0xfd-0xfd.7 (1) + | | | value[0:7]: 0xfe-0x106.7 (9) + 0x000f| 2a | * | [0]: 1 oid 0xfe-0xfe.7 (1) + 0x000f| 2a | * | [1]: 2 oid 0xfe-0xfe.7 (1) + 0x000f| 86| .| [2]: 840 oid 0xff-0x100.7 (2) + 0x0010|48 |H | + 0x0010| 86 f7 0d | ... | [3]: 113549 oid 0x101-0x103.7 (3) + 0x0010| 01 | . | [4]: 1 oid 0x104-0x104.7 (1) + 0x0010| 01 | . | [5]: 1 oid 0x105-0x105.7 (1) + 0x0010| 01 | . | [6]: 1 oid 0x106-0x106.7 (1) + | | | [1]{}: object 0x107-0x108.7 (2) + 0x0010| 05 | . | class: "universal" (0) 0x107-0x107.1 (0.2) + 0x0010| 05 | . | form: "primitive" (0) 0x107.2-0x107.2 (0.1) + 0x0010| 05 | . | tag: "null" (0x5) 0x107.3-0x107.7 (0.5) + 0x0010| 00 | . | length: "indefinite" (0) 0x108-0x108.7 (1) + | | | value: null 0x109-NA (0) + | | | [1]{}: object 0x109-0x21b.7 (275) + 0x0010| 03 | . | class: "universal" (0) 0x109-0x109.1 (0.2) + 0x0010| 03 | . | form: "primitive" (0) 0x109.2-0x109.2 (0.1) + 0x0010| 03 | . | tag: "bit_string" (0x3) 0x109.3-0x109.7 (0.5) + 0x0010| 82 01 0f | ... | length: 271 0x10a-0x10c.7 (3) + 0x0010| 00 | . | unused_bits_count: 0 0x10d-0x10d.7 (1) + 0x0010| 30 82| 0.| value: raw bits 0x10e-0x21b.7 (270) + 0x0011|01 0a 02 82 01 01 00 b7 c7 69 e2 d0 ea ca eb 92|.........i......| + * |until 0x21b.7 (270) | | + | | | [7]{}: object 0x21c-0x26d.7 (82) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x00|04 14 6d 59 37 7a fc 7d d7 0d 73 4d cc 5f 14 ae|..mY7z.}..sM._..| value: raw bits 0x0-0x32.7 (51) + * |until 0x32.7 (end) (51) | | + 0x0021| a3 | . | class: "context" (2) 0x21c-0x21c.1 (0.2) + 0x0021| a3 | . | form: "constructed" (1) 0x21c.2-0x21c.2 (0.1) + 0x0021| a3 | . | tag: 3 0x21c.3-0x21c.7 (0.5) + 0x0021| 50 | P | length: 80 0x21d-0x21d.7 (1) + | | | constructed[0:1]: 0x21e-0x26d.7 (80) + | | | [0]{}: object 0x21e-0x26d.7 (80) + 0x0021| 30 | 0 | class: "universal" (0) 0x21e-0x21e.1 (0.2) + 0x0021| 30 | 0 | form: "constructed" (1) 0x21e.2-0x21e.2 (0.1) + 0x0021| 30 | 0 | tag: "sequence" (0x10) 0x21e.3-0x21e.7 (0.5) + 0x0021| 4e| N| length: 78 0x21f-0x21f.7 (1) + | | | constructed[0:3]: 0x220-0x26d.7 (78) + | | | [0]{}: object 0x220-0x23e.7 (31) + 0x0022|30 |0 | class: "universal" (0) 0x220-0x220.1 (0.2) + 0x0022|30 |0 | form: "constructed" (1) 0x220.2-0x220.2 (0.1) + 0x0022|30 |0 | tag: "sequence" (0x10) 0x220.3-0x220.7 (0.5) + 0x0022| 1d | . | length: 29 0x221-0x221.7 (1) + | | | constructed[0:2]: 0x222-0x23e.7 (29) + | | | [0]{}: object 0x222-0x226.7 (5) + 0x0022| 06 | . | class: "universal" (0) 0x222-0x222.1 (0.2) + 0x0022| 06 | . | form: "primitive" (0) 0x222.2-0x222.2 (0.1) + 0x0022| 06 | . | tag: "object_identifier" (0x6) 0x222.3-0x222.7 (0.5) + 0x0022| 03 | . | length: 3 0x223-0x223.7 (1) + | | | value[0:4]: 0x224-0x226.7 (3) + 0x0022| 55 | U | [0]: 2 oid 0x224-0x224.7 (1) + 0x0022| 55 | U | [1]: 5 oid 0x224-0x224.7 (1) + 0x0022| 1d | . | [2]: 29 oid 0x225-0x225.7 (1) + 0x0022| 0e | . | [3]: 14 oid 0x226-0x226.7 (1) + | | | [1]{}: object 0x227-0x23e.7 (24) + 0x0022| 04 | . | class: "universal" (0) 0x227-0x227.1 (0.2) + 0x0022| 04 | . | form: "primitive" (0) 0x227.2-0x227.2 (0.1) + 0x0022| 04 | . | tag: "octet_string" (0x4) 0x227.3-0x227.7 (0.5) + 0x0022| 16 | . | length: 22 0x228-0x228.7 (1) + 0x0022| 04 14 6d 59 37 7a fc| ..mY7z.| value: raw bits 0x229-0x23e.7 (22) + 0x0023|7d d7 0d 73 4d cc 5f 14 ae d0 03 d3 c5 5e 85 |}..sM._......^. | + | | | [1]{}: object 0x23f-0x25f.7 (33) + 0x0023| 30| 0| class: "universal" (0) 0x23f-0x23f.1 (0.2) + 0x0023| 30| 0| form: "constructed" (1) 0x23f.2-0x23f.2 (0.1) + 0x0023| 30| 0| tag: "sequence" (0x10) 0x23f.3-0x23f.7 (0.5) + 0x0024|1f |. | length: 31 0x240-0x240.7 (1) + | | | constructed[0:2]: 0x241-0x25f.7 (31) + | | | [0]{}: object 0x241-0x245.7 (5) + 0x0024| 06 | . | class: "universal" (0) 0x241-0x241.1 (0.2) + 0x0024| 06 | . | form: "primitive" (0) 0x241.2-0x241.2 (0.1) + 0x0024| 06 | . | tag: "object_identifier" (0x6) 0x241.3-0x241.7 (0.5) + 0x0024| 03 | . | length: 3 0x242-0x242.7 (1) + | | | value[0:4]: 0x243-0x245.7 (3) + 0x0024| 55 | U | [0]: 2 oid 0x243-0x243.7 (1) + 0x0024| 55 | U | [1]: 5 oid 0x243-0x243.7 (1) + 0x0024| 1d | . | [2]: 29 oid 0x244-0x244.7 (1) + 0x0024| 23 | # | [3]: 35 oid 0x245-0x245.7 (1) + | | | [1]{}: object 0x246-0x25f.7 (26) + 0x0024| 04 | . | class: "universal" (0) 0x246-0x246.1 (0.2) + 0x0024| 04 | . | form: "primitive" (0) 0x246.2-0x246.2 (0.1) + 0x0024| 04 | . | tag: "octet_string" (0x4) 0x246.3-0x246.7 (0.5) + 0x0024| 18 | . | length: 24 0x247-0x247.7 (1) + 0x0024| 30 16 80 14 6d 59 37 7a| 0...mY7z| value: raw bits 0x248-0x25f.7 (24) + 0x0025|fc 7d d7 0d 73 4d cc 5f 14 ae d0 03 d3 c5 5e 85|.}..sM._......^.| + | | | [2]{}: object 0x260-0x26d.7 (14) + 0x0026|30 |0 | class: "universal" (0) 0x260-0x260.1 (0.2) + 0x0026|30 |0 | form: "constructed" (1) 0x260.2-0x260.2 (0.1) + 0x0026|30 |0 | tag: "sequence" (0x10) 0x260.3-0x260.7 (0.5) + 0x0026| 0c | . | length: 12 0x261-0x261.7 (1) + | | | constructed[0:2]: 0x262-0x26d.7 (12) + | | | [0]{}: object 0x262-0x266.7 (5) + 0x0026| 06 | . | class: "universal" (0) 0x262-0x262.1 (0.2) + 0x0026| 06 | . | form: "primitive" (0) 0x262.2-0x262.2 (0.1) + 0x0026| 06 | . | tag: "object_identifier" (0x6) 0x262.3-0x262.7 (0.5) + 0x0026| 03 | . | length: 3 0x263-0x263.7 (1) + | | | value[0:4]: 0x264-0x266.7 (3) + 0x0026| 55 | U | [0]: 2 oid 0x264-0x264.7 (1) + 0x0026| 55 | U | [1]: 5 oid 0x264-0x264.7 (1) + 0x0026| 1d | . | [2]: 29 oid 0x265-0x265.7 (1) + 0x0026| 13 | . | [3]: 19 oid 0x266-0x266.7 (1) + | | | [1]{}: object 0x267-0x26d.7 (7) + 0x0026| 04 | . | class: "universal" (0) 0x267-0x267.1 (0.2) + 0x0026| 04 | . | form: "primitive" (0) 0x267.2-0x267.2 (0.1) + 0x0026| 04 | . | tag: "octet_string" (0x4) 0x267.3-0x267.7 (0.5) + 0x0026| 05 | . | length: 5 0x268-0x268.7 (1) + 0x0026| 30 03 01 01 ff | 0.... | value: raw bits 0x269-0x26d.7 (5) + | | | [1]{}: object 0x26e-0x27c.7 (15) + 0x0026| 30 | 0 | class: "universal" (0) 0x26e-0x26e.1 (0.2) + 0x0026| 30 | 0 | form: "constructed" (1) 0x26e.2-0x26e.2 (0.1) + 0x0026| 30 | 0 | tag: "sequence" (0x10) 0x26e.3-0x26e.7 (0.5) + 0x0026| 0d| .| length: 13 0x26f-0x26f.7 (1) + | | | constructed[0:2]: 0x270-0x27c.7 (13) + | | | [0]{}: object 0x270-0x27a.7 (11) + 0x0027|06 |. | class: "universal" (0) 0x270-0x270.1 (0.2) + 0x0027|06 |. | form: "primitive" (0) 0x270.2-0x270.2 (0.1) + 0x0027|06 |. | tag: "object_identifier" (0x6) 0x270.3-0x270.7 (0.5) + 0x0027| 09 | . | length: 9 0x271-0x271.7 (1) + | | | value[0:7]: 0x272-0x27a.7 (9) + 0x0027| 2a | * | [0]: 1 oid 0x272-0x272.7 (1) + 0x0027| 2a | * | [1]: 2 oid 0x272-0x272.7 (1) + 0x0027| 86 48 | .H | [2]: 840 oid 0x273-0x274.7 (2) + 0x0027| 86 f7 0d | ... | [3]: 113549 oid 0x275-0x277.7 (3) + 0x0027| 01 | . | [4]: 1 oid 0x278-0x278.7 (1) + 0x0027| 01 | . | [5]: 1 oid 0x279-0x279.7 (1) + 0x0027| 05 | . | [6]: 5 oid 0x27a-0x27a.7 (1) + | | | [1]{}: object 0x27b-0x27c.7 (2) + 0x0027| 05 | . | class: "universal" (0) 0x27b-0x27b.1 (0.2) + 0x0027| 05 | . | form: "primitive" (0) 0x27b.2-0x27b.2 (0.1) + 0x0027| 05 | . | tag: "null" (0x5) 0x27b.3-0x27b.7 (0.5) + 0x0027| 00 | . | length: "indefinite" (0) 0x27c-0x27c.7 (1) + | | | value: null 0x27d-NA (0) + | | | [2]{}: object 0x27d-0x381.7 (261) + 0x0027| 03 | . | class: "universal" (0) 0x27d-0x27d.1 (0.2) + 0x0027| 03 | . | form: "primitive" (0) 0x27d.2-0x27d.2 (0.1) + 0x0027| 03 | . | tag: "bit_string" (0x3) 0x27d.3-0x27d.7 (0.5) + 0x0027| 82 01| ..| length: 257 0x27e-0x280.7 (3) + 0x0028|01 |. | + 0x0028| 00 | . | unused_bits_count: 0 0x281-0x281.7 (1) + 0x0028| 89 93 4a 61 95 fa 61 6e df 12 93 fd cd 75| ..Ja..an.....u| value: raw bits 0x282-0x381.7 (256) + 0x0029|d9 08 fc 0b 82 4b 3d 13 da 58 1f ab ef e7 ac 84|.....K=..X......| + * |until 0x381.7 (256) | | + | | | [2]{}: record 0x382-0x4d3.7 (338) + 0x0038| 16 | . | type: "handshake" (22) (valid) 0x382-0x382.7 (1) + 0x0038| 03 00 | .. | version: "ssl" (0x300) (valid) 0x383-0x384.7 (2) + 0x0038| 01 4d | .M | length: 333 0x385-0x386.7 (2) + | | | message{}: 0x387-0x4d3.7 (333) + 0x0038| 0c | . | type: "server_key_exchange" (12) 0x387-0x387.7 (1) + 0x0038| 00 01 49 | ..I | length: 329 0x388-0x38a.7 (3) + 0x0038| 00 40 c6 3e a3| .@.>.| data: raw bits 0x38b-0x4d3.7 (329) + 0x0039|3d 42 8e a4 9e 92 84 4e 44 66 16 ac 69 28 a8 c0|=B.....NDf..i(..| + * |until 0x4d3.7 (329) | | + | | | [3]{}: record 0x4d4-0x4dc.7 (9) + 0x004d| 16 | . | type: "handshake" (22) (valid) 0x4d4-0x4d4.7 (1) + 0x004d| 03 00 | .. | version: "ssl" (0x300) (valid) 0x4d5-0x4d6.7 (2) + 0x004d| 00 04 | .. | length: 4 0x4d7-0x4d8.7 (2) + | | | message{}: 0x4d9-0x4dc.7 (4) + 0x004d| 0e | . | type: "server_hello_done" (14) 0x4d9-0x4d9.7 (1) + 0x004d| 00 00 00 | ... | length: 0 0x4da-0x4dc.7 (3) + | | | data: raw bits 0x4dd-NA (0) + | | | [4]{}: record 0x4dd-0x4e2.7 (6) + 0x004d| 14 | . | type: "change_cipher_spec" (20) (valid) 0x4dd-0x4dd.7 (1) + 0x004d| 03 00| ..| version: "ssl" (0x300) (valid) 0x4de-0x4df.7 (2) + 0x004e|00 01 |.. | length: 1 0x4e0-0x4e1.7 (2) + | | | message{}: 0x4e2-0x4e2.7 (1) + 0x004e| 01 | . | type: 1 0x4e2-0x4e2.7 (1) + | | | [5]{}: record 0x4e3-0x527.7 (69) + 0x004e| 16 | . | type: "handshake" (22) (valid) 0x4e3-0x4e3.7 (1) + 0x004e| 03 00 | .. | version: "ssl" (0x300) (valid) 0x4e4-0x4e5.7 (2) + 0x004e| 00 40 | .@ | length: 64 0x4e6-0x4e7.7 (2) + 0x004e| 7c cb 6a c2 d1 1f a1 ac| |.j.....| encrypted_data: raw bits 0x4e8-0x527.7 (64) + 0x004f|8e 20 13 e1 6b c8 62 78 43 26 c4 04 a4 bb e6 47|. ..k.bxC&.....G| + * |until 0x527.7 (64) | | + | | | [6]{}: record 0x528-0x6a4.7 (381) + 0x0052| 17 | . | type: "application_data" (23) (valid) 0x528-0x528.7 (1) + 0x0052| 03 00 | .. | version: "ssl" (0x300) (valid) 0x529-0x52a.7 (2) + 0x0052| 01 78 | .x | length: 376 0x52b-0x52c.7 (2) + 0x0052| 35 24 ab| 5$.| encrypted_data: raw bits 0x52d-0x6a4.7 (376) + 0x0053|05 5e 6a 32 a4 9e c5 26 b7 5b bf 77 9a 44 93 19|.^j2...&.[.w.D..| + * |until 0x6a4.7 (376) | | + | | | [7]{}: record 0x6a5-0x6c1.7 (29) + 0x006a| 15 | . | type: "alert" (21) (valid) 0x6a5-0x6a5.7 (1) + 0x006a| 03 00 | .. | version: "ssl" (0x300) (valid) 0x6a6-0x6a7.7 (2) + 0x006a| 00 18 | .. | length: 24 0x6a8-0x6a9.7 (2) + 0x006a| 36 0b a8 86 26 71| 6...&q| encrypted_data: raw bits 0x6aa-0x6c1.7 (24) + 0x006b|45 26 b9 a8 32 94 b1 ce 5c 3e b2 dc cc 21 42 c4|E&..2...\>...!B.| + 0x006c|f9 c9| |..| | diff --git a/format/tls/testdata/dump-broken.pcapng.keylog b/format/tls/testdata/dump-broken.pcapng.keylog new file mode 100644 index 00000000..3983281a --- /dev/null +++ b/format/tls/testdata/dump-broken.pcapng.keylog @@ -0,0 +1,4 @@ +CLIENT_RANDOM 5234987e84c01d8dbce8287cb4603a0e574454d7db99c81def5252554963ca78 84DD091976941973D14DA46494C8D29E72D62DFB37A1B45DBFEF1DFC860617E3E5BFB9B3C487B1E503F40A3EDA50B61D +CLIENT_RANDOM 5234987e7dc507ff052512313dc27ad815805bab380aabb14b433126f5af1e17 84DD091976941973D14DA46494C8D29E72D62DFB37A1B45DBFEF1DFC860617E3E5BFB9B3C487B1E503F40A3EDA50B61D +CLIENT_RANDOM 5234987e665b9d04734ad8186aa44e3d7f020c59d2f51f0b631e568886a405f7 50868CC4AA15F98824298AB6F3DDEA9686FB9A1630133E2C2473C0D093B603D0A43DFE7CBE483106DEC01E2DE1C83EAB +CLIENT_RANDOM 5234987ec57e1828a2975347e799ba2ae60085ff08ef7c86fcf257482217b584 50868CC4AA15F98824298AB6F3DDEA9686FB9A1630133E2C2473C0D093B603D0A43DFE7CBE483106DEC01E2DE1C83EAB diff --git a/format/tls/testdata/dump.pcapng b/format/tls/testdata/dump.pcapng new file mode 100644 index 0000000000000000000000000000000000000000..929df88e881174748ffcb9445ad5165c8deffaa1 GIT binary patch literal 301260 zcmeFa1yohf`#yR&ba#UwjdTej64IiCC?HC=bSWT8H-aD~NJt4tcL;)%bR!`x4FXak zb@x7kpCeyC{O@<&yVm`!yME&uJo^CqnfIA@-kIl}IU5XYYz!L+1aeD+jRFDq|M;XJ zLWm(Z&8!@qX!$sKcsRK^csL9k?H#NwfuBKwa6qISEo}_+Y-o8ndAK=wXjxR%6lrf8 zJ)*s9Wo~8t*oxNJ&f1dJ@z(__@H=1uaX<|3lmCy8ArL6=&%zo4K?lBr0=$n2xdMT( zm|ELA&jQGs7(O)J^~^l>MxA5SmWnnK_DQONaZOOzG4i&+aiG* zfOj>C;6JfIyg#uFL3p5mcI^OI*MZkyg)cC>__c~*c441lo!E61z;k!ULr^c>5DgiOZjsJ>424Hmli9v#h0C@x4JsuJ9 z_GNZFf-ZV}PqlgJMa0hZsKuR2x|J9UJk&PhX@0EJ*c z_#wOy90)dq9C!~4LI(I1280Ac3PA%}jtU_HyaNe>3?YCJ0{#YtAVP2k@#6f9F~s z9pqu8{FH~2esu@>bqe5G``@{~iTI0Ekn5;x)8y>HHCW*b$Ti{xeGCxebH`sX$Ply< z2+wkj2)Pc0Ktz9WoouYlD|~5GAwH=N`-VTgZMfZ!;ue?hO5sj&1dv*81PIA70yuh4 zsRk(n$shq3s>g&Ne1IUlhagmNdm@wo^#T+fvh|j$Z{a|&fg2kI{gSVo?=Ch10x~j$ zn}&y)n-T@_E)pUZ(H$dTpi3IrIhYxn8R$6}(cV^-;J!eL&BMoig-3vwM}UWiTay%< z7rf*^a z(c+pAk+Uo7M7?zt1p(rIuSXxbRWN|8PD6lT!47# zWAZ9Neq4@%XaxyT%@#-TrP2K`rgB8BOVq=w7 z8Hh3N^;Zls03+`|$Eyq;5X~i!+L(O$ukO-Gf8mn1)^gfR4Vietn(M046vElFPmt_8 zX)Y|R6SSJjY%(!edh>@?rk06iy9~vi;SH;?<&AjPG9rK(*vN(Our+aolT0kWtrz5; zDEj=E3S%GDCe$uG3>W9o%KJ3Bcyq<;H4i%yM`c*Q9PUtrk#GWrfHs1BDg)sFETFB# za?|7-z%^Lm3ur3>jXox5>u}qtt-s1e4=`VpAYE*MMD@g#>}50~D}B zl4^@hZl|@5ymDdrygdKr8BcEFY}_u9G5Xkb(!s4qe#hFIY`Ku@Q+qfvx{gI7HP;fQ zo+XDJ{92(?TSvutM3kCCvHX^D6(Jru$b`x50&1YX%dn&!b|LE&($yIx(NRB-g}S(B)rb>+C^I1Z{7Mx>Hn3G)?pLzO-1BIOd3QH5 zz0k-9)*i53lR!^^1#H)v!Zi5@;2Ny(1#A~mfj$=4u0f&GcKzySlDj}Z$AkS01v~WD zn&PxwNKPk|m1^t^<##lR$REx-GCMF9scyN5uP;?KDZOvF&&>O5_+bHUm0t2!0hJ-o zu+fA2oKz3d#kGrR_*vk4>hV$UMSB)b(w>!3p=;0 zky%!sY7Dsi$f?R5*9hGnypU}>p_XE)vf0aelODN>*oH7p2;cN<*fwuYJgtoHtRs(K$I~<={DIUt;D7KO5OO=-@?B=>9x2>{8^L# z`HS`5?n$p)I~so>x`^x-%QiZ06M5y8>w`o6y?O!*j>8>_p&2Zl^`w3iiamHm&ukna z!$MqN(G6r5*)2L~#OS`xQ9Wa)MBt5ickPG8Y~a4#0y%CTvt;HwYDDxaWkC6*|c$=<;=D0D*MAGog@-E-1$n4lKS_vDxw>EttbFM)M5!g-|O z9Myv|O*Y)6^ZJ(mZL*o0Vy(kHwTF_GpH9;F;$NZ zk}W45nIAP|c`LoILh`v^EzU0NlOB^`yD7o^JhIq4cGmm3(*1j_=2QD!4R_f;qNpMS zUbtpP{2(}wi{HwxvYD4^Fd}gOxg8&p-Hh)HPxrMj|K3uEl~1ps`G#|@gEnJMta6^i z+IQM$RHWbMEg7oy=cnM_-^)d=FunQks$78p7ga&ZUBc^qt2&39FZvh6qDO6`Jro8$ zYB4I@=?XZcp_GEMVhq<(`&2Ot+#SllhlchuHXBhzzOS~Y^7SxNo*HfPr4N$r???kF zZdhanQPATi3Yy={dekP;1nzQzhlyDr?6S z){t*G<2-Hjt`84{Yy}8KvSbrbgaZlg2*t3yw_t9IW*$hGJLa;AGNV8kvuw4zQ{Qx8 z$S}xoh)ex+5V7yYVL2>lse7WoWX znOfz&<3#KWCGo5dvTeBaLuv%DxCX{I!;?S;#y7W{=dBC$vBCH@Qv7Fpqv(ajH+%#W zxOD+6zWuuQS&XQ2F|;Z`j0v<;jFZ?N@3u(M2dq8Z{vE>~&W?w-rpZl!Yp}u>*!*!% zs}eSUO#c;w48XYcXPhPm<`3GF`6CmJoXqip^|Ia<-f*NA2dIjQjQxz07{w+8#0PEF zH~|Fti~-tl8Mp>3e1Wxt1p)!vA<}u;j$iWyMIZQ+%D@a`nFziD?+4x&UbCZ^ou}Em zP{8|I7M}R-M0aP_uK>t^9oF;DtuE7dlK>vrnw`~M5J~{jq1JLY{g5Trt zIp{awx)@Hgf5HEJ_%>EPjbx#W@tc_RRR?a@SnuxYyDm7x;gDMPb2a-DK(jxFAUHq} zYyrJ)$?dTPNcLWemMz8)Nju!=D5!vB@4SYDzB(GFK&*-)CwAWbg@`S6O*WDw$ zj+H_2>574OxJp?FoS}$j5N=~A52V>-`5LioKsVEtPC$Of1!j{**@u=<82A`FYvmSM zO11h)!rZF%D5-TNhMD|`Q?kIXjP1`>=Lx^Xd?0CqwaZOpojF{bp zqc&!Q(MOzVg3|6lz(C&F80^L(EC?hIrnUK}l6}^$$SOp$Eym9@-?ZV0^t)_g_&l@l z#?bYbF_RGFj-*z${qFRhoU8BJ2ZU}|2~Aqg$)mcUIa+ZgxD&;pAVQ3}4WZm>G^KW> z#6w@&B3~>~Yc{$~PZ034KU0z2Hd{$S~uGIURFwfv%I^WbnA%57Oslky>| z!>p>!obwXztBc8;_kDu1zmmVg`W%T!ceS#h*}I-BtEk*UyNzeK?sD{RMGa^`z@N{~ zYbAiMUk98VtndXE>-oE2IWWuLIj~=`tCmN539%a(Pr7jP8tCiK|A}2ICpQDf(-pt- zG<6pSIG!xIPsh_A7-Rs(KbkrO!~hLC(bW6ODEH>=)tC$;d-U2r6tma)ebfp0_K7OQ zLVHxkr)+TNHVOGx2U?H2wVF(7`3Ac5@l#whhhn$)T-H5T@EhL4X+Wup*X&mBQpQjg zkKCEQdLSjc6k|dIW4Uxa`z8skcdHqd8EeeFNM&~-Uf7#tT5@av_JKBne8OvL)S&Y; zwQUnDKH;6(`YS#mb_4OL{EVgsZ4Ci!h11m5Pp2$QUb*By`>tn|DwuGM*~fq$iO`7& zd)VgsD_WTf%-QI>h#S!vPE(WyD3_V_Iean57K-0XzkEUY6Km~>d{TMNaAz`Q%u5y2 zt980cJSabEY0Y$XMcwP?L|4xEXCmP+GJK+ubh3O7x%h)`LN`lf2QLb2k~uGZ}1)IttR1 zoK?$H>v4~^dVXu_6<~D(7SN}C!+<#gxCSeH0mlu}d)sEPpPTGX+x4rTk*a`xUWIAu zf98nOb|HD4P&Qa9o~7i(P-k~Jer}%5a#cyU&=j9>1iQRkkdo22@xohZj_u`Cny`&@ z<@$lk9(V_Y^yuH)Qw0XoUG?p8LNRs)1upRUOJMKmVP*!^$9M^7QN2O6!CqN@^0sOm z_cKj_pGEGI+F(I8yibM-&yC({TngKs@OyR4W0w^W#UqjOI!^;CuT2x8E}N0PI6M?@ z2{ke|T)cQW;rb1K#|{?baEZY9_ph7~&~*u;OKIhK)Gi$B`cXZ8g|N%p`Kvje#~xWmct-eaMduW1R)NGUk;e{nmF)Ee5waqrj+TG}A(}I3o8wmux{V zHLGrhi{vxOO=bzv%Hh!%Y~QzD4f!G4W4Z|^t85ukR73SEefS6X0{zAqWwWf_qUUG7 zljpx2|IkZ_S>Y=^#rDsc%*m#S*xg=pKmSgq!kO2bL_eFqGCGP&A~u0_l8J#g0V zq`&@vh=sM@lS<6Ax?$#Z>r&``N0~C>#RiUhK_AVj1u=xkzC_=XjuhuXH?6xEJlK$D zQ!uZqGm}fff7!krDpSEH;?9&@)Ai`(4H|o#S^Zr`WY5jfErp{7pO;eU%t!Z*39e)v z&Q>LNlpZdBq}PlaByu+S)KbPJ|4oR&hQnK65N*fp=I*BO-cn1^nrC z0(7kPyBO2rPlvIH?oM3tIG`xM%N03$&y3Eh#cW$~=|i%A0eQufrp#a+1B^~=QD)%_ zc_mjp-KxiXN6beHC?0+CLmPZEN0EQkXi4`V(02ujaZ{Mp;#foZ(Phd8BhE{e36I*z zZHUzF8YxckqwLVlbzsOf^j{9<2}$qp_Om0fMd_VwR#o*UP){h|bo4Tm~OTsJ~z zE|No!q7!K25QVJ^F9qX~SSE;yL_e)Je4>$DekJO0Zq6_%*+G$LFOZHy)Aj$J%r;c_ zn(E;sX}x(~Gd}v=t!9%%m5>Dqbt}=ANlQV#7C81sO~dlFP+ z=;kmsn5TycWl7p_gTj8q(e>{m>W5v7>y3F+l1m`+gFzoYjs9m**Rn>QHz%uj{1I`X9cQU|^fAlpB1E#M}=8}nm$4JSk!m()7b1KfZPw*uiikv zR-Mt;XSjyn6Q?aYZ%^Eh7{n<2_*aZS_r$|MzX8|CaQd1?Y3~7Xo28H@wW1`~1M?5L zIejiu;U8m6v=#6mwJhiA>;K&o|KC0F|J)Nd`EvLv{T)+|;ti`}X^m75Tc7IMrm=v> z{37XhEnOM-30BBGb{>%?eI(8q~Vwz*uT z?fcY-N?0|VI^T<&t?+OfCF zrM;czyly?_!=G?izR?;fMSE91@WmGl$I%eyV1~4>h7X%whVy)O#zKBkoDA{-u8UmZ zc+sn#CVv22gB8AjydWt0k-)eQJLUdYto&*9M0?K`ruBhtJK0zL%?q5?Kf8a3V*k@xMW1Iz-9b=Bt$7#6s zY?q3vtr{Q!s+dt7ye+E9i3@J`B4@H0MDne8(aTC6C%??SSvs9Gdi_X+3D1+|?MU*r z4Z>0#IXh|zxlce5da7;Lz_%+e-}{QmTT#6K0-v zTxDH*P0BO&jz#;c7q3)q{Pw%$mi~<(Xo&_(rrcFC(Os8n^|&~n>F8TQl#19FZd_~1 zKr|EeeyWz88G&o?W<4vT_xzp5Ws{JH#Fl70 z0w1Lk@6NocM3^p`*U^hxx~3c3L*pHUDsne$viJ#Gte#T8Y7y(xjxq8+9OP-?dD{wq zO>;>sV{B>xOrZ(I3zSc!@!88Y;dY9J23NNU-*`~)#o^ed7d zL4AQz%ki=Wm+-srOLW5^#sLkzvx=7>7rRP6*_P`Y^hs%>qx3m^ri}x^*e!^=>5+b zJeJm1D*~9a7H%9(-_JDWrLzbqsbcpec)XF79^~&Tus?2Sw z8|1oLg9Pf6<|Ea6JeNgQO26KDDd5%BXn;umqlpwD=bNAlWVa=Q!TJ3FrmqkF;rkKZ z2g&)(F9vT}@X_nh$_yVbv0@4tHSd#IJSoIW(dG2UMCRqHWO+mGkPwt&`JsHI#W~$P z0-yHv6FI90smvIHNvk;Whc`Zy&g*2S7bfW`;h<^wbLf+Jx!9zslsFAYNxg{52ybScs(EQU!BQ=vs z{x15?POEfs&KE&$YjfWz%bo8&elbdg{Y3D4ri-Jo8{G(zuM3-X?oB;BhVD1fH1*us z#pRad zXJ#}jSJ_mzZ`=@%j$XdXkzbm+io~r@3v2j#sT-5X)}xnoGs4 zUQVH_JZep{!|u~boD2~buIS!Q?MJ$_9WHj;utj_0Ta!!k=N|8Op18ADO&T5b@r3ny za+Bi3jVs%mH3|!ngr2?VE@fTwZEaoeZwuS#6j`~RB_o|<>|!xlWST11<8ghp8hQBX zt0Zq3^abK*Jx96#OX#=gVA2N{6sx~&Osf(rn_D6ftP$oE$j+nqiY>fH@!4@nzBE?V zmL<8}Vw1!mi>%c2b4FBb^^QTOv1%~+D$P4ps>tZbJr1Gp8GYNUor?(gM_u}d!#}XY zVet@*i}0FH?&Epu8b2~HE|z5e5f^VjuEFBspZS3BKi4(z7&_--_y@w~Z^2WHlR0E? z@CHQG9S`vsF0XM0qx>Y0gYn(6ewrN6co49{7uY-%;2#8=r>6dj0p=W@{+_2`7+}sp zSz`1@f_ueHG>uEb_)wAOspXt~x4QhJ>0EBvHfm_BE$)A?nlnO78`m_$2ollgQVEvt zFPsPvc+Ve)$X^tyE$2v(aD&1^wdaK*^;3Qg$NLbly&(S@Ck+JK9S^kozsOO5IuPIm zyaAY_;OPNhf%gON3!gXWpFS@~A^sNRgyS#De!F;+gaORXhV`7x@{x_yN3-GdT(v&OhsL z_#8zUfbs7+3h_)3WB>P_!wGl4F#gO@z%b6_C}cY^`RlxG*Dc;dY7c^t&5}n=bMr&H zwyS)P1;88y!~dKdMen&>hf{z&WW7D*8psub{Tc%F>&TfL#Tl;Q&j66GOp~`kArP>_ z7jWD{tHUWlj120(Vt{7=3V)B=6R!WrQ524+BXp&jFFF|EtaTrU=t8g%cpAww}c9Pq3U@i?KA-#UhpH3Lq6_c-1FkPAa(T(ThC-KhCy*) zPU8GwIuP9zwI;c^I8hgNS*i)IN$ z$ws*Jt4j{2P`WJ->z9|7+Od0GB9Pt#eP@={!P;xZx zX5nOk)3JH_ythp*RUgePS-gVClDfV{{Uhs0x)y z{Vj*Ueso?AA)E^2B{S%hmtV1LmXytt=f#;E0?11w$O~K!;p};Vg84(e!Z+yo4NXNK zQQM`X1STU>KM<6e2>bUd20vr&?2miO_vFRcR6ldpdf-DUs7H{G=fLihTN|>o0#Ulp z6`wHGtr^l!TqXY6_~SLl$mdRztX`BbeHCrsJ*}OV$lJ95r65K=I>0IHb51kJm?m zFiZ8-X#rjRf@P4}u=tZp{kdd_Z@J~%vPGBj3o#w50+`GM)wDwm6Bm?{SP0)aJ0}?g zAu5F2YW`~u;XQQboE$GvS>qIH|$=rcMaSKZj=%HoUAnS5R-W<{GtQ$Phfe z$ev>!HdIiRGMwu|7FAhHZ>-qu`x8UwQ45r4Wx{#x?K1u>m%-@vvhnnr$cR;5*`BmC zCycUeO>ZR!X~w$zB}i;ihj9x6=Ja#b;QHWe)@g%wdykulJu8*j7}NwFZSLtnk@NCFtt0>G`T&%=rRM?GIa^;d8F3eL&<#+In6hw?{u}k0Hb2595 ze@Fcp@vxlo&eB7-H}^JNf=BqG?_0M$6;L64kjJ6A@E+ZbA{SrsW#2n)0j+N((g}4_ z!}cQHykiOD<%yKesJb#!w-57KTn$jErtL$rA-v zb_WZxK5;x6`5Bbog#Yl8OOp5E``KF<op~(=K;o3 z^@>;)3z>>w@1_8SNEE6Hs;_g7$`A2T--?(hKXpxnvIdV{Ug7fybcy%)$>YJo&*sYN z|5jp?rZmO+f<~P-kHjYz9rs)&@jB*a)s!xZK4nAKgQaFyumGUmwS{ckr@cQ>eP)|1gxo@GhZ`?5Xet-9vO zS4ob}`DS5YUCMEFTeaSNBe*6Me|y{txr`{$`odR|FWf7AJNypaMhRU3)NXYTg~x0a z$2zQucaZmYl?bvL((_&2z$Oc;(lIMa+f25y47eq zg?T(*xcq#yv36Vf=JD5+JoZa50=MdCJl&T((=wR#`7}J=OztTJd0Xdme|MgR&X-8d zUCrh&O>K9elE<*nyZ&&1yfZ-fh{~F<_waj)+I6aV1J&?v+6b+$CDvb+$j~u=Aqgcm z{2JWY_?cKA{@{8nwOOc_xs3Yj_96Qdo`gdR`8QJOUsVlCXXS7AZ;EV{)z zK)9~JYS-F5;i?8^0B+sm-F;!;W4Zmp`Fh!VtXuthzGIcK`0gLO3Zjbx1Wmr#TeW2V+cqV&C@F>I4mL#3s+(j%7p^pjmm|3z^XrIfH}NO?%t6>@p$Gc0cw@ zQc9YkY=-w#|22m&4aCKB)-^d`Ts$B;jf*Goeft*k(%hMI3$VEOk0yiHeZGk2VT4}* zF|txlF@D9~r8!va{WDK-1_RXOU;(vwCxG$qIRx=s*gREpiUDWGJnY=UKRE;#1}uk= zQE1XG$!0DxGCrUiVQ+b#x6zBb>TtC3zU-VR2L833V02o}ebL2Ywo=`#hBkEXNH@aN zzGpEUkY>-fb-`b5TDIHlt6aTFEM?Dt!ujyB#b0v>xJWbqO%4I3)0XBztHB(?$8GS{ z-*O1Uv@_>?_Ft0=_F{YNzaQ6%2&l~~_<4g{r#?K*>fCUwIfu3oN&*`1=>n`bmo{Vz(r016EU=D%k ze@+fz;asjWzJWZv{Jnn!?7M*d`bgcLP5Vp^;SAUC=NwQNX3qKSf5sY!@nYeW>pw95 zJm+x2^&dHeo2qmEt_~#}yq~7)$#WK8ag3NNp)vS5dPxcILTZW5%_02nIfwr}=kTBB z9Eh`+-TA#OcJCt&f0X8zd#jIZduwnbCjo(7BhfCjBCS$nyu?&usD3+m6BROqZ2J}q z#nF;hmAq-4+pz*n%W6%al9g#IMzbPzwD!#_|2~&%@`7V&`uEwrU$K!* zyN-2K7Z|Vb=N!(A*B@Z`2MRdP-e8*{9|B&36~4f7^{twGAjZ^>)A9NT26)b)=6BBT z_jo<|oI;|P2j{mizTmk@?s&z%CxOu~<*@OJ7d=c}VrZuJZ(Z*WD?zh6iYV@PuAHxR zYG5MMsU}jx$YpNR>bYsK8p`vJP8L7xL4~e;yQNlSz^d2DL&$W*GxC#pY|3SveBvkL zdwpyUq4BucUiH-+<|~$l@v<^c9A8y7)MQa_-mWyzGk8J<+6(67PtPoXcAIg|kc$9& z>|lj2pxp?Z8S9|k;h#_K{uQT2b%9v81^NlH$C_?1m(2Ek6Mda~txU1-?X2t%}JfkXq{_f;mOQ%@U+N>I~8oxka%8||%U znatcP{XE_Mp}xL^UUkdf->g<7KeI&l@km1B;DLRChA$Fp{Q*7jN0D|!}|(8cSyqzn^>nEuKaqF+UVoPykDoRA1| z8^AL|?gw0h6~4fH%2|^i=C^XE+@AQ?{V2(k&%rP6geO2Ny zr+Z8EY9%&5b?|~oO&tGCv@`;aaG9*n&9^9tm39zyrS;gb@Ml|MSZ*P&S8_{;_!{w> zBs>f1g|!cC=MP|&1s1TKu6#4(pMh(z!WXceNG%x~U^_#vp0@Ls4}8&7w`acs%OU*Z z`(Qg?fjNX10jTDhL@(slWgllV4(2#VkUT3_#znSWq2DAO4{LOHX|^>dpjA%0C$PcT z-ejRgP2xx?x%pYVS()~+X_Rw)W$`he6)Cxy}e%0TqQEOhF~>uU?g>8Atd{eW#?;J!36_SZW`UZnZv(kQDleWE=ZO2rz5ZZ`+#wRW z(4b6A+jd;DZWPH8x;$a)Rd8&4+gA6hsmPCuAEb-7AwrMPzWRCE%2i>j?Y%dxAGsvU zhvGfjVp#utZN&KN)^2X`vHD;{!Ps_7wHS?sB-*>&-Qb9Js^?zHg7kJR(E8(kLNf4T)>YiS-FjWU7Nb386oG_q9{7-1PgYQz!ckI1i zC)|bRsk2=}`{t>6uhNze_h>RWUg7~#;MRi3cotPT=OJ5ttk;p(XbRnPrTmXcwm0h| z7W(4KP`^0*m}Gdl#g6{@xY)B*>Yddx*Y(g|pO0ar4{$l`Q+Gl>3ke!6dT%j^KA9lU zKNw&8q?$0s|9Sa#HD6&L(zWX^(<3M!BTA4p5|e+v7;B5(5lZ9j1We)Put8~LcUji8`#I87m z-H-pOkn%IBP0V6GDO>Lf6*inA;drcXV?+9t=^mB4yU{@E=AgZ`b3VK>M9AcLjO zWBunjR2C>$eOihUx(fWI>!rHtw(f!y350X4YGiK*x4+BTzwLg%td?8!W-eg%T>~uM zfpHIBb9Di6@0@jo04zQSpT@mk@tOTf9qZ)UnH&Ku?){^=;4u*S&%?<04r09QI>q=E zTPN3GvGva!!5NI0lRyo|@7DmvW8fOB@C7!{m}y>y*`aod0cXcLEJyIqvu9u!V2*(M z%T(KPU`FAnu2Y5E&3xgjSFC^#w0?n`X3R7|>XtNV3`d|ulnfJLqdWxCKsHwX`*U&{ zCk+7G)ep4mzdA<%=&Z?g@CING!1x;Y3cMfKZ}7U@PU*ZHKt(EOuNU#Dy=lStN{Q$# zV&L8Wk^_hX-~UsW!()Y?iv>BG15io}Ho6=#1K^4OB?k}(%#U$@V!``LHh}f-{#cO) zvy1ACUE%=V*E2Z)7|uWb2%iH`R6Z{UP>~K|csl+SU11pPeJ%fvh}Ns@?R7ad?wpwf!)-KtWK`(OZE!`L1=S z>A|<*8iy|z7$vL`d~)$BnAbBIU!z00?QZf`$Li^1%Uzd70hQpQ%PVSsh_w6Hnjh)vk#;;G`ux3|sYv@M0V2j$D&D<@Q$`3A0Q@Z*@JR(LuXk z{~yi?tSWhqr;JlS)yv>pS9c=h^*Df=dT3)g&f5GYjb~_X)0E9LW}9PixXX0x70YrJW2U8+Jst$w z8~hFTC?e4Qs?p7@&eP~eo}dq0$@{q92>+ZO5uRr$!ZbilluA1@*6Ml&px~C-3^Wt&KlF(+x<0J1{rtAKLS75$lBxwI?`HTzo1g_cpO}p2C>3;r4X6?SCpHOWat?Km*5mkz@ng;qF-|pSmQ5f19lGvQ>ug&X-O;niTq+MiG z!M0%j7D`g}HqJ+XWAS#MOvaqyqbW+2Sjx=X^z)xSau?yw-J*kzJIKbnNeFJ_KO73S?YCd(aC`br_U6f*IS;MNO~;uL?xWJ^tGQ1YcLyzIo;_(mZC3~l$ai48=1Vj^?=r`wrM@GnkgaiB?FcGd4Z&{j3%O>ubI(vRc z>RbaN#lmaVb*v5;W^W~RUz=t?A-<19G)V1dB1t)9_yt>^JX<*ink zxC(E?JTukn z6PJHrqPFKF<@n>%b#WmBsn^szJX)WN7FK+AtjKWQrD}Te)=cVksL|3TrCx|q5GR~R zy@yS`o$dV{sUh0uv;XBKCnE>fax$!7OZzx?QldGZ=En-w93=N&Wewy#R}Nl(x?c( z9h}kVVBCxUM-##8u2;6_VH|nEw1DWJu{G)d7F+++=w~oufO#A&;M!#l!1#BKUI9A; z>G}J!04MVdXvg6hjSj?ik12nNnC^b0YP+O z_LMsf1YGH9$Q|^-FE#$E(J$EjR~j9rgQ5;Wt3ZtoJ`euy8ofQ}JdOV42gs>T-6^MI ze)uX?CE3Q{-TtD{6TtWX)Xnf3ed}B-2n57}+ox9<^J5;Aq6Y9x{-V(n06$6i6ARu~ z@Pp6ul`nfRyFQ(<%LKr?a7LrUaQ^YfPoRlF0ez(uzyS9VPWKXE-vGYA@;R|ze!?*H z{)z!=^pM~C1~3dzqw4{?6I#EX8_ysjD4{E;JOu_tKM_D;)m&9w0|`AuYS1z^h?M2Ty32^Paov!ZRiYn4{!}u z_yTf;SkDhz8zU8-a)l3%0dR#-{+p{ru;0P8u`m>P`sFXK=B1l62Q9WLe|)c>o|}j% zz?Lkd2^M4TGukW^fmpFCS1>W&G4xZYtQ=^B?IEEJ%Z^<+-Z}QSR@O4#kf<=HmoM}uMYc}d~OgG zznICt^mY1Ja1IUflHGfw=$?tqwa9zV*XBF~-)AVkty$SpQjkeAypsB@K=5|+N}3%e zelY$g-*J+ODau8P7t3A&o{LaoNQ}mJee+TgL?YR-5YrpisE%&RNkTo`#h~vLCATDa z`ExpAD(wTOmYU9fybdN8FjK2Z9z8!>W477414Edo6F8&Xttctb-xO6sSAq3?9S@<{UZ#LSudt!^Qtf=L&TEMvp zA{T_49ZGbY=Ld?XO-IP;SdHC^v6i!RoxB^Ai0a`ro0=ujYF(288Y>^-kH_Ep@j)N1 z#)3d9AmSq$A|%5;bOGI8^Bk>jwuX->%<`2Z?c=USti2ADLR?jsQSLK)HOl(=5wm%6 zUq8V#+1A(vw3|Ca5K&iIhXp?HPjrY|-CNlx6j}YD`JB9amBEOY^4kMMzPGW?&t?5L z-sf{st8H0c&z{$)RmIUobS+^70#9SRh}30i>Kge5I4mqHTH zH^j->Fz=lqZ!Zre5|mdcS!pZ%F&esa+~EFrPKj>xF=zqo4*>wf3LNWaVnE z;LAQNJ~o|>`IEV&gLzOk2Z$?%aG%`+$9&>HF?iu5fPiu3Zp;ih7}LNCUtlq~^2-4X zL+q~@WB^9)A8{oSvge zB%4H>B=+k4*m}cTxw1MObM85e-?xes;-C)w8o3+)=wWXD5|RGJ#t^Htp+6m05`?33l+o=^IAELq;PI~1wvv}pPWv=8JG{+Wdj<7UqJI{^Hipq;39 zPwo5_KV@^ON^(>IU8xQCcK~2qf_B2~|I?us4@EcQZsKkz)G2hgh2#Z{5(pmC%CBs` z83-7@>Q5*!|E6oMbCDpJS@+48{+1d6Eyv}(r=GD=>s{4c{H91+tlg#K7i|nlC5iJP zY=JWjX86tf_4HL`a_Qv+6Ipjuy3!V3rO`Yw-icZNkvynDtYU!_Co;GownwS_Dqlna zAsdIls7~{p4Kjm|YxmDmT1TR{7ubvaZp@8g$B2#m!zItGYbAQ&^DqjX;_f!7?+U_4 zTK#QJD05;_PaGpeogS1pei1{i(MjbCFLL_yaWG6-`h-W2Pxy77e!_X{yf23^zxjPu z<(F^fs4@@A#Q=QT!9BAu3G_`cpK#jEXSo=l zpTTD)XhXAp`!m?CBrt#AdO{hc^~D%oeR;Z0fgs}&dcB28Q^V=J?}SLp+UBujiaG5U zYbk2Bv+uCurBIRXwF;MALgsJ|HtfS*e`myBy((7K;A7bOIdqx*qKdSiMG%F$mZ0ge z8XbvhPBV4y)JMB{j1GAu%%1XItP6Y=y#9vr3(l(ZVGxX-k((h=(?%~5$Q~oQKUrvu zm?Bs|oc#20C1{+^=2z@b_s&Imd>$;xcHr}Km(uS{gvXbzi8$uVIyjz7jVz6fl= z!;Bs}B+H;MW}~_q4Mon)uSEqqnRuA2KVwLg5H2;z=i|AVxtUqs-$^^@HdKA+Z6#Y_ z+WK54)xNg#7E#+*Z|!HYl+CYF3}<>6=A@5@3zLgm4utdhf0SQF)4Qwobmp3cgq#tg z-VS19-}g6{9=*`e>Ad|hHM)jy_@@l<0n@(p$9jtQ`W|R~alHliMFlU`8y_H56h1Xw z4@klZE}~%4!)8=>lD?CLmTtCr6~Vud>|W1t5`}2WQ|->YKx;LEkLz~=L+HcXp54`! zicFtS&64M2c*{fb$mV#Qwx_&N?FoAw`PVS-8^#V|NjESHjVN>%qedI{j2|;pT{`d~ z=Fi{V1de=A1sP7&f59`ZIb1R7Fmlh0ej*A%oss!8B*Q|sS|GgfoYH1@_D%mdG!J{l z^d2S)>&*l$EDw2P)h@?_537j@UxFDD>wjQGjWLT=px6X*)mF98e6aWyyO^X^dDk`T zow}EuCQ`c>!Tb8m#b$jW$U<=m5%WQ;i3;{ES^CYab*V^2Q={nqV$+%4Rmm{y7vk?& zc+fQub`uUv9&~=#*XP{1(AM0bOWc2{j$eR-?b-tC1mhEtCVB>h%F(UX;qhH6)pVyr zq?OgY9`{UwWe=X+h^^23H@Uf<9DG_-VHe}m3!n6=<7~puqm90jafIHSAo}grLu7Y- zT4$?0azkw1tatqysm0vuFOLH}Lu_%9%%7xYDv!^p>6%Kb7g28og|YNKW_ud(ZBrtX zfNKA^c2%m~7(KRuzd4|zmp`iB){tPgO1--dS@$k;<8zESX2F&)>{N3chO!$3YyFyP zJM*7^$j3@6_Zi_5%0NoEW3oHn90U8|*0at=se^2pVpuqg5jM;#I_Vt=a= zy$&hW9~7r-B~sEIN{339w19wsgoJ{CNH@M`AM3!&0 z%Q@qEo;By1YwqRzy3JMtaoAqyo$ebF%% z&EXJu03RULx%J6~KN&7W`fBwxSbeSg(sfRX0{Phlr)tryL8isb9Zk(oIjsPa4C^6!C$-w7@sePtbf_^UY=2K)xMdU!2@;`x5wZ6m|7K^a8(jfi{o{e1Dd&Lu0vL ziUk4zSWw!4VgkSasLxw4Uf%`UKqmOvmw6ToIyPd!SpOV<`SuXIRL|Mf2gd6<$9Ew( zf8+1>92AH@_WH}TfqVx5BX;FNjI-JR1mm1G5UnF|8#Qv6eQdaazX_qSEI4gKKfa9S z07O-)0cZnh|DHDB2)5&&eT8KW*ukRt+YWGD4A3uKy87cBm-{O8mkt275DD5I`;JmM`Ny^6h@w^DQJ4y=Yy$W~EU#wA@0LK*7;H`R~BtT5q4nwoqsNefyd!LkM(>*w+!z-NIA80!=5m+|#{CrDoGx)6g1jPaMR{~7DQ_&TAbLzLUpCJQHmCuU@IJARVP zh%H~Rvrf*J@ecjfk5-*eRY&`*JcY;m>Ja?DQ#E1MD^*1u9*;7AZtbWMB~<;(G1($M zk|N%kh8=ti|2;EW%H%|95S1q?)5wxc`e{;V>G3z2_?BCs6c+ygs`YnDv=tH;@pX;2 zm+^HhTfk0ctKWA1%$xpe;JjIPj<5f*6N;~&uh(yeCDWjfor_I`DSU3Zys3oc8AN7d zxXU&5F#hY}$Fi1Flu%*8^q^HrD-{k-n_MYmI3ov2CE0DameofuV1rF0?rus~(+aW9 z)|;A?EVU5{sTqsHmpSpwA96K=q&>)OZOhD%nKB&I?ocfW4M&LXeA!cOmN#)s{f*O%-wbDS0Z*yus=+xQmyT5a>K_T&zOrI=2tA=Q6&Y?+l5}KYRE5ip@Iz(SQ$Nf7(Ow zb%;M9eEnB94{eGCVGq!Zrm=r-o3L$TAr-|a87I}GLNdP>u}2mAm2qzzG(JTR!}y1< zL!aA6)i+Pv1fE3!H}nPJ>*ZLGITGXO*?tcA0Pg2+5Wb%G=h>A7%vk`w{@|C(f_+D) zo$sF}SvM=ZQJCC*<~nv;_lLEzTd~Ws40$f%17aH{&I&9!XK z9>wF|znkSEkNZqlm(d*62)PrrHf zzNa(~-dEfB2FldeHJ=?eB0j9VO&gvXSNZ4)p7PLr@)W`AKOV;s?O_(^MXe$YXdWnq z$+pwK*_*N?jM!T;kaL!D(r1NOB>yaWtR8k+&*#8Hib3I zd3=Z56!M;q2d#$ezQh9pb5xmGt zl5Nu<&B2p3$DMZz2v+mYpUsvCypP^;)|Y2^K$R#GZOPMfJASQLTyAYn$8~PgvY<9~ z#{T+N@ZQsn4r5~p{-Ux^c@n{!`rj~Lj~OI?EY}MeZ%cdN5Y71oCI5#-M#vaLhsQ=Z zaoF&>2>yfCkhCY7hX`hyeh+#$1tr&?AeK(xpR0p zzN!x=V>>+Uxf9Nc-BZP#(Gz}8PVktzW6XOp1Gn12#K^-cZ_ajlTThWX`^r7U`h>6v z1wpFTGGYaX15sY9f|&93k62(*w_#2la{Yu-f}%i~mRIFs0 z3c~N1irCl#dF}k1;2k)>{qvjv3&NFH?wrkUp&F3!w+iS0bpeP#R&bCkb!vzQU7IJJ>M0AarHtBA~42Zjsd}daP?o$ zk71rZ|A|2715&u7uCTS*u%!1x+!-7hQp*=|by09T{s*oO;ZvcSfFS@^KVbm=x`?a$ zEnUXdpM3!A%l=chkRX7gxN7+2A@FM#aP@59`?LHRnyY7AiUk4zSZBDpfT%>fD;Uq~ z0XWzdiO)h41fZrnEJuj9|$J{$sE-TL3- z>QBLT{IjpBh5$Q)|L!rQm;m&P8@ONQ&vEs0zJliJxht1(^{Qb2BcS`YufX%#zZhq^ zdJfR<03m^TkKf2lv2Beypha47@W>;`DZ1P!JBfh`cPGA$%gjj6eqarcRxM9H`}R=+Z^_ly@cBH;{~ug^ z5Ihe5d8|L1gygKxzsKRPyf`l^@iyrkR|m#n&fmNUy#|SA^RhKa&ptvh{=8d1g8^{$ z{y*FXf&m!xi>t$kVBH|ub`0mMI?QvksHPb`o%emxXH46`dCN({UU>gseyQvzMyFZNJB(a1FGke&4`iaIWZqI`@0L3{^^U$thCv6cNT7ibLJDPMkMV zWY_Ki_Cs`V@PB_lA3p8O6U&1?12^;qa6A~Hs`r2&g64nw`e)92o3v`U6b9k)H~()x zT*BoeELN$EkR<~6`C|)N_^Cq5qn9!JWq51eFQ>22aT+?AJ%1ADZ;b_Ef$zAY!}EaCmzKMfDrqG!Ol0bIg%9mP@ulh&e@wtq^8s z0wR&olIw$(GVxnm-n$>&@G?xYtP%56JXn?`sdQ*WG-x;9uM40q3~Hb_f9EQVeZ=zUh3rWxGVuJHcSx^x=@OoVWZL}lb?q;w0?%UigUj|&dNu`#xj*maf5zNW zn5aZoHiYMUo%J=q^Oe!>hTLI#+r`IBzTnLq`w_0?pg3vNnuFJd_YtNsLZKAZv7(D` z{de3vLPH|eapJ++NDV%n!A{1A{o&w%s6ttk_(JSKnF;FE>AXtw8$B; zmn}(HP*nc)-dwW+K1Pg}QVpO$G$ zW(_>&%&2%oz$FohO=tI|{w57RR(6TD=*~&H(r4Ts$y_upN+dW!@g%mU94byIddlC~ zgKlHSOi{kFW4+4TbCNz~*pB~|osLr%c@0~>+Ph0$Xtd4Gj$)UGW5Unx8gIC>yNKS` zVY*25GO^>(g1g!USaF{bYve`U)*os_W3zPJsLsY*1+lnSzFhIgsMjWP72Yji5I{9= zudI+Q{=u;M9&x#1FPP4jp7&e6gb$NhOOvxlj)#w*yWK}eVV`%!JSUNl=#B5US6!h? zDbTe{Q0z{MVeBXS#GPUrkA@s+r}W&PhwK@QEM^PJhKbKUGF}edy~E?CPr?g6UbGz# zzwyIY#;`3L$o2cO+}ar&qAwuhznSD|@8A^wrc#7+mW#xm@@X^&LPqtYCMI#kBRJ<3 zL+QP6w-dBXFD1!{pb6GeGmzC)9#HHL)oX)Wqa>jvUG*( z9i>3I0>5f@{lITKMZ>Ud!r@B~gRO*PTgY#CieMq3$y$BI_&RO)c`6M(+p++!J*5$~ z8BKO4>XiG$vF{pFa`Tfb$B0xm0xl-QBemxKJuJJUAzTx1DETKPtzy`CTKx7#(d)8_rxpa zpA{F^E7s!IC=aKN&jqd-lAl!5SZxqxhI*xT@>b7LFEu6^F-0&;!J?_ww`24Z1`RCu z4^<_|%-k{F=uTEAQH^r5;iBk7^lMc(B=2jEU7rf(ZfzNI_+DyU^ucK3$xR!vPjbUr zYw@0%Hz%g%x4fEcUh{WSCczQ+O@D(y$+#i;e)!}5ng-21B>AORx3cbJz`2DAI4Vrn zwGWDvcg`~?qNpdgKhsm7X*Fb4Z^?VG>A19$wk}P;R&IU$ZL-^;0>?b=##y=a{0hJ(4KnRMWIVd}E4>O`W^BX}j;1mRv@ z3=@^K$&~}@aaOBOBYH^)iF%eSB`NuRyy%-9E#Nm?R%}t5C^l>y`uZ} zF1mHM+lBE#6fQwVN}a!!`hcbv zPi*>&KP*VkzWzT@4Sig-nKD4ry5wfEHTbF!`}@559KFuN^ai^U9- zf-584ONFA7rq$_|v|4vp*2oN6Yi+PG1v=2UZrvr`XH~GG_fC|_+XHWd(ZR*|5Cr7E z^LoJuI1gSjFPVnq??2DVU-^4lRH9$z+`D}s59a=zmq2qu?c>WZszw2f;6LwHe?E`< zWgxlstR`^|BmY<82J(3_7$XGy8MvV@AfJOCJez^o@#oz>lpV5=cl)+~oC&i2Z_w_~8e!ucf{H@s(S2j^ttR#VnJ3xhlB(@*EVaEq4C z5Wq4{4Rs-dcuAi@Yh9pLKwlqCHwca zK=xMmNd5ghn+nHKslQhK2KcoL^aQZV4fY2d9MaGF0?7Od_zHXhHk4k91p)!ShSC#M zroy|Bza@k5>Mzg}^1yMEcNPmeb_T#${~Vt!WB`^&&N;j4!FVa>I5Gt1Z+t@Q3GRdo zm#hnDA%|f6sXh7SyPp_m^#lmUIXxk(a@k)B^IZb6m0Op!VrS!KY`)>3u(5x#k&pjM5; z7x3S@fQ!}zXvOK=dRf0e8EMR<@syDlnX!Um5f+b1iaN9Ba}$U#oFYK4ck|BtJAQX4 z>Egn50nXqt|Ic})g#wZvvwn~HpZT$ZwhMXlIykRDuM0SrgQ2wxbn1mm_E2r11TY>P zUx)#$3;4^&@`2|Gly>p*(`LeYQb2g{7HMjlTgqhIj{URPHCa({dPIZAGcT@(*?6yl zY{lu^=rmUb>T2A?96sGdUVA_7Hz()N@v7!K6rVm)^zT(L@k*QVPPn;&-zAtRDIC(iCyIU!bI4u=L9h z1o$+U=d(&L(k_nZ7B0~)QUw7&JootRho3oo^Ex<(cb(HN06*jdet^<0&aWF-ubD|4 zXLf4}ap^%yoGTS1bF}4J(<6at=B3EmgMp(j8F3ZE#|tm;LJhNJUi00|4C$l%7o0Y_Xe=ULYWwb6;e;>nD-I_wrQwUd7v4#TK zEmTyhw9!+uh9sAn-aFU-fW7$j-RME*uURa~d|6VwvaGe_P`-XwiB|UAq zY+a7nzHDN#F2aEwhWidD`rxisjnEYQ6soqxGKyhV17YszC*=0W?Gr}k#O*Nx`~AJ^ z)PC`E5lb)IKT z#Z`Z;lH#0pQ2@jUM7zN8erio}mu4c*KI%#(w>Oi>n~-#>6GCZ>Q=1!QY3&@8%?zl! z2x>$~xM9`cbJN(7dh*{SqZ97XaN2I8pV*hxuPG9PRH~^FduYMKYX!M4 z$ya1=NKsaPPhK}jv~peoVR^}H7k#%>9>LYgt`TW8URK!Xp?;C=K5~ETS=$Vwg2kSs z^@u-p-27OLM7b~;vOOvl=L@!%GgFu_uyz4(krI4;SX6GWyU2_2uW67G1@7c~zq2Bt zKddHX*+xLk=G?_3*~=#5&CnV~CXLo(wl-xvIl{5P3V-+XEl6o0IOpA-(TY`lC1@tg z;I5-QD=+O`C%9pcMCLcyUYuV0jkgPeNfC1^l2!+`QwK8FWlN^S(zVwZetg+XMTmkq(hQN4Jv#F&cgAt!tZy zsJ%%OyUn>=%U#qLD*1BkJ{1 z#M!t!u_L0dxR}~P+$g}B5kyEfRvM-8r7L|l5WLk{0q z9KmIe!8cZod1_gv7N@2b!>~>pEF!aN)n6?gC%$uq7g<8Zjn6k^p)!327MNpy{k7Sq*SHb?Z@*G^X}XgxM*tOR?XoNAyo4H(ztex`!JqlNlA;TF4}4}B_#8mS zKU@UJg9U%NAvFKgxqcZ&sxW|&>i-+#XRh6wfaKb<+Qm5xXzd~mjPcLfMGFnY4xQf^ zP5jbv&&SF8wjv5&2pX0L=a`u4h-?ImP+7$%G<37j7Avk~I6I#320%HKN^gEsa z>wycRdnI*3&K_{RcFuP{G0tii5R7x$h2z>W8YiDJ2SeTvp>yg72G%y0$1;jM>>G?) zae#Kg`|oKNT#A?ZiuO6sFU0h}?Eq_pK)-N<`(@>FUqRPGh$$~zvTlJk6~G_>U5IhE z7UGw$&S)1e>sg3h`dGkWKK0|E5`Fy_v1me9&yZCS2!hf|8|4(Wm zZmA^55Lr&8P0AqOeT8G8;SpZBd`H@j(K^^;uj&3ZR$EOKlx^L73)#f#c&o=khvaTt z9Psb+5F!}Mlm%H?pKe<|`~gzRSqL8V`jj8mqeeO*MAvBm)0dv6UW#3@aV?AGlV@*L z@X0M+WJ`uSf>loSSnJp=Pe1i6r)ApaaF;>}3Ky+gZ~%|POY-7PU>v&seP{eLFRtLx zXy|~)I`q1Qb9r(9XX=A!)Rfu_mz+D$2|0JbV>7;LL-t0ocjU+6!~SW{ihdn{bm@hDz{ z$%r%FUMNQQFUJ)*xFLmvHmqOEXupH{1Ci}^dM~HgBqKwH>grDVprWd}{;7e4qCkt? z6D<_d>tPW=6{>fF7$2hQmg5yZGY=8t0_+8}dFVY2N%a;kId_0I4e%`y)7c!Sp(7+x z>j%*fXwKMOd`>?&zmB08ZT+oP!7PTS5YI|5srE|sq$=97Z*}(wDAnNlD|cjif%_j9TOA2FCjM@*PHZu%3RP9J7>RDTqz8kRW?Kaik zGIRnR!lQmMIvD5es3qO}^unO>qCE|V3@)3eb#g-D_V2j^keI6V!=uqu1N+tD^id{S`L`_Gf#s)cVNtD;gWL)Xw!jq;ypea1Da~!80diL17~9& zXeWGBX?Rnj?#GkVah7^hM}@SAA5_eLQa&s1T!0gcz-DMRJ)0Gf?I8+(c^X>7JI_sENz)Eg#5JbeiF2gl1a>xl{p zKbyXt@bs~fb?vSgd8%}5NzjSe>*+a#la7jaOrx4QbMRWDJfFj|Sf~R&I22Dkc5%Fq zySB5#W;;#H*i@*bX|8R!_D42aj>KcCnGP0M%CNlFuZ**{jhoVx)-mj`U4<$uaD!L-KLoawG^fdrBM)FEiqf8Q&SrgxQKks;eJW z-H~PD+Inq%!QyV!S0Wh##AlBJ(MqrEFNwlqEAP`iIL=E&7$Dp~&h&B*KL~N;GYV6-tngMv7Vd&w`||sux{eJK)0>VmRKmJ9 zc66I(IZ0o_WpoR1$q!g%%o!a$2vv&sg5g7+w45BM@_i)>oolDoElcS0)%U98;+ZQF zNCGNGQe-EerUuPfhS*4~B6+DAK8GX8@>U1kURl$&eRi#%{{Xuq>9Ny*@-&)a$Stg~ zj%Dn4iT&@W+3bwnTQ=!D$+#Bf8;XeM#A(I>c=wpr)yZix+@ z^%WW~3@>#2vO7OyL#TQ^AG20{(+ovpS@6F8AdvgcTF^8iUfBC-2edpAB8EC~CRT(c z)51!{;2b&$rWf{!+R{0O_{f-qYH4GZwYTBbCxu>wu&h_Ss+-35kqKjGLid~$y&ZM@ zb}ZDE-pQ?IehiD^S#}eQ=;JE3*IV;wZVyPLyj|t*4c0vVaFh=>Xv51b)@12aa@3%F zlB=$>bf-U-Ch6)XE3BTH@ZA!@;rShQBIyRV0+wah<8K?WA1k`oDa?rDVs)#DZ*$RX zSy(&SI&&9~9`Z65Nx{uc%GtH_Nb?ZK5l)@Z=09Ekd`i<3xrNZQu!ZqXg-diSu1M9= zDs!nKn00(9=L?Vef<4>vld-Vk=~gsY{mE}h|?Nq8I78dd@Z{FiS*b2?w+%P?p&01RU4v$<7w8IoJi>H+645}@WT zEntlM;LpGfeL*;#WhXbpj=$#){I%mNL=VtE`wR#40Jf5aB0h=!<)HS+7k#SI2m8~s zOo|N|qT0&WRyb4Sf2{b#gQC!z;g?_pW`q7ng6STvHm$8Nk0NuRDWuIf7#^*#`8SKX(2d&;}M$w z!}?st|4FAH7(VBG_Y>nR|A%0lMUAqwLds*#55u^_3vEGFkXKNRJ z`RWY+&on{&h7q+_LgrMxm5RJ^&yk+@)b_`oovlF9OAv_XBL4qh?ZSVx3;)$FTvWS& zZtxMr1b-7LQtXRi7^Sp{LPIStRaFL?e^D88;}Y;lkR5GVqxH z=e$BX4atuSzsLNq9Q;xL$qXtuuRzx>oXf$`TEl9{Wm*I23vK<&a`zV#A# zo!WelD5j|rJ(_Z=-lbw?glm6 zom6-g#fB4vCF#kekYHDx_)t!I;xyNH-_eNT6mPApzesDy2)|5gC>jIoe)9ddZ-3_O z8B{}A8>e$x17P>db6UgsS_KoM6I+}18^%mM^^v{4UXhVfWhe4Hx_In&{kw{9E#^q) z<*{hTb?>oc(>qqNDpnktA=vY=>tf%0XGiGOk4IKL{bmw&c<*)O7UG!R{gY^t=dYIg zTD4T=QG@i#RgDhvjIPzAIhoXta{bWFsxwV~FZ=kpC|@+c2kpjwv|ZrW%|*>PW8oxX zMR_C3!;~^PDBt4x>)|$|ms){B4a%tqpvVAYo8nho@rZtexLSpJqJ?qbyvT@RXG7As(trL{i z0P!tEYj8&Ss3E|log1r)1~VF1&D)Xq72f6+=~qwN=Nc^=_E%*-+#u-ud=-JlD#Uc2 zh{8z3@(97Q+La^WJ7TLWn!C=0TEm;j%e00f$U4?XYG-3$79Jb}HRrU3-|d8tnu&F8 z<{2}qu;NF;$v8CN+;=FKeXFdH^17O>wH26L=zQWqqwrKazRlhcH!X%ZS3 z-cMcU6O@Q4f8k+96($)CU##ay4q88Su=KFN=u{|a*giraxW4!eRTPny4S#iDz7m@U z1*zQ7M-S&!>jY-w36XJCL%3e|r`O*1GD6utSmU@-#m!%BFGp2S+C8BVuM0tZ8xd=u z$m!!S$rT(^Q8%F~spVCw6*%nmq|eMl*LJl!-p9h?imlWx&SMLLL-ku6@L`o(t+`=~ zoV1vE@Jlpt<+hC*^xJV9CDj^K_`=db8qJx(*wft0=_-M2!|z$-6){Dpdzo^H4{he9 z``%K;1#95F3-;83=RHPS=UxiTungQ#v=wD4kPm39pCo8;;RyBOf6i>*U-iNi^+%bB zJk5H;2?}p$8rkg|=?rUFcMAmjS(-)PsJ^hPF}mIP!Ex!X@u9HUNz>B>Ef@wf39+Ly0yVWT}yH%ar{MPEmHg#JBLNR%_7`gz9QgQ_|&y02fX9^x;!zcqHS zi_C2~vd*o=>!+MsZ`wcVzNjy^<(LLi{k&>mfeK{mu=u@*P)$GN14g)j7 zt+X&;_lzij`3YK?LL;TL@T)sceO8v+ha9Dyxb7|9cr0T~x9Dh%e0)9?pD6! z&DQv8PBU>eDq)XIK7nr{mHkD`*zt8%eBZ#VJE|J_ollQvk$1*v=g62&vYl~9uiuEY zgl#HJGV+covRlUy-2q7*&d0nrQtIh>)2xSKZaPgi#`zI}Fm$tu&G(rz&Mt0T@16_w zw#A2|78T)5+pKhkZ`aAo8u7Cbt=Jyq(^Y;mnjBn=7Aim#O@Cuw*0nFBqN$g5bL{S} zs*+>|L1kU-O71bf#}B3X6xudJ1>t zJ(6|qH+nRR*VIQy{A8$Fjlmj>9r)E#ZAUFHsDl%%+`~aN?p~NPqa4qijnKbVqv_yc z=sZOw7*1*RMCl!e&tRE)igF*!v^A^?PPB$5i zBcHz~e0gQ%>owMg5qv!!Q`hztX2>tp8oa>m`X980pZ-k(xIdsZ_>Ka90ouj+wF{4m zFVh;diUE5UFn-&cAcCVvGRH^`{MrSz24%qaXZb&LtwHgnSRfF91*J78CWxe=25^D# zC@#<%%D{7^va?vwvCDtvWZDVQ+H+$B}1B0eeCrPW2?F`po!JG>Gab?%-w$590=pus-XHYYongb!h${ zR(l!$*D3`t<~=XOI9qE_4&-FLzLsDzD9D2sA@+)LF*tFOrhs_nn-DONO0f z#k7SCV<(fnv|q^VH^m>K3GCxIM%yNIdM2~1jXHG8(#3k`Smx%m=iGVV+b8wTo9`n2 zZ}9pu{=XFl*e(5M-Q3R{7py}v#{}L_8GOb8I92^x3kKL-evbd2uQgb0t>OvY23hZf{C@S zRN98a5IX$G*#@4z?g>U1RdHspu`ulO#{ObFr-s$Dib#=z7MZ%Su)6T<#3xm4Lw7=c zp|AZ$>jQC(JWR&t3LVUz{y#LfkUjFYNrI$%`q=IrK>3!aqx4j96u&mBKH~X9OdP*v zi^l6-H4)0&LAB1`YpSz-Dlkul>BHmnNk3JuG4-xtc*G@$A7^hWX1{?S;0~d@i2sW< zT*m*k${;b-b2g@!NYYS4&es}1d<)_Ky9Cag^rYFZ#w|j!v3yh>PLn*XdFIR(ANawQ zt*lDmAgMw7-kpTf#Tn)?>CihvydGAx6i-6X<7n7<`q09(rY_|Fg^ic-|E+MKof4V9 z+xasFLe#)9V0e!I|86II6rRGWV((YON;`Jz0J4vJ23?cH<~4_loD8`F6nbx0+U!{? zUI#Qb@oe8`kg|m>C&7B-tHW%Z@3bvsv#5kBhJ%ukWk0D%?kz)9jq#4tOcWRn8+GtuB2*fVjlp;ay%J;I?Se}q^soK7~;&F|Z z_nq9>zFGDGxOAye~~EC_ga9fwurNnK6yl!+o+bgvkXdDm7FVv z{CyUg<}X;hjB_8ZRnt-$s@TiH3hwKNsb07I#+cI~NnL;`9{5Z>Z%gKG?@hLrMbtU7 z#|g3@7>>(tp))&5?wQ8C`^0~HZ87G`qyvrB6<9SVAD)H@l7Z$THwo3JkuX}>-}Uo4BOLUZbH zX`+3uUV^sAS-ggmn`}^i_4(CiC(mV$$SgAHulG7EOrrgCd7F#&H#8UASiX8csn2@tb))oLaFjV?RrzDyKhSZ5a?-a!hS>T=g}r`@{q{k8GS< zPCMR+uUw`{#JIW6{8rM+w<)7(vbS|SLATWGr7He-^+Afl_?tJ#3Z-OYUo)aL?sQ2! zpl@c;F-YAr&*3YbOItJDeS_XAJeU|G*voTt&-BX2cpSTg(v55QO9`4fJz}I&G`S3h z9|!4ikrp_|e^B4Hi|rbr>~-IIHIrs$&vPXK882X3C00@ji3)|40>;&ZT4i{1yFs=$ zial+M;aN$4n+?8pDOp+d^MM=iKT_@(i=RF%AnWrGGZF}Q4_>>e)No~Gu)H00T$!~n zR(C?N;a!kp&T=3>7SHHS&Y;n!TYI~Vo>;F zxeJqF8fwJXbNv4t1~mT{ZoZ8FYgIs=GvgOxoaO%z3<&>^UBC^TEZZDepM7$;(a5fi zkZK&)_HvClFk*bRX$|}OGXeoKI<1@fN+M`->}{qZvX zk0T1fApIRHXE4t4e+b4o{x6iXjch2xC$DWPgDon@z1^*TmbB_n)+=A_`Ma-FUsJ4*}U9W(6t7gQ3XT{gKl=X8E5GvNra4>o%(+^Fb2%7VYe-wXOl!aq2QaQJUx;zG)}RV_ zod^y%Gj=`yOVW%kMa35>DE>f?C*6QRXIz&o28P%_Uj`_&+l*C$tFyC zmSv~ri9;EEJ|_sNcIN%j(!tun2NS zvPoce@Q$0?=A9@IFu3kC=2E2Hf%QouMbW3F0U@B;_WNhr@gxC16XPDOz#E}5%Nf)@ zUH7Ohagh6;3U;+}^YHX3z%M^b?gvjA{aU%iP zSWWho(qpV%xmo$;#RzwrL&S(l$!f|Yxh~Qg@K!F<8gL{aam#x)rc6T3*>c9u)fzy2 z3(*>QzZ+5nR-`UnwQagdT3pj*FQoCD&YIqeQo%^*&I+v$ab656%1r6^$?3JJh3nQG#QwDi8DOZ&abyijYPUb{?d82kdX(@gSrJAcMN&Nw&*`p#($zuO5P)$CRV zr!9H4>Vv-0bbV9CFuYz-wpY`g6^Gl>*)=#qQB zG%iQXvkM-%t4e@RegD97v9I@ehc$Ugto3OdvVXBMM{vBSRf=gLJKIMpG+h}KuO|MKJ5>Nw*pxxl3~-YRG{9m$sUZm>6IjM zrN`Ewlhfj1g&vu?B%g9)73*Tgy{m-ol-CKjM!d^PIj>&n3X169!|U^`PSp|Y^7~dL zGpK_3YMPr#IOS+44(Up(my%Gh%L5%M-$yzAxm5l^csUXA&Nb@MPZ2wOhGw0d-aZ}g zU-deUiXBG7u|nxgRM^{G{+>`|7Rw@#M}bsk8>W!gA@=I(H}o1~sbLL&D#y2)eI;YB zkjotdITr%xth>mcfIMF)Rnb3A2=h!XHuAfoiC5q8Y_y)`kQeDn^oG_0W`dowT;Tx3+ z4OXd1q_$XcBHImRPjoRxG|JnJ{@|dwe%CyuE_CAhU|xSa3B3&C+Re4;A5AAoV#o*_ z37cit%1Gr=Qds1uBBfyro(A=!CGoc(P#?1;(7DNXmsA?CuAfE)&P6@Ff2E|f96nnJ zS7Q7XYJ?HWt?;j3J}zmWj&^f&^f+(bNKZwRV^v{lHj2%cVk}JLer3u}6syWF|8-uv ze8p*LbftzpQeHZ=rw`w(xBaDE)V`IXP}uyt(JrN+UU6i9H(H~H+PvEZ&!2avc}PdJ z&MWE-i_f;ATDl3I8oa%+$n0!lmaK_qkBG`JIk3jk1eYwmy%MD^cT$e*;kFa(PAc8E zNi>c$S48Yt^NDuWEpv4{fOXWiM`b*~%yQ`J)XR5IULCLJ>AQSN4?c}(W0&PVW)^K{ z#|WBS%@b=^8b(!hgXx4W) zyf-t!sefy}#TJnm-m^iZQqZU|9Xp0e|yMlb`vc7fJV1AKp$|3hmH>X%}HKmZn$)}Y+bN`#v+2gYN$Kx?Q0 z&yi}*VnN4>GZ^ciA;KWSBEliSAiyHP!Nb7A!o$JAz`?@7!NS18 z!otD8fd7B+yD)GIfqE5aU(>BnJK^p`X5fg-#h@ z-Rj<9Nc~#2j@|xM6;yo+l)}rg7pr)HJAc7w-V4wYQHQ+M98Q>{8Oe`7*<_QSq z5eO!X%^xO+&2Js-tAi(O7>Fp>f~AA^FkoO15I}5{?Br~uh;ZugaOiky_ncj*#P2z| zSejYhHFmj2rFut{je-z^or8^+o$Dq$7dtzf4k5-(;3LPck8D)z6l`Qae*pjg`TOF`M?*I?DEwD2LH)gZz2AN@lKqkiU58n?AJqStDM5*^; zCmWuiNg*3@6pM1EGSI=Ypl>gd_t{4ITJ{$0c~T3N7w9V~5*NOCs&8iI_tn)8gU>RC z>*qY1Ox|*L6*tH4^u`A5bTh#53FeY*Qfx6yu9)1kocqh;*t4W+gA`azG*55E*tGNc zXQZqsj56Ll$e`sz9`L?3UZS!D_gI=pqO#t}$GEq0U^NPCDBuIY-@ti$zyxck0Tb}WN+2; zW^=N`Ae&&ky$Rk@btxllIJW2kE+gop6~!T0$DcXM5_on2TtGk5GA&KEQWi~2>(rjqON?+B<=sTx(f7rZ@atkx>E2J!Hy7LaxtJT=)~VxxTC;Ezuxih^pXplRS5cZeZ9q;==H%kVbQtx=tQEfr(gpiT>A z?6GyElp^Vqdk(jA^E)~=33Sui%y@;z`S6Ms5{n|P9z2^waCqyec~1+MJ?BZq-CT~C z$t%wOk1A|K90dzZGf~Rw3=sIreM>gUY67E!`O3)?sLcY2(W5>^iJzD?*NiD@HmY;+ ziZgVlU|rYo2KB~meOm9_>15$ukYYlYUUj+!3l+g)Y+5hh#y>dP z_>`xez(@ZTj%dpw=Y7Fk-LfDmcRaziL)jaiD_$q*I$UVIy(0Q_94IN-;sOX1R|z&l z^`18TIF6yRGI6IEvTN$bXw?`;$Y?B(a{egtF#qM?t|)To!7_3E!{k)8dih;}H|ha} z6r0gF52c2s#VaT|aBH5Te~;#$or`jBYZ;v^TIAKmGtyBnLt41`)G=3;$xK28WI{a` zTBWQ;9IQHqO8xc!uy@u`Refu}2c)IDTe<}iP>_;NK~lQAkw&^3r9?_eK^mlymIg_Y z5ReuG0j2I(*PT#kVsXyzG;uD_3>dh}CHM1|3>(dK= zK1}bQ88)`#W9ccm?pj3|!H!7J@TDlZs{2reXg-S~E_D!2R>5|$Mwp&)=O9acEjfoY zs=a7RMr5xGxqPDr=CNU)cPihzvRVv#_c8TcLb$hyjD=iZ`zNze-AaYl@eR>r`R*WM zNtm>VY}Iy}hW7y1DsoSYeTrIPy&giP`5JYN>W~%0#%v4=xRjcrW+_MJGR-FQ-4tNe6d6JD z=w*=>pbP!t=IbRsYrc3IiB=_DM`(*=6R0}>ngugGkbv&B}lZRI$s#+=xgK|h* zXbWKjd;TGuzMV>+Ar9rb7U5RP{-lB{?lK998%sL*B0Iuj6svLxOBI&JP+>d=Y|aPo898&jwX_xi3Xnc zse;X_TD(Uz$`aCZQ(7UPa#65e4km6-EWm$p+s=HQ@V%W-QhUp3wbdn{*SD9j_c?b` z0tx37mD3RI8|W8=>n>C31}AU<`zL%0G<5{>*h_?u_W0>^mr@Pm=5IC4^hsdua20j% zuLkjVwe=VmtbQnNTi^aXvM*othFuQxbBw=2LlvHs_X{Fizxve@0f89l z0xMkbnhOSqr(g4?bdUxX=reFY7T`RDft>_DpQ!uiJ=EtkfO}LA{+x%uy*|gb-Z3aG zohiP7BAG^0TG>cni)BLPpP)`nqcj-nLN&2o$+qqwwsnDmc7%eq1F@|Y`;%Q5B&Z>x zuH74r>3i%*ziAT|nw^q^oSpO+oZ?*ur~d=K{U7|qKLBp7?_iGHGY1l>d4c_vq88Z5 zI~Kup4u#7f1`1B2gs1f0+#qm_@_$ao{_$zVK+Q=%COVyheB4*t8Hv+*G21eV!&y$z zlEJCF)h|;~3X1vaBbwE*g;8>eI(ZHJV->3+AsTwk42s&(#rk5t91Iqrx1Dp> z)xvYRq1t-QnYQmL+%dytc4KKuoV*cmk9LOG{)pQ^($yG(VS!k=I0n^U8JFfC!8u^@ zEG~cLHew`s;levt$0a1gT0OXmVa=z(8h0<%IM1+kKt6+DSTe28)S@E3r19U6@8a;O zv0=318i!gp^^IWM^qM0aWbu4HP&+5}#`WJdcAU`i-ShGi0F|0Xw&x66DGe3XF?;CmH*K`*c7VIaO zVSjgZ)Hrq|LCm%K>dj0C>*L0wMUIa7jn?JeutX{Cbzb%Vqa@1T{ zJC3wR3FS1~&nv`FUmdB&Pw*u_;Yunfu14A9f~GNR;fs#HO?%73r=(Tzi8&-VnN#sOI~~GIu1anLoc)nz=|j3xb1FZx zb5if;rdIhxp;UL=r%&t&37vd>KdR7k{%e9vZZ=IX>rhaIifR4aJ)KpB7{uEFg(Mj< zZcCfeZegkJy}Gv$d7mKz|q2np|sJ2q9=At)C&S_Ymo7jJ79R7 zp)8r*q9M}gZg+m?BIdyqxEYl^b0h5I(Jd>`w%$J@1xXjJ z$Z#!8-3$NBo$^|^M>iJA~b4Fgl>b9u~jkW^vW9wGt#f`)^mCbg$a4z^;kM__haZO5T z-uJI~3B0@}F8dsgy2nJrcfV$?H8#%sStHbl8`jV@gjduk_1weLq2|>7k9SxQm0AZmZ2q==*p8zC+NeML3DR4oJrq4+8rflUTpbyGC2(CVZYw60XZAYB;XlJTQ_()i~!S}J%zgJ9%R zjq_`?zr8-kv5INY2pC-2(ME@TFoGV~ZH@S81HCY(DaTudlu%8KS90us*J#hLM*m;1 zMw@hHyyi#)v6SF^7E8Z!-uUzWS>>#&;}x{YA-Diz(?r-JApz(!a6lGd{DVf$kpVQ~ zUtFpI@a@T;xqc&%=OFl2;Wdp4KGR7b+*5?D@2c>lboqj{GAtP3+ssOEIoF!-;(H!e zmeZu|J1>h7<)|~j3aH5C=od)FA0iI!KM7^bKB=216!lTIXupZwjOG zzc5BRDfxu(-TljBx?wwUx|>C7{=T@JQ$eCCVtb=cK1AZ&_BlEV;B%g(el(t(VT|;d z)~qwc0iV2y+MUOL(~m{DiRU&}o^3GmNlDn;LSP2Nv%b|kF(gNyUvP$1P|PqYxYXkC zEy1)Thz`n^*AppJ+W}Nx_lWkR>B8x$F1@ZA1 z1bJqpo?X3bhrYPc$(uob4v~m%J@2r-s{H8fHF|~XZ`S@b{o5ev56?kvSxd689sM+( zC>fG%o8$<|gDi8DY9^)jZywQUZ;1G23+HIz{F*l3ulXWnwD-|>B_ISshnRd5r43jT1 zn-H}-Y@>qiiTGEOr9r7y_*b?h%Qqdev&CMGW9>QbEMwlKjfYP#m1H){bMYx*1w045 z@BD2t5VPS=7YTDfpMe9ifah#UIkMpM;?MJTzs`#ZhyGcWdN4Ofob$d3;AUOCCN9%= z@M6nvv)~g%l$3M!#_Wp*WbZ}!ZtOn)K}I8B;o0OKr_qW3=8aPsPO4o~365!qCT#XZ zI4;H7D|;%t!Uu>pIizZZ0-2s{7A3JQQ9L9qjL6ldd6knY6_NWM;Q9mYAb|T-W1t<^ z6Bh~hL32{zfGj{eU{|ORfp*}*osS`vdQc3FgE{-tzqAAPjXAn(gN8PrnoG3(%vXlb z4YLE;2hz%LcY>e@uQ6o&)C;|P022Ts*Whg#4O8lgKY3fz5i4lQvwSz?{+(v$zNrNr zZnXKfPk3Vo`tE6W7M#tj78Cnyk$P2{G*y*m&5M|e3p+icZ6cav4LeRDoHb<1EZ(ctvD_W*^?-hT$sSj-!!4EtnA~XTZ zVakLKuW_YY`C(LH3@JnAXr3V`bwsK7QXFKF-Q0_fr$(_OYynC&$k#gJ?;Ut@U}?~O z7`WrdzsNu#<-5N*0Ppv@9EY-?$#OVJ2AMasAtP^9zL-K6&IUK<<=SW!^@MlCg8$=8 z>KDy-A59FNXzgya*o7+D8_f*KIr)i`kac-&Pd=1;o)lsbyqIss?xK8ykwcP`_`OzV z=c9D03T&OBppBpOnyrml{*ADw+?7coL_80iQeq~KJlV9+6%N>=9C98Pio7u9n_-xE z861B5IlTN0d!?cV9*T)Qmh0-{CeLzjedRZ(i}PejfByX&(s8;`UHGj))w1|=1@=Z z+-8=i{N)iUC0Af1<(9=fm-a(JPWi)^c7iZQD&KDgE@iy-ziaG9sAr0rX9n9w5GY3| zSN&=N_3&FwMC>Tby^t+kuM*EnzprvHSGVyV^rxhgi5Rs_ISEtPa}&qBD|Iv-X!O3` z7I-?sI!9bY#SsNQ<`!oKOn<`+c%oJ= z>aZl*yna6~7nvGwbAVjoR=46-==lAet_Li$5$&RjTmPuTk^9gj;)Du?}z~-3TLcR(gE?~ z*Qb@6Sv1a?6*g0{ofv$NXdG4Q*T18qGO{J3O>geY^lpyjATO&`{!FkqHhMC_fNyVz z5B;99|JzJhg!MzZMCw;lQ^O6g#}P6Ih?bb{o8w^|GmB(4>btA`mD=elyjt3YG!I^= zkq-!&H2UOhh>HdlTI~$2F}xg# zn1CjNeyuL;Jy$+H#+Q-2+F^v5mK2pbSKE)V5_PW7DWvun3T7~gp{N2Z^o4GVRuwQR0<3vB5 z$a>~2B_j>ahd^G0WFk&bUi{~IdX5}8zdM}e#ozgTynj~1{sNN&V{6l2CW6%1x>AD* z3D6*_In($xerwo+bMJX3zo1e5JCOtVoiAzeiuac0$b;KKdZq!<4$vF{#N?ngU5GhC z6TsvO@@kFN3q)u!QCi7|gFDpYZ4C#H#tmad>NSLo?2tPi?6FE9pt1V2n*Yp5BdN2& zLfrex-SF5cSK(zQU%+m?wBxr=z1`F^4KF5RNbC?O*Z;h?R1KouE}(k<8w?NTBn{95 zt-lz)$`SYr_&uOsA-Q^~{3?c@s0REnfIjo%Wg@0L98aDb@N1Vad<*dXd9H@kg0Hwr z3knL*f?#<0mx;-Uv3Vdp_e&VQ1r$du=d~bXi5jH!&+$4@18x`Mg?71v^ztt-JXq&% zyh1X314v^T)MDU(EZ{lMloy!jg4d91(GM%HT8o}H z12oivFV#4|7X91na}1y9C6#JZQJFUK`tFPn4xK(Hshg85#}vy)-pNU*CfX|*{=aL{ z|FLV)fuNYVA_vq0F=GIK7BjzcTRvqnV!YecaS6%la~)T)`a~U|q0e@y#(7qM2jnvd zR^QpVF|9#_DKij!10yr3%ra_;&e_O9TY#%wY-#WIT{m!7uh45 z`}s`5J;sd<>5}S5$DgLdOBQ;s>`h%uAlce|S%7-vlWG^M+wpO^;`R?aVsp`zd-PM- z80aENnIqI2kHn1mh=VJ!-@L}rYYRtJiEM{sY_-mfZ{DkNUMea8H(-d$kzi|f`&4J12o1}cn>EU+-uN!sW=-=W$~IorDL z*h#642Yf`COl)p!oAiSFj^caDXFHx$9fwjG_*}@Awy>8r#rql}tZ*{Q%+?z@#3XB$ zU1yp|Qh3eh{ZI2Jf6nTo^&GrTsq4OwSY@FU{14LT`TX zAswWsc0VkYVTsKq@-D)Bdj#SAtkF{7I_(`F$HuWj`_lELI4P~?Kd={Jdu_Yn%z4sq zwCALF2VQ6@dQIxVHk#f!4L&Y=F(R1iiA^>MB~(59qxChHwbxDa`ZQV1I{n8*_@fRm zIL4&G@y3J`dg4?F2bZxr=FnBFK2Z;j*+18pexDcn$%qN@7g!zez7@>sSxy}E4i3_2 z8Sw6^Ps3+Iac}I#VKzrf6)Fct+8m;QP33QrSuK_XBEMoSyk<b3$Sl(&P0 zUlFimbFoNm*4ukM_&(twKkQtjf6x0KD*94(O=uX6-cMn4RL4tM-E#OUR-d;3+M)9I zdJlNqNr;EzDbTvW>SyhMeIxheZD$vM=SKF+Evqp;Dh^A}#&+~xK4?viSW$k&xfa|C z6-4i&R;BsH-WxIM9;eB#JaiEk%y5<7ZE`S$hjELNAsF8~)X?>|R34SfbxHTLwu}Fw zgY=BwwQOG$`$2_HH;gFSr>U&0?$YLjEMfd>>s$zqr)vZ`PVKnTn|GUhYotC$+?~st zAV+Y(WnX=D)Rpgvh_r7HwYb1gxe6sWGs0Ai8XpmI6LH)z!JLjEH8y{?9P=UK&&=cf zv106P){T&sEvGI&0~=<+@XSI-1J!g)ml}5M$z@Sk=J@qVyoVXl-|xD-Yii4HA+_*& z`)(Usi?E9Jxz2&x+gR1hee3A?#@iSjhH828ug;J5Uv*L==76%(J&O@4H5t0yWe$^;5%myf9xj?E``>zDOCf+D@>v z^32b-Q^Apx?incG>{Qp9>^{@>Y2A+NqTX#WPY>gG!a8$LQ*Y%(?AWKJBSBB08_TMl ztS_+Fd_044yO7w?X~k=0niH?<$Q?|<+QvrHx7Ls#>pR&pDb%OAbFr0IirvOXFRA`4 z(#1vumE@>gnACvVs4ld4EM1&=PrPGch}>A}WtN53ve@J1Dh1BWqDykXV_E38#>L{B%LSocXVEve(~a#XlyDRRC-%+;c7J$gne{!S9_y4y6G%*n36?0R z93I0a!lj+nv(n>st6Ae5Xl%FR*+xF*u9?T|RQkQ}uk-PbJl@AdYQd_`d1rGy8^e~D z<9jNrrPr2%n4-13ZWkiI4CznN?r4GsbeV;7I2_kJ%8XiHz8E8!^&PHmCz~pC=XB&! z^!vDwsMV~dy+x@wwnSP+A#%)~I-%e7H9@CG+?^o)3AqTrRRc1=lk$+%+?MW~kfrF4 z(RW`=wcf3b$XjEfMisoB$~>|;bbiz>=4$u;p(Xj_Tj_~Ac++rCtV$c4R{fka61K{? z@jSljPTe}`PcdOlaqF53a!L&guYZ_ty(@+_)VSr_GZ3h7DXV`6<;8!V_sm-Yc~L{< zY)y*$0xZP)4rOm}mer46dDN{2D_Fw2~2%r7rBRc0mJ@)!9B= z#p)A{;Bo5Dp4sO#&a*mL1I+5vs^1=Aa_8n-S3KS6jCY(wlY;s<+m)-uV|3Hw1~JZP z0a}acJ5`Ff%$kh_6wjeCx-`my?~9LbFXv>WNIv1dUKP0t%dh-+%Xs_5%@-;->QYvJ z1giJH!Rp{~DOn02NZ`Kl_AKD9%UGR%>neU0?F9VT-#+uap#xJPIhYF#__a$|y&d@e zJU>ISy55yqP#0NUp`n91X;uKFhkgmGw}a*h?dP>1W62Yw_0RDt+68XcpZ5*_ZWlU8 zPw)b(gLVGKDE8gjk;Gf3l~ z*W06i0vdTUmuj3}Z~yJ}IaU{sy}6^UE6VNX4K;19^@7mq9zwk&>td<@3xz_cCiE*= z{lDw&|JSXzZ(kX&qVK`y?cP}|{mu;))JgMnSI6tw+B$Ge82Z{0;Q=Tc0taLPU&mV& z?Ez~DUaA2w{NFXd4j|7#FnlEXSO9@egb`iDZD~}*X?jLs z-jRnhcq=H9SsA$vW$|XBh>u`k@^0W^OYQVwSl@T3@}+x_G@M-$?ta2MW)sb6czZPi zl^?N12q#mYg_QpVd8q7=gQ%*YAhu5-?d;(Bg->%-Lz+7HTX zLl4lkN}24;+09-O({t7Yy2?;2JSDmL35_xFEx?RU_2*hS;7i8^M!&e8-r)h`p_C6rU7o0z*XT4@n*|Y3*Z2>oQXTfLM&ZnU<9@k8TpEco- z?D^LVdRh8;Rxo`Wklpat@nAMRK5X-pE2r-vKJ4R3H8;JD&_@{g0j}Fs^*!FHTFYZx zAsQc=qp?26@JaW1(|QPR9}ts`)CNV3Nb)Iq+h|1UhDg!-v)NL(Q~Qagjr6;Qf5zzx zCN`=NiRI|%i7$L^80F~lc=DCYhqr}L*uKk-cK}ZTZ*zYK7vQZh>JniP=reFY7I4hD ziuQtIuK3K`UvbTCL7nuO63pOM=e-3O{2nj*aqcJ7-;UKXq8MDm%avX>`AI->^IAOIN%PJ^Bc! zXAb*WJ%7c(XG%~EfS)gbY4}smP9O$A^@NR1*P7_)U|>cU@eWBiy=@AglHi2sh5$d{ zD>T!w3)8k5=2z*sXt*Bh^KM4PJ@k6r(r!Qr%!0lW>n7XKK2iroERHZ&U~|qbY=2g- zHhedV;2h|Dq{W23uGNRR^fDi)wLFJgU>{lZMPlBMM0c%fepttdg{W#boSj`DDbvMO zaPnx)BO>d%ALuHIst~GsOUc@g{6l)`8{$h<^d3B=3bGN_l%upqI(qfVy6&>d9F-Gn z88N(}Xs^G>IDdLuN|_OuNt0#0OnKwxnBZo3fMxCz=W4kcz6DidRP?S}Ryx?3><&{| z6iTj3w`>~=*%50T#$+GZ#`PtpBQWuJFfsUO3*V4cr4JBz|FLZi%RkfENxp1KW|AqS zDiZytvpvpZ)e7!Yi`3I11hH6)@AxXqoQrp5XE<&t#LD^ljL+O- z8hIT*=CYZL+zqGke*KzD#);uE3R!=V)`r$DH2b9YkfhCFY=>?h>*;6s5_~~5(#SHY zhY4!)RM85Ss{JMn(ikniLAS`vLY%quT)kaBug?mFzn#|*x4)fdAe$v|YC^h~acm(k zCr~W5Y0$B4YX8Z^^|=Hh7u=Xzp6g^4k8#TFs3?CXB_4w}j4j9|;iPQ`)M)x~&jb~b zZ&5|%|HRf3QCw&fdyVxY@QHUDlbNb<^v5RUpduoLI$>rm)!HJ*x|U}54>jErx}3#3 zdQD7SQrx(+ILl2;%(QW+_8utasouj6hysG}(VCX7%e%Zgak^2>$Fp{8?7cuKUbv+& zGkR;kgj(_7qjs}O9Z3V*=j1Q+3oWhKSe{Te-GAizvOc2eXp0e>h&j{|(~XX!oTP}4 zz}kjplyMZRwZADlvcropJ${mZ#~#h*ra_gPtIxEsLRzo4tXwhgkf@l(8%?Dp$5lD& z0C_8v*3Vz}CXEB#;$|t5BGS=0_4kbGgMMtbX1wFVrCfMtjapu{r{EHmd)Mxz+y+Na zLY?gqx_`S;z?SHZ9=7+`@IERocO4_5+^p`mkNUw+d=C^3TTj$MC@)%cc~4c_77+7t zgL6K`K(q;|GNvP2D?46lTUR{!b#$?zzi6MRPn@Y@4{Oj9nQ6LC0k-s9EZS(;`wK3+ z(n_lMj#;cJ_ur~v+CBCcPV$D*MiKRCdI9}xY*OjvhmkO@kC~G}8DiG-K1{QpG(-%& zLi17KL%O8Ws@MGRlEvt-6C6cLR32f^R_|%rJ#cuo`-P@=A8y4$q<5VTjryp2?rAS3 z+EFt+4UIY;@#@lmRiQZQiQYSW_rcYt@Q5Epe+bZV4vF%vnDnbBk%rUVe(3siHx=Hh z7e72w{exrkL?IKm@Vm`ND-Oowi`O5&Y4F!Fe@pIxj?YHlGig!Ii{(a)>bK-fjuVXONKP_ z?8rRd##X!UU4P0+HItR^D|!tr$Otvcb83!GW$;nh^=vsG^B%#zZOb5P(M8KL|Kc5X z+P!#45|uG9ztxNWj?uaB(tX3UKzZ+<=gFdd;QYLEmiK<==Qq?zUn(!GcLRB^^DmP? za?iq*8qvpqMnUVD#;@G^r4pQ5&vW_(jl|yr3NX&xz*xFsPY%(3a6A6oUklL=&^sp2 zy`v1Q0WdWCyM6C~irOzcH3y`{Rt9*65|);}53`%R_;0>!T~x$E6dRZn+lD64q$lahg={m0k87r_X zSH&ZrJ-A&87ur<=(hIx5$be4w-*|*%czu^dI6!DOgfUPBstN8&M*i=5_J8bpcEgo%$>#{f42;}aT>i>!(mG}Pftpvx zB_s=*-@S^3`J4a^=x3K|oM++pK%RkM;fDlkoVFeYN-3DDr$jIMS@w1ID(^H_dUOjM zTZ){Jln`bNn~dRMPzKnH?B0pPqNhw%h1ZsTH#v6D#y6hjV1iWf_6SRqSvV$kkCJl| zvp}-E6IzAMKFc89nY<4*I2VG~;C9zyu||6{<2{^iHac`{V-CQJDnNTccina!%7+#F z-ZHZbK@oZSD@8X`_NgC0Zx`@8YuKs8nUP%{RJX%W72<8?q88;AJB$>jl)Q>8V25 zjh~%Zmd$o!hNFC9CUb_(4kC((fjWg15kZWsZ>EmYkRfgyt4$SlPV{7=TEzOOj79&P z+<#eVpA5p=u!al;e|n!4%j+K<%fBk@L`16dN%ogc<;E5wEBL20`i@-DurVK%>i!kJK1xL5k6rsDJpGOsA@O`+}@6Sy4n^WGe z>szedc^mq^l%o1l7Iu@kiiLMYfqIH8pVjkM&JI!m#efD-PY4!1t0!#q{ioSZk&SyM z;`p^ZrBsb?CXr9ZDy*1D1b<>9j>4A;fAH@e!c81b@u}s-Nnr9Ywt*9C$0s!?b{q3k zKw>x=+HdFePkOtVIsP~~w%$aewhyKflX34&DY4e*Ylb3o)0Yp{2Rho2zuz0+^2qKH zHIIpwKaryrQ_-&2JZTu)$Y86Lhp9~bBqS?g{pb_ZE1ZDheJkc&O{dpt%6wnsQPf^cFefDQl7+KhZk5XMxd;_ z@%?tugR1d}iDH<0DizM9E=ErC$z|<3B_D)$s_*CP!bBQKvTL#g>XF8Wwf`-4h#Ojy`5q2gjOD z4pl{@O!s%Gw1iqb^Ed7*_G?IWL#e9iCFhMNOVb2bN-`r2(K&TM3r+Cy*s^lQj*2rj zRAfBa$?VYG(U!-Qd}C_EIYN1i5B0<%@h$EnR!0-t4^+eDWqAaN&5~>s-nS0W6Suk< z-Cy8zRv-yylglD!DD@z>iDIc?Pfx4u+@Dg%^`5fLDk8(O#$vsjVS-#(Z`N}uhMXP_0gxT?)Qru*V z6L!Qlu7}VP@}%-Xa_6F#Xgrjhv-beBQ(Ne3)V=UE`iKEnZ9SG`Ufm&`C8AzDs~smx=*b(G(GDK?E199xA&( zi(}U9OKxhJ%xI!^%5u_{v4f{ChFpNiz0u>3TqaCQj#1BYuqu~^&0=+7$K_ww~A zCO&7C#F|;kF@D8Ms%Y;#`aF+Q`%3;h`)d}<57WZEY1uj$53AAdvq3{!e4Ehy9?&>! zN}}v-NQxpNeGBe!_g&h9!G1H9>Y$9-bu@#RCsBNUv`3KW~Xr=CmTfpGpT?-9k zm-^h0))V3%=@JFn2Qjbiw3)1RsdyvZij)3u2X&=8DungpH9T#xVb>C=5>$B4FF0^x zwE@>P^j_n>_8l4yby=k^OK4#BqjF*3&_O>*Z1QP$b0+kn`A!F4xTm1`$m(G$b}fyE zMDm=vt*bXfQfqyorrXCfa)ks(>6L9xcor7PmHYy+$1UA2V2vy0CIs2v@66c2V1Lr> zaTuctje$<-f}S(}{7h6_oUtNQ&^McT`-hN?rrNHD#DOz4)wk23FWEn$^?pi~PU}nz z@T^57O`N`#yfaeRs6bvXSLlF*Y&vPQ5Jp8Xmw#`4_aW+7_9NmdU3DCRV>`e2(;HR>dezb2~4?0zUl?w z*Dhh=kyy2!$Ei4q}cxPBnL#YU*WJFf*9E7+D-#bYNExLr># zv}+Nhckvz6V4c752)axIF2Hq@W{^fM=o4^27BCAZcQS)D{@mC3+q+*H01HR{x$X_t z09aTLvk?fd=5A%!7KS0%+7EOnoW$u;XuU3Zn8z(7w+Y&m{Id6T{r7#{ z|8Kmn`)sdlAl88Ee2_UH3KVm~pznYKvVhM|u1*&4`5Au}bHC2d8tITU{P+tjd?Bux zL1!sYfVdWRTp~mQeFhH50@gU}WCb)F{;YqV(*Rib>%YczAO;kaFO*M$t7`n?a#uYl zJOpRdzW7bndgru}{A<`GxfY^{lx{cY6`!O1{PG@yAyHe`B%4g7o$z%G+^2?@NC^qP#1+l;6xu6Trbn4ZS zkfy}ftNG8Yys=f5ar=m;{g>xB%C<&QW*toLdFk@KI5OOWKhOv5Trgj0|C2sz;Vahb zY2+4V8JAZgd>_X75rSk8cI-h$03HGTAp_yn3zsEA;QKTG&in$rf+jPP0lXRwJL`{M zc?Lhek?$=Qh>f&QvHsO7h`qEgzRy}@HbuKybkNXvqH}CGJbk0Ms72>Glv=#UL;E@` zR}7{Uxa!nyn|)cLCC_?nl7&yyn$$!ct^z#L1wO-O1$+6dVp=xLo0L!5*Hw~4ItN-w z->S9 zKFAG`3L{Q_PP`TCub=F!UxGG|mLn8G=GjU--4YCudRlFajeF=@6j%FJdtMB^4}U^O z(q63)E}q&%GGG`k25A)W_mLAH#qi4gdY@Tt6_r18c#qzwJ^? z-*e)SH`eJP$PVojz-jvu+M2+JXd)03W{_v{9^N|D18%D?6Kw~@uD~sjoz~Ha@56c?QnHE&_yOMQ@plBZe@n2oC_)34|MYCOQM0= zH`d@L-cFz#7;jc;8$>s1$v(iD+oK(O&QEvzX?K_-nwa?usph`^2SyxMg!r`kOwPl0 z#>~yrFDMq;sn2T1C_Bct z9<)a_o9GU)aMu`N4z6^fXScnkgqALGe%r)swt=Icxxd``8gZf6%W)!|iN34t)WgN* z)s`={Pm5hTa`|vGny-}E+{{GKNw|Gv<)?3xl_H6EdzxX|Ld^PTGgT7v5D`blSR60RE_Dk&t!Jk5LB0~)0mSCu@igN3JQ`~5*^`m^kuqM`PCH3zb{ZD2VBEMz_p&uCccMvQ)U z2+1Hf#y&~qkjLC^3Q}we;jLmx-TSV;!q}(JF5#!nvOlh@C6&eNSd@HX*HOQpLj_F< z_amA$h-?9A7fYI!wy#z)P?CBn=diSORTR62by;D3x@VFLTKjN1i1*X&Br`5&?V=gg z(a}fG4)hCx#+-Pu2-wxvtVd&yhCg~%gb|){ZuR4Hhv@1ljP7srSAO1Yn@);bBkoz_ zi%)4TRQ%zc2e*`UY;BS9xRrftesQdY!dHsr$um2vO&o?8+Kw>e>0$wxUDl3qltRhg zCx%n?w^h8N^hnyp7|>{(BMq);><`extgn7ai=D|RR-_gr&k9xHjrZNwknIhd8d3j+v0w}_Qs)>$2ZB{ z5q>e|oM$x>TfV~H@bw8_+|TKOLN9eUTtaD77JRo=4FlN+WNTujbFGdj8D?WOuR57M z*M3L@=5k_d$N7lzrJ%L7w@hy!bujCA_NS>PVSQk*%Z7?=veA^!h?BjM+i53|V;Ojq zT=kW`fWZ;SYZvDf>!AGh&vObRIUv7{{dvauSAHWo0_V5$?{Na>x4&Fr_&ZqwITX?J zDveHdaBh#eklV#W(nyX$^A=Z#{j&j${=XW*5E>jH4HM93;D9XPd5d}{2Ux@6QVjx- zhU~dK-4Ads#qaS$n1EfenpTS={Wx^mUeR03k|BmuQg+ns=B4|N8G-8YZ*VP`JxGp$ z8UtLbR|x!d*&1(h;#FLWgbuXtX2GBKNn*++Bf8E2zjg`N4glYuXH7`1t-VqU3JTDI zSmTvTlq|>A>H+D^Uc$8lpgtQouLT(!BOtARjz1&}aJxz`v}+cm*L#80z&d|pqZ4Q% zr~vWjm~<7_B4L6x{#<8C{N>#*jq_X!);Q0#n3(8>&S@*EZLPN!GMwgL-hUNH>8qyY z{nO$&=QhB#cmMaeHXqcEfA)%*6le#=%QLS)=PJ-Iy~&7f_pkN}l52UBui{!}GC%|E z4`ZCuIM20%K)(ZPK724xP`AL>05A*v@|bht?6qTEdR-}!Y+^=9zqGvHU_T^)IpTwY zy8Bg~|(0CdCThh8DN(|D|rT_Q2_8}F*UuR`KRgE{be1A1)qp9mn`SFJ{PXQ5T5S^U~*(h7xzlraQWq~2Xvx%_jh|1PCF ze*)kiFki5Q@DU?(i4fp7;D9V(9|f4n0Uyyp_v1l<_s{s1AGD{F5#5==%**+&K3>7R z+MYv{B3QR*^u-Q3d*A7q)r3yn8bc)vXcROvZWwj%_fI>~y8DAg+3^#Z{}!j#%_?a* z`-~{e7(rqu>EV(W&(=_~_}G6SeH|G71ZPSW9!>9th~{?qkl47|(MUWRbzd%{rn71l zWF)+VP>o30C##vq&pP2Sc8qSvRwbk-5+qdbIFWE$%ind3@)97LLWA&{%`>QkYTTBv zE;~#k=+3<8SD5Rq7!zS;u~u#i4c=Q%avTHI$d9r4+noK_(Gjubi#^Jl>wi z8=vkj%@Z#oT&JWE$RZf35w2m5L(^DPf_e-yGC8*Yn$y%`AP=blF~T0nUHfOLO1j}) zDx$0``8BH%iGzIFVggTDH=%904>qwd^6})I`u1Y?zS(gfz;iZNA5I;X&iJ{gToW9B zkSzROm{q(=c3UV)mU>4vUCYAfwbDWYHzSNQZ$CDcUZiU1XY?Oo7;rnZsqpI>NXz26 zHy_>nuC`!jN9%FzUM!S(63<)p9E>SUcC>f#_wKx|Y4YWfQiuA3v8)BM^G3DLD__20DA62aPd#}5H!--9dtm3B$*zKVid@64V7q9D) zS|{;6Ob>3%-*{`#D%O3>Zf2RFkKiR^5CdTOhPOVh{b1#8A~U>gGIKS=$MJ&a;%P=I?wS)xvB~m#+?u~{@j}>PIW6DCAkixrxMp& z9!#{%KJ|To-A@u`Fn_a+kGNpoqK^V0?qmu!8WB@6p}f-D!v4ecuI0*av7KVyJQB)y zDV=m^nw$+a4O=nNB|X{7W*2_M@9Sx5%lh%MF4Vw&sJQ=h?U{|~J4IM`s3f$HO1NUT3=q^99|gUqZVp*5)gX`F_r~JGrd_ z0?8R!xU87Xd-gA;%iVCgT80%2zs(UzD$3vX`W)wYa^I$9$rZIiuz;sD4P%J)HiH*u zf-v;*YOr%JF_pbHjQ|!Ey3g!=H$%)<$Ee~BGW^`OUIS55GqU1V$4+$-lb zxZwQ#=ULw0`TI#Zwqf{%`>8L?Yasc_=SmG`Nefw06n!E@>3w3ffQZcZ=aEi&9=PufBhB`*W`nz{)@Y>M07U z=fB0?AU-mT0RA_?-d|q=e_h7j!L3)Zw+470rujejAty><%B_kpz6E~m680VjzCX{y zknCM}r4|$v;PpB7mcrmtxB=3uy@b7oLG$6^^IDLx(*x4_=Xtk=IiNMK`lnxiwW}7S zM|*)M!8(8E-H_~U-gXsxYghmpb6b~coM&&a#s&7?m9@!!adW7vMo?Ysp!`VIfaYT_ zS^KtA#72cXz~0>dd+Z$#YR5l&Me!YI2XXINJ3#YZpkHWLMVNs7z8*qc!@A%VBzwcP zU&Y=Odw>SvpS| zv!Bxd)|5~Fj2|OFK7(Ly&fdzU%_;St6tJR&M*hY<>i(Y1a4i9Je#6!JDk6!CoBBOC zjn-QtXp-w5TXj@zSo_uwO+Le!*|HFMe^MoO!BKlID;{PP(-rWTUJ;du$cSaH#RonO z)#KF^!*GSm6LIl@D1JnSFliN{*sSD=Fj3m|wdN35-q;mItj;+!HQY*6rF+@Oj-r%DM6e(F}|Fn5;x$o0Ff zW3qFfveu`49kCdf@zHl|qh;OAtu8O9YA(j@pT>$-v5L=vyrgq11s~Ewc2wpm zqLv&6C9*7+-G41VeAS#r!x|j-XlMEScTDbMa6MoLv-RIO4G@zf;QOy_>!AW`2x=u# zCMLGE4weKYUIo2%)<%mP*Qs#tC3@WZ$wg2rSmAxFUUa6=8%B~wQPJ0ai*6(esePr17jms-G5DS0Mrwo`>dY7V&DP$stEHPFiZb^7Wu56u+hfVLdT4q zr>tL5{reQ|~mTaFWJYw%bke(G7r6GmX2n-KGiP|tvu9@xCcKXThHEWn_3{(kG6 zh&g5a8r2%*HB4X9bgK00-sr5x%>nei(Y_?XWftxu)sy@)bZ)l_@3-uV)*vj%!@=(# z`s;|~s3~S!mnivM<3c6bZM}CoNBV4(%B19*AMMV&kQJ7~-l5Ot1+fw{**}rivZr-O zJd?g`WJ8%IadGnU(qrfsJU)AVi5_(_WN%H=M`ePOJxnSR-#0!zb>(4^oZ6nk z`lf7p8qpsK#N@B7dV(v3)$v~+iOiKLWL(uk;pG=d=A-H3FE zbR$TIASKQ&UAPN$6aIkt~jVH`&V`{oxpvuD55RAl2uj&2#I) z#?x6cmq(Liu9b&NONR^_^wSi@_OU@uRD^B*-1%8=){-pOZBsCF9i7av728IL z{45sy<~v98=-aQ^ckv!;JoxH2=sIy6Zn+?2|83dm`qU?jLGi+mgx?ofyUZOqt76|C zgtNU{)MR87J|YlyntI`iEY1r3FK>)TEf0o8UG7LF3?gl>wO&)#&L zpXc{9SeNRO=&e$`C$wXFEvUDtu~v27iFWX~vpcBDq_XfQE%5g_?DOL570hW z{AfvxM56keS#wRKBB8wHWMIDr*9-dnjfb@;Vk$dw-x-b1)Q(y!}W!k2L_#1S`7H>{3)Nn6{ zeaWPVZjzw|5q%oE5m{ZDyLW>^x(PA(syvnr+`3sj@S_8CvuG*zU_%&}Mek%q1+33S zadS=u^`Pu(Z+i1|vwDm!)e6s$b^1E=e@58Y%O|pXgN`wel7)b+9GQ`%oj>Tj;cv57 zoA(R@twN$x#gv#dTlCWUYyGjS#wC=HJ$p$1%-8?Sd%7Kvy!SWPLh{}}Yy!@xQg8V`UDk_3z{4_+f}$yMOxer(MWk zJ;Mw92hsT_9-&#;YyT=%jvs+&{MqmMm+yXR{LRV`jSH+yH#XYh;7oO%=Qb#ZfPK@U zzD*dV+f$rYIaYrOU}eAmK2}Z!+wt$d>IenwaOe5$EAYJw^ot?5U+k~;6*McKfi?cU z{<`Bipy5h;sm9-|{L5E=v2r>xjgy)fO1a2U;)|(t0h~ZLE#h<9T392MAsrCN?|)eN z|DUX^{Q0W5jvs~GpWDA@i@ z^m^fpj8c4+Mn$292&K&p=lu891J2*y9=H6FzlCt(V_vy;YZlA&tp+LvMm2SLMTL`E zu4&o4#}LRG?5w3a6&4mgx|9C&ugXPGJU6jewtPNAjp&b0ne&Y`*Y0@oHTn&I zsXOy_?jo%0(k3}57-L^Z$Xbc=cS@i8pAv+{E*_d2e<6+?*GEx@iE_V;mEBIRV&#r7 zz;A8>zy06aNJ(7j7&@*y75}M@j4>Ec)IX=oH3PRI$K&+Bg@& z)R{Vey%oDp?*o=0hknRv!jUNF(BL`4f#2FX7N#LF2U^1oKOsT+t!>k8sphKOyF>i? zrEz)hkZ)9@))rM7M6#9mM0qApp44WVJVIbA)`XqD`7O8OMtX^H+~b?UL&;}?*pnv- zpQi&NPH$;0;XP$qkmiE&t>fvu!?@t}=|SNdqq+gi@7m!Q_IzIhKvelM&pWHidtb#v!s3 zRy(ojjmA-EUv#a6Q1b3Be=KM&lD?FcbwI0E?Az554z$xL^>;ge#z3tVI0k|*u=4MA z!bi{tb|DD`e@jqp265w;MKLB3TX3q(9lj_PQb&0+L2O4>6nP`Fu_SP#*M7LHRciFw z(aS``E}fPE)hBzFl!WYO0gXXQZ8!^$Wd>Rsi?fTbGe-Az&Z#kv9Lv5A3nLs=ljqz` z{ubD(hiONo#;H7q?<0O{J{`)vDT`9;G)bD3^9=e=?s~NOX2=JpF^mHrTrem7b)R>)>%pLccjqn6 zX_H#t; zUngk=Q=gvHA@1`!^#_eNDsjL|!p4{86IC*#s)^FgDaUZ#E3>NS9!OZ(d7?Surf*#* zSY-P0{u6((N#;C|cQw*buOv?ITR2A-*k$rSAt%&k*c|*7ElaiXkEsLCrk1;G?Al)u zx!=+MF~aq%FbI|4-s|pMYlobwQ0`}`*iQPcGyZEbjEJT@zN^WNe6(*)M}#Qs*vg`J z&{M=Pn?rLRaRn@{PTX{*QjwQbMm#>Yl6v``7Hg2RwGf?h1^5!3HV|sMr?}9T110r+!0#ABRPvmtw&|TkdZKM>@Z(zmzC`8a%pXW>c z!WSUH&M2D>OB3~(?DLCj3)k%O%|*iX1S7D?F&@ zRX&?#jtxtE?KP|OO?5>fvo`{cwM$ac$mb*>oD!rKMWi0;SQ~^xW;HQ_t}ozX5z>@& z*kq8sqL%#dRtxLe5phTJTRB$_pYJLKBGCqw*vGwUIHaoM-bJRhsX1n()5m<6JUTYkO+5-sXev$7ZJ#sVE! z{fc-Q_dkNj0w~p9sSF)Rs(M7>vP-Ijhgg0NLaWc~AeD6ZT!VJBhoLEOfKh)Kdpu3y z2ZQYa=5u@YF~hcAqyS_CKk}ZG;A+grjR*dHEhuMH7-#1G$m3ixSE3 z9!($P!)QM-%J{?q)Z$!DY`YLa-||;=UAX#c8rRxn;VNgHbI@VbP`cSc*S`8bD8QSq z9KmBYS=11eF((_Foqem9k<+n5qus+gu}~;yqp#x4tY8s!W1b)a);wM07WFa4r#wYz zPA^Ks<3)^}{#QxW@xIZn$>r6k^@c}*idiHIVz#8hJ|$s?I5qQ^vhoTz?_Dw8egWh? zch0}_-rG}1-us)CA$ji~Hi71!?^kNXPe7gl8^1MvJp+Q3Jl>vNVC4%M(5yTUvwFq8 zUGb9;jmk?k{$^!}285OQHD*2AdNXXr5=i-6`-}FDmK|uGki5Aix(Lfw{|=WdplM4- znBF-$I2_i{#@S8jQdY)?UH#8k8O$?p|I~E<=m#kFGFI-OTD@Z5E{C^(z3=|iNyRH+ ztI(u?EP$(B!pa|j@BijkXjWdiQVaCIva-^m=7=a*&+-yh{s0~$efV1oI#$lXTK^u8 z4h?`^eei$!@uyvuU_G%5{0GtbCmxZZ-i?G%uU@flmjh%k_ILlR7lYOSSoxnCGl&Mj z${FCRr~Ir_ZnH+GxlM@Kf!Xzp_eBuS9ZG@4E-n#k%)3$uLSR;I#`($04?t)jcsLLY zEC?0E4dMi0f-peD;P22uL?9IKcLX3p5Hk3!4iX3tgbzk+1P~4g7X$->1;K%^K-WOn zAZl=*VSuPWl!!2hu!wL7FbJ>+aPTnju<&qjFmSMNaIi42u&{72FyQ|OuOs{QjtJV< z8DKyByRWkn0AD9C{Ps0?%mehR7)=Tc`UNJr;AVudf&05b^;?w|KizkCh7Zx?pQ2j3RW=!1IuXXjO9g=2;N3isdaaBQEK&jm+- znsKh&x2p{e1k(h9c?*K6WA}xr0-qGHD4>Hpwvn|{-gfrCH-2Wn&Oy#jiU_9-4~LGY zW#Q~XDQV&4a^Ld4nW>8frG}hIN0~z%&VtxW$X1kPK|!`RrVqI zfgmCb$U8VHwB*dMnk?qn?x_tqHPuHo*#SPo+@qGBR#Ij9M zMG=+cMXI#gxtPk;4DyN+7qcYsQkN!rmW4;JIw+h0c!b9U-zdO6bg?F^3Vbj9`~B+B z1l&t~u)pu6pE(}}eNl6q34FhrLe-I6xL@~v-I%~TLpQcn;z96d;DkPa`xVsc&4NZ+-w2y+gcYqClaz*TuJ$dQ~7Y-^eOaK6b-B2 z(^M+27Jyc;$5j{_Op3R=)-_25$w*K{&SW#3%)#;QmjUkK?0>;!zO z1@$aw<6I@?27d-l=mS!dPM4Jg*c;FN+owNs;5ZXF2POi1dQS3}y;J`M`(rSAMXy<^ z>3oFqzzq0q9)tP*nsrTT{32<#wL*S@nC14^r-%o#fr9?5{Er)0L*S~C?yb3|!ctj% zNdLytB*#0Mao?NeqfXPaav@2^Kh|o}hDOb@(G|Z6z!u4r zgteT6cp?}TPl!aae0cK_9qv1K^#-Ds^X>#&xe>o3` zq1s!k#9)tsfD`(F#E_#y3nYfxe*5%S3?(jVPLP3pYWD*?O8K?!8Hk}Nfcg18W+4pm zyda=`W4czD?1L?(^2L$-T=d=ev!Iu=nMXTju2XSpM1GYw4AM}a#Ro3!rz8|H7PXHk zL)rzjZx8-wOMv!0<6R{l0DlHf=mTgUd`ng`(7x#S-|hR^=M!Y$KA!;k9QL0WpZ?W8 z_#g)#8p3x>#6<8m!MG*Y*IraMMxs7WwPz#W-&_}XID?V_J8z@3-hefbcv{qljaU5g zEVdIH(N}J8%uSU-(=1&#ZuMbnt@CM1zT*8cR6Jgu-AzfXM^X!O>nY|V&@669;6O7W=Ot>U2;F8=r1#1Xigpqrf56*P3Jrs5n3n1OZd(JDxZ z%`hTOI>|@uV`s%jy4-n4M!mGyu`-}nHl~y?*Mx(PkT3Cr$fzhtW-%(Urm` zVkum0c(Ck_8m%Mjc?qs%b8gxS2uC-?Dz@wkuv4b^TD^Zc`|iuF{>=w`ocL;9o4ViP zABh#emC50CZWzN#H`n*V77lo*SEqrxg+K-n(+(ky3tQ&`T;!mIu8nUg-2e)8~d|9np570NB(qgJ7_7M0xfCzZB#WY zMjAVFA5&#++}V;gI!Z}WK?$qxt(^Xk9?PqDywvY#c{dl*MfH6Ri(}H-yY88m~h}F1^oVZzYlf=#RB|kztla`nfgWVWB|D0N6 zhMi>TP|tFZajfaPDp^rGTvnkVXRe) zs@9J-;ElGH=2$FyW;_`icx$pY(MS@XZb=tVJ-GD6Ilw5SPS~qa_Zk+cL)U#iY&V+AO#(=m8wuBXv>p*$WnyF$f!I1O+|lMHbU;hUB@6%ra(EQf;nNz0=AUXB#JXoJ}Cr=|_cjzUN+x%Qvu3Pb~7d|8_yXIAF&m{+37scuKb#v0ORTCT~qk*ek!uB75@Bij)Xtuwh zb(PjH8{YiZ0`Jk8-tK959jq5~3EO`J$H&LNwV-1}46OC3n7ks@1`_rpH z{F~odC4L9~44lvh;A_~1n`eLqy3nN>V73R9|G6J$fVct1&Jy4&iTs>LvB;#_A80lm z;aH!;@$@=rct*MJgCOwnBkkRAbx&w~*9(|egu26KmA2^RH@ z@hRBz&D*WWBRxWPwP#E9#!Etk16i?Kz_O!Nq~%n<4aBR&TquxNz~M;4eWx9k%yf-@ z3s(5P7*Q+#dVefsF<*x&0qzsiFFx?F9H8FR;1)Ss@s1kBz}H?zqzmuAIw?kjx!lTk zJKM!pxGw*&Jh?a2#NTAZ&;CseN)r%&5cCECF@EtGngWh>32=x3C-ecyE8JX)K&+$u z*%$CE_&|8U7H zpaIzPi@n)$nMl8QV}44{ezRa_v6HNS15=B5wiGtFi+Q=(I7R}U?=f2ntc!=8^kZlD z+PA{Fw#c%aibDJn}w(;za6?Rm<|_IpLtvr?m?eEvSC3{`NnD@)c9@m2fu; zPrfn?92megDJ8BK%1x8m8fG4RU+Y$a+0_K>1bhn3-f*^8vG>g%fV~)ha`n#~Wn2Kx zQ9T#f8?bj4uotRE{o)?swN76hG5d?E8#2WX#-55)#wQ1@#=AZolYJ&&M%?T7m~=^N zE{+m&a&$2ZnKJ~>km;~}Zv8sOaY~Uhbv!v2c`onf!dtgdoen;d!ue7Z_@abwtb5p- zuPPNL)5EvCl|Ho5B27@lT1X;;e=azWjS{6cWNtKTo3K)s>MSo%|-=!`Y$zR!AkGs zeBN^%G}|~*ebCz*9fTVZkh1$~I=zM(`-Xk3TQ|m7AltcmZ4fXFD z%4PBS)5YVt6FV(EVFrO?AIZKl`bxsQpU|zaUQ3Rui`A}6yV)C}92;ncrr7y$lqlgk z(=|mgzm@wy~C-&AG#@0S>MlE~xeexviOIn*AXngn8PLS^Wpz*fmQNc~P z6&7F90OETzMI|7QGQ!xnv-TY_WSZ#Il#XSs_wVm$(uRMM!MMwoUh!6U^ZctTvQG;# zZRef$l6yCW_g`hh$cYo5Oi_?CW$;fkubXZgEa0i6gw*G~re}PG!E0AmxYd91^y!>x zPE!WU`_G7rs1%wdxZ-YGb(@iCIfCKaA!i21hx(g#&f^CzA$y5DQr|bFfBZfBjw4a(*%N~k@<99ELaib;6d04N#{Q`uR4(tbPpAT{fogv+_`P^l9!r-?; zuGYOqEF~&x!H1OJkL?+-h8V!LfVN#$Oo!3oS8714Lotcig6wMvPa|8+^-W6aJhtHF z?1#Wbo2L&=^2bKAo^{>|D?;z9O76H_=~@!?{mCv7c6mV@t=8Mz2tDP3a>FsDiZLvu z+GrCo1rA_r!sUDwdvmEm?2!4b@$9_8v6NUnu>*sDu=v|6cx+~hD%Y8u^T}qd-w+*;G{{eeLo+B2F zfHeSn56J_60W1%UNuYUHBJ3(2F3AS$4F9v|dAtg?$_e7E6mYdm*n1xM{%;c(SPKSlH4Ho<6sO5(o(B}#Q5&TaL`v1M}!(p({K`>|_u_-+vf)D;w!GlY$ zT^}g*zMN59=BkB1!P<`AO%9QQ+t!s)8@Zn_%{bvkZ<9GPit~x+V1@!&>1Yxp@>teo zjSHwu5gX~a7g@MP%p9Tm^jSk?Wsrtn{;pU)wN(l~GOl|sCESl`Wa)UT_``b`@r?Lp zIaJ=Z66C7fhoLlT=d*@%J;=Ztb>Vltxlbmq6YZb&PRG(dk#=y4zz&@4eE?Dpd@omA z+|ExTnx{EXPB!baf_Ofz_#jUmeZIo zS4Ek3EwVb)Z;bP;)kXX3F4b8RC{m1wz*mi;_1aX0a(wiWWoxNJqvaoe+DooEdgl-p z>*V+jHLYtZpZl`ck?8$fmvQ}E%2ixnQUHme>Az!Wj$gy2vL5Wy2T)uO@hODs8(Nw^ z6s_cyRj|lZZRZkprZ4MN+Zl}J&4-D6ZcEbddm2{oiC?niwHOB8+)d#h4SkMBA(|Z& zc7M2j4gTko3wWNvq^}Zpfj>##IIuX}Fu-TNY&-<$EvX6rEe zb#9;vG6>sSd!@+pxMFTns|(zdbpbgbn=M79v7rtf7I~sXcpVn3=f`uQ@wZ|`4U^s5 z_FX+V+fi>(9&(bHi7KplBYltUwtR0_^*b7?A)z=y3bv+k+3l*6jZ+k@0a`J8$3;tR z;Wtc#`A^xv*)33Z`Nz3iso~cnQib?P3c@F!@JahK=p=XrtNPyUj*{`YiT1Y2MX$eR z*P$(8*ljWQ3J^ixTW6kux$ow=7-#5o<7VY~pL>F8!B_2t-7_WCrxC2KOWhB@om}6a zGWfBK7hgc+q~=pBu)%wy~J`gw?a76vqel@ss{dT;m1z#(|l|$JH z{>?ERl34PlT3)=9puBXon9pkFrX=dM@84rB7jUk=qQYn9P~;isiol#V&ZN=9=;YhUl}XBF+CuRHE%9Mdq}-}h+OD{=5tigM&rew3l8{f1NDio6ZQeuoP`(a5o#orvbhBj;rEBu{NyQ%4O~JwC z=i&%qM9TRZ9CxEpMAleLawx7f=f8|!k2}$u(UN)S;-mP(csxs4!hTeF?9-Zc8^xRJ z=(dEDo{f_s7-hu`j0X~LwGBy4+dts zFf0-AlbW8eUyXKmS>mT9a_|ny89osfITbkco~&*H-PbkI&Yi2lJB9Rk@GGQFzha(9 zzTgC}-k^QAgRx`{I5 zjql9z78ssqZgSh{3H5$H3VvQ{I?wvPj<%=QBK|uzVfAGHD7WOzJVFr9@)^H+7t`-!M;u$!kgl_GD+Dr7HGw38PS-K1bxRXi}(r^RdS-xu6@po4EQ zV-72E^aJ4b!!;M9t4r1ttT&t(sXM zSuvE^NW5EaAUX_mvHP^%PB^IW3pI6XPf0N($_hBP+&V|$SmMFSH*A8vHr*RnXlmW% zuUEWOaO@k1Ms0=qTYlHm<2zXlP7cJb_QIp@@c;^04gQ6BhZZnk3IW@F<4D zWPyd=x`}1CuF@E7>hwvvY3+K!kSdJnR=r9}vu~MH>O6%#%+a*Cz1JnsW;&ws%45ay~A2b>1*{Anog*JV6kTz?hM%P;_T9{t%rekK`P zouiEB9dNZvczzN1{%^*H=K20BwLlknUVSEccB()Etk-u5&o6?8 zP=*m=*Pj};Uv~9@^&~GaDn#d>7=h+_zqeQMybKdWgX4FM{H5_X&qFjW@ceO3@eX`< zFsQw>&SKRd!a>>(PYf1?&7;xLu@>NY-2XnFZvflz@4otw4%lIK-S?0snk1$2`Y2sPpcZ4(C2!3?YUso!5-EP+urf;yH9f3X6!Hg+ zZsLS}Jc*pTSh?F{>R{H_e+yQW}UmOeQg75i%&nq&_ko*|?`=0-qA9*=vr;10wdBq%R zEN~$QL(d&(bY3-gAj1ODK)O_e2(0nX+`$s?Jb{`!7`#q0)bGr?2Ww@`_eA_?L1vSe z_Flf$^M$#f;hvj|f;~5{SCN7q-qkR+C=;dXDt zi14zx1DW2d<_PXSaE4S;R=#}~S9pTvRzg&uA+yWsx%SCj?iTvqjV)`WJ{6Qax{ zkHWogWEYYWmay}n%-))9z0J0U#cra$+AV#i#UR@Mb$Y?Mp5@ZH1MGpT<_U(%8u9$Z#nBx>nb zJQ&)cB6_#&V`qwyU-6B;C-S&zDitH&rsJ6C)3m3#EX5Iq<{leLDebDoW;cIFT^@jO zZZ8ju6q7isJCI{I8m*^Z*`72MQo5fu=71=7pXgntbE75~FSG6UCsGaORvH#!XwwXn zeMajIG;b4cJGW74MMVon^KIPmZSIp%|F~)uV`Hq!Pb`QTwy2XlNu0Y`a?il{)_`WG zK&N*drOR#@QN13!5Qh)9Ys5rct2xVQuS zKt*}&r9#4F+q3k+Q|5L6!w^EZcXnKA*&()TVgO9hd$*Js!yz4d;a%RNrBIJdL_-4I z;M_%H#^({Y>#wVGue|v>XVM_E!p#)X^-+731LI~WpE*5P-Sp#-;DEjeWBdB z)jX`U#qd5H7pwb+dF)H8H@tefm5MS;9{Q(k&ysp3O41XL$6pTY$@IOK3T!5;HF8e!-6B{&=3#CZjCgZd`^O(fnwBf+zd1d`bHPyn(TO{GjUwWf}gbD7XSG4s15_7??3p+%ef#@!^^i zI7suB-{gCq>bjGLimfh8!QqFwE6!Q19J%UupJ>RE4~5!ddObHRUQU&JZ)~F3pl2~$ z#8qV=V*jboW<3u3qwKg8nui<9)X)}|vwg*Y%ZgC6(R-P`^x8RS?4<0|B` zk(UNrscjw{>bAWdU&@{(9tzxHa;{o?%uq_LTHI@Y8cx1KT*$ibwaGbc^puJ*j8-5SJK)igKmOVDtJGhH%3}gW=w#dv`B>6 zpji!?^fISMFTL&`Kf+7$zjyu`lei&RJs9m+7gs9^|KO`r{8tA!a%0|;LLAJCMNvLkv$R3rm02+NFE}4|XUR?qa zBkGrZFTwLfyRMsZK~-gnHdBGc!Wa)FUtVVr&L%pJuqy~luzt|SFrK|uRv?dpFE5M~ zab_~maf{G^gvmmXT&H^`=WDc#5vJ=ig)!4@S(A3C<>tUcL}hE%79QkTvhunql3a|e*;N4X+EX~5h8M=$W#Wpf9vn^(;pL^cC< z7JmC}XX6mI+6mJF9dNZv<_=bX@Bij`=(&T~E44r%KntoCK&^3z1;rK~tVe&z+`$TX z?6dN>7Ici1fwlfU4kKFtts-Fc9^`j;e%VD2)LS>BSG&;d|~kMVy_9sU!r zAO79fWQ%|wuFw7U1NP5;MF96J@EdhTQ1{~nUn{`^@$|FqViByt1pW-1&<8O0082); z1Za>SU8(`p;bUL)^OG<2jAXBM-K^UBz`>~8GWe$GA!!@?jUF#EuRsNn8`;NjnW?UPBH>q8i?J zbV*@E&)e^C8Fe^q^g6sFHRufw0T+Jqz3FOQ<-qM3ksuUiu1vA|SYe`#y_Xtk|CE)< zK91pLTE^(f+RXMzxR$3?eJPgu!(A#E^K2-eR=haj)*gBew31)ko zyMbo@aNCofMqKN}8uhV~ew*_!LnmwajW_3?r<=rO=PqMjZNxQVu*d#o4SHk;B*vP4 z`}AiVfAVBOv7ZBc3dOvDPuC#KD-hhxh@MH8R6@V{Hfo}Eu}Ao>*z=^^E>pM!E3K_V zD|RE=xCH4UV^eGIA3>+JHXrJ&$n2EJE&(M!y}j+4 z0L|I8h;f?uUVHZd=?ClK{(Y^MJ4^JOH=e&mqwA>%x8q5yA+hBS-^+bF{1w$HI#P7g z;kv2zwzHAYai%Fbo)_x^M{AKmk^7wS(i^db^a+xqCEq(*`fXuNF=`DapMKoaR7-$$ zc#1PjQi1Z-_xZ`kbwW1Dv2Rc6_ibF~mZz4=+SQNo^BD9PgO@D2#1OH$V8kVK}?5;&7)`{V_@E`0q>p##-ew$Y_e3TQ$cp;r}p2QB>p_gY`NXTP!z3oWaCOs!n8@Zd!X$~4=ta4+l!qiFA8Wtl^% zGj0;9daUyrs+>XBPhuTB^UZIxNIWQd(bUR!EKXyD`t{S^3`ld4e49%ji;8FlFP5TJ zhEtDyneTt>OBcC?ah^AC?=u!iWU<(3_K=XSs@2yzgL3^x8XnzV$IW#G+I){idY(iB{|Xf z{PX)eb`c5zqMvAQ)`$;~1&1Itmf8*#Y*Z-Ob=o75R*Xj0QuSF;XK?2jH7M^LAuG`` zrL&bTlYHak^N-yV%>-9 zJvH42GlX{PjQg^$)}N3Ox+d<2-0*mntL+}{^rUtlD;j|-PZI-a^^3>}A(v;5)o7Eq zK%^`mZ$Z5K&Ptov3vAwzGsbu^2hKw`x0iu;m1)8Qhna<9m#h{{jt#0rw%_ z<|hp=B~$FcsUq|F6zY)Zokw-wdtR*@vsMI-Z1&N*ucq@L8pO7Ewece9X*JYgNgd}@ zeMY2mS6o&uWYagF%;INTlk(P_(*<_|Sb z9#0k0g~hKE4^FZ^XH0T>Kh-2tIb+)N{*nC{?Q}lUbFIhcZH}H_O3;ZEvZlpXDbLkn zmDk;2rKJ_oNX_>H;3fAf0zS$>=J*a2H7g0as5w?)X$viYzxV$f7iiZ z(12#&J+KC_{v0@=4~QM6kzEiw{`{8HujdM2huwwu<`9jab@1NP`||s~S;R>jwJ@g9 zJfxyz?QE(WU4vePrN}A8JEayQ-F89fBbTx-Bg)!;^4=W67tVG-%K`S4kOBU>jD6oz zuU)afoVyudXNS)3{>sV5R#oCb3I?ur3HxpU-~Y{{(CoW=r4|STXhE^BYEE{thxH6t zFXR&T-2gwYH~!Xwju8}^tK!hz9Aej>z2AP>6#~|qy}-T@oqysGntda|8f##SffM?G z#K@Gp1)$MheZhA>HU4H_h{gr>-93`~ap+$gzGL@db%U}tfA`Ik_-I^8*O&DTUjX)n z`#*<$3$OGw2{+&es_@@_0Iy2{`gK-`2bui>OI+|ZH<(+117L}Bum%qJGjKv5fUjZU zNp1lelns|^0JWyae^}y|um57-q5d!tHubJ-u|5UrYtrw+n)(@ocwXb+?)&T+fSSSk z{{7Dy^m$IHvY~0=+MHzcqSpcqVJ)|DCD8Lpy7|rg{`amy|GAVK1jGu!ThKXxg7(TB zUfvfOfRa!?0)m5?#{BPrA=_gQ=$89-LIIh5gFl8!NFuTS;bN1gJeZxt3}*d zUPq-0O+I^OdF+&X%2l&KB`TAQfmLN*O#sg}WHwlaGuc`2RBauK$Fw-xNLz-C-;570 z!g;L4Mazc9(ZZF+OScC<-A>DJcWe}B7Fjo04Cta9FFfQF5H=+m*fh$Rk-Us?Lxiqk zToN9@A2$+z`{QRWuq^@Sg4qj<3;1L60^?p>>m9mKq~KXS&OEz zJ88^_MMD+A^sPZGg=j7H5lqpYdf22Cibpa}$YM4{d8=BE&N4a_9^9IwR;4t{!#hDh zyw?6y6-P`;DlVWClp%6VcY`XBkN9@9Dpt(MbnBq~i@9_>2WI$ zjm?{@d|aH;mP)ntHH@ob$fTb``Ly&?AdajyRdS6+lTcsA~$QJ8~L*LylQZktBvzx%g40m>EL?|xX<>$qYB`F)G>-*#keHAK>Nu5%q9KobGvjU9u(3GjJpN& zIk-hVVbAP-Il2)JIeJFC2;MXVM!UN-Zl;%irXG7$;b!6)+|}z>jB)hZ~F+ITP90@T530Ye1z{ZG;0u zcwM|`i|Nhntu>Y^(Pp_8{pc^R17%}}x#N>7L6`}8W^gvh<+-b7BJ$y_S}dusg!hC$ zUjGOHnB9YJQ$k zPRS#N^&>-ngA!l5p=|A8Yt2xx6!k}}82-c&k^Fux$!0fIJy>C0`%Jf*<K8lr3CN8Q+ygt0$L4u5ef{a$d->YNpkk4IiM_7u6yAZR?7%ej~}Pu#41JYuN5BlD~CF>g;)J+qaR1Pwom;Ca(^&XkV*l z3*eadv~K7nl<`b3QAZ;udJaDp`%2Rpakl8(iAY7h#K|c-O!RHKeZ~@>CTkSdA<(X5 z&k}}ckh;(joQWIIr)<{|w>NE{M}Pb7 z2b(E1#1AAqrZ_AxGZLy)css(es8(`A>ad&XH(XN-H!O)W2L*2nBo5CMp`E5Q!_dr1 zp-ds=9B!yl7sPZTm;V*@`g|_Ay%16WiaIh{c9ZR$63Lk=L<7Mjn5X}dtgQJikQ@4 z&OaP7>v^j>ld|O96Fx~zyn*3IIfd9)E{dek8wx-80C7BvmN6Z zjtls^<-gnlcJ3l2dJzU8H-JGNe2j7AQ|%a`KJ_%mJ%a(uaf2Zk|K_+(51?|;9b>@A z!E}b>LNTBmcP2K+hzNmGG}*J-C?|B+JdSH}|00gN3q5~Er21ISI8|)LVe(+eiPYzE+!f&a z)4UUw;|5%a1p)y&h2gl0ajK;q+9?n`+;ceY3dBBEPGiB^$O{P8zwK}rdd7;#$$0>O zPXcIXtI;kajf05eP;H^OM10N{GZy!XgEfFSo4 zNIPxLzZ6{zhNW+0?5b-rn;`AVH4dtR z3PT-X_?j4l1JaZxhDgi8li<~qvZ#TKe&>s%skE*5h$Rq-zrJAbzSkTg!N zEY`Xr_$`kBVYvp-6VN8GdEQ8~i#RZYJ)kd4?PGl%`2n56Ve$}Z2p@vo7Y*oZ^$Z6- zyDxgQ!lbSJ)ou_2GI?S}Hi3Fof!!1**qEg-Z*iO)?3VwI8ZxB}^Zt3Mp4{=0zr?6v zf!wctk>)~r2i3l=n^eOBQdG7)eOV@{lq+=@JC7V#bu;1Wa)(u`IVPU>W@T?(b8C`L zS|ZK+((Y*Dg&mf6H5M69J+kLsx0pSaZnyz-LV$Otcdr z8;kUi^`+;7+EUag3|$AwqF}^w!Aoz&q(za{2y#%R^f-M_I56zKXlJYW3-(1bH~{s# z+9;CSz}~zeggJk64>r>Tf+&<1g?*@7`aEB8gW z{lC+3x_4LYvauf8J&hSuzEvptKtF3ao>|8!gL{Ho9_+B3 zl^=|KMX69fNr66cuIS@*SoUXbr1r^*!bZWEk(jZ2)Ok8iOhZZ>y^(616E!x>%V86V zPn!(u*C`j_)kz!{7L56VoL?1CXBX*DN-#)!VmVUHT^@Jum5;7@wq2hpmF;b-uf0~1WrE%oapRSgLdk1z z=&kky|ADCkFD>zuRkuiseP5xMg^nn7dI7Bc5}znE0zbr^dyo@y}4tLN7qR1eMTVBw+eaM^|sKe(1xJws@#E%u(#ON`>h z3mx$ozu!e(xqITVyti*AU^P6FT)zdf_#o_O^d_{`Lq4=sJ9H>B2$JD^{ZdHVC95Uk z?K8;_9eLpJG!LEm@&{GucVZ?O$*ypjV*cQ&{Eh6ttvKjHhE)IA+l=hXD_7Sl#a;UF zod&k2#NQ7Q7)!gdRgt&hMt+vHWrRFv^%j1t?;WXf`L6U@TRm%gwU2WOURVDOL`>}F z-N`56+YjX;?U741kS;A|T`_#5KI{3p(e2L6SC9Ay8H(+3Ys+wNLCA`SVpP@(53YD5 z96Vl^O(am_b7sDAAA`B=N{Bdh1vS6#b+$=q3GygK-o)_rxB|s=)uB|on?DQgf%|Pq zDg^@@S6R*F`{<+njcs3{-qEvtJasTzhl^%uJcb{aqmJ#FSERQXKZd1zFN#wxfLua8 zr`z7{yF$l`bKeJA z-Kn*HC6#zfG@1Zba~awiyv7c=-GUFSssdWc{;)&pd2 z1GKAQhbXP<8IEyA*TCIJKmp*dJY=%J1&>^6+ZO zMNjN%frGV`^Slz*2lO=!O7#@(Bdvq#Ze5t){V#|9{|ATuzk7d}44Bs`2mCz1asQlQ?o}+Fj!46n zDcP}WTghH_XTbdD^|2%wU0bz1fnlQSB7*L}U*A|7*9?lN2{roE4flI&n#EtD-{{To zFaF5Sx3&NBPZnI!X__ljTCWK;gR9?I8MlOnSF>4=F567~>f!UKdqq55I{I=H?)9Ap zws^&AgQSdDh#-KB0H0TeiGTczn z{Cl?{AnW@7fzKy#Wh45aa5aDjzBr-qZG~T^lGF6Do8!?*e20Q#2quyh&@t0iOU5b* zc}Y*cqm7aHabqb>6@MyzvUq#iYwM?|`8bl-Mw z@{b+?ea8J!9N_D76X!3u!&L)%rpc_~u|AJ%=O#E8X`CCPPpgCbr)*~(;PT9Wnz~@l zE^nxr52K=g6HbvFGB8AS1goTIZCaSR2E<{jf*&RO-xlYaQs6qd!*vESdjbkjujk40 z1PzdP;DIebJ0q0lJqOzPY2Iq$yn{|c3u(xA`MT4Z> zQ(61<=50`P&SL|QJ<7OIk4RUKWCWJGepje>u!a_QUo2XEdM7R8tN2!Mr=4;WJ2M91 z-QJFY&%2CCr&UGXF}pY_oMZ-8h3kVI7&PYlbwYPr(Q}#|YmrcI^XFS%FB4AY>Ujd?*WslWYM9?!K!#Wu5!rTvI=+(I@aN5-Qv|AhYmcP`&eF7g^P?g zlxzb`+QQx_p?LK@;>nk}WdnLcPyeI64|g2B%Kbwj4HdQsQ70K)#^o|g41!8`d(~hq zH#mtORoqXSzv@bE-t$Y0Hl-{Q5Y$Pp!C4*cmCvdFlF`u}%_PLArR@A8Q<qLR?`Is^Ks7ej%}?=WP(=%MQyUPV`3uXcON{8*)FnB z{8Hv96eyZ+aHq#{ zx>6tiN@xm;(p`0Pw14T_Q}^OQgRen)(hG}Aa;9{QwPq=ua$chp2wsgrS~yeYuhfhr zXsLY+xNmcnRjD-(M!=CNi`-g6p?pRCGmAKSbGPI9w5^;21Kvd4-hw_d6W!IvHI8sk z2Jk;yaURlg&-R}8(QWHVML zuk_u!o+cWvcNfFSAnNxVUF5Q2hB0r{SY=;YSP2Wf&S0Cr9Wy7+i->>PT=tuotCObjrcSjN32swM1zk@B zBPx5_{YI*a4J0F(OWz+X3@Q);Ye^($>$gIcIv@$$ql>VGT z7w}=1X5#bMm_JgDmBt1<>ijS(QGjKo(EtdQ+?H5`E3l29LOpuu1C~#R7^~W^MMmxH z0&_wZ7sgFLykDT4P%R}a0g@08I2zgBZ~J%20}BlvXAn&vrWoTq@sk{ZV^qBT;9dM8 zQVj?M_%^`z8vSu*fR9^%__zz^26WJIJNDSe{qenAxk%HMXZZUDFqZx0O|TeuQ!c{D ziv=(uPV&k}essDL>PJuKt^tgVzZiiqazsNgOd;>U16!c;kGmT5P&sVRk)sOA-~XPg z48;KWJK3Kxq;SaFMM|WpteiM=HQxzqiG!r6;mO3EDLoK?59kx%*+2pG*$Jt~f5h7% z+-Mqd3KV390cjmqH{jEGydAUlBHrFu3&{6)_gKEnY;2{&%@XKd=W}@bPXOgKmxkr- z%ok#T&hmDp%xn_L>`4fo{5ib+C#21Op2mW;4H*d5zwNKF4v@%QUQ=zX%2mA88`! zzP;TM;dsSm9?IM4|M&3rUl;1S9}m#A@!$E(QM*n-+I8a$Z$G1J;NB#l0QSH4VV=QfzJ{@RKZgy%CpK?8vb|8Lz5X2NU)W=5>8eOr(fpwFPg zX)~m#FWUCf8>ML2-9A2OH~^d=&4yOfMNRAfI!6)Q>AV}a^aaceCKy*ME6pU7=YK!N z`T}0$+tr#I;c4Tokxf%FLAR%c1kCm7^O_qzh2G8okxDoF8=z)?a_xYPpB+1IG+*eu z8UR~=d~(0$AK$e>BKhh8q(8yl4R*Fa{pmPBfAZ?Rh*vi@LNT0<`_m~5;BK(Lym}Mx z!!W#>vkEuMJ-aiLKsCIdv12L}{$X^Z=&-b{c>>#ycQ=_HHw2UvXngGz<^4ENAD?>!0JN$q;xK6mv^ug5gKedJWQhp78SZJ=?a? zH%+fTKcm_6NuC%K_ZXfU@P^2D9qnRUrD!S`4D=sC8Yzd!tSFX@-bY&vz`-G_}= zZaqSMoFS6B?5>+27(rQcy+0add{OINSO3*I+G$1%}^(dWpV zW4LT>ap8EX2}iuF4MOF(I*g} zILoVfhA!gOjZIM7ImtmE*-oi5iDaHSM4t~}cr{d?P+t9~sRg!_c_^)%KOBVk-t0`f z9ggR%NqY5W7Iy&>Phb{#%n-i}e9cR<_WrFCUcC&N-2er!X`&H`O+(&+2ev?Yb#*@h zP%r%(r`tJC9n#JPP+tA!WQ;hj7lQX6mAx7C_ifsAjZ{f8N$+OOai;Uh>RWJirkaXF z{u1k&P-OXV&Rri7u?KBI;ojaAVLr-NJPwnnr^$v(R#p6QKR}*8 zwG@r`$~cVBXVki)QS%HiO~r(a$rqG1r=B#UP zAD#$up^?%}+yY?yl&bMGC=6NsjRLFF6@MvJR0zKRo}s<4ei9qs*= ztVgW-UCjUq=cRz~#(wS9<(t30nSQ!U)+5HoI85BYCV5qeta3yvwli zTihK|F=i|thG5}$+Vdwa>XNEe1>=V~NsmFTv5P_b8uReCV5&7E=#!{fF9X(p6 z8DH}^OoN@byn*$WRF}=G2m-#e2_O@Z4H`A^Vz?;ZyG{6@L@v;2LK82^jQwMfcA>x7 z)teOpNZ%KnUVDF)o_Xlc$GF>G`Vkah&)(Xb!klxtoPs?pBTHFa;np)cT&bo!+M)dpR-3YBfTs5SLw5G6+uh--Vs5~s) zDv^knr}_NZUTPfR6d)rYyg#gum1iv!M@@dZmqvfCf6pLxbKst$(_!!=jP~-X2w|~yNyk=>Ov+vVv-V7CELwjOGP|o ztB>!bA(MzDa<4l+PgEZxQs~iviAaBYsV5Rs%#u3~$|IqXI5*?>7Qzz3QQc9`@oNqD z3`guzpUC?!-PdANqM>tU6M0bnmBdCX>5wu9vvpUI`|)Cm{uX??h)qq|a&l~Un7qo} z+j=T|>ezI@idJ(_*<9=iOb^h0*XgR6ag2u5pu8jo(KN39dk+z(;x z_Rrl*Soe{oH%G+A>lqWDp1Mj{=OCr=6+*WK5)&^kJeL2QQLmvxB-HXaVl}TB;>Z9W zcXp1T1@U#FkiP>S*aGFH?2R9wK6wAw*ZuLq1tgM%BWL*a7BHs$hT}&Ybd`c90imG@N0%9;L~~hdVTvM zex1<*$QQS9EMJ^Dwxa#jFU-KNox`uUf$vXqURZv8b>|{15D36Jl^0jNg-8Ld#cPR=s>BNqz{vb*MttPZG418;ON?vB z&_j&cu^u3CE}&f#Ann?JhF_o2HEdp7YVV@Fc(yfw5ovxd#_7EHA6=i~*FGihNM$d3 zc~>x0IJUnD55YEZJ^ZGJKQtTj`8KGI=0bk`-@N#L^WtnTHQU@$qF--IJtqFi2iyWi ze`%m*c}o>E8)@x)Q$abAGkNgF<8wyax8r=p}|VE zLRG8Zb;D`e7uQinKOM#!ipnk2yJCOIA;2NC73iMK$Q@#4wlD#k+sLnK`yl&g3*~+s z(Ehp0kN**qoVKg&2~Ib1T$0z$5S@zuq0p!L1o`<*t_<0!qu9Wk+jfzD;MSQqBr7OzG zCD50s67Rk7ivfnR9KzSGUVH+rkFHR*wx^{U<IS3{$$Z581+N73;_pk9>`_gfsuKFUU1myW%WcPD}7~Zx~nrk8_chD%K zxv|eTA8$|d2)yUMo;`}%Sh%#v-B@?GC`_MWMydny1M?tD$bW$X%u&J+7YO7b@4y3F zfO!y{VD>{m57E-cx<2xaL%#M`d!InLJ?jbQ1N5+ShTETA1FvO%DN#~|omVjOw@W1# zyq2=JIA-lio}UO7`i3*|gyw9~#5dorH-igBpC=yL#6_sl_B^TCXi?pM_0lOh4v!0q z$R&P|5TPlTLz-BnimzBes_sV)d_ndyp`e(=Z>AI~g*wdDC?7<7bgYl*6=JaEp< zEj>>vC4X9lN_U4&``RU_e%Qv{m9;FL=h_g0(eXNuu>?I7-#E_eX z`k^_-y8-V29Rs?q{G(Jr*L=te1i;z_;DIgBIcHGDN2txE9qanY=6av>J{=B)=-TSw z$!T2!ykA+8rP7JPp4g6U)}*51x(m_dW!^F)ZziU+O&*o#ugdZyc8&0RaCBq#9t{WX ztj2bno2ytcy|@@T_=K^KyI$M#Kbc_VAqAj!Xp29B zoZj6()XaOVu)yfh`s2N*n9tir7m_GSB!a-1EZ;JuZ!FH zNm8cwZ$I?Ry~AC8Cq{+myTM>p!EU#@t-@Hv;qrfRpltr`~8fE($ zNULsEc*%H`p7y;vn5U9&mFqXNA_vIHUJ=)c60AFXl@wh&M{}PI1-U6|GCh7j9p9qs z8rPdri6Fu7ubQ`T4|&xniW6gdv|H}sVMe6y4zZixo=)Yf!*FbLt96oG4G?VVBAJq` zT%JKLt`6IHSVF~Q^))qU^iFNja9?F@5^s~}8ha8BE6rVj!7B5>8wL+7N);&7JA+;7 z(|CMJ#3FN)S#BaDpx9ki)Fmf))RxIy@2Ho9$o6I)2TxPHG&lX0<}aG5O~^_Mw6|X9 z=2t%^T}IgPc;Ft>%=W8PS3ukT*1B4J+>ll8zV5#DGr83(?)P~Lv5UW7!OAMK><w2zuM<$qhPL6p~*^=i z7P`u9ujF02=AJyR`s`lzz1*AeEv__qHXph{{y0KZ6s3aFcaHk*Msq`(}^@jP(OH@&qK$`znl%07iwIHk+4?_XXZ2!Ol;4{U*sL(UmpP>g~z7gy#GkQiJcMQrwTVVOn0Vzjt8UlTY?sVb-v zANoyB<3WrR;SEgZOb}2%K;J+N04P8`10nVN4`K>X-ZsGw{A(blaN8O9bY4tBjB4S6 zv()wn0r`a{j^)qH#a5zVd`bcQ+Bq?WUEurEJRdfuV00lC=xj_uDKpo<@4F5JkMf+D z!Y)MLyQi^WZN~$G_3wG}{t#5IxifN6Lhy9Y#1x=7f9(@?-b_J#(Y$$o7>Xf$F2?DY z0uf<>v915{$?g7q8}pF<1e>!5 zY<=&1-^I&+q3;@nVhEm#0p#re@|b-91BUajmDEYgQ+^5jSZ+>4F2X<3lXuU|NJ=u@ zh1~2`o#Q0|CDFB;hN^FOW6Bj|)o|cj#BUbX_%+xr!bOdt`@JrXhvlJqTg{irDG-v@ zig;gjiFGhbP?zG%m(yOjdiStBfqjSPr>-i<_zZt^ss-1 z^PkPU>vr!nH=q__U36>eFo=0B@n^P`Ji#QFEfpf-1M=H`)IKeO@g`>_Gh z^#d5r57jl4^LOZSHdWDI!fKf;?T)i6!jr?-d=;F?_AuU*egRH$y=CrMqNe4DYvAp4 zs({2w(d2`jINXq@mzM%DT~R+$IB^B&q-tCe%vIgfUsFI!?#K$&XL^&qzT%fLYeEuvx_b--UJ!S zsML>`E#wgNcXJV4W>rsgs`9sfyHOITQPD^90p0u!=vr9(^NhV%E9ZlIv!S1s>E68Y zp~${3$3+ww%k5y*%#xuxeqZWqT1`0LTHf0|E#j{d30C^X=vzYI0V#(Uczc3*nq6O( zqu{NWm~)0NIs8IgvzkaEN{M3~Y5uIuh&z0ynkPSvsz z{T*FH;>5g6^)mV~?p+-t^I~!z#s~A6#_(nF@j;2Z5AP9Onl=5de3-wO@at9kv(OI> zGMTDl)fQKn_k*$v>>OzxS=)l`GEuNOeu%a9m?ZYMer?0-L0(lMscr;g(tcptKnwBa zoO`Z&HImED7q>p&45dK5h$h5QxuMT@|Lb-c^QXx>EWN^(XyPS5K5hs3^6)(L|0JT9 zl=9lvCdn`>tm*zb({)F_H%oo2DPpl77Gnk%R|WP6>D0>O$6ns8*lA>l_XJ_&b?R3u z=A!C#_I&0ixUCg5w7=}9EfM5I^M(G_28nlNTs5;XAF7R&P)qP*Rb!QwO`DeN=j~fQ zj5!T%{Ye->i;Y_o;&1vJqlIR&$m}g$e>kuDegd!611DI$MdD6J z*<5zX#*G>kYa!y-!M<;$iSxp>78vtCJ6wC-!uO-%16;SPUBG#g(E-8BGqkeQTsJr*G zYFc}o!KLsf8}jJmREgrZf-mk(OwPt$FaAnF#wsDNOo%7$zR@ejlO;jt0~UKnBPLng z>0`R(@H~e7URt~a#RFc4SjK!*#ql^CYOzC8*^&sOrAe=aMqIjrl=2~2inpAUoK1-> zC=s&Jj4b{cG>Cj7Iy>xq)i_Bj#rnSY(ah%fLs1Df9JZA161bV6fDzhPy0QuucAp+H z=o}Y6A5qvH?R(I<1=UneM_0338seP4m zL3t*Gro?j3*n{rlEAwGo>8dHf2c=j(H8Knj@eO44)L4?5m!}oPAJhD8O^Y1|X;J@c3p1FV@tieC+2X|tje(*Hs zhx+fo^AcFzhADm##{M{TjF>vc_%lX)@bBA+JHz?UV8C*IHi?Tk|NaCN<76N9DU8#c zABq9x{F&hTUmsG>|A6yDdDTuFz>c8n^qqiD=W+fO-HSLs%}+pn z+~#8)$7x_Iatmmn0>5?+=RW|xKh48oIX}AIMOYvZfOTpefd(0s={^MS@;RLU05Zoq zIE@8sJ2Viif7>U`CRDDI^Y8!2bs2*9`wZuY;{3HwSk7Mv!I+0g3_P#}8ZR26*@9wF zpV8eB#%azE#W=(HQ%6(ZBbUACWh)+L;OTN9dgf-iA5^?lEj;}`2;lsG?j3&!x(q^q zha6)CIc$y{#0tUyp@Rq@-=Trd72t|R!L z>j><^$RNheV;e#Oa*EWZ8jK!DhT z`V8KwFh|+zH8*x&k%BX7c-}m3%pYF$SQUd82)oWuCDGfI=d)2(hN$rP@%GGs6@NlW zRcnr`5L43^y$}KW-<583g5zqBiLtZveHh!hPJ#;Ots}S%=}Q;*#%-W4;dUJNr9Zy0 zh>YsN9HhU(t|K_pUw8gEK_Eu``oRLh0OTEbU<=eYw$toDG1$+=0M-$_KZ(&D0)8GQ zrr<66nfT7GOXeZNMtnm%F>4nJ4(E67(!H+cG~`Ii#}@CXCFXj4uX+$vaT4vg%{rH1 zH>NHO$0%Ma)$q%g$Q%F5bA>yMcs^L#KQSBXD35_tli*Agytf$2YHWrzO+RtCb7Mp2 z_Dc@ct__hFMYMJ$Kb_sKWHhOYyIN+V=MDKU4)I9?@&d7W?LTV-0J$|EE)eiT-hl_U z0CK}IT|)%qrffWx`^Zl{nBx}El!C?($WO_AcqWE$cHIE4$^HB{&5}9nm!3Ef{9b+7 znf5G&o2IOzsP}OzKOaVZmpY=m()~jt{_>z)<@M_uq11U6a9x>rif98tb z;J05O=!d)m4{QN!0HN&~5>U?@G{^NkvH^=phz&f2#t2T^K2T4D@ZN+MmdX`+>U zz=^KpnnST(jj?@-korT8^-b{4Vpp3_^5GodyCLQZLKKlEtjfDgKBYRzS^NB1f}2^+ zZwb7#S!gS?J!soYs`h2D7U40*#af1&7&fV2zsJwLEbx(z_#IW49vzJXXN9-J0L6CN zXKNvb?faE{+3yM^c$^IUsv1NCnSZKaK7aY#iNz6X$5-oc#>zEjyl#O0!;MMA7}8fx z9PZR^qpgTHxT)~-tqGH=#uOuT63ga)q)d5xqj`sPX_>!5+7wI-WezV*$K9Od7u$Ty za3}F63( z_6|96rk7bGD}9W?qj#wXJtPewLs3(#E34a?c7j^O>!Kjl;_td&8^uX^J09_1TMLuZ zNe#dYHeCjf{$30(U`W^+nm4`4&>@iQ)y=J&D5We=v!Fvr+ZS%40}>3@d_Su&KY-h( z>)FtFL#QZ@xm46~t2Dio6Z@L+`UgmE1+9n_tww|F)V24$ z>ht_|@^gn4Z-@$;Bq>CNmyq-$3A0iq=nj#4` zi*cp|cxl?V>;_uhUu|j(1w4$ge)xq9>+n~OT{qIJiAx$97DI)NZM<_sohJAEKKAIi zNYVR5gEdylpVN@C8Ca0>U(-o(?a$@Uz0)^c^?FlZ)C^TfqCzGhjXwqHb~>phJ$sp5 zJgVJ1k6CzmRd~x3;|tj>l(pCCX>&g1p!-_ZQ4@m(>4&rfj`uifu}7G_DXte?ep+a2 z!d#SuBZ~ck2LWCTPu_>{=(fTX6}CR+^gq`T!pdr< z*W+$bR7ZcO)GSgN-GB4G+uHT7(i5T|w)I`UGPiwlS8*+-cMYYFRbsO>!R@^3Zu78P z{zFC)IU-WkfrPv{Cbt3aozzd)O8~B8|giUy~_0m_xt9}6^ytZ%@xXq z8C!gUTtTlOFRq}*rq<@+&9+ERhN+C~JGazff;UZS%dnU`Yq*Y!FI{(I)ZnlbYu$69 zD6vCShKBm(-5WlgwNwde$P-;ST2&(7imonoND+P6?b^*#Bt#qseWo79sOiF3>E%}L z5ICG?d$vJ*P>sJ|3@v(?^QP7H4&Zv&p_YwX z$^NZB{`n~xm5t+>y#rAH{FigVVr*ZCaqSX-L3MH#`jKz7afJHT({YD07;!Li@Hi}7 zaJ~!89#oE#{347TPSCvr_fL=EKumxczOFZ0)7hkJ)qrS zc{zW?MZCPW8IafQ$MJZTnTM^^CEe8m{M!GF0oX$4J*Rm&ESAxQSRfF91rq~M%FH88 z&R>Awwf@f-fGr$im@V9CELdCdgkb&K9&4d{B;5XWQ8lLg6gb2@dV`Co$(dpg$KW~; z13>xTllPB>=;7bG9$f<3Rp(^C4J3C4wCiG*bhq{C7{FOw!{+^?;xEekk1hik+JDd0 zgvB_O_qPQDb_2|QF9>0sJ@b z|NpbRKMN>7=i&NOc=^^9Mfd|TQ=E;gN@0ZN|ur%4qm1n8;qr zl3s6_C!Z=NYfg)0`oNhC>`-$kxi-y?X6B8(S<(JgIKHW$g-7wipjLk5(ZHnR^*d{!<$ z_vBHuRGW)m*kK|pjcSi~(I!g_3gY@yi6F5ml1O!%o9zj6qYu6$LDxTzqe~QC#L;V^ z`$yc0j&*x9m*_ztO@0HpcNUV@KUqV0q}wBo&gJ$MiC{A&Og4{suL?EO&6jVOC!evH z?rwdm>NEYR!ZAM^^zG zxOcMV<;Vu!SV3$+<}^n?sV73XQ044hkhi=zCw^7h&Xpv z(v3(cMi_D>3EN)l*^W%?4datO{w{4NRl6gv;#aa%e$C@WX)}HQ_t#d;6^d1Gy}gVy zw%%kc4g4IaT4p`f*x7^o()$5fh_V#CjpbEkfu<Nt;KXP&A&nhMcFux_pl0rw&*tN3L82WU5o3tnsXY$hGj2D6~k{a4zK0{zj zd~MpL1l`;y0eg2>yPA+)`myc->{ls%2}B~r?ZWZ2ho9iR7YunCf;^)zuRaJ3Xg0DI z$J0n_bF4tbb0)6XboxSLi-_!0&-Al=X>o($$&wr4Tx^kRvD?1y6l+N5{oj7{dAyHq z?EV<96fkmRnYhYfAHl;+Ww=zSVA~((llH5u34s-igciEXU5}SkU3atO<71Ihio&4} zGS5)mtJA()fA5aI^E>{u}P#P`JzJ8V28^-dMNZ zo{w!TN_$`w_EJ={4_*v3@Wc0tnKZt;Lt+~LA;WZ$hA4x%45kHbAtT-O7w_E1zVOOR z_jJB?vF7BfYork_oNV(Pr|r7!cg1XDSD0UnBvi`K)M+>T2q)@9S*_5G4|gPXk| zf+R<}%56`gA8tg`v?ML!6~WKQNe#pe`YpyX?8Z$K-&M?M7W2Z(nrm`DBQds}gaqd9Z#3eE#@zW? zEhy^d#L4ttIIpw9LTZY90>nh}^Flc!RUALihLsg_eSIL^iq>7=dugNMa+#ii=>I$98$zONO@;nYr2y zq@RZqCT}WVwY8=*nJa1Xj>hkzxVHX#poK~_jEoV`{yISR|baqy;J=8$nX7~SHSYFx(hLCKSJjf zC+Cj;83SZUlgr>w=k3p8#6f2+M{}3z;)^(XEp$JC+eyyx6b6vDKjG*{7*LL`hgrQ6 zd`;4+Uuzcq13I}yJF8+e(kA}I_RI1o9LtMNQvJ!qYSv)=~0mJa$doy*ZzAocnW zI69Q0ltIrC2RJ&l7$D+#938vsB91N-2k7+2$r&`GS=cHwh1|)&ubsoup?la)^JZ9% z&U_&j2n1lkaCDW?tcX=zH3(kHIUF4kGB-p#jRk8fauBS4+oMc8R4&?Md;B9;3ItF6 z3`d9J{I$ncKy*j}=DEEP3?PqioJ)ZI1>_HCE-FDL0l?U(KNkbw=%L5)99t*`z|r*~ zQI7jZ>&4j?L3Noaw%uAf{$1jk&tB-WS=46dJ+KKo6j6e3bkK_L(y3`Qp4g;J}`jL0~r! z*ck+NWcCKzK^|5x3aHsHnJk{(j_{7=`L;rcxF--V&>~e@ahQgXt-*|kL=0B zjP2~rP0S7T?TyLAZ{KDnxrWZd#>~UQ!OFtH!oqy-8agZR%J%2=|NH~qaOKS2aP-HJ zaF7=gu$LF8VcUJdW-jOoYUX2V%Kc6m_l7U22SGp&yWN;crwV5L ztD(I+LD5DE(NgK+JTgqFFruN1MfzVsnT_VecW%}|2ybUf22(=xEx z;KzqYAHC7}X_xO5-n4`<6Zl&oW(F{>D$5R%w@qj0%IJH$Wt02P67@13U|gaH0ygg# z1>fnJ7Li)}U2Qnr=*0&3-8(c8s0t)Jq{)vr=tmyZGgIjBP`*8KRBo275@8Q>C3-C> zSR8&uLsI#RdHnFren%RM7hig>OyU0=B|(jyVCC+ zUp*2S!~{q{=O6pcz930Y;S#AySZKlXp_1?rFz)s52VE%px3LK05g(()$u6u;$#wjV zG=M-rUq9Vr?#F&+6}9)yThgBgflF*=|<-RJ-M;N?FK1n|Mx0}B_N zw=a_f^}#8}zUveQJ_Mui1Oo{ePflVDAYt|F&(3ga2WM|`H-*+ssJYwP?&s??y*L>`}mvf})5}lJcCWz|__uBGuEO!^&%Q)>v8}L5p z$Q4BE7~Z&(XNfuZY#5JcnBV3RifJtExRY8zCOhF!mAAGvp77m}%IALAjlyMW(yM~T z&7S47NVjQlwgfxJqjJ8o74X7hGRm3DMZ} zuc<7K`__c^9xb5WAj)^J4Q}AdN8DS!*J4IWzOX07q7HIVLG*dvxq#wh7tQr#lA*S< zcC61owi6PuYS<0Yrya~(52{ZfrojBCsqgpd7Dy~BMxcASSxei^Xj{3vcnTz;Dz`>^ zyxw`&o@=HM8es7=4u}0@t_OSGzQV);K|N&F20X9@n&&TJx((C|<@<5Hj@sF<8`92o zKs$pW(~+b7qDSov^ZSPHwLl*X;yb;xwwAin|l8r zdv5_$W%q@T9_j9sk`Ry%2>}6-Zlne2l1^!qMo_vzx5l(-j|E&l z?)+xH|J<27-#c?=@XUCgz1CiP?fpFO+ItTZuCQ-q5Wjv=PH_l_03ug4YlmvMPf}e)ed}7V$dT2qM3+&-^3wnbxF{?X-{~XNdR1XX0F=nOH6dw23Rc92l`|g)=LJ z-N!H41Y&XF52lgR@I}KI9-Cg{#9(ikFV+9_fYD~kgu^JTc%}k@XkyqEW!rdK=0>Om z1%AXwzxAz{E_um0v>8Pkx}fX|<1_ zrc~&U{RVLnFVB?Q5|{jt`{cHlz{?uLKy$Oz9usZyjr=X6e(&7ReXrXFB*v<>l=JUi zbJk!crtCr~I-Gg>>2-mhmngFNj)Bmv{X4bIHdZeQ@hU$Q7i)@F4#bz}BMV7C*5i74 z^eOwz;Ol4l?V>uKrYV>U+y1bFfr8S0_vQ~IR@zH)c2g)5(I<5>)G|F_IUm|hZ;lk_+u*`(h`1meObM6TBJW+Uno^mTR&>A zNlNZD=}wUF7tfH&BSz?d7mA3d&K2_q(*>nyLW~QXJ01hI%U8rIBqur*FPcB)=;^aT%2w z8y*4Sx{$r*^W`ELqQ5x>2^aK1(!x7ET=-rP+oag?h8anL3o?BRe+k3HVvnOGt= zS#DNMso#>y_yL{ofRmEBCq9fUM&N%CQTbxgSZ4?^n0zR|9K~+vJ%9aIXr==DTI>0g zxZG550=w+IebDq(YXc@FAjhFup3iY6vXC5i?k>BZIqvV;;4B9uz7j(s3BcH-{EhJ| zzt@MYn#h6IA3kT+ACUb17bD@uMd_}{?i>;usU)G*xv z4B9_B)Hw`5ANV_t5P^ON*0wxQAQ0zIEyZV5OeJgWjWEdJ9lpSIPvoKd_??4~NY%dR zq+@_UNtfvZ|J@NE|No2n`)lYZplitg62P-Ac5>St0sGZ!L}yS*JmC4V~kh`JpCI0-Px?qw9lE8j1) zS}YXgL?PckBJAQ%wM4(dGKu9gkT*18A#vT|=BxIj`6BGQ`%J34@iR2f=H1owx|BLA zuMzAzj_@s{`b{LfO@-Cc$JsiOT-EFYhwHt|#Unrj-ty3J9uGzIrT3XLrJtvfJDcU*kAF-f*oZx_P77wLrSIYOw3vMf;DvDb8< zQP3}{bqG4cG2iz%>k)1kZ?=Yh!<3fEizxg)g0XL2+!+rYekZ{y+@j9LfGuCI>LAex zk)&vztZ@{av;Z3cf1bS~&kbw&3eJw{0oY2X{@b5F^O}BaWoHLaw||zi|FJa>%nGx> z(uA@7(UAsW!SAASfn~x)-|~+8>vz zi6obeuJ6Cx{vvIFZ{aFKzFpCfz}Ba>^YUrslg31WicFmumg=@iNjYtUjSfr-*}&>= zhsK=i7%eHxH(eIi+xZG~`L%G6DmKmvZ(3yk)`<;GO|KXCDY>FUNce zw2Qj&ce{S}vw=6bpWPswJ@3yt5NHqoomK zZ%iAvGAiy*>1j8>`sTl4{AUUX;bmB~TZP72ZXN|ct@n0J(ihTgIsMVDz;UT zu7CXK{RQzjtmv&5+U8#3fVEa%ZZWI-mzDPRP9GA{=ug*&;nz2zCNz7hXyx2W*Pvx0<8d+Q4r7il#CC`f)@K%;F zlCsZ~7W0zrXwKm@dU$^4kyVLE@Q2aZ;!MoIHo#a}%2eVx3??7QXyjioA*Rf=P-BBi zw?Ho{4wTH3-uiKSQB#laKz(7O$XP0oXHH-zq9SJAaY|E>>doPFSz^=BV$QIbYZj^= z)CVlNeE3en^{wQ$p|ZO6 z92E`?E;<1v7;w-yCzJJX_ej~Elbd`p9`TYN#|nm9LN#|e)%#*G^^zLZ+! zZ>J||aFND&dpwFfU7 zRt`36^$3sb_=uS%QF!!NRjj_@bv6p#$k1N99^o`0*O|K~WKTarP$Br~Iin~lHgX}J z+EeatH3%OkYAjQpzi`tWnw}Q})zZG9 zqsPhkNKA9s+Gwv#J0MW0ZzEK)rtYh3Q>$b?)7a;Sx5&lvAE!voA#9&y8;R~e#X9}m zR45XJna<(1Lq}ao(KNQwZm$^_E^W?VlA`rV#Qu&}8-dOE+FSe}HEbwkzABs_(J1XE zNG8~?I9|2AUCXA^zAq5=@kIQ#amK@hqLUVAj6 z8935vslz<)M5ij_BJ`Sgr)t4t#JF?$&hkh>mHc%%<~r3`Bh%|-u=6FCa&{&BtJVgX z&ww09FLXY~J%)kgxbvJHlH>la4bJj1^D8kbRU!G^^f$(@{O*Qx{22DaJN^q8XF0nO z!SWTHy;2Q=A$%zY@Q(j4*MML^IQy?TWc$PR3U@or{#Ts}R9>V4$sLqw1~~=Z7VAqn zdmOkO{{v@-@T$jgWm(PRSb<-=gtMan z-=F8vXE{4M=T%rB5P)^&oxW_W20~F5A{dYD63&hSp8HVFW1Wo+1~Aq?uT2;EA$ECR zu!{|hhjf95LU8`Z-&xMS1jfh#TMT^8J`g=8eo+8|@#mbm*q^@piE*B@LohCI_5{7o zlDj>GG~cBBNLNL&5APJkMJ087)pvD$TmW!(p3=d%FMgQ&(@S5i@#(B>E%U9<(yHLHc7yB_35=#lxaKjo- zzS31GaN?*4P%Rv9U&q+Pb8(tHZK`efPe^O-H(Fv4|j{1E_UO{nE9M_knY z4Q@zS!1c|iW;Bk%W0%yN4 z*3a%oGQ78Z#hE0F_W%sVKeg@WFaXZp^M~L38SB3|y8v3q@U{Mok_V5IV`m5S?{UBS zs`YGH#~D<8<5Pks3423Pf4@hMqH_H9{k-HsrvQ0c{^p$gDHN_`GwwIC0)l@zro0A6 zd`F7ztK=2LV!3CVvqyKo(|Xw^J~NGE?i0)5W?Y+h!#6X=GLJAiqLSdj52$1UvYl_FaqEQgTmjw z{+aV~nOM!^`5}Cs?T;T&fw>Oo*em$FiHC&Yw*hVnC4&ITiu>ueJ24$3TcL^=IsE94 zkAqOUxJ6?aWs6@)y%*xZlKool-y2C0_%5C%(Ft@J0pbb9q;H;Z`@psMWLCR z*h?;lh~;%8UmsMryo8)5WhL!tYBChGiTW5S^5G^<86m^su-B#s7Gw0(>y>t}Cq9SK z3-Hh%?@MzU_7#nAC!Fy$F8!u$xxC))!OfK}i{ZTF0{4RVBqG*hsWKqUsQn3nQGBtI z1MNX((dG3{+mt`tIj^jS6smd8{~cO4`bT=C`MY2+Aa=QzDW1mQ5=Y zAD?H4H7Z#{#b)10M6e@mqqf#WaazB3#DGrTacH3U2tdgekvwj2j6^`RfWKn}h!LROFe#X6Qx4VpRe2{N z9&rzNtLHObo0!q3z8aBB(u7Bf3rU9l;#)69)ZCsPA0 zF$Bx`&f_)>F}q?aqHQ|KavEk2a%keX2l+ISbNB@<-86+?boIrj7}2**k&J)#Y0oN9KA~9<_C1*El=_UIONmComH;)pf_qolHNqJ z_Zm&ybbR&LYdY0E1-|yd=X~wt%x!}=NZujuG&gg}tXz8K+zFwT^`fI0#NAi68)o<-QFGYR>eIFhR5Ve!g-UgXxatW z*ghFgy&dtMKyZK0(kAj$nbwmjZbw%_RV&*a+jsB8b--=Yv5L9A0(3>jOB{eR`MWP1TReXuV#+~~J!wp>u&XH_tJrFw?v^P^F}d}odVgGZe& z`OWCt`R-{e(u5`!)xh7w-io4af1^m+Y`^(T#PcU2xQuBSkBG#8g zZcWrOqLNJ=XWlT2(sYSRpE^z9m@$jaD5X-x86-7XSj?Z}W$X<(%3;#PZhR|z-9<3$ zgjM?`s-10toFP5F$w{+t$g)^w#^DbX8oK$6%*TC}J_1I0pF?t-hS{=ev)|C^jN@@B z^{&nqtr%}SYA;PfcVgHg-1bCZLr$5v|1~G7(tl61Ti-DYYW3Pk!}8Z&q<7@^L4(cv zaG~C(X>z?^{lCam_~;_MJ!@1V5)+yPNxxs-d6FpNg0HsC%Z& z;DDw+cCx4;*$cX7lgE5u;O%iwdVC%2PECZPZelx_C$?+lOmnqJ5A^77Bq>^p7gEl_d!V*Z)xBf3V-p~IbB*z~Xg??R zyNDkhI<`eQY?waNsYAl=Pp3a=K_N>Mn$XG_Csc^Es*aG@gKrZk_uwBmG+qy;R&{t9 zs^T@r-A9>PJm7T{x1q{cz>!#G{ste`l@XDru$a_Tqk}A(cJa##(+XXCoY9&%92VTY zqaT4%H<3!B#VONvVGZvpjHgha?)7Wj^Zd|mk1xKTf52ymNl$3Z#||2N_&o-fa+mh4 zd@HBrEPXRpNeli{D8mqDEhHR9ruk^+xe}uNjuy2Y$tMy|LPKIwnh|hKmpLvy%WoH) z2mhI`4I=@0(D3c~JXkOR$%E(h0!SYG%h%3wLR`tKFc$Aa<_M497{BI-2!x`7iSuUz z*j&K)&HsQoe-@1451#*l&)EmU37r>(AsF13U`#^x?OU9mhXB1m@bd~bO!3{yAo_V^ zRf4fZtjA*om4u37BoCANNjaUd9O*gWwZD?EA0j{b(l}euh>)Qv>)TC9s?;$9^Ef@~ zi|e1gX8`{P9-y6sQvai#0On%_lfeH5^aOeEONGnz1b4%$IKHSBVE>NBZ~G^5F%?MC zxfFn3yF^bw2fjbg@z3fB8CPO~F6s#i6S>a?Y$CyU4=&LY(82R3`gyFgvC{y?`ser* z)rQ!mcfqa)V7#ac92tW1H$K|{6TuJACx%8>=?S7b0LJ#=r5NY+1PI0jJ%J2?z4qlC zhH@%>z&-!Cfusbn;#!t%VKK9J5omy(Ao%a;2|i#u{@GU`$X*A&Kl>@bHHkpKM1lLI z@@ik5-6NoHvV6rJ0T85Km^=2jug+lrdcxm50>6B9PETN6lJL^dx~`m}crAHlWM~Y@ zT$@ZsdywmfJl#GxtS-|N{@Ww)-yVVg_6S_IN5I?)J37Fg0p3i@il{Cm2kZPE^S|bn%I5+ORN%aF zc8|b?9DG*07__-cyAaib6&0+(qQ)%I6u7a+)93En^2_Rsw4Kt+@VJbqx*^wf(|1AFV2nQL7z2Ic4dgEv(6Y zqJpk8HT;ICsz^gKtBkXch&FCxJpl_TLhD)ByE&nox6(R`pZPJ`_;=otH-@TkKK?c6gZOYdHpS?0tqXyknK2^ z&iFc74K%SlqngkjYq(wL!Fz8~u;1~^owRFeO;!?GdfAAYY>Ar78-)obd05@$sXOuW z>TR>t-L&z;clSBdI*}ZAv$zy^ln0tR-DxOsHshQw(=PlSuhK3=^&xSMcs}O1wVn$+ zVFLTw_U}CeHh`}&AlgNUlWXtW9_HXa;iwlW*IG^z)JEQ^y>2`-yC_&szqcBe5Usw*>|YKmLGDJk!5Z2`Y}sdka%e3f)G#i|BR6*OyC$Py`WwEZZ}K{x&1fxa4Ju|@EB_i9xr9EYjGQ3|Q`VLlAR_Brq z%E+y`3Hb3B-}{j3Rw=btym|8YeJlf7t+myh3DGe+R_0LFuHENjdiWPi_Qml7eWKA^ zY|dYz&6vPEvLgD$V9i>s1Qb?g!hB}kr@DBG`%FRs3W&$#_O{ zxi5Atp>Sztq^tLvKTW1a_4hQ}KD^NYYA+xeT#=@lZ`qEevM0c#q#{qnrd8g>{_zBH zO8a4dxJTg!)9(wpud5AYzI6o~sexrfGs8epI&N%-T!kk4k++MLh}s~1mC|jep2MpTm^oulvH-+JNsRU6 zM>zIA^rp*5{)D;%!<-}{W&Mz1Ewkzn^`M{1-7hS+IMpt)tQ>A@gCN!h`pw4`tLSGK zrf`TaLQZcE5yL;|^PgD7UtQLF9eDTdV-=&9I=7~eGZhn?P@`4tci20V?q<7_nJ2Xr zDKv&TJJ~{s=H!UHea76#?8boPWPeCtdaJ@%0?+?wquPE14H`~cZ(cV>=|?-?XQvYf zCtPv6+RATI3qN`~^~Y-v`&1Hp>q|n+5ez!I96}lz+H8daOFqGpEK5*?77lPJ*N42B z$F;*{pZ@+H_Snb@dCT=n_QUz2r+%O!6-7rRe9>@Q^5r0H1DDiD4{8IP0CG$F+NYJs zo2ym$@o{PtFr7N+94e}|xXmyy7FrU@mTvN^7Rj`Hm~b~I0%t)g%0SoL-h7fEGQ>aDS~8}z4mZzo@M z%0r1%dg56e4Qpu)R$7^biGszrYd6^`<`C(ur0;cK+eJPx0!PKI)gu&#w@FiP*-*%6 zhLu|rQKHg0?J_hKid%mW$M_q(pqbpX`#wMxHf!QHV^^NA(>&^S^Nx`^Noktg4^>Kx zJ?qyClLv^32NJZ`Q}@dY^#%;)PoHcgdG{Y&s$H~z^WYWh5(7y7e)KyJ{#=)Emp&J8 z>A#>WK=R;UZg`e|O1oTz0ZIZe_^5tk{LHm3{g7OHULU!DaaOws24noQb|GpAu>=1% z#u+;XE@&4JjGx*?bv5_CYQ0zeP$AKNh_0JI?ER-gowGd%LlHjQLA{TVLTutvrj3|6 zWaPSRTE~%Zp3F;QmyQ-`{8+{1(JZaJRJ&*ZxAT9fg@Eu&mjQrf1KLGxFYwo8wGiJT zuhK5UX#o54{+_w`2vfG8ca{VAwM(=MEa3a|dcs-l0z2v|ED)HEU#Nw66bUjX2jg*G zqFrEt=Y6d6SZ8C08I1MM@fl7Fu`BL(zsCNwixZ4TaeUS?!_?i~+>b?|1^N z2cDm`5aG8V7;KkfoYyWO7#FmQl^RC)XiueA$NhL@kEM3ML$wGix=X&3+PU-+*U;{Qr51OoR> zmiSUUZX=LZ$&NiHZdRB}br|WZ`Z75rK?bVHnYX6?w@-pOnI_}BZ?Q}dauxILW!R9x zQGP!)>J>`r4O185XzP8h%jv4>*mDym=jic%9@Ze?Cx4ctQVJZcT7TP`GUWf(&>ZUXd5+AUP}MLe5Hz1X+oK$NJg* z3m5X@-p|wr(R5i;man*jAeFcel% zP22~;qX}I7+AD6L2Y|hB;16&XAMil5?2P3r?jRsx1MDU}Tki$VqgJ8?y>o03{ea?+ z-Ppj~c0oV5xR*g0PUFUmJMu^Jbu62&LkEP{8E-3`DEGGC*$S8_pwJ^jenv*@VJmD9 znEIpT&!QO+vc=gIsMJT6sq|Uw)Ybt{3`r(dh$~1v_&Di& zvhWs{WjRY;Z>a9;>==`9=Cu#9x`MiNoeme8y?Wo-x=#_oHSG~RT!?eOBeiIszWI@2 z^^9-T@)wf^x$-H<6fK%;Q}CEPy3kZnH8fKVWcKSNvH5MC$3H%BMEpi1l`LYwMA6D- zGh~6d%<>}IQ9V~RUQzVkW#=1G=UlZ;3ul1D)StVqf6nJ~Y>^;qL9lPF&YW)u_!b+` z3j}S;SV&sJzxMbmWEwwdVan~|Z!q&3SThu?qF*iwlP1ne+kYl ztJMxHlLYt4ohc?=V?Oym>onj@?%y#Wlec`u9RwuoKs&GhIs5qMJZCKkjsfr)*5I=V z{>J|AcEW@nPQ#?gDUcz9!p&v~zK4P9MR4S*c1GhsUeV2|0zrWf`X5?$IdlwmKTm$9 z7=VGgY)7O^Z_A+;ofZE{xPe#G?g@j|&dul9@9qUVA*7&86hb=`%0~$H-ejWIdwmcZ zo#^U;T_uBub%P)TcI3nOJ`NL~%e@g3EHzk5E5#+yy?c%YyA%?rPr1>GrlqUyQW|h^ z3Mh(PJ6Nxs$F_^~K);^6?bh^W`^)_=+-0_rh(W21o)1J-vTj5zY~UKdiFqbaw9CLc zsV+?vj{U%|UUCdQ=QjB232_Z^pV6uD<``ND6jt7-^;fT|D!s&zT&HNwckQFbLD^s;#tAXUU=;!J3g;1)*)e?~!2)BN(R1a>(SOG@(_TU z+J#dvYDFAf@iBD4{LXtbH8MxalDWc(0;i>4OjB7jv%U}0N|F3a^X`TN{9NK&s)gg> zYg?3KJR3>Fmbn?v#C=~biKC(O+gTKPto9FA2@rW@jxf8(&rJ=J%2I!dQRWSmV{vZk% z&~2PCOUENIyj-VXuD#D{nR^4yAG&ywoA+7o+AzMHX+sr!$-G9CLsrB6;ShxgUE9|d zBgc8Vha)4e5{r6mmXR;A-d;!2$iv5a|D_CvPs5i@n48b8-=p-VR_ziQ_;z%ouQo{x z^`LlYJk}!&o=zzFE7n`BPu;E$O1V2QroPG1l1+%Y#p6F}*rEvQ4PA<^8&~oY6X%N* zu*-RU+jf!ffu)C@VS_esSxbP3^21jiU5eJa>2{^p#m z>Z{&r_`OngT+T;$lM-9nQytC2bZ#y)Ap%kNw{BAf$!pw}ElbPiyFb}2BL3k=1(7!w z({iWOzFqt>A8*12;$%AMDZ!mjJ#L%|xBH%Dm*444z5TW79@58rv}XTR2On<~4O5%@ zfeu3|_hH&pWXq?m}$7bimIKtT#xr^7WkE)Ly zWq9H~`?$t_ zTKzZC-aYX<5id$YXp_5|yM3jYJ%niPJ)x|G4M;#%c1g!{?P%~y*n4q+6)9U2MEv>= zZoYnQ_PmA^w3uc}#5~1tMtE0)b2gtvvuaZ-KZpcn(!VZ2(B)&6huf|b<|rO#q6`Ul zcQ1B3`AgT;8A=rW>=K$z=%i7i09-$k&(Ui#w^3$PSaZw0!i`9$6~anhFKl0WzTqJ_ z@BQ<-g5)-k_sIU-EBiC=*$+bU-g&ML$$NkK)>%%6^ZF``a7M@+5P5!GG3OWwvLCvz z_u&FY?9cQKnZqgaui8Hs&IG~Gx)kI5`Gyb-Ko4Mny5~5WY;jEO1rJC2RYhTT4>KaX z3$+2sq*scTShlJBZhPwdzwZ#K)yZ#6M58-I`L%{zA z`2VQ}@E7oVz?$VOCwK0?ijx-}0`|VB{cZ2WYfJ^Yp2=0<*Dm4zxWM=4Ir&+v)GM(- zAOP#kUI>MW*S(Zo7GS&|m+*gF@H~!t9_wtZ)Pb@7IUWm-Aa*rhu%Y9Y<)ij z=Wjfo<^Q%lSMmSCV+h8dSo!6Ky;qkn(Ocfqfoj#2*1i=1I`d$>H2(Qg5=QiU4~G01zuJY%Y8PlM>Y$~jN*~mfR(26`303E*CcPcon>a{|l z@RfE+JtH+-TDw399`pa4R|-!c`SH)4d_VK!lyWa+FK`#^+1iB*c?IC!zyr*SGoP>0 z8VXM#7!1Gj$~g?6cHuAI!UN_Lz@lGTLtRN5DSYt(73%F;VoJD~Y!?+tH^0wT(h&{Q zpU2Rlik`qQV?PS!{*j-(HK);>p8ZOoPLoiLO0y!!Y$t(p-=`2{AKZKT-EfU%Z zc{^$2Nw_9OcN&l|w@;$zZA5aPZJCPC4d!$AO5$FM8|mw8933@^0`_bCRsB=xPw7+A z(+f&M@gyG%WX)>uNhPEWmiVu;ztbYc_&y)7;ccR*OJ6#HXxASKV^zG91d|?4%;EdLQ55xelk0R77#Ap2T0&J1kn=JyXUNY$U1L!+i zkB;_p+l>1h6+>R{9oxK;bGX-1LhoA|BPq{DrX#A46sERba&x^kYh8o(z}5Wu9bDZX zZirBeZ5VC+!t5qeIAV*T3#J7HPhJwGtSnmhe?dgvaEPMRLC1MamN?iOsI-j{nlaR2 zqU|cUV$o{;(i-vZdl^fI)Q<((8I$*lq~~}{pt4BJ0^qdC={lYZn8aW@uu5$=kgUYS z{&?eY3%2XShEIkU<3a+$+)G#O;G6=n@~S=<9WN!CC|agxt7WmXg9a~f*%R(-7!>tb zB~(l1$_Ild$5zKww@j-1Fwu7=CC0XeUs9!s^qm>2X%6|8tZ-~r8_|j`C$aU2M3?CNk1%m{c zw)~xYBvJcbey`%E9aQ&9u^*)qd)2^Qm~o4C;;mNm!yalWS0ygJ=rtM4-J<4C!=}-jC4!iahm0;kVy4!9o4 zeMd4gnoTby7**4|&+%ibdV;KjG04WVqbOp2TbScB-6HPunVy1(5|d%#N=qIr3EwYb zS(zEax;qRBc#?6Hoi_$e)%EIHGIyTr(lZmTrQZ{2@O7-g_N8KluI_ahX4^nj~)u){a{koO#kD_7TE^Hh(CN_pDO!L>( z#fP&6vpJDP?2oa>rH`VsCsxbyy9KRlA{JIWVSN#DTt#N^r{+=KSIoZXZl=lXx_(mS ze#-=>C!Vmh`iywo!g!mS>W4jHoeRp4u_p5Z-m1}9jD zkT)^JS?jBwZIqp~yDO@a`Mq^*&-~dycpNNyX5Ec$NXW^b$meZ{vD*XjgY2%~?sIOe zy!AOd7WEX{d6|buV_7A8RZLcoEmCH7LgpWrzD(d7|UK*BmHO z`koO0E~_;d29Lvko~L0THGYpRF~xkQV_y3_Jk;N5fjVqSgQg zQoqO5`g^RO!#H1Sa2?3;XZZg+di$kmVe6&Uz!vC4nQ4ykT5{T&zdptyWm}t37NhzdcZ`Y89=b0CHhNH#=ynZuniSD1!jHJZR1O=LL zHL@{Bvivb2ki!2Qwy5Lz@S%Mn^YqpomsQ02xtO;Y>W5y{i9D42kJZDuk3{hRdoS|; zcAS+fY7I&QfE*Vf@Z0X6d9?Y163G*X3;Z9j`}zg`f3en}fFotl_+vtai+Nqjn@=z| z8yE|Aqn4pE74~=E=%||T8IVXhhca;^L@kh1uro=%|6rhNvJ0(VA~@6D*hIehXn9We9IuSb7WH6jce^dds9;3Uf2+|a-&OAR}S)H~S| zihQZ6ce^u5JJojU6l0EXU`lH#b8+hfdPaa2vixmj6>Def_qY>ulC@SJ61<6EC~G!Q zr(*e#-m?(3tQ+-g*Fn!{HI`(-tX*rIYxhq?^jeu{&D|yx`%VWP`K2S2NWn}SYO=%x zLy%g;TRnu{Mne4l<}Op{+pO=N(5YXc{5ZJ=`;c0Z!isZZGbAM@m|>Lo9o-`xhcGn6 z_g{a&Y8?_4WWwDyTBT}Iv8L2dVlWHJ?qKphfmQpOMM_>#_4o^y|sR@aAvSY6>~Xfvl0x30AyJi>E9cAgA-O98tYq|4p?ZOx$BQ}hwq@&KDY z9Lf%MgY^iPz~gVAl*q$SRev}4=eKUqu+vE>#O{BHp_NYOB?BIFp|Xq(JM z?A`9bx{4UBr8%`0vkA1X*mNZ@c9^W1n8XR9ZURCWX#B2aa1X7@F=@zxNh8=3(Bkz^ zr!w@H^`lay%8*mv?ZbTq4L;e^H$~{26R2P<90=)6X;>oqrbt3(dQ-jC(QTaYpw;(8 zIV$kpgBkyY2om{aG{jxT{Q4W7)#DTHggrj|L#E}WFg|;E@o93o-3aEoIgGNNr+Qy& zDH%?=hSYjDT+8{svAB3VUD$zr1V21O-u1Trc0psQ>uR&7K%-*lqQ9>IMIBRvn03!f zkwgImzGX^}8$Amd{@o!M(T2j7rkN zXfAxV(Uqt_B(6BlpjD9g;?V~)TuFF(5(!~i>ZRw&K}6k{%z;&&TRmaw$K`rM5h*!t zobO>p(H=)7`>FYv5&xJ}qEACrWeJYPZ>+lY9WIa${%QL@WSUBn^NVm+f<107! zWXu}|5%swwb%X9Bn)rXOH`l^5HtWRndNGU-ZEW0>(5*?xC2HIs4gG?aq;r~Dp855H z=k?PA4CwU4qIY|J?`e`soDJSjF%;X4spaIEam|i9qjRk#NiX!oDQh6L5yaU~Pfosl zH!xN=@I7oQ>i#g9KlbTd=0nfknFNNCua&~g9j%Acm27bKs;{4ui{YO z#tr7bl>h4zUbU_$4FvMubFTAwuk!&U@15u7ki7SoZ=L0IPFG^U7(?cOKYRLr%>h-1 z!JUd1Y7H)6#6ngsKi4kLuCH8iRxgYR1mos!JI-O8uQh;RK=}U&MlaPI)wc}hM>L%i zNq%E3Q!lU_)5{#B7{`*7KOi}{4U)-j5eH`H(%}*-c1i|c%KwYN?fM`1KZK)oDguT9 z{QsUT@Ru6+bFtQ-it{S|ZxspH+x^Ghi8q)E`r4!cz^`4x|A~R`&vWv#{D0<3EYL;% zuQ2h(GPs!^jQ9K!{!a{EBN3m+IvXn|V61;$=UPQU?E3o->Ze`L!FU1}I4uO{Z#=dE zCW0Seojb{O75}%21~9t*)-#;NIM4qf7#H~edzZFZ=;;0gT*8m7{U+%|%-@t~>-8t{ zSY+M7{Rjh!`}g=iGWS)!Dx(DK2uS)J^Wb+DK)(op`{l>gzB*fL;C5$)upb%(0zPLS zKr4Z6E~5f4d{HjN0Qi5^pLb)we084xx4T4ix1+FQg6>4LI_9%%aCc6usVQ7vZ1M+( zYTRY~|G!#;|7s2Xzppi@Lji%R|D}r_{)M{~Sy-6B*Jt`?AYU&}guZ3g-B4UWOJ8QU z-}DsxwQnAj+Sk`4bWZg+-!8Zxb$tP^^=JQhoA zwRBcES#gzIgBPjo-cc*SoiHq^rzwc>D`HuD>BYu*bh;&akbfwTv?zp`QF!HdN3y68 zPWucW#xpRsA0p_sbMh>-QkS&oLMRS!NNhU9_8k@dj6h~PW`iBNz`+ot_b{r}%=pki zI2u;|&1=L({z~}K_(Ps9O2FQWTElbUtF(r)n}Bcq(|+6iGiSH;>1&huUeFo2M60RaGgGs9QejAfrH)z;V;Iiw70&0*JH@# zdpvS#6elr}b-T2OkcvG$S}y(V%%|9>Z!n2CwX@APCRaM2eqo?>+&Z+jE5SZ?OTX@0biO=z&O6H93$jS^QEKQXNK?`e# zCgPr^xxT+tYp4;wN^2;i24cVm?sq$X#z1=qI0k@ro~de{Y`%Q?f#l2F z{hZQ<&GKm<*s2)%)##If7g_qa>)y6ssK^xqzR66CcTzpbex1M$|0I3bDZj7xVwXr=Uh~CE@gl3$bE&FX9z}-Wsn}nS8!wfXK;iR5ecGcRm6m zPQC0As2@8f7^Zy&<3j?ZTox@b`ML5p7_}Q!JU`g>J;tLi44Qv+tv3-i^I>&3D%w-0 zCf%o`b@xvMZquqHmV}d$?rc9=nZv&8V9OkFpZ^%Y;rL-gVc%14U#?G4j>6&{8%ej9 zqn6^mJ>8$bT2jcF@W{~Q*ZBFeve&Cnd7yg5g@pQsrNq%c7EIc!?O!~}AY>#&k#HGc ztzPQSnz0lg!jtT6*#RAXGJ8&+E(67V)OS+aA(9ULmNN4s$Erp1GyUf=ctZ)>C%N-5 zS+U!d3*jtusdZEX3`VflQ7{hCR70`Bk2goL;-FpXq)2c_T9t^#-DqK^Vq@BGsxfq2 zv&hF}%bkTWqVlXF=)Z<~`fhwUZmZl)Q{TvPFt z1{O(nNhpY3%FG&I-Ej9ma;9}Fs6L4r=C=> zf?;_}F=l!JAq^BWEx(oD??j*GBMK*qrH}5AwpsRWzpcc(Xf)uH!EpE!c=}gw?(d$c z3+60~+&LH$tL>Ikr4-f^Pd=bWmCS2(CP}&$Df={w^-d&v)!6LdD0jP|*oPzu%1Wl3 z1=jedAJRr0#2&&$7ZmKynvuuE%7$0Jyg`0bYv@Uv?%Qa+B|>@Ju)4&p8`tO}!oHH& zhWZw(=meyxHa{ScI$dMc2z%Kw%y_C^hLNH|b}~=$R55pZ2-+_B5h6!as>lm+MLxo) z%(?rv_%N2EBi<(LDD_C*@+Q-9W}dnesD5ejz1k;GO#VqD%oR5%+S{YWd?MR-1I3#; zPSF;>7ka2z>G0=+zCUDF*y-Kz<|~Onf8j!cKs$B!RDvZ?`IAKB@mj(it01}gq8!=r zBK=HvaRWR2Z9iUYFIjIWTjwsLN`8^8<-?beZa-*~NW*BWCcinq?MLbzT8D+IHjAWk zSQ%uSI)GJEhqtKc|H2{Q_9&+V9oiO?WbeRP+K_6aNPY7_y>87wp+n4gWOQa+^!h*^ zpMxw4S!WcSKGRS&BS$ZnAhLwGd`YjUQFPsj zy!V&eo#l^4S7KPjL)I=dzcGHz0UegXJvtY(h6@<6kd@2NwTqeLRa%2p0)WxAeksOz ztpS1o(Hb%z5|1TY5^N)<6b)f1dxJ)fyPD!~$K^8f0U2V+yCDz<7F>XboiGH4@o*th2Eq2FCj5b*>wv zE~WlYUCJ-J^uT!F6I;&hYk=VVjmNWE1HRE!T7%m&AXe(ee#go=jPqIp1ml9%Ae7Zl zb`yPVWln;ux{I?z)IV}lRjo7oqjhi=9-uXd{Cir1FxZZN_EiDo{Ydbib4kJP$bf!{ z2KP(b)xJ7gYoKCsRjolmAmFQ@vu9cV#W-JU@XJ@{w1!vwu$nmhM`d!oRgYDCVT29q ztsk1%=V2<6iri1k{cC~~?x>QftnLWO2|hT=Hs^w2R*64xFQYTRAyp=7roWAw z;M~Dj;){gS^db}u@1<7^u8JF+ZjfCYo?*nm(C9eRX+;0`xt@o}%UOYpjD zQNA0RwyVBJh~G;=ruqK0?wr{#g3$XfsLpUyzw!qM4D0!=E>R0scY+n+g!0@HUiQeM4PE-n`Po~mBYY-in2H1O%|F79x#s3R} z0J~rE{kHpO9-XOj!a@6aE+WMrJr%I~#s&U=vDTm}7bPo}oT|X+M6>02i7sE=8#3?D zJ8w2-6Xm7{1u-)SvU@6yQdz_BqMr#_nA|z+`()NBWs+7A=&3Eazqr z&y3STg{i zWSxSh6;n7{2IkdgYYia2h46nzK5wrh%@nwn?~y5O|A)P|0IKS1<9`n=ASEr`-Jl@d zARU4rU5cn6EhXI{Aq~>qNH?gUbf`2aAPthz+_Mj&z(wZ&&fJ;%-aGG_*}va8Ap5(X zXFdB_>$BG0Yb$&-R33d^t5eoN=A!VP>(T4BRn5`T&7btarn^%c=CSyG1DnR_pAU#$ zq~)guCG&q_*}Ihg^=+@>|AIiEo_cWP%g!?;%ol#Q+Qq8L@74Laf9^^ zbCD+z*W_Hc6GWO-dppS!Jy!N4Skt_F?~=>MG~0=NLX-3U?40A1#q&7!3AD)UYs5;6 zn?rO=h-CqtH>1MBV`->GZQ;@#@NgexJ9LHbT4PD_8qt?$#hYkY{fdnI9Es)?O&b1~ z!}q5tjEx~exypOG`t&;$Og4E-x~hCfSq7!TG!3A9_+;;AaAWh&6p_}|NcUSTJQXJR z0-`w_)kHmn==-5*!-HW&eFJ+p#uSFXXw9mJF9n-@AL}F6)HYfp47fqtAI*G-Zqx7y zwaek>4z>2D%H_dAznW6KJ8z~*bt%^$IdDn*`kMCKvIRek_FDhp>Z{bykGU$JMZPb9 zD36+sO5c&T9}Nu@u->MYq`ozYVza%v?U+d-hJx~VeDScV`?i_BL~Yz%^oH=wniN&Z zVSi?BWxn9g3TPkvmK#|HJ=Bk0c0RgWOb|0F{0VnmGtY{Z;OEEJk5=09;%Yi@4~Z@E_{`S&v_@DxjAT^O^>+;MFZ43UN0}n;-ggn+xNl;ByW+i-!o`bHvRCjHf5$fTL4lKf#%zZ6 z+<>dKrWc#dWJXy`vQ(5Hu4&A}2p#2Y!Nfa+ttOl@BznC;BNPtuo`bIB3H1vTR>kTg-JSAIp}B%(mQt@dt#zLAOsPC#(Oc7Vc5 zu+B)!QA#x~re&LGQDP>XJ6=WTbL>w#wg86hC_YKb0c@0y^$(tGi`t^g6Y%!Ho0(ZW z46Zeh9aA!PC$%h0;{588xb(oGrNLH38JfgxX;9yponC*dD9 zzEsr=ZWpgCcq_dXUE=G+&7@68uz7baXG6Kl zV+Mt`-S2UfPU1js`E)q>=gO)gEh9Epy^(j>9PgAV#T6q=sCSO+81Xbl1MlT*li!M6 z2iwVm73i#;k|M|Ri+l(B*YpdC-S*DWDpKQWiqvpnObM-EG>Pv!&qqCkpL-uajg_5H zM85TurFC)+vnx61CUi8aP-a>6HP}%9q&*HTZtXq>1)|35wYOZ}Ss zc@`4R=)&Qm5zw243=@sc#bLtq<(Fg5tu4kiUFBKk+zH2sed%FArJ-qSl%T<4Tq90L z!98S-Kz^tcMH|hXH1ADvqv3I?z1_4Rx={kTYK_lQr*>)j~MF_LmGET zq;wa}vwG@+N-pmWo4~5*x7Fl+g^h)-&gPf${~kE+{d-(d5Cr7CV9xV-Z%!JL_s;V_ zB=7y@t+Pyb!|o~#Cr?15k^fZVgtt&rqYCHlUf}-=8qwgs94NrprW=$j0^ia&Rq_*$;1 zw0s#r_6RW;AyGH#y_Emi?EfSFhcMdQUBCi>|9v@uPxrycMgD&na~1z9X#w^w{@tIl z5JRa!iqr)-+a>%D9>HA2|G`&kfk1%PnP&}@#tPY#yr98)FE8PLa_|_5{NMba3)cE~ zJSu5J>@qrS$FUQ;UV`;tE-)=b=Wjfo<$s;ntN33@2hdnJyj0^n|3fq`@P92L|06h2 z)2c4P<=w=bA?WYgUHvXb-nj8vEPVj~i~T>x|AAmT{_U$xGQbY0zhjn@c7Xx6%goij zI(x4HT>Rn{?_}5{2QRjPfl;3>U1& z&MByQ4xV9C@(ly$m9zI60M|Ul-y96EH&7sR4e3|S zH7Mypa&Y@;UiqEpPc+WoYXH#zEc(5#0W&&p6fK!u*BbivtjW&O6N=lfqTR{m{MwQH zlF;TEpLXnbQ+p90P9hS}9v`&e$-KGyaj^Tjb*vt;h18P{c&jr!Oya;$A92V305{8a zQ^Wi9HR4)_hk8@o%ho+@O8GKh7jsb}*rJJHUaCDshptjz#OyY8P?EpRPDE1gbMNNT zatmPZ#kq#{%&X=aHX-+iNv56JeUeXo!y2T>90ATev#-G)yU)Bo^5VS)uhc)yUH{ct zuyxpe$eRnxylN+fzO?!kw#5R`Mf{#|azv?ebop0CCU4Pny}$!mXjc1Y*=o|)vPwHX z&p0z{Wv-aecI+o8%JQ~pJ{9iav_rdY)>2jf!|feY`D8ORPj=Z4OCQ{}XhQ$mj#cG# zVk7i13yS3`)3`2IL=`I1Dg0V*7EIXoOdq-z+cI{&r4P^eHmzs{8b0Rn=x~_v&HAw_ zrwU6N3NfYc)ZS4uw9kccaELp;F$6p^dCsjkjFg!nyHo#Uoifx~*0R>gMJ)hUKgHaa!X_Md{5q7+2Am)biueGV!kh`Pak12S?}7Va}5W1 zSIsqSQUdi9yLMX7lNj&|1jj(*g}DYw;Q9jB6ZX{$rkzEr`RRtq-C}8%QbAazrAMEd z;A$$2_+;;Hb=3H!p^u8_sg>UZk(zm#*?ju|tG$SVy*zScZbh)fy7^2qlkJEIbs@QA zn=UxlsjYU^!FRU1;_i*?LKkb2>6-YI{d-mY6K#A_FRk6^x=L%+64X5_%0AAML{9!d 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

a(0ZA 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≫DQIi-UQX^u&E*B_EBrb{oDP#)(6(_K4?&acKx!forJJ{HgH| zv}Q-dwPvz(L>3}i7R#Iyjv2GY)_zXXDieHI41?q;)mN4ETj@^m%Ig0Qs>mf=`q zfhmdCco-fx8W+;#WNxQRrfolq!r)Iy^oY>z8Y$b=I#|%AjGx<#b!|j&#xUZxyocb~ z&^Kj$44N#d=Tip}vA#2+o%d|4y^oc74|jqECM$O_?|LfJPOd!Dos*k*;Ke5lO*`^g zwcpt$aUv0e%=`rIa^!ts0m#2iv=p6iq7PT!O?L+I#Grc)jnZTwJsmQ8{ z`A|s$@(ILpoBcvQ@xAK16IT)oyGo$ZohM{&NKG?6ZJQn@0^sS+qx$cDn&=N(pA(=8 zz4ITFQxg!Jwi(kbIVnij)$x3K9g2Z4#s&P)>TrdVa&fpOox!)Z(~dwZ!fsUYjzQgn zBQmF9UtZ5jd9V7^=xygUYzc9z&~`5Fd#EcXFA0}GZT8#JUr02Qy_{lgz4($ua8WB+ za(ya2733S`(>-jyd9dE@GQ!o%x}maU@w_pBZDi_OLP}tWqRTTqX~QwW^>}Aq@m3v! zX#utQ^3>RnZ&VS_3zOu?l;1p6N~V3?m|ykYBrl)E*Sv%t>+NTLnkKi#o&JXF?{XTX zj^*B>H+C*{OR~956XzeYg-uUe9~QK%1{-hFy)`ub>YWfqnQHYq?)hYbAUnPN5%?}K z%#GlA&0V|D5aQ0Nz2a54-*q?P?m~oqWmQTr8j&6$@5V~xm*f;Gw1Z+d!>eD&cceM@^X+XvjkRn~@eLDeWfc?` z;(b2bI>AXY7)W4Mx5026I38+6bM1-u)Bbd8}oyE{>di2RBx2$VlpZwGoz zFlKfqx@l#=z4WA4>!rSA766PLptQdxA}6sY5DDmAAEA1hB21Iu~0hN zsQk`_oAR}uwJ8+tYq@x=Uql^UDK!G^=ch1*$@>k@+4};L>*o53X{!TF7rgmPQLl>>&x$v=+aq9Io~mot66*uN@V7Q+a*YE zJrJW?Q`*g{xlcvgQmhs^FT=?iNPQe;uWbyo)5~oX$KBA{uBbJ&lIwq~8RJ9)I?9Er zz&0psj?}PG^WKoSIc`BBI&(YYH_yq<=Mj!KC=B_TC7BGvg-C7h6i)n5wz^(Ea@=*I z&fhcgVGfetfIMgRE1>~-4xRI=akSGLAkVeo{myeg#~ZM^^;l{s7Z@1m+Z6vY$5{=> zD>Z~WA^qp}Z;hY1R1F1^OV2a#1&xR^cC>&s9Kh$makfDE6Jw`5NPqHYtbWE0R0spB zpU>9-1Ji@hvRDEv`$p`^jozcX^dTXcmpDV+`ow$6mzI_yke;>Id#gxS@G}eus0ZLz zfK`D4`1J%_pZ|z`!F-~I3jAw;eYaqMzb<26GL5U)SKJG*bN|nGN)jBfl;lo1*nz8E z!oJGD@8@~+Ec;4asRjD4?CW6tfTjwp$8ib!Dud%g`MlQI7%>5B{hQ~+y&-mq{f?1e zc5#69sxR;yMCWfDBAyw??SeHHz!n3?*#e1?5pf?tWAD!z|8p7u`*#0{5r_uBzUknr zC;wb0{0fWS>s7%(I7R*DC|l8k5On*!*8MJag%1%0U10XD!}`g-4j>c|EDQ(=8iWku z0&#%QL1-XC@NcLf0uU1TH#`tNc&}}EFe>AMu7Qym4ulQD0YQPFK`(nD74WYw-ODv}-lEUB6slj0?V2fJE)j_^;PqBV-1j1IO6{_!@>(?FXPSGkvKB zm@%MmF8cc1cb-zWMn;Zc(EB=QMafH7D$~Q-?q%}`>*P%AhoFP%u&(^hQzHrpsul!Q z4T7p<^Mfh{AEeMopdYVT`xlOQo7m2OD430morH}T9!4D&1{GJ$+{u|--2A??wS~2* zv9me3>YZC`r1)s;oNWB;+#KxO?Cfkh_-Gu!Dd(@#|Na8Lsb@8z;6O0GVIVf&U}#@o zP#!m9w0E;IK|)b#+9B86R7lE@R3yR|nWwMCLk{Xr%i9MHwLZ+Sl3y3u7yD5__q?nC zsy1FUw~6t3Ui7_^XE7uHKW6AIaI$QJ0pZ_*jh{?c8X`zrz_0z5R-aE}e#{+1{HXKVgKr^vN7xiiW4p6wl-WNJKM(l$=k`CSz2u#DKYuG(ho^~2*N{wd^mGP6-b<6 z?BtLia#1(v65Cm=8Z1Z4@o&U*?8lab9F`|`@l&POjtfSexNj2 zi6pR8v3-ij{r9Ho%VxXY#+I*%~1O_#8OS7QjX*Vzq6+#<|(we*BsD z=wHg6a_Rugd5Uq)MwS1D;|Cb=Xm1;I)2$gStDA&A*NS^fKOb`=nqh`N>{*_5M1g&H zli7>=7L1n*0(jOzuOn%s}1N z#Ga=gN)qt?`jI8CNR2SjmMCUhQzuzk*WwEaqfsobG8O_q{zu!+SX5u88Gr1Ln>Lv1 znhYdJzkCSzGUk`lfOtW+TqAS>p99C)0*M!M@yC#uMEmW_pYg(}WBq_34D3t06YcZ9 z1o)lVCyRamPHM%P59f7jIoLNhbk;^6Fzn4W7+hZ#UxqMn`vU9!EupjiOPyd{DQ|Kn zIyoCg#c1n?BXema2*g+8x|6zD1=5^r99n*7LO#FY=VuSPFq`m)eyivw%1Oh6Yg1m=kJNu3Zyy=`JR4}yWz zxNnhK*2}5K&^n3oML8nVucj)(8{G8!$X1l^>fB0c_TUdM~NrLwp ziP8@Vvmhx})YEAnifWumsZ}o(FWmWZE;<{r)d@VkdFjSYJ8X-M^0H=KsPE2}yC$D-0f zE=xo?1>w$-ksdCHOQVYa#9c^PCOzO0!aGftAPEZc8Z7VTYhsU|HD1#eO5-Eif;zSK zj4(AdrZUqpaUc5*9cMWyVs!8I61k%c$u?Xx!^T#h4a>Dc4MJ=+zY?tkl0}JHvRZ-O z(x``$eH|~BC65~56IUK53F*ke_Ld_Xsb^MiWIszqK^pRnX!|za@R2h*tIUFurUZ{A zr%LfbGw#aelZwNki34&B%5q&{Mnw-A`6L}Yrl&9)N-6OppkWy}ocr`}HqTB2TW zIq1(Xwy+S9bb=FP9B~cveF`_}m%UUui7sd5XwM@DrE5cq3R}afs6@;1hA#+1vhP2qPrVGwjiz)VHD^7({{Z>u9B$My^l{cHg(y-SY zY^=BJs7r%o+NYUd{36v#zPeN1K6K47ZBXcMF7Iq159qobkh360od2W3`Fe2c-TO=3 zj$Q9a=iEQ(*^cbb-f|f}@LW2uc{0Y6c=A=mS9?|EEePptOh-FWpw`Qt1YX$mFQ>?F zM|042H>lJI1oro|X85rT@ZK{I9>Oi;RC!wmJ$_X%_h>%8g~~72V}I(7KX%{4-G{=( zUG1&Rfx9R<{;IQO^IAL`58OXh;XmR7ydf%$H%d6+%7V+RfD*fqK5X$>(n@=^<1 zTrGNzfYKWqgpQtoTLCLghT2hH;;oc?8?`p0EX#thC;m~y#ab_H6}Q`ihIq!D@0?Df zB`3=9>6X=|&F+Dd7m(L3jsr%(`R(810JU8pzs zK8LdT5BVI-KsSKS5W?s8(ty7%<8u!GtN5JU2(azC&Ts!^H)1I-W!whugnB8Ts{+5D zXXdkfu5qOn2n1-InVVM5ZXD?@`UKYFyoAqH!7-tFUh8aJ+y`s@JNC$pA$A#Gu!|F{ z*K>i-Av%9!?<}9A2VBMHl`_0sKukpj~^w?K*sc&oB6T1saH_ zpL|{uvPRerJ_nAo1-J*Hs~aKXH`hP!ub$HY^Es&S&pmhth#O!mEC#-k$j@gX65CzF zG+5Jw=!j4H_m_Q^?|wwd3QTa1=2fT11=WG)w((A(z|S=PJPM%#*8q4}0lo~>|9yw~ z|K0B}7lXO_9fYg7zGVcg^GnOeGc6`hwpX%?1KB=R6=oGgMHqKiFiiVtoQJPgQ!%?z5&uBt6jhLr7tGl~EqXK>8al za#Kj|GW>l%{mRM1Bi*H1;QPtwOrHkC`klYI>-Td+px<0cSR-r(UmQ5j7KlbUxfvvP zjb5rj0M>YO?tZ!h81##uXR$lo$ZwIeH3=5e^6$GfKY8$(#>VzVU=pvsQ$BvZ2?a`w zHH$UjN;JuW1l!lIyc10Mj8+Mj@b_iyu{XX-2+o-jGmbUS}M3cdHhLLIEYyA70g$JkX-Ht!nh$O_~MmQYW8GC z|NFii+P(Kx5^0Yu9E#1F&1x{ImHn1p6QqNlbT5{FTkY;!SF?ZW)t*82aqIcU9UN;YU~y z2sq9bAdX=x8X;pd=RbR!{A}N{o8a~ZxZV;v|4$tMt`n?x9B-rKR-4IaYpItv^a%{1 z^vNBvvS3&W;$@|+a%?)B&j|0BKZR(c-PwQ9I&1??w&qM7Bf=ipgqRlM%Z4a3r(-(Z zoy*&kyV5spAzI-cvPgKb*sN0i zL%ir4aIj8`Jh)%5Gd(~8+hPxz38ZE}A9W^SC_46OBj={5#4R4c;dbOYQ_^>*4)mAp z9EZoQzkZdZ68+jH#ZIY>a`V>hW-p8U*xK4ywsK-ezdk2PE|}!T=Nh=sE1DmmimXcG zL9?jSN!LJ)D2gBGeU#-R7LYvd3y;vgJYkuc@$L41A1_@uZnJ!bzaZ4)K&7G$*gUR*u z%k)!9iZkyLCms-$NY&h`ZS{-Js6#XCs7P_;Yh4`rJVW5Vg87DhC=RFpIK@KJx92t< zBetC&UeH&8%DgG!K4Uktvi#_$t~_@Pds!p&jxEq6Jk^py?;g=ATV@ffR35Qpm{X+o z_aoU-d&9K^J(S<@{jPG?cEu7WL7bUrCisQq!wUOvU!6MnY*Uv6xipDoM2a{tUZZNf zuP4=Lqe)c1_0mNa-y{|Zp}=T1Ip57%7fUdV!E5lr!zf?ltuW8`FNhv88CCQip({6F zd<+$M$t+}}Y$t$0{$5OcIGOTcr`DUdJE0_$P`GL2`BJA5ICF^Mxh83%Yz?N~4J3(; z>EcR{?{9C+soLb*g^G&*s4t=zp>Rynb5urQqv*C{S)czd&=jwpBC8sEoVCpv`UU2o z6#Q9+!ES|JO?Qm;QO7roq6l<@P)scPQgbm;*v}TXvb_sOeEoE1P`J39I6YHu5t>2s z2c-=+J;hp*l144;A-%4pI981eb8k%{`$taMQc}9x_pfq}_Y%M7*mh0eNp4DjPSklo z&&ZMqimM5Gx2KftYsWJt36yV@3w4}C1XhPFWIwQH`LRs(Rf{gxiXMp#rYUcOo_>D?@w{xv@>e4+mbxB$V z;Ve$2@II{!Yi`(W-Bm@-_k&d96>hvPI9A!Of&sYUU^X7<;Q0>*vme2AM<-&#P?uL zv?->i^xMyMJwWa~%QN4=dG3lafdwS@>RrgaVI$q|8!yazL-O3;F~M04*YvA28Uq21 zM}OvOf9BHnjgVY=p4TsE`2R}Gz__CVtO0N|aGWiWafdp&CBzPaOYCTZ%zOW3X@~}d zrCEhS*}m|kR~h%mZ4dLK_|VtgWSD(Cr1?dw(d1H=-U8R*KbY%=@XGrpptitVw>cm1 z*JUhy*l-m~^B@AY!596u?ZYOPiq@R80dTcT=DIb2-_P^yS(YYlyh;lM0<_Msw91D~ zMF&H8u%6*1EUf|Vk2TI~nE~?P0<;+ySnJ=h$Abj1tMY8&*{NI`XH{ZN_X3yM*Va~PJ+H0?UuC;bt;?fv7MmIhj z--A0Pwi~!_#LH(_J;gr8fB1f0^2in7(y0IUC?m{)R1Z9 zaX!rSG7`C#HS|L+&A{Gfeb4TQ7WG0!Ta%;ZY1lo2Wlcp&R`uzv?vDHDcae`!^?T=^ z_p>X%5WK;^l9Kbik5JaV1Uf{Z;)N7;wDZHt3tSbjq094& zTY@kDd)!LF$=T^|UT?1#eFOB+2GIieb)`}H`#GF^)08b}OxCa(M;Bx{`*!61)byk}Stk|(P1$;N}$Rze60jxX=C>R7{> zIg#N7{#9$R8-~_i@%;NZS}-B&FqMQkR?ZO!Wtmj~J)m70xB8o4-;i^O%W8o2pni$VQV;X}2v)!Ce+t7NXe2Zz z6#pE51#^%YQ?i@{w{}**#{|d0yI0MKpXz<_4wHB`o<`eag8bm8$kAu?i2D@GX5dtcFZ9XHmGhBenDg(`+Tu-fKA|(wa{zb|6QxS@h;R6Fa;n zW%Um_PfKa=Cuh3nE{9P>+chlQ#pWharqv;a>+^##BC!6*Vawku4&#C@JxdB2i`05# z_LA0LZIU5!8Jg0Yykryh?Orb#Gq9NH&-|p{mXaK3m?xyGP4r8Lm$|I+m+QDJ7aGK- z0x#KZj+~vr2%yUgTo%x!287GD4&>L}%muvzvAq;T{PGkl*HX)=hQqh{z@O!2fAScp z{_`0chQ!cIh8H+qf4J<$JDcB6ZxA(szc7G$u>f`sTgI#kv?MP?Vc*|y-CKU;`LH$xrR|Mu^D`vo7WPu>FUDQe7=G;&$VXA9 z2dgsFc0|I%=yOT>@1joOZ33RFHy?a|6;g0KM@1_zm5S4CF3{%=#}hG>cN*!sHWb(NQfSNQ#E^~uB)m69s9t@OuWPUi;V@zr{Y2CXdDv!*kn0hy7m~48g&zu)$E^ijaro{1UBe~5RKLlrXI9!;|j~|O|H~PQnEj}%HgH<9(5xDRo>%Ki- zuTRrv)_^wI+cV^Kl>5(RY75F}i?<5DJ`Hc)Z433&XYqZ$GA&1q&{O-dyR2*{abvNP zJ0cZX-~1a2js3y9GQWV=pd(PHIuVEEJ%mx}h=Vj00cQMK;~N}F`PLrVw?B8?(R7_y z9ZNi;r&;u0|HgD%g{yk)ZhvP;9NgezEg`s#)Wz-))_z74#r)V<-R?I?n5GL!mdbhw zq%~F}Kl16m@Q|cpQ*mN|&(3@G5tG~?M6>P*PcUxjd3MY#zrGfUIjQKLDjw+Xhd$|Y z`$8|iTgZDbIpb6gt(R6%w>g ztiiaXL^E-U)jIYx=SHc|8@~AKY;fI&<63B0G&jzj3CyawP<|XzQaZ$-6Jg2VB0n(h zfBJgbe78eHzya4`NtuT%dUU#4z_#-F(nM7`p$fh5PU@1oxxMO^lV?Sk?sriQsJivic2#XUMqp*4a9$90x5>a) z>GegBy)R!)PJ8?vkx)awDuz%U?huW$DCpU;!*k}9JnUk)Xjr{!?H$)*uMi7K`NOM|^aHg7sbBJlT^~?>ie#+_2QDN*ip@c}6mW z=p5Y;U|JNIJiz|$5gJtMrwPuF)Of{vj>`TP32LrnrkT1+6D(rX6TRPDCW|$h7Gwzg zF<(nI=RQ+}Pm>cj;ztNEr2#eHH($Tme`1FQ{iX`O$}IYm5hle*L=)lnu(#vPv7ydB zQ>7)xO#$q-@+OPlEJf$ZqJ?x)`0a`?Y)&#~m0sg5aH@2na7^sdoqaoPOqX&x0mPJi_3XEuGjlUH&VNyKow_D&#U>t0S;5pSph%vc`FLNFjame{#Mns*aNt6#cD@q^!&e!nc$$Fp>Kj}hwbBwop5x4~`r4|ptO zzAy!dD}=`~4FSKd;<0|vo7e1D&fo)N%kcRvTUHB}g4pt=KJd0Hc&rxi_rJO2MIQU| zS}YIVF5|4%8 z{9}6;zg5LyHm~8a83F)C`t+3;fAd%f#w8vbsW*wvrtF$h^^t5Yo)M2Gr0G7jMyk^S zCK4wrz+<8R@8Pl5U_Jc1u4y#^J>XgV)&n?}1oSJ6*zy(-Gq`w$(j{GUKm+#lGcGX- z#=r(Y1NCBo@K{({EdT>2=}HVRFE~H^!wY`t`Y#^4jcK%KL2fsdTpiYGbV~?bBlOj( z70eM^=yc2^s2=)S9{ayJ;s1Yg!oPB>fUR8St4G(`WyW2=W-|VK_y6>5TL?Pq>VwzY zDMU(FB%Fw+0ro%k2V-+WaY@MjnJ>UpWGrm~v^QZJw6^Np>g5UbaXY-Lc* z$23P_b??La#I2lLSH>ETac1z|P`XaSxD|(g)2vRO7*Cd7M7WvP=}2EkPk*-9$3w+t zh|9q?DBjQfBf6`R&$8`JR~+5?`N{>3^^oWz&-(K?w+CzX?bbN^m6lRFm2rmi_ydD_ z4KLGsA4P>^!s*Y4+*Rdbpzj6`zN`2uD#_+G>z8S@0X^XQ{yjd`2f;od_Yz;#0qa5g z5?{TXdqwbHEAD>0b0A~tvLxA<4OhROyhr!?D~-(kPHr>YtP#>RQQ$EeO zaS_yh;_|)ozRH$4{H+%DS3V0)Sl!p^%C(1MNs+09QK@)sFnvRbHsDp$!c;yZ7j&s4 z2>rd?r~52&`G;;V!bF|w$j4OlBv|I|Hb7`+mh+{im~iILd**eG0O(lMEz z__$=r4$PWyI=5*tDmj#=2kjeQ{o$(@bFcSrZeEjnrPTr2ggN(j|7ui%`*#AuSO3Yq z{%#YjPtRkep0JVgZ;lk_XBO$o*mE%E=c5x7-dWGmd*GYAa&o^N!RJWmbrC~nn$rXo zk-Z?EOQ`myiws;?r}@>oe2K7VKB3= zv9;$cLP7Qw4LaB$L^7FAMU0sRZb;Q~n%3~AsoGJ^0^z!b^W?nGvXHlSK2bcLBo|=( zgi7KQ@QvVw`?u8s=sZ;<@a4NIUkp2A=?wy=Ts9Wu=aS}ViFOA+Y4$wHTuNeM=H5^i zrefAZfPL>N%=d7R+bGB^pHoacU6Sk>v`**lt3BqVYJw#Xu6oi4JBHAiFF8pWS(2Rc zN}2~@1oD$Hc%Qv?pWZx34MSTykfDEkYgFx-hBuSmYpbgB7dYQm z+q@sxAD6R>ou-ad)-3BtP@7X&Q)L<6hRX$5*M~cI~a+DG4?&m>?mjIM@R1-w9Rwh4&8~-u_0M| z>xdWmBf+gEJZZ)?530MKh#R$Aq9w8guS1mR6MEF^HQRF)l)&iHZG(lH!jAEz<(n8S z)&lpaGmD)!R0WSw84?_(ksU9mRsUOPN3zJU@ z_~dLBH+D7Zku;Rmj2YtUSvqLgP97ni34TmXg?Z`WgT$o?Q-wrzTu_==A#4Iu6&7dX zDp#o`x@Yr{blQjFUK*17>KfGO`kE=T=J5DjUwW8HViCPDtf%)EY_iBi1gvi4+`3$@ zC%MIF_E8>XL}oTDJ;~mAfw>-;f;`+r3SkCn6Gykt1nqKfXS*zw5RIH;kG%J}Sw+U& zT^iF8pGA+Z@YQ8y#qka?PbQRH!ZfwmgHxp&#o1FX?W{w|FL}q-gOVdNx1o#JjXF1j zL?37?&EJk^Lll=(m5n{DRhFt@P}n|cx;po21NL(wV80C1i{)pGJ3|=ad;Naj6rWe{Gs1;_zjzXRSO{7>!`f&t;I@g<0?CFKenu~h|hCRy1GhE+|@4ZQ+JYMR@D zS8~=T;5PgRoE5?g9tr_k2Xe2%>Ao_YyHXs}4pBzDw6PA40xa$${wktR* zBq#efkG#lP`>(|Uw-StXfwRgdIfWYxpM&v^ui&h@;Q3hhZ>)=Uu>!{WciTgNoUg-4 z{M#;m$#ooVFao;7Ss^(8*j_szI=BF_j1Ym%YtGn0fSj+x@y{9TKXvyL1K_Mte|QuG z1K_L%;Oxc2pKELHYEWsqXX@Lfql5+yezTf=kBwaPaIl?H4L0pLn6rZ5{^!ovY68pg z@4Cv?1^Ol4=(n!G`>DYFG6E_achkRKR~OIN;=8+f%^6$SdH_bO@|751U4eKn>*}vF zw!X6uRmpr&z2W3nl%>u2Fp^Rc!7IZdWcg_F{tXZa?tjnN`hR$T@Gs5^*xF^zstvZe zf46IdT)^fy34hz%Paoi>A8zm&^AcyhunXxe(UL{kNJ#QHttRZ<~+I=_T=gTe*Y4uy?n3nw4yFGEMX!8EB)t6p##-UT%TI- zNw#l@`g)$oBwNqcp%XN%;V5)2PfmBk-&h-BhZ^MfGG6$o*}@89YKNBk08cJW7?QKi z3SHknVeWm0-cN;6R`%(MoNa~eN;}2kbE2Fed1bm%s_EQS+Ti;q)k~k}S43S1EQCR# z^)?*rJ~R2+7`39%f%<%iU6Mq&wHI`GpHQVbKU$Js;G869PN_qQL-(U~6ERZX4=r;C z&lPb8;-?zha*fJP9f=vtGGJX^#c7Kquj8}``4F4?v%mSLUAt3(?fT#nrv-GW2jR4L zOA{Mbr_e-LOQf~vxTM!SeWd1VaS30jR=<-u`#9>C)LOXb(2}9_!k_>252wAjCl~(y z<~4hAvkibY#r$d0ul_v%_pd6@zZdr8{%#YjtCg7J6x9Udol=$Tg2_|KZIx5!xzfnT zAk-#U%!vn{O|6Ho-0Itr`Cf_9v)r*$B`(a%%S>LwwhK}Q!Hii39Hr@W^jc2HFsR2X z8$2JSn)fB{{(SJMSgWl+w_i(ue zCil$%O%-^)?EbZf~R*VKu)K&y3A zQWPgf1Z%KJxg^G8%|55rn9ecf@WHN6mz*H+QNNNOT%2ZyawklFL+= zg?@skaJX%#Qr>40+qguO_h{VnB-!qB=g^l5^9l;C)p{DDOfC82Qpr~yUi3$sGT4XD zq?asHitjv*n(1X&DX{ z^5Ah+DAUIZ>rdYZ5V(E!%t;JX9>M1eI!|OY3uPh7Byp_pzPp8;^x(wbkaDr4+0EH} z4snW!oN7PL(N;#UsMZ#Tv)#e(W;w0Ay*}Fz+q`>?WMFh376M;IvP-*BvOVTZ*KJ3n z)T1GE%wz?%6}`eInvJ6rugYwBmuktT4WEsuTP7}_*juD+B^b1?)xsYJN6QFWku-d! z|MAXKw=6J}Z~^soxfn|+CNrN0?dWoN#r91vqZXpDz<9-TG_phI7mfW{4l!!G2z1{+ z-hQma6e2h4hS;eS%n~K`y)5WZ-2Q-R81LQOJZn|EU@}!<^}FDYgmhn{s+Qv-f$NN9SU*POUVmN<|H>5Z(T5ZfXO1srHW)NF-$yZY*5?+! zBi%6QG8Q5UQb4sPP0%8HY0_HaX3uvg;DHx~Wc;ba?S>%j?2Vo!RDHsc*IiO^`8YLg z!FS#kN0)oug|}Oul%tNKAPskBnIe>4ti|To+TuJte(S=MO(i&=<^4)~_T;8Mdb?xu z<58|7#BtHIllsUyrc^4w_J-!H0mG5V$&&yC#Rq^ zd+6CqoXB2bd&T+cS39H+b2jD-nma!WmTG2w$ILis#9{ue=^-Ck@~YZd`Z@0p_o(8#wId$(a8;@B(TrDYEN!F*uVYz zw?wuf;NRl^aKNAbZORei-~K+^3gX}X;S(1*OTo1m2n7HJC*JQl@|Ry%4L6u_0)MZ# zU)aBN2_q0J6Hoxo@>u#hE{jkInLBo_#2^G?{KI7-7!WQyX>Ve}yHacKX0dg+Wtv&c z_{{P1R|m1_yz>10E4geQxDEdSmxb_+DaZj70GE9Zd}3V5Wrt0!Utf-zjdzkzzOK)z$m_k{s@B;>Bd0JyBq zpYK=*hA$gf8t^$+AP_m2tAfwn0fElNT^f&h_&Ltgw6X+fUtxu2b&Vz3^mlDgVM|vc zgg0)3{+um-QTCy0WoM)T+J%+=yItUM2k2Q0tY_eyT(t{h;*#tU&_AUFWPf0`Nn`Anze(;Vk9U9h==@1l=Tcg6puSCHzaYBa$G~Hiha3VLae_dowM5%j=t1b&t{eaP24;mUKDS(wYk0Y zxQXNRK5rK#)DuzDs(@4q-JN77yGir2SPeCVf%b9>mz%CNJtXox1+KD(zG$XD8M(d4jys}rf* zy(QNn{HVSxy4AWYz4CLJsOUI0i_>Xba?}Ef9=Yaw-7MFL@#(u+L!5eN#BLJ9P@a3= zaqe+HjEJK@G9hwUoYlkq+BiYu3pC3Y z%e#BJCSx%SDiQ}0tK4(^Q?w@UgDnAl0J@L)r2s%Ld^VdzHsEKVUMvv3=rPhle2x8Y zz5Mh8I#$#@q0#_{IRoz){&ik9ME4gOQ&H#9$|%}jgg3`t6^HE-W~`YREX%+{|M;w~ zqV(vn9t;Mw187eKxB>-ekG?I~FM)pp^w~|9*ztV|et{Htg%eRY}q+lkf!>l_MOBZ#**3tP1m;6Ij4NKpTLzya4Z501D8S zQoBteU+^GMTuz2TTo9zwmTNwL@6=YPN z<5iOAz!pXqq0+6|uQEra{5Ggdp+O$U9Chf4kJ7_g`Ba zIq^%rIgf<8M|`QT`Dy{zkor~IyGk@ub(z?Tbccd+w~YJ9e)3bYFs2Cy53hQr=iPz_ zB;l@BPmHOYP6<0_5+Yqx-KBZL&G*VGo0_~l%zJB$IQe6xYk%6ubtzhHP{MI zuNy2}e`x{lTgxLWy<@=dJeYu!B|B34M8_{C|KxN-3{CfGBDPcULbdGs>B-cgg{nY> zdvq+;okE_HqlJDwlF57);f!eKr@cMpR3Z-?)sPge44?;eZ=iOv-A!xQJ9r`Fo3q47 z5>5S)(T`0-Hl>aj5t$aWeBP96gOBRRD}7IvSz4filal5rlz_sge-yFIV#>T^{|6a* zaci5Y)lQlW)svU{W{ak;O$9~`&-c7v%Tc4;O3aSJevlFWg5tr{R|m2Khbni~Gj7Mm zQx()im+0Q2HmOr8ZkWfnU{B9^8+&vu&jrbnPS{X-4}#~S*Y4s+?kd8Qc3Y@*`_^?u zy@_zsOk zry1$ZgD;E5s?a2gZp>-r5FUE)H;N&RRLqL8O;M?>5UzSD8Ah%tpf?*K!=ft%Ht0^K zEwJSaem}yL;rx<^<1}J>E*z06NK`weSchr7Pufz;g(nH$ZNXS6&1_YC6tSI!Nf?6F zsu}Y2#pC^!JZ_(*nsu4sYWQZ9phEO9ZmI1NV|~-TCn$pr9yJfYx~@mrene3CV1jFZt`e(yU-2&9x`k$E{6Y3_+Wy1*PYI;h(_zWCPb9#nPx_;ie zql}=AyKE=DRW$Hgth?O(_PeLfc5oaFB~4|szR^@U#Os*1D68Jj>Xa@HzVeiRv;O#N zei{2t_nQQEi5s$y{J0;IDK{p_yQG}Ic^S{Ex;76HY+wg3hD-b$t2f4>qd|PEy8IroQXx?gNVsCq}?B3pUxaK za`;|F6c<0^tLA`}ktyEjY^OEycKyT%3tDYr1!w4OX@Y6dq@K4y<2}-&N3qzdWt~MB zB7Vj0YJXsokV34weB)*zt8Si(+xzS^Z|L>#8b_wBv~JD^yOn4fRjlSt5n^vtZ|#e} zI4U@CW2UE?LR;oP3n<8U!zcF)6W4xRZ0v4PX;i&K64W2{nV`(uTWeipV#cyWoN>F5 zktsrtqKfJjXi%}5c{k=ARoU(HmB~H{!q#27Ca#;VDEZiD8U>Q^{YOi-Qutp6ZzTF- zaHkHWJ*b(aEA(0t*nZ11q_=yE0AOoUaqyf7*=c1U#2 zT`xwW$o8RfHjaeve!~lRI`XYvsuH>xtiOB*wm-$BCAjnN>l^Y{$o2M&x z+T-k&)LRa}u+cY&^GQ$PYDs*d`VdeeTHnBO@L9H`Ia$w8!hF>y?N((D)20*K>UpTwxvR{I?!LC?gV@5&Q_Zr2_%yq> zUnuNz8%DG4Ym*yA<8V}*lR}(T0iI*W*FcJpcE7IHz{Kc`0c3e9``K|j9Z}G zR_af41--hDqG^7sNs>P>T+DOV*4-Z}l3kW>g3)^jd_b>~6f43!JaeVKz#KIAPKwyM zP8EMNfpd=ssh zWHU~2am+W0q|Uz4CG|`LP(q=K3n2LNboA`yM|51rL(}#AIJ>0pIG?v>pFhY0VGg9# zK`{x~ZuO19WFR|O;Yp0bzWPBgq!zq7_qlSDITot7Cr~Ytnh>f19^NHgsRJF2WLRypwu=a=k3n5E(gDA1!f?k>MHZ;RYu)(W z!{lkF4{yl_KS3U@8Cd5WC-rv@RjKdkm90(AV}HRqs-~@}QTzjWXtL?-oXNALzY3t!rn*d4P|F${6C~mL<}l`4M|)F#%S% z{WZR3TPjy`vq2l8#aOUq>sLc9`ozy`k}vApD^K}S{8JRH8a++i(4yHGGgZV-jkCOD zKd)qwwr%*wq(e>0GSe$|jef|ME7r$fk}sse)P2j%jf8R#6?~M2Y=5sE#UJL85ZxVP zH^#akQkdsK1?2_Kx|S!T{>u7azTNhWUQB6aDBjC+#S_Mh*qI5Z06PVqNLtMJS{lxz zkc?NNv+&R9xDSz%Us67JWUY=`rVtLk(aq${1rNDx^{C+uR4@ole6H#91aMDtDG z(1$N~bl7Y1ns^UPZWO(IEv^LH7B9dv+k8tk4o(ggw-1s3qZVj%G?4a8vtubqO!~~& zYv&QOfyI7DrHojo1quK8$vbMInsPdN_r$%VZPoZkuM$RJ2b0kBrj|Rhuyt@4_dEB# zxix)t7fPZ1qp-mI}2F*v%HeUc2@ z)H0nC++$OD`B^ojbG#TUi|<^WiTp|UL{lG%$57$Z8jnzVn)hUI7**t!%b$FLx!BJp z&ZcEMsyi6;ZbNe^I2;hAhe_8OZ;8_&jmC3Q@Usn>8`}~ers9{Q;l5xzKtyZSwaX_c z^cnKwR8(Hm#m~fm=J_JQ*h(*jKq|*p$#wfZ>QK@Wd1Puj@Gh<5~b z5IL>9yFKMN_8YL=OHBm6=q8?wTi4jS!JpA~hqozWKt@$T z?ub1XViH6nZ*H=sEsT>ZQ4O!eZ|Q8Naa>A0KbW^l$MQ30DtVA`dS4P-w?Qy|u7X}q zo~G`5duQw|zqgA5_9-65odsWhu^u1Zwj zj)NjujhHQXW=V7-UiOcb8PMp+*QB=6F?|+~=^OW+k7jqmr=_PsMOz*bdGJPAFT(m^ zIB)d?!9&CaZHh&hrLseEcpvcO=A1sB z3E(S_jk`${E)|m7x)kU^G4c| zktmp2VAt#J{SQGHaZ*`HtzY)I>G!iY1wO|=f1LOro9UY~3zYG*w^Kuj-Oj`(8htw0GFbIR8XyL!jXKyf9Q(l3zb$c?oL_a0jBgFJI? z3Z@!HRbG8TD;6af%ti+p#9etj>?ba>?u80uEc1rD!;?3V;a-ZVa1{pGk6YYhgeOzU z-Ah!A?#md_GOCCBw1i3);RH81(5}uWb0ql?4Fu&BXabMc|9+S$n_Hx6E#p+8?e2O1 z7c5ur%|?facc9r!2CdlZ6qNLRS&Ky=`;@Z%cxfR3zVF|u3Y0%!B6nAknm?my`6+Mg) zx$w>2h~a=VI(%-rGmA&2bqTDmom89rSa=}@L8{T0BGtiWmQQS%ax zeEK>qMRqof7Vshv+LIl3j-QeHzKX_KZP4o_Jt|Tc9Pj2&`poCUC*Chs9OlQ+hdKK1 zpr$UM-)$^azvWd&jJ8Z@SGW^e{M;>iX_592i`Xti%~blJ$j;d4p%9aXzbIX3KdcbHe+x05v-{iEJ950?(OZ_N zH8aY+wsR*p0+xb7+^&J@;z{F}`kspob#|{TB1e2ccZZd~dGPp)#CGm)`F}+^uzyQ> zPyEMC(oU;84Jc+g4hd4zo1H^yYBxe|w51a~M9!WvD5^lU#6?BPvJ3su35SkX`#KUP zs^PXc58t|a*FeyRwO#HCJ47|J2S#4C$+*G=LwCgA9kg-S&GU{a%oXx)hb?EI3$0D- zqK^};dlkP+Rj;RAf8{45l1Poz81^Wu)wvFC)Pk;B(fZ8GDL5x!ggx9xEMY749be>< zIPwN#&{It3A`7``rMu;mG4lHbBo1(6xJqo@er88fcd!PjIia8%-wVENF_Zd?U?8sC z;B1KyJ0Pfw<&^qS4*o+k)f*|)(84s^^vCMwCy0kg|?C}%{-Y^MmsOV%) z+OYPrA~e(w3j_Gp)D+q)KgW6!G1V8GA==K^zIi^qw1ko5&uCx%a&E)bt1M-PTB^c5 zLbpkUZKHfD6rZb!xXuMh(Tn~K<9wY=zqj@1io_#H&JO|QShST*H1QJUtwd}eoyb&J zLt9on(BK&!5uJ|PbsM9g?YwATgl7b6}TZlU~09N__Ln#SIi5LV;Hj5Qt0nE6Of<6ZZx^?Z|oeWnJ(@nbV3zitb_r6F@Oo^ zP~#T}fb9&%{*Urf;9P^vFz^B(FNOCU_yxQVc<;qrQFQcmc`08=T(SDkp2s8?EP4Be zZ86|&SLCIDg{ar$rAn{G0)YVi{gsz;DKZYp1>=cdk(V+8=cSDPJufu?#`<@g^M%9& ztN+-;FS*3QczKs{GZ37A@=_PqSbE1?x5m;JVsq7OzisX>jK9}dLNG3^u`EDYBY)dr zDPD=F$vyA)U=p`i)In!eM<+$^IW(}w67PR*jb%Pqj(^wHeml@F;zz&b0FND@U-H2H z^55tx6b7(|pE26lXPZQ(;Afy-EWp@-(b(?*Fhqu~!~p9GO773t`K7DB)>w*Gopiu; zJEuCBiA|ur8bJLfXv0N`paM%KEZhS&{{LNL`Ty=3ODGIf5EKeXcw9pOe=LYHtnceP z7dzR`XHzl@>=m#-FxKNX)1HXItgA~X4q7Bn(2u&(T4fFnVb2lnPTfG1-Tw>{^pbR5 zVh3(R5*}zWvP|pKAyLPO z+~xm-tH3o!{pxwoc*QpMyO)Eb32e)yjoiI;A4~Q|HtL=||Hf1tYC_oe@}A*^BpxvS zF3-iK;BolxW8Iel7>Ct~zsKP(pOsf+{G=D`7Y#4W#h3iz)~`Vg%vIl$Hi`Pc&p^Fc zAoFCSFCzp4@k$IrFvf>JW8E0=@qj=Qm_XK1cm%<=E29Zf$VZFwwNa>0rP7c>Wc`Gu z%`n^`+ak5lntKYx&bYLFr0x68UYWialoAqx%9FGRP>KJJZAt;&+COP8o`;I@e4Gi> z6x$zH&rb&yoZrYfn#kqRe#+Oa^<0jArW)om`dvx+<5qZ3uHCTW^Rnr!!}wTyR(e2A zK&QZcqCf%U%}w3B=5E&gPKf`6`z`NJ|M{fXzTrDBkbgS==WbR&USmMs3+K^ZUO%e$ z80#?Uh(0t?+O#+I`&pN=Kmu33DZbx^DKRCzayp{=lTs<2(LL_yy?|{lj?<>X-X6Zp z=2$d~%u^eU19Lha)Wy-tt~QpfAM>(h$d8bNM9N{aTpZWWuy=4JaCu`KUdB6XW`5+{ zA)VjfUw(n8A&K5LAyv?_Vvn8nW}l+eFNUS;{hT?92Q-~@(gWs;I`vPnH`ad%Z-+eZ zLwu-_L1iMbqWpHR<`p#~eIPCR&?j6o;fV1^{%sbGV&C7I-AdNMzqc5Ul%ROk-K-BY zHi^I*0|E77f!L6P?`?<;Y5dmdPdok2TVx#G0M@D9g}YfHItB8JJi@d_V@!7MZzbJ7 zTXUB*D4g#Lk4a{`9X&~0<;G`yoh6XgIhea8;_e@A60L``L#ks9+FHzBOdCIPE8I6xGqLs998_ zO;VTsY>iOftB|sqQ{V<&pV=5tQebdP2epkDa%FS^^Wl#D8M0m6@ z+cNqacb+ZMjrwnG3S*2?L=rsWj(iwnbsq$y(9IM`u_jVBrc;M~-+YIV@}zNVSC zP#u;g;jxIh{Mz2^) z)u688N_H(cbcNwp;pz&5@&iqGjC5?=uj%zkF&Z~-##R$orX$1~cNOq6?%zqYRq~VR z=h=(w8SFO?QBy;G6DnD}bIB8GP#SMB&nFr? z6TS&|7STE~bT>GU)!~`jAORfX+fb;LR)!uiGf{6`aXwf2d-6Pi(cI|g zyUE*mj^3>IekJ+qbFwzjo0a^p3a@LB4COg(#L-@brKjeKQfsd#Yi^lG3k-+uZX_a0 z;Gxe5ea+E+lh0>%@P_)FUr?FiOA-foQgz6m5OuOasMy9== z*_mK9nVYou%DY*`UR?LRu-^@t+b-Ul3g!ke5)eQ4H?M~H;eUA4MeeSBEru@>#Mj4N z^7XD@97%9|;QYcj$t8@KUlRu~M=QVFyyk9JUuFn~>6IA3KFJ4v`)h!^)4`p9_pf$A zfliLIrG;Eupx@r9ZLg1khimn#eUYw}QOg;q_eoVEGWgH>nTvcr4BVdoh|dFhg{&?G z_o{U5V^o{L=Y5Ef5{aI#$&j|=OH-% z*x^M!uTgy+pVwJ~VAx%W@i(7`U|iz!tfW~6leU7dj!e*!xtetd8e;_BL7&QxKHeF1 z2lzbp{~Vu>1IzL6x{{Rz>Y8n-lNzKG%L+&T9mA}IED;C6|onf={(&B)C~ zKkn)r`Rv-YT?HA5EMwl+8}GT5+t#uiQLrMg+JnE~PtTGp6UVFug!wN+-N9Bi)xh|+`nIZtnw zz(!1G8E09Cwi@oVICX;;T+pqly`#6jU?wmuAlBQ^xXO19;r;D=chk$$98 zCTLupm%Oa%dBjJ%lG&P=pPud*=|Ja#4Iz3bh}uo-IZ?oJK+g#JLM^sDdc}p<0Wj7t z#}01SUguYI)*=4!PYmyu58iQE6|MyP72^x@^d%n*aB83cer2WQy4Zov1_VR=w_o`S zgAk1IPwc=9m`^Um4(@=uuo5ym$WV?t22C8s>+#WytzfOjD?#RQ7qsa2D^ePYim`EW}rerg*ke?T{UF?O}fuF;k0HcX|q;D2TMEOY(!&Ggj^C7ll z1%DY+Qe#WmdzAMgaLsk^wDGiW-Y2Lg7FXpaTDyJhWpY*Qptj?>*nzA(An)d%b0~iL zQQ^v#NM^rFu>(L}vrDl9N`%tSiES7=7~3)pGJRc9O@gfFhOPm_b34W%{tl7tjk$O& zO4GOQycLqSXDp$FaiCx$h)0ePC`=98a`z8n3<>z6_t%RXJmy$QDb`2l)6(X_BnRA z_ULR0Djl~##rjv9g^}%>W5^Hhn_kfA$)50R6cdw#9XZTsxN%2OLf87O9s~*!`-no> zS5J72nw#!<_-!MXe7@^_*OSgmoJa$&TugYT@v7JXY0q`B1D#EX4aNU$L(G0ItM~H3 zI(57dJAmjE5<6Hhz5mG@iaR^Wh}DKBcZiWVG0}Np{0IGEKsEd>5p+a~=J}qntI3wd z_?CNiRtQFQ0*cl5$B~>@#tt}puZtbXDgf`S$cs~Z(=2#5>P7*hGD=>J%5YSwnh<*i}b;CfpW5&QKcA*0F@V)sT9 zLocd2rwA&w{%8ZO)F)CHXy0T4a~%B1*H1Hjt-DwRt0L=QmG}(jxRkgL@xIH47~q?O zBCM-7+vYynDZZ*}>mVs3q3U|^!#p;`lb@%7f2%@rrv^?BR&SD*b4icy2AkjY!n(zdtE z+bPsMXWH2je4@=Po#ocwR=RCvu04h!C97oS!lTlXMOR`eMgr@#&xP)icZk${5`zIfj zij;|`->#Y!1&^^+ybp5b4yGh1`%zfsDN-(lyFV{H=ylZa{-9~Zrd!gNDZ0*ZiUmV)L3j`P%xY2vpp2xz96QK8S zJ`@m~H+F~!7cto1UG@xHyz!{3t{IC~Hfz0arQA!eN|9${LiYLizLf@kgyRj0)>+cp zi2$9J1b?+#*|0=Q*;G<@@4<7n41D0t$X|lPmu1<6UKC1p^YJ_W@$l{OXhs?dW~NBS z0(!uQ{kbr2b4kDHBPCdppRDBz`_~N!fluK z;t@h;`skLB-~LWy!8Gewbg+i)TTl0cB}g5qySiWWWl8im)Z=%rHwG#5W+p#qyP%si z?5iTK| z4$~_nfYzIMM1BK`cy?(vn9l^MbuB`jZEskV{b0uD$&hOVHEuY!2a50L%Xc9a{_kNr z{hB`0#vUbGne4gh7w>=nZg6GnKo9Ka{+);DY(e~R|0O?M>#{0w=h7KV5I^@1XS>J? zkFUj$RRl1${)xjve5u48h%fy+K5+@-V(dVu@4DE5&Nf7jS69fv2Fd&X6FY!lKw<|~ z5t9oc9O5OdT~F&WIc|ryCP1Nmdqu#Cum$a|>1uPnv?k-v{Ecel%GiM$xIOge9Tw_9%rZG9LmyB+eQK;-&!pT#e^jKO%b zm-sLQ=N~(~7(1v0W8{Ek1M0;B$ycQCqe3wL-246)#^1362*#z@0aLV<|2qD1uthJYz$ML#VjgC{4QWFD~}JWMcu#gBVdFI|HtGa|ipt7BH5(clzqNpMl8m09S`U1-Vp zuZ#mFiyp{u;pEi)@b9UbW=&o1(YkzW5-_ws8AxD%5_muN#{h!U?Y^;Ug#@2y+!R4r=nRn&gEduDp(>F%}0_!sW`Yu;SY9uB={ktLKsls)^BJd(Uj zK_P~A=E+JbEFa-UF_N8TH7Cq-_g>+^89`>+fir^h!+Sd zv&k6KfG0XRX_~Iz8s#>FlEyP})I?Bd>TfAT6VQ$9)mb|HOTHQ9Q5Mgkhe#*|A5=%30E7KX2k(h4T5}bRQ|v^U=!u zKBuTKf;|V<2?PY9lZ)F8?ho#J0N8Z^8*trszu3nc27Cuz_Zx7IK((K~1jVLTmoZB9T%;#)1s)IjDqbogr85-sS9-M)x zpRpjYKjssj32}>c81#TRfk{1fx0Xo_JQ}-x=UC!Rn7!=Kxp9$6Ruv1*2YO?#%11>w zJhTK&B+iBppb4C1Cv8hev7|y+tYYMRq$;l&caeyP5uFyOrkA6Y0}5;XKYGlqTg~yh zM^uUzqy*V(VnGy#i=AF_S=t>3BCR8bYBlW;u3PsW`C2fVzuFJId~HdgKqm3YD%4tS zFF`&3fZ)PM#6*q$dUFL@4zB7 z%99OvE*C^898VAF^RW#l(+k$e^KPrFLJys+o?Y(8RmyhmCDCT^Ylz*@468_xyDvyW%r$nbA6 zSv{I>$QH`5WmL`E_Pp-)u`Rc%m9~B19i?m?Nb%7`3+#myzvU%VM3uqdqe zxko-lyvR84j-MCDVSk9>xlp66qSKaM=o2kaVWAJ+A!Jkq4jo$t_Zmq3h7$v_u6!c}x_?$9Hxe{y89+~c4j2YBneI(S~b%@oRd#jP^ z6E|Jgv21WdF0ek)@lHYA?t)I7jZs!;w#O~v?VbFqT48ddGhS#Cr={K%b2YDcRVdr` z6=cX)^F0I(oqG%|MU+}n(aN%cZ@O+TAs1QP{sDWcb*AV{j%qwx)&+V<{e;8M?%6_|`LUQEs&KHdaB0=`1zspeynLhi zzVsq{RuCcY2zN%Zug3G4+4$rmjtPvi(Bwjerki$yXPZT{KA~6z{&ys|a-WHmPrABf z2@||c1>oh*JJWfTA#QXJb1H7@B<=NFKds_Y1_b0k)1`%~I(?4F_7Xva7&QC`$}~`(Il&QKrg?^T5cq4q;lLom`!g>E-2(hKu-{7lhz0gPIk00MQXD)0 zZ|FB1*c7k_GW{9r{umhmVEz04S3Luy7wIp04FT{Fe&KZ>oPWmQeGY6uc<=`ftey$P zSgijo#?KrWgz*ap-epckJ|m7ly>(V%Mpv^*XUR7J6Dfv%94)#C%AaHX?{VNTfFA#D zs|^F79*XMU^#JTqfc=8dJVVF!XItH`hu0uJ_(MJX#v35UOOD@S0Bm)y9{z7z{ltOW z_*5h48@yPiU5KXe^*-P#IhXDENm>{#lzGyFfnoiZ1OK-k{{OLhc!4eXntXGu>Z3rR zQbk@%&usC8b5^HMC0bs+b`ysoV#DgK5=D#1g*i4AvUE2N-TDs$ukrG7E37F?BEL-Q zAoe~{R#E6@q)vS(R!nRAKpw^%is-y|(Z~(4yQu1i+1-n;%gMMm*pEW|JYlH!h?PWcXJCQ{H zyPWm{^}!$N;WrF{`YOEnuJ2#|Gm#PCKY_K|_v_(-`kMV;c>RXQVz}t~hz{(nhh^>h zbv$c%#lfv|`~+2U!f7CluN+3OZ+>$yvK?!3B-AuHrk@9VC)ow;EFWslm{Eq9ztHSF z-7_YOraYz#y{kf^FW`~N1H0u9=4d>{C%6%_DSc^95SqNqZL}?*P0Tfs-m7CQV63_ zO?v?6jxiB6JoJv(;NvroRLfPWLi``R{(e3DBE!KS>ftwxfbz+Xf0ysCK2IVA^!Y7_ z*O&f?eSMb?%9Cu54|767^eM4trn5o6+J?}?Ik@_o&+?OZXw0|n!M>_+JX3_2v?GIz z`Gtwl9Mcd6gReu)PNJ=Y`o4CZIz;iBa<{+#uQ`9T%W~^ zc-5aSU6`j>X5?EIBWeOJBUAcej^t1y`Yg#*o5{OI$KHKaha7xB9CK$GdLyP99@EO2*%N$1JVG%M&DD8k;=7JLHEX6r}z%z1z6@@0~%vzaa-$KD4g6c%{qH_{OhtbbDc23sKQ~9FD<2% zp9rSt zfIltk*7GS$UUva64uP`ZsfkimtUXn6S#Q;&ywL!)Aq&@7wKtOWfF!r9iu{g0w6m`L zH|@S^YAx=9Vi^mBWehYtk|Zwt+5p{Rs(?J7+VH*P3|L=tKplAZd@R`Byye0*hwdgV z3Hk}QG`4J#woyMZTzGsE*Fs`BnfL4ZLrsSi60GI7?q5|io@zOj8a-Zy@1(2iMJCOR3K|$VrGnxshWiBn5jT{?VCwTkeWxwnJY!G$c3$@qu zi_`>$#niJohES?VTk-;#S=egF$;foer6PH?Mx^+uC#C@& z?7kwHxub-9J>Pl+r|s|=&ea{2Dg5b7=M+!;4%gDL3S@1X@TQT;Ri8FZIsr+WiK+0U zuFHHm#HB>I8CY;577df_>2#)QO~V)IxVD+l`D(ncrc#xUyZcZy<@uvXC@olU*TdPu>d{usWLt=WU15q)}hjG0PH^Cj2=4);W3&BcnVv zEc*#piYxo)VC5?{ySaw_bnfErjBSWpi8d>-wA6Zra7AP;0{Sqvk=8ra2fT3*50LG6 zm~Gt}lgB~^L_&2KUa)45yP*!pH%Vh!=PI`Ogw$8#r*=pAtWk$%hfrHhOQcyjI~|A9 zk37pNUm|NCyH>4#y||kAMaND%a^9+fPCrCF@s+)?(=zarh`A!!>i|k){`GK zNcZ%}{UxUj!T|C4DF`1Dn=*sL=(VhbXh@>jxR5hJ;{2ih8q?coKh#=?o21i(<|_*H z-}3o40D1l+J`dnrskuPj4dnA5K<4`$pGTGX6Q94E2kOZ;^S!_3y3ysPHNz@^zxx|L zZvnjjGsnKq=Q;m~1@-f5zc`K2P}KPkjDv5rpyMoz*{K{LJSqfx7&{=YtYd9HEWCtBw=8 z`!EczZ^&{_S-tmgr|eK0Wq~vrU|GQtgTLSsV#qWOQFaH>h8wa_S4)81Y>*0U#D?m;SY`_@tq}rci z2Y1UL47uN8{9F(J!>{}uJHTLjW3!r1KwQlZJD1C3c^G~sZcu%0d z*)P89`$TZYdw4-@wj4&M+20q!6(4eC)sD-D0#i}Wmx>p zx91wjs4ZN!zTvDlSyyZ}0%~qhQ`BTyGbXfV4t9N7N+Drp{wiXRY6nf8HohvI;I%OH zU@~H@Q#u?E50_zv{8VxpbQ=(P)V!TB@ur9}`1x~1O~uMfZFm~AVpFx*DQiL>2Q89I zM;RvrTGltiqcRjUfH-^DJ)4pUdt4c3_VAod^y`ixvQx1bLy>UF4$dwSzJycN0ZEycXQJnX9D#&X}gZxs&&Iu>%sFKgAC2RzPDYBWZA$R<+fjf%2i7dyuL%IkX9bWCDzM-0 z_Nng+bKz)m15JVn8gpCB#?J(rQfS5!Q?++7AGAD5E_g6KwO-N-XEjyukzG-3B0u7f zYsWC@2@{H3n(*0qPvKRBZZeHB3R^g7RyOx>S6!m~1*C1jku$bmcKPgkE@c?br-wA9 z+f~YHC9&{B8SWoYC8K0;S#+8@-dY|kv5Cq$zNv_yCrih9W_-DHww5Y9-dw>zgP6Br z`uT&wEUgmkmm6AwId2m`1IZkc!qvqZzY0U$(p<`o1qoDQbDoheSkk1b3$u86TdaevjLtsd=eXw9Cs8fPmWvZ|DmIbbywi)s3_EiB}Ob_e_b(VrLMBmKK6}ZNithX0E7$%Z2gVWFL36o!29x(1Igx7o_au z#qG8j>S%7az=jp%wI=@Z;B5@gXWVVsva#Y(s?LVxUKmoXJ5&exLGfow%C(M%);WBH zS}FK*Bapp|l3Z$c3Y`eD3QG+f8x`hyQ2oLPkFBGY%AU>eLyJU|24lC`GvcGk9~qSB z(s_T_=i&7X-r$cX{TxQ3UaZveL3fCsJk)n#{qwtB)HPwOTZzQ$z4vvYc8X6wXWr;_ z^Y)$?IbpyEv_XCIENR6sLBD=9@-! zfy3hh3A-U%)P^*Fh^UUOs7D6$P2h*c%RD=bF4GzuUP^6)*agul zdTJQ5xaXc}5_tR%D&G3$*70cLh)bJ~&_DbbB6Yp`nXZ{6>IbA-^Zhoa9HE%t!r%bt2CiIYLRtcgu%#&~3OvOtf zS&tGC=d5iOo*dp>MG_WUXzqwOym|UEZfo{(?hXC2h)`1t!dL&hY}*in z0HLC~-u!1oIpphXR3<@Ubp^ZlLxQXrGVsTl+a6iYe)RYRkkklEaRbkD0og2;-B)Vu zaQ5wGxPf0i1819TuIl0K+~>*imk8;oC!tam&{W_H@xc*IP{Y`HLYx{TkW z#`IRZAgD#d`fxD3)ENVA743bADlWYFR-qQA8Pod^I(ls~-!wCq^KXyZbg1+Ygbug4 zOCKJyJ0$RDbk7hGmF+&7oX#v|b=xLVd5*U1q%H>I(kqGzXa6#KfB^GF+CIIaT>Gou zvzhWh_B}<|ZCEdIb^&CkJ&L$Wq3+^!+TYd$3;_JyANCEaAb&jfi$7k8gWMRY{0#V3jhO1i9xg&boZ}6 zpqgi$yETv=W#2LWURQv60AkWVJyQ?D0L2iv9T{@G%DWLFFmYu#u7<_C+h|0g$3_Ce zAp|!n9zx#IHt+YO_oi9@Hil3Ekmo;$A%J+^J}FRUU<`pj6Zq+OF$8k=KgAH19e{eO z34PZy!5Lj<*eV+Ei@%K_*Z}YU%;4$g17Q98I9zrF>GkY8*57(T1Mq}?;l&`Ff5zec7y_oppJE8hPCyLRA90GG zFn*39fG~cEAu#C}U05_>QC{-4GF~oCaQhG8w|0IoV6lR1FaX97;Qsew2!a4T{@qq- zEI>WpMSQo_-~A#4=ojGGH}}ta`o&fff5!`e^C>9%0FM&z9eCYupcn#f8Y>VZspz*D zz!(DZj~Id-u-|`)A<)A~Keu_9U}@NuimRlGdIX2q$#g@fE_*tHivb1(_q!Ovf9vA^ ze^M7e44~lyU{CYA29gR**S4VC*TH?WyC4@Z2ikJMQuuEs;pTi5>YF(GRd`tLxRasL42x zSNfqO9KS+2Sw+7YL3j594>x_~fhyoh>}lob_bo8@0Q{CvJdfWo^h7s$ZAy<@()(D2 z^6ECj-A`iIyM%IS{}E3+b8@FRw;E06Hu~0zo|;_D=p@#$?H#vRWy@#F+tqL2i!m@u zBVzsch&gcn06FA+zt#_!NB=%omz_a=P5k>j`rGH2P+A>Q0_LjDz30?{^T_TWzXs&1 zzy_SF_=SJs<;yN0zgG8K3|s)lKXuF?44^`P^Kuc_2lE#eR8t;I6L(Q@#_1T7tRhbi zt4KaUbnXqI8rmH)2sOhio$>M>%`zus@5sXBL7-MG;<-0_QLrPp7aZN=kTWrlP~J@y zE@>#}JCBXk({KCuafi?x|dykj@TC4wcQq9$ex`bAH{SCRE z-d?lIj)u-C`?eLLHRq@ZpZ_Xro%50RqXQWomq*wp#z_<&FOa^JNMDzTzChU1P0jAr>H}?R58~xTrExZ}U&m062IfDW{+I7${%j5BdJ;^CR40s~8Rt zFaIZ}|6M*PPj6dngg(ANnxkOlhHo&jgD7g7=m```+5}N)DD1uD0ik>P%se4Y)baAQ zgpepMaa~ASLvljMu5fAwl>ua^e!h^Y%LHreuZF?!9zlATh`AmOwp=#t(l^%&vY@e{ zO^|X__JsGcF+XUQ=01B^dyfjAgk(j$eY!=Nl< zYuxdaEQlagWQTUch&u||F}ooKo7C-u$p^vebV&tIxfM31VK~k)pCovceBVFOW9OLSqT6Eo26BB?irKk15j% z0-olbTXCoV@}}_=<<#nEQeNiS8Skjdw^!tmE)9~U<*jw>+wS%ms>Yq{=pFQpIUnIdr< zkz6lKQM7m|z7Q#RhtJhEa~Xtwdh#qvSgkd*e3rm!y{mwah>%j3qIFuxsw{TfZYJ2` zajXN$b3$mRLt=p#SWcNOVRUH3R{lLC+#-mT9QJkF2^8rJ-3E&1+`-PI?*{~v zW=Hz~8TKBo!@(FNdrLa>i_RL)CM~eT zHyKkn*vQ*k~WFSpUHPwjKlcb<-ZMTZVc1LiD!HV%L1 z8_ChuSmm^EdD;BTBK~;VEqUqGVdxV7gK(kJ-7R9X=P0DdZPv?&73k-Xnf;>!tr5kCJk7kxqr+#aEa*WnQO zrj>CCv73m53&D*RJ|%@;B;8eF7OCs`a6;9PCq5BclPWZR1Yx@9D=Uc_2;{P>>y9u3 z7TGmf{E}7)8aiUP=4M>_DO6I0L?)QeVJ47>80@f~0^4P~eA5=GNzeT5L{&$zH7QUU zF?aOT; zkJMlII0ys8$KN`IbV01S$A-}pM|jtJyj>u3n-n!17j!>cegfZPyjtHB)%%IIoA|eU z+!P?sf568mhH+4C&Vr+4M+wK3JrF@jQ^9(5xK5qTLwEKV1ZU_MF)((>3*&g0g z9Zezv_j`-OipM`>aI05aWAhP*#vD)G95$TZ=-oUi4gNr#%D@K7Sx=KoLKiP&DeLW4 z6_gIDz2gql3MBUNXnwzFtA6(E_>-Gl2grco;7!aAgC=X~F9W}gD=vDR=_dKpmCzC& zNV@nX!Cx@5D@X?mV&V76J-kP|!GQDXSKeI;m|y?CjuwGx$|CW<&#wfKU!FnVDz1(N z_^Hpy*AdGvwn|d`8 zm!j>YTm&U0!yQXc*B3K9NptmmdC_=oCFaV)SH8J`4o{KMERAh9;T|{p&8#J8n@AVU zHXjv^VwN?Vlz%uPGd%377zSH4WenlAxH9_$?a|$8wST>YUk%}W%pe5Icyaoo=_~mu zs=LstO;WArc|iSuwoLz98K9nHQwMl%fbYQTego-g(Y6Zmhne5?{L5EW#{&FeJdk_c z>iz7i?g^LB%7&V|6&US}n}zCswOMiYv~NIz_N9ZBXlpg^Q#|U;Tk8ZYM4QD8M+i7^ z61flncsk$$%6ESqNt!vpa{$}}UiTYFKBJ-nP(S?erGNKzJfN>f0P^YHzWO1b6L3ug za#!Zqu(*{=M6v#uSh#LD;@9X+_JK1a!6Uff;CcwbDA zJV3d60cQ>Y8_;h4a|d{NfbYQTegn#dp4bM;NfFo=-SHM zw+V)Lh6Jf)CUs$BIWM=dhf9b;lIW>EE3b4=m3!eH`%Qe&o+e{cM(P)m)2PScmO=S~ zzfS(N)HUQb@8fyGVB0qT=LMUa$4m8s>Xfj-JBQJ`Jrh^E4D+OZ3Nmi}M6Vw{&U=+~ zLfNs(XbW>)MCIivJ5%4z`Cfmuzq28_e}`36gn|8x(LnX92{}9rM}WkuhdBrgDy~eJ z9{@Z+vAzLGT(L#dC3D@lc!n~oz*mu>H%D?t+JR7_?k!gtMH1a7Tr2A`z6S>3Q!2tj zX9RTxZ2WIOERGHC&%KZjy*LEZu4c2hDuUFj?vXnmEQIw6(%V1Y4{BuCXYiJmOASELT_PlIha* zmC@C_CC8oq#t;_e?RJfz6^97d)Lp#_T~4_dwPR$JF0jk3(@ETebF^?ba9_qLaZ6|8O6QhcEtMlQwkFCY z#_)wJO7#YL+2zM;DV#oNA)2Q=U=~Val?Z8BZdE$YS$>;T11Zz;{jt90!fHH&6zCioo)Ld9^-F7njQ4MWq*H>!Mc$8w<=oLldE zlhwC-*kc0&f`+na)wD$E;wT`5968a9>w+GoVaO7kyOwz3{qe|wPL9^SofV6QnH z$Q+d$qcEf$RylgG>_a$A=)8}bP*vq`+{%X7-z!7$!$sH-K7-!2Q0i3(&emDH8J zr9Pv6YIT4!4jU2CnW*5WWy|ZcGw;%p?Btmu@J#Kza}=M))!DF;f3sbg&nxY}e3#37 zZ7$?+R%UNflEkDWO;ehD-jXj}D*DEG^DQwL^>Xw+peIe%Zz1Q)z<76 z%?7sqbY9H;dEib|VudY)seAo-FKlCZBX&&Xq@y;6JSImHYj^P#iqP|S{5zzRWCtXU zuB$6nDJJGNAtXtrIH{D;YUJGd2^8LjuIp}593S;!bKN;ta{`=wqy|pQ3`1gGf0I-@ zzydI2*v)5$M(&xlbZ7KVQdfO%!l2Z@sOlH3RG+jgJ1}qIjVdbowpwg*2M6W3GC$r) zJ-g$(k*%pOFk)W*`sreKg&>57=unN6Uaq3W@RkFn8-pLdjs6K2vERWB!g4C2hiqv! zZ_ZoQBQ$QhdK?k*s}IELa*a*!{U>pv`#q3w7a2F zYZRGksnQBp&%idZCz7KOL(D(04olEyZo|xKwM5Dzp%N^qD>vvNaoX&EWHIybST2sb+`EQ<7`E|41NsNFM6LaZsg$C6y`=Y1s;nh05t=$L zXl)lF#i(-qXXmz!qXgpWS97MAS+7&+_~0kRUADlV)9AO&oVDnPoH-SZSL_K>FV~=7 zV8B0Tfy~j@!FoU|O{HVzu)iw9Td7|wcAXEyTJSnI^QFqN^kHNBW-y-I=l=a|eic>p ztyfUqZmJODM3V@t_+A=_godA)NO@pSB;~2GdV;Pk%xZQU%tWkW#F`?raESP6Eonj! z2CA$Ps()khtyKem(jgGVHdc;u?3Mz&YvV;zd0+}RuA&Gx!T6{e-ToF7k&bE zi3l%Zq2oy?4;#WUt~**8P`{tTAuhRMjE!hUd=MHlw^$1C2&PaLgI=_+bo`Bez?WJ| zTHOxvbNT#Mo0rQOu%asO(9y9f$};wZe73TZQm3MKL}b-YlJM7x)ZeYtAp{uNV>l$_ zdw#vO=zM*`ttQ~gs0l$s9!`Mh9+m8Yt=H8&Yj}|@mb%V!@q{GbQW1UojGl$1K*bhL zS34FuUifihYP?^IbMTXHIL9m8tP>p?D4gXAmPD}`T*&S1)}^5~(QCS>;+WvULOh*R3S z#7Hzolxpgn-(cnrmZ9=ekb^Y(`;>$1*xtw_G%J3X*it=0>fE0kf^W7z6Wk;g zCCa3gInrcV>(KU)U0O(lSsv;+u2Pxi#ybdXe84-c`$obzgzDjFSUEmn50|62gu*i9 zLg7(yKf4WN^Mm3z+ve7?B4iWmNbj$(iqVnFUw09=0>ht>PLL!CyMjv63l8mcLW7WN zx$EZI&GDmuiJGoInp>?Fd#0cU5A}u-31UkR;mudSZWQ8_+}g@xqTV7h>MbT?5!i3( z#t`&;qhlyfB5n8-(?|~qh`T8v=MxE_(_fgt7cDSa_p;$kqX@k)w|i2~V15&5qcJje zS}-;JI-84D8f}+*?WzD~TqE9fbBg;dQ?2G23RtPP=C`*l1!wMIM{}knJ6%FGkNcEa z*@c#D1|pc)q|`8vq7d&w0;_G;lv0hC5f|i)6rJVRQ zwJ-9sv(5r{Pz1n{J}K=hNcrX#R5(Mtl+cgJjefH-97neHJn&gJBMrwZ{`r@Zc&C@0 zVrcW=^*0M&N!qF>o<5vxk>V2YZSfHnKY*S?U2lFXTj~3h9*Sl+#-wA`V0v>^J2Hjo zL;8nX#wtT(eVz!G9ycLB!*HUduyd>3s6}qkV#OG%+MSbgr0|>R8^lzMWbL(IXP;I?GseC3F>VK z!#s6kIne0nvkN|RVNG{Llk94Z*5-msl{_r->^xS@V`W6ajN^W`v}s~+vvf96^R^Lv6T!o#S^UDm#CvR((nrqvT)`fh70U3R^AE6F`5vj>wDYw2*AchAqyQn zd=gb7OBLl`h+ME*?(*SQjj2EPgDdz+1`%dXohj0rW=Y$mffe-ni_yLycV%_1@8a~nx;Wu$@LCa?+ z`ny<+gS2f{mV3O6YCI_7>SqNh-u2*eH=;;n56xuuD9+1@KeaF|8wA<&myNlwW!F=U zgsUi_G#(_Zng{D2o}Vr#uS1iOO=wCmtv?gC4&^V7HE#fE*k@6>zsyx7JfM~@4a%pmgz8()$tk==EiV5 z&x*rC)NO9L@Nu-O&#@u)0_7NGZCKwVAFI?bmQJQMGH?zLK8KCK-8qxgDrA^c&;g^d zMMM3nL|(r@=FX>#v-2>)E%_tWWdAp3F%wmcarmY(rlUjbub;Q;VAW2?9^&c;u@}2R z9b|6LD=ZQ!+&X+a5gNsy$x~j(EZ;eZ%QR-Tan{u=e&*S9H$ZnC%-z4lUQI>o&jMRzYK8l_C@z;yjNlk#|b^e$%lx>OBhT@c?a~ z{+dZjb)kd@*^{o%gC>$C(st|*d>g9wJA_HI8zf3vRU6JR2qeL+l^fF~STWa^Co-lV zs_*X!@Ex{UN4u0xUFX@{QbpsZD0$RP7@kz+HKb(X%J8wx1?;24wD462xv~|I#Av&+ z9ykV|T8wX}Y~gh?&h7Z!>R?JnZPi7ko3x&t{`|^3Z4B)lRMs-l9;WQFV5CWS4Ytxp9~9C6!tR6> zhO;l|WENb{Gjl1@<)&5Rx26^G1vt;LJx;;JPXK4Zze?F&TBfOdP**TFVuI+@UIzPx zGdPYlTXNYsDDh?EU_Nt5-h?C$?pqgkXR#@|(TmOsWMPqNge;xX2(CR>^WHoa7w>Yj zwy-Mf^(GlJ}zKwe_n1E*#aWjSc*xi?aXutcEEsUjNVNuUGrxUuE@T=I$NBeIV%s_>{`KRz&A;Mb-Rz(^&d>QWV0_8x zpIpd&jO{;S6cqw7B5}UQivEsa4Q>^8v;T4~^)DEKe+Qm`@u-3M1H3nY@4)MR1I5Wy zi;6&TvcunC0BR@zHL}ltjzPPnB zhkmZ;G9>mUfE>_ob8*hV`#P(D)U8u0Gg%+kT$(gdGG#VJ`rGSjG`voAn9`uUrRNv_RXb2=VEIcf4miJD{+YvHfG!%)fNRP%*dbmW;4|>L z-#}|yA^tT8wW{ug6@ui0h9&r$2ppR+a?)c8wH?kP;LH)Ea;-e2V!QI{yK)l6GI!p z+(X7xWOa@@ye)P^AGifjS>ILOP3KYg+s>5n4`}1S6|acCJMoih6hHaqD=5xLkKB~Z zeFNF(U$c+=H4&YX0W<6tbK@+pOo)al9_wf8W4pb9SdySrKXB9H3cSZ=I;Sw{7td$;ubyr@;p1vH+us=a zo%CpPP;RKgnZ*rOXNP~I%k2AdP!EU0_~oca3WfCQMy9B(!iTffxy^_##U(Dc4@!?) z*2-GNmgBQpVX=Erw7qUQk7J0d8X>9UD@<}#k&?y|jWTuVq&+IxL6HNAUG7q$*S0rLf%I@v%ZIcgK{$z3%T| zix)xD^#k{A%Go5t984oHE}JOmqqf!C3VUI;;DciW(7jX05rJLos5*4|w`rlv?6FsdwvP?Za|LxNr67*^c%N5 z4m(UbbcBneTm4H1%kCl7nZ3m|&6Mhf)J1grw`-nVZzi$U9$Omq2|~ic$?#Ut!$4FM zPO1i1Q3Tk8jyD4Zuc-N?4$wriYLL65 zGW0@Qtv+=nm-X*wE;H_k;WR+iddcZ05&3)-UH?4TvMVh%;mjoBtetK!)5}QI1GO<~ zIDiRQ$+0Ebn>A&SJmdbq0+q%=S6CE0v&_3c1~cSRc*qPPg-(=y*3xD z>0x$Ui|kyYVpGbN7pku2w3S|<&GNIZk}J!z$RL#)Ql~_tIVT2^;E#J;qGa(I*+0(6 zlB(gx?-=NvE=UH8Q9}f`^=WzLdqxD4opt# zbyoSDU>;a(k0`nn{Ry*rnz$gPVI=Brux|LcYhbQm{65ZRe5gZH z$-x%|kD#yKeRAv6J%cZ}`QP+tiaatIOG`Fv}6fkaRw`sB+mmYaCW;opux-8^w z*zVqRaY4v`?u~CkK`c$J52G{`poI9J56V^!UJs@*Z+MUchnOV?KW4G=n^t{7PY|H`AeUZ9>?vGE9hRvz<6c60dW~EY)P+ zhp;NppiOXY{^KkL21fFeU`Xd295iZQxx^0P2efK($@tse?sVmqQnIg_qg2 zEYrZcHf*4Lo`>Akbu=`$jHROD=qUH8_20pk)%0wk`jx8;mqeW` zB)7c?m5YmaJ-?Pu$6Hfh6x!66m2{jDKDm$qwn*y)52e%}lxEZxIMdO8Tg##Ecu(;- z@QlXLSj(tfe&6*GS^LRi#p11aJ4?r)rmCGla>gL$fM}4oYnAKMSNk*lVdQ@PEM`)E z_7yLw8fkiV;yl(K9^=zrQ<$J^<;qWKb-Rf`Hi6gKQ88JtboKYZeroW&WS|{dHkfWu zy$vE?A-rI0_Qkq@t)Qz+pMN`>Y{p*PFD7pum zimD6FZwSXy<^7(FFh^!(Ag?rZG5E|HVYyI0;IaHzGpx!$S!-Hl8mC43den^xex7N2 z=32VjP(qGJ_$xf3+BMGf_Tcd-)F_RjI3CT{R659>Z}81`Xe7>(;97T;6>-GLe33&2 z64q_y_)a@7t0&UlEWDfN8q)bH9z`tDv!cF{XSbv#jKTZ96E3Ihwn-3{ptb+A5&AkB z8@ggRwbrLMorhKYGosJ1jNTJ)HKstot+{v(>%}Uut~*{@1*PCpCuteaBG10mJm{+R z|t$;Xn2Rcn)?RlNC3Npzu%SiV zRAytwwZKjUtTbC}%T*!g6kFlL(2X{9Tt-Qn6Nk|B%=FM;!`U(U>gaD97SA2Y^!Z4y z`&XSaj`?Z0*{TzkPl{bs865o%jwV%J<9yY7S8MEG@a;BD(4a@ea|xe$(!}E7YebeZ zHt!TTzTvUYchF!M)UJ!ENrC9nhVATk0!g2x44GUr4U1sj86hv;xrkTs>0XZdTS~JF zuyWCbKPc9TPT!u*6&Y7h6FJ3FmG9uxnZ267@qKsvX})=-O}x4fV$eB3+v_=BeLRZf z>zyQ1mEb)!!?S!LQM0U${AUc4f=xXfFA|BgVyl#=ca+7L3VFh2);^kHZCbk-R0g)r z3bDT;9@kdpe_{|6@F^+yBRMW_FP-tTcl``3bVHvB?Fe?_x6$bwwRA(6t&q7HEBst8 z$ur6W>_()-Gkes&F$LSP)l2q#rJYT737}$xnMy9+OKI;pdWW5$|9UZ%!^cnL6;Vie z()eR#<$9i-JL1RN(b{9jb!G4aY{~Q*dE%*Y8f!$j{God^!sAsX9^tPs5f}!(f#)x3 zy5g@OakA~ad5U*F!E6*IWHb^2d$hU31e1c8=s>Prg8v+vDmud9y@8>8&vWK$R_N>Z z=m|cG2^|!LZrl6CGxE^UBJ-8WTm|-xG3a56O^xb&4nvQ{Ue3vzuB4+G1#nQc);|(n zKMUGJ?oo24cQ)sOh`%#`m5+%0iu{{^*<#QrSaQx+ekMkl8=?ffv$N{|Q^}bJv$?Nv zTr9PdP+Np*t0i4jEkQWKLDE#UDPpPZmQa<0*lANrXp5q>m#QTyv0e?LR2?m-p_ZQr(ez5Yfu(qRY8}csyu%~eB{oO zIh&@22Xto(%B8rACJOnn;>-Um=7ezVFwd0G-jXZOr=>;dB3~PDWHgS(qh4JY!0=DM zH}Z5w-9O}ulJu`JkDXM-BCulZ@(OtzqCBBZm3+71 zcPkQw@Y&wL>=YV)@e`ukR{7=bjBOlpP2DrU>zj@MI$`95Pl(=ULD|QZ7Fy)RNVxLC z&U9wg8*PFmhfnucrxsR=qM4d?dNxe$5b>C|pG`nitj*`436|;<3Wj&)mG4zAH%ABr zhh7Ez(dwfb2n9SH8lasSk$O!V!c8W2Rmmh}zc}p})R*urqTRhNZt+D4KwNHYEGMPY zo9ZQrMch}<$}7$BOaPc#A*1bYJGDuDS6Zf-{KlBGhpNKM#;`Y>IpS}XLy$_~f|#VL zC;s2hWrAqYl}wM~_3){uR6Yl|K$!tOjCH(csTt$K^{%q+g=uiJn<)!75SXsZPYxT@ zO(U3sgn#)kioI%1hmPWgWrd^hard0!=Y~|`J65(Qp^yDPnFTx{PN|4Y>jT5Anvc(6 zCbWk!{LXH*dcrC1b1%UBuU#iA?9vfQ$H#P7Wiw!66+y+-<1 zmP7ZhPVsIUTuR)A;X(?LkR%(}lrxebtkxziz0|MBd^9Gw-8Sr0Brl^s^zvIkL{ zp7xDB{YTh*>-9e)A`|t@jh84Vcip4x8}5|b7I^y4_WQn#@NwH5Q!V;6G{{LhW&tT- z_9=vlzf=zVK=mWW%h^8f4;9=vZs|EyYlulfL&R!uUH)w6l_Ze|?K1Mn^i0nB9Ls?{Sl!tLU^7_NU3P zQmvzT1;>wQz9LdXNDmOb+t|`+FrX(-yWxUXEVIDjs<^z9jRMxc*75x8OP&=l%KTOY zjW*zY(M%&Bu(mDht9-YxRYG6;NJ^e;`#04r7pWM`wCHElO|vvK96B*SYd*~stB=9g z!t(%&&Jh-xmv(og<#jEG+S`&1B+)kKScVzuGx!0o6R*Rd+*sd`T;FzPF7bTFWs4c= zsY(G4n4XFaY6-Y_6QW+8^oYVcp`ARR+SPQ6AGUC#Y)n!y;p6qqQ=43BR4I*)^sI{8 zqYuHL77D}AcBANSZEpMNj>|m+wC))Xkx0vwcV(u#A^lfg)>J5ocd8f$5`o=X$*vU62 zAoeV|5jxQ(2Y^KCW2fs&?RU=VKU1lg9|At&b%e^5h%3aRjpOb}Jstpi>D(X_S!AuNumSmkgqt@q+_fF0vW1LET5VkfFqIjT7$N zIN9-Bsg0RTvYL}uY;{9u>xqY7#(i_m`i^z_NslA?c;~!Y3!Wp3W=-+|tvR}xq}Vta zMwGEYg`KTsXXGKe`B31UqlQI>^$C`l6ZW5y9rk|1!#H+9$Sw-Yyv`|q;Zv1+yU!^4pA2?}hWM* -w traffic.pcap + +Make sure your curl TLS backend support SSLKEYLOGFILE and do: + + $ SSLKEYLOGFILE=traffic.keylog curl --tls-max 1.2 https://host/path + +Decode, decrypt and query. Uses keylog=@ to read option value from keylog file: + + # decode and show whole tree + $ fq -o keylog=@traffic.keylog d traffic.pcap + + # write unencrypted server response to a file. + # first .stream is the TCP stream, second .stream is TLS application data stream + # + # first TCP connections: + $ fq -o keylog=@traffic.keylog '.tcp_connections[0].server.stream.stream | tobytes' traffic.pcap > data + # first TLS connection: + $ fq -o keylog=@traffic.keylog 'first(grep_by(.server.stream | format == "tls")).server.stream.stream | tobytes' > data + +Supported cipher suites for decryption +====================================== + +TLS_DH_ANON_EXPORT_WITH_DES40_CBC_SHA, TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5, TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, +TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA, TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, +TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, TLS_DHE_DSS_WITH_AES_256_CBC_SHA, TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, +TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, TLS_DHE_DSS_WITH_DES_CBC_SHA, TLS_DHE_DSS_WITH_RC4_128_SHA, +TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_DHE_RSA_WITH_AES_128_CBC_SHA, +TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, TLS_DHE_RSA_WITH_AES_256_CBC_SHA, +TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256, +TLS_DHE_RSA_WITH_DES_CBC_SHA, TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, +TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, +TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_ECDSA_WITH_RC4_128_SHA, +TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, +TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, +TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDH_RSA_WITH_RC4_128_SHA, TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, +TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, +TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, +TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384eadAESGCM, +TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, +TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256, +TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, +TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, +TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, +TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, +TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_ECDHE_RSA_WITH_RC4_128_SHA, TLS_PSK_WITH_AES_128_CBC_SHA, +TLS_PSK_WITH_AES_256_CBC_SHA, TLS_PSK_WITH_RC4_128_SHA, TLS_RSA_EXPORT_WITH_DES40_CBC_SHA, TLS_RSA_EXPORT_WITH_RC4_40_MD5, +TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_3DES_EDE_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, TLS_RSA_WITH_AES_128_CBC_SHA, +TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_CBC_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, TLS_RSA_WITH_AES_128_GCM_SHA256, +TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA, TLS_RSA_WITH_AES_256_CBC_SHA256, TLS_RSA_WITH_AES_256_GCM_SHA384, +TLS_RSA_WITH_AES_256_GCM_SHA384, TLS_RSA_WITH_DES_CBC_SHA, TLS_RSA_WITH_RC4_128_MD5, TLS_RSA_WITH_RC4_128_SHA, +TLS_RSA_WITH_RC4_128_SHA + +References +========== + +- RFC 5246: The Transport Layer Security (TLS) Protocol (https://www.rfc-editor.org/rfc/rfc5246) +- RFC 6101: The Secure Sockets Layer (SSL) Protocol Version 3.0 (https://www.rfc-editor.org/rfc/rfc) diff --git a/format/tls/testdata/ja3.fqtest b/format/tls/testdata/ja3.fqtest new file mode 100644 index 00000000..64184b7c --- /dev/null +++ b/format/tls/testdata/ja3.fqtest @@ -0,0 +1,11 @@ +$ fq -L . 'include "ja3"; pcap_ja3' testtls.com.http1.1-tls1.2.pcap +[ + { + "client_ip": "192.168.1.230", + "client_port": 61925, + "ja3": "771,49196-49200-159-52393-52392-52394-49195-49199-158-49188-49192-107-49187-49191-103-49162-49172-57-49161-49171-51-157-156-61-60-53-47-255,0-11-10-16-22-23-13,29-23-30-25-24,0-1-2", + "ja3_digest": "87b9bfc7da97115ed2276737b09f8d74", + "server_ip": "116.203.76.237", + "server_port": 443 + } +] diff --git a/format/tls/testdata/ja3.jq b/format/tls/testdata/ja3.jq new file mode 100644 index 00000000..0133e3cb --- /dev/null +++ b/format/tls/testdata/ja3.jq @@ -0,0 +1,48 @@ +# calculate ja3 client fingerprint +# https://github.com/salesforce/ja3 +# TLSVersion,Ciphers,Extensions,EllipticCurves,EllipticCurvePointFormats +# ex: +# 769,47–53–5–10–49161–49162–49171–49172–50–56–19–4,0–10–11,23–24–25,0 + +# ja3 string +def to_ja3: + def grease_values: + [ 2570,6682,10794,14906,19018,23130,27242,31354 + , 35466,39578,43690,47802,51914,56026,60138,64250 + ]; + ( .records[0].message + | [ [.version | toactual] + , (.cipher_suits | map(toactual) - grease_values) + , ([.extensions[]?.type | toactual] - grease_values) + , ( [.extensions[]? | select(.type=="supported_groups").supported_groups[] | toactual] + | . - grease_values + ) + , [.extensions[]? | select(.type=="ec_point_formats").ex_points_formats[]] + ] + | map(join("-")) + | join(",") + ); + +# ja3 md5 hex digest +def to_ja3_digest: to_ja3 | to_md5 | to_hex; + +# list ja3 string and digest in pcap or pcapng +def pcap_ja3: + [ ( ( if format == "pcap" then . + elif format == "pcapng" then .[] + else error("not a pcap or pcapng decode value") + end + ).tcp_connections[] + | . as {$client,$server} + | .client.stream + | select(format=="tls") + | to_ja3? as $ja3 + | { client_ip: $client.ip + , client_port: ($client.port | toactual) + , server_ip: $server.ip + , server_port: ($server.port | toactual) + , ja3: $ja3 + , ja3_digest: ($ja3 | to_md5 | to_hex) + } + ) + ]; diff --git a/format/tls/testdata/split.jq b/format/tls/testdata/split.jq new file mode 100644 index 00000000..8b072c1b --- /dev/null +++ b/format/tls/testdata/split.jq @@ -0,0 +1,44 @@ +# go run . -L format/tls/testdata -o keylog=@format/tls/testdata/dump.pcapng.keylog -f format/tls/testdata/split.jq format/tls/testdata/dump.pcapng | tar -C format/tls/testdata/ciphers -x + +include "to_tar"; + +def ipv4_tcp_tuple: + ( . as {source_ip: $sip, destination_ip: $dip} + | grep_by(format=="tcp_segment") as {source_port: $sport, destination_port: $dport} + | [[$sip,$sport],[$dip,$dport]] + | sort + ); + +def connetions_tuples: + ( [ grep_by(format=="ipv4_packet") + | ipv4_tcp_tuple + ] + | unique[] + ); + +def to_ipv4_pcap(packets): + # TODO: hack + [ ("d4c3b2a1020004000000000000000000ffff0000e4000000" | from_hex) + , ( packets | tobytes | [band(.size;0xff),band(bsr(.size;8);0xff),0,0] as $sz + | [0,0,0,0,0,0,0,0,$sz,$sz,.]) + ] | tobytes; + +( .[0].blocks +| . as $packets +| to_tar( + ( $packets + | connetions_tuples as $tuple + | to_ipv4_pcap( + ( $packets + | grep_by(format=="ipv4_packet") + | select($tuple ==ipv4_tcp_tuple) + ) + ) + | . as $pcap_bytes + | pcap + | .tcp_connections[0].server.stream.records[0].message as {$cipher_suit} + | {filename: "\($cipher_suit).pcap", data: $pcap_bytes} + ) + ) +) + diff --git a/format/tls/testdata/testtls.com.http1.1-tls1.2.pcap b/format/tls/testdata/testtls.com.http1.1-tls1.2.pcap new file mode 100644 index 0000000000000000000000000000000000000000..3531d019295860fe67501637a94e4104707ea2d4 GIT binary patch literal 28237 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 aziC8#(a8B4NqYNojoDvm%8f4?@%{&j1IeZU literal 0 HcmV?d00001 diff --git a/format/tls/testdata/testtls.com.http1.1-tls1.2.pcap.fqtest b/format/tls/testdata/testtls.com.http1.1-tls1.2.pcap.fqtest new file mode 100644 index 00000000..d31d0acc --- /dev/null +++ b/format/tls/testdata/testtls.com.http1.1-tls1.2.pcap.fqtest @@ -0,0 +1,1951 @@ +$ fq -o keylog=@testtls.com.http1.1-tls1.2.pcap.keylog '.tcp_connections[0] | dv' testtls.com.http1.1-tls1.2.pcap + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|.tcp_connections[0]{}: tcp_connection 0x6e4d-NA (0) + | | | client{}: 0x6e4d-NA (0) + | | | ip: "192.168.1.230" 0x6e4d-NA (0) + | | | port: 61925 0x6e4d-NA (0) + | | | has_start: true 0x6e4d-NA (0) + | | | has_end: true 0x6e4d-NA (0) + | | | skipped_bytes: 0 0x6e4d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x1c4.7 (453) + | | | records[0:6]: 0x0-0x1c4.7 (453) + | | | [0]{}: record 0x0-0xe0.7 (225) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 01 | .. | version: "tls1.0" (0x301) (valid) 0x1-0x2.7 (2) + 0x000000| 00 dc | .. | length: 220 0x3-0x4.7 (2) + | | | message{}: 0x5-0xe0.7 (220) + 0x000000| 01 | . | type: "client_hello" (1) 0x5-0x5.7 (1) + 0x000000| 00 00 d8 | ... | length: 216 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 0a e9 3f 8b | ..?. | gmt_unix_time: 183058315 (1975-10-20T17:31:55Z) 0xb-0xe.7 (4) + 0x000000| ef| .| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|ae 62 f4 75 36 31 f2 14 4f 93 43 21 91 39 8f 83|.b.u61..O.C!.9..| + 0x000002|fe 9c 2b df c3 64 7d f3 da 80 37 |..+..d}...7 | + 0x000002| 00 | . | session_id_length: 0 0x2b-0x2b.7 (1) + | | | session_id: raw bits 0x2c-NA (0) + 0x000002| 00 38 | .8 | cipher_suits_length: 56 0x2c-0x2d.7 (2) + | | | cipher_suits[0:28]: 0x2e-0x65.7 (56) + 0x000002| c0 2c| .,| [0]: "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384" (0xc02c) cipher_suit 0x2e-0x2f.7 (2) + 0x000003|c0 30 |.0 | [1]: "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384" (0xc030) cipher_suit 0x30-0x31.7 (2) + 0x000003| 00 9f | .. | [2]: "TLS_DHE_RSA_WITH_AES_256_GCM_SHA384" (0x9f) cipher_suit 0x32-0x33.7 (2) + 0x000003| cc a9 | .. | [3]: "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256" (0xcca9) cipher_suit 0x34-0x35.7 (2) + 0x000003| cc a8 | .. | [4]: "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256" (0xcca8) cipher_suit 0x36-0x37.7 (2) + 0x000003| cc aa | .. | [5]: "TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256" (0xccaa) cipher_suit 0x38-0x39.7 (2) + 0x000003| c0 2b | .+ | [6]: "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256" (0xc02b) cipher_suit 0x3a-0x3b.7 (2) + 0x000003| c0 2f | ./ | [7]: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" (0xc02f) cipher_suit 0x3c-0x3d.7 (2) + 0x000003| 00 9e| ..| [8]: "TLS_DHE_RSA_WITH_AES_128_GCM_SHA256" (0x9e) cipher_suit 0x3e-0x3f.7 (2) + 0x000004|c0 24 |.$ | [9]: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384" (0xc024) cipher_suit 0x40-0x41.7 (2) + 0x000004| c0 28 | .( | [10]: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384" (0xc028) cipher_suit 0x42-0x43.7 (2) + 0x000004| 00 6b | .k | [11]: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA256" (0x6b) cipher_suit 0x44-0x45.7 (2) + 0x000004| c0 23 | .# | [12]: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256" (0xc023) cipher_suit 0x46-0x47.7 (2) + 0x000004| c0 27 | .' | [13]: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256" (0xc027) cipher_suit 0x48-0x49.7 (2) + 0x000004| 00 67 | .g | [14]: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA256" (0x67) cipher_suit 0x4a-0x4b.7 (2) + 0x000004| c0 0a | .. | [15]: "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA" (0xc00a) cipher_suit 0x4c-0x4d.7 (2) + 0x000004| c0 14| ..| [16]: "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA" (0xc014) cipher_suit 0x4e-0x4f.7 (2) + 0x000005|00 39 |.9 | [17]: "TLS_DHE_RSA_WITH_AES_256_CBC_SHA" (0x39) cipher_suit 0x50-0x51.7 (2) + 0x000005| c0 09 | .. | [18]: "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA" (0xc009) cipher_suit 0x52-0x53.7 (2) + 0x000005| c0 13 | .. | [19]: "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA" (0xc013) cipher_suit 0x54-0x55.7 (2) + 0x000005| 00 33 | .3 | [20]: "TLS_DHE_RSA_WITH_AES_128_CBC_SHA" (0x33) cipher_suit 0x56-0x57.7 (2) + 0x000005| 00 9d | .. | [21]: "TLS_RSA_WITH_AES_256_GCM_SHA384" (0x9d) cipher_suit 0x58-0x59.7 (2) + 0x000005| 00 9c | .. | [22]: "TLS_RSA_WITH_AES_128_GCM_SHA256" (0x9c) cipher_suit 0x5a-0x5b.7 (2) + 0x000005| 00 3d | .= | [23]: "TLS_RSA_WITH_AES_256_CBC_SHA256" (0x3d) cipher_suit 0x5c-0x5d.7 (2) + 0x000005| 00 3c| .<| [24]: "TLS_RSA_WITH_AES_128_CBC_SHA256" (0x3c) cipher_suit 0x5e-0x5f.7 (2) + 0x000006|00 35 |.5 | [25]: "TLS_RSA_WITH_AES_256_CBC_SHA" (0x35) cipher_suit 0x60-0x61.7 (2) + 0x000006| 00 2f | ./ | [26]: "TLS_RSA_WITH_AES_128_CBC_SHA" (0x2f) cipher_suit 0x62-0x63.7 (2) + 0x000006| 00 ff | .. | [27]: "TLS_EMPTY_RENEGOTIATION_INFO_SCSV" (0xff) cipher_suit 0x64-0x65.7 (2) + 0x000006| 01 | . | compression_methods_length: 1 0x66-0x66.7 (1) + | | | compression_methods[0:1]: 0x67-0x67.7 (1) + 0x000006| 00 | . | [0]: "null" (0x0) compression_method 0x67-0x67.7 (1) + 0x000006| 00 77 | .w | extensions_length: 119 0x68-0x69.7 (2) + | | | extensions[0:7]: 0x6a-0xe0.7 (119) + | | | [0]{}: extension 0x6a-0x7d.7 (20) + 0x000006| 00 00 | .. | type: "server_name" (0) 0x6a-0x6b.7 (2) + 0x000006| 00 10 | .. | length: 16 0x6c-0x6d.7 (2) + 0x000006| 00 0e| ..| serer_names_length: 14 0x6e-0x6f.7 (2) + | | | server_names[0:1]: 0x70-0x7d.7 (14) + | | | [0]{}: server_name 0x70-0x7d.7 (14) + 0x000007|00 |. | type: 0 0x70-0x70.7 (1) + 0x000007| 00 0b | .. | length: 11 0x71-0x72.7 (2) + 0x000007| 74 65 73 74 74 6c 73 2e 63 6f 6d | testtls.com | name: "testtls.com" 0x73-0x7d.7 (11) + | | | [1]{}: extension 0x7e-0x85.7 (8) + 0x000007| 00 0b| ..| type: "ec_point_formats" (11) 0x7e-0x7f.7 (2) + 0x000008|00 04 |.. | length: 4 0x80-0x81.7 (2) + 0x000008| 03 | . | ex_points_format_length: 3 0x82-0x82.7 (1) + | | | ex_points_formats[0:3]: 0x83-0x85.7 (3) + 0x000008| 00 | . | [0]: 0x0 ex_points_format 0x83-0x83.7 (1) + 0x000008| 01 | . | [1]: 0x1 ex_points_format 0x84-0x84.7 (1) + 0x000008| 02 | . | [2]: 0x2 ex_points_format 0x85-0x85.7 (1) + | | | [2]{}: extension 0x86-0x95.7 (16) + 0x000008| 00 0a | .. | type: "supported_groups" (10) 0x86-0x87.7 (2) + 0x000008| 00 0c | .. | length: 12 0x88-0x89.7 (2) + 0x000008| 00 0a | .. | supported_group_length: 10 0x8a-0x8b.7 (2) + | | | supported_groups[0:5]: 0x8c-0x95.7 (10) + 0x000008| 00 1d | .. | [0]: 0x1d supported_group 0x8c-0x8d.7 (2) + 0x000008| 00 17| ..| [1]: 0x17 supported_group 0x8e-0x8f.7 (2) + 0x000009|00 1e |.. | [2]: 0x1e supported_group 0x90-0x91.7 (2) + 0x000009| 00 19 | .. | [3]: 0x19 supported_group 0x92-0x93.7 (2) + 0x000009| 00 18 | .. | [4]: 0x18 supported_group 0x94-0x95.7 (2) + | | | [3]{}: extension 0x96-0xa4.7 (15) + 0x000009| 00 10 | .. | type: "application_layer_protocol_negotiation" (16) 0x96-0x97.7 (2) + 0x000009| 00 0b | .. | length: 11 0x98-0x99.7 (2) + 0x000009| 00 09 | .. | serer_names_length: 9 0x9a-0x9b.7 (2) + | | | protocols[0:1]: 0x9c-0xa4.7 (9) + | | | [0]{}: protocol 0x9c-0xa4.7 (9) + 0x000009| 08 | . | length: 8 0x9c-0x9c.7 (1) + 0x000009| 68 74 74| htt| name: "http/1.1" 0x9d-0xa4.7 (8) + 0x00000a|70 2f 31 2e 31 |p/1.1 | + | | | [4]{}: extension 0xa5-0xa8.7 (4) + 0x00000a| 00 16 | .. | type: "encrypt_then_mac" (22) 0xa5-0xa6.7 (2) + 0x00000a| 00 00 | .. | length: 0 0xa7-0xa8.7 (2) + | | | [5]{}: extension 0xa9-0xac.7 (4) + 0x00000a| 00 17 | .. | type: "extended_master_secret" (23) 0xa9-0xaa.7 (2) + 0x00000a| 00 00 | .. | length: 0 0xab-0xac.7 (2) + | | | [6]{}: extension 0xad-0xe0.7 (52) + 0x00000a| 00 0d | .. | type: "signature_algorithms" (13) 0xad-0xae.7 (2) + 0x00000a| 00| .| length: 48 0xaf-0xb0.7 (2) + 0x00000b|30 |0 | + 0x00000b| 00 2e | .. | signature_algorithm_length: 46 0xb1-0xb2.7 (2) + | | | signature_algorithms[0:23]: 0xb3-0xe0.7 (46) + | | | [0]{}: signature_algorithm 0xb3-0xb4.7 (2) + 0x00000b| 04 | . | hash: "sha256" (4) 0xb3-0xb3.7 (1) + 0x00000b| 03 | . | signature: "ecdsa" (3) 0xb4-0xb4.7 (1) + | | | [1]{}: signature_algorithm 0xb5-0xb6.7 (2) + 0x00000b| 05 | . | hash: "sha384" (5) 0xb5-0xb5.7 (1) + 0x00000b| 03 | . | signature: "ecdsa" (3) 0xb6-0xb6.7 (1) + | | | [2]{}: signature_algorithm 0xb7-0xb8.7 (2) + 0x00000b| 06 | . | hash: "sha512" (6) 0xb7-0xb7.7 (1) + 0x00000b| 03 | . | signature: "ecdsa" (3) 0xb8-0xb8.7 (1) + | | | [3]{}: signature_algorithm 0xb9-0xba.7 (2) + 0x00000b| 08 | . | hash: "intrinsic" (8) 0xb9-0xb9.7 (1) + 0x00000b| 07 | . | signature: "ed25519" (7) 0xba-0xba.7 (1) + | | | [4]{}: signature_algorithm 0xbb-0xbc.7 (2) + 0x00000b| 08 | . | hash: "intrinsic" (8) 0xbb-0xbb.7 (1) + 0x00000b| 08 | . | signature: "ed448" (8) 0xbc-0xbc.7 (1) + | | | [5]{}: signature_algorithm 0xbd-0xbe.7 (2) + 0x00000b| 08 | . | hash: "intrinsic" (8) 0xbd-0xbd.7 (1) + 0x00000b| 09 | . | signature: 9 0xbe-0xbe.7 (1) + | | | [6]{}: signature_algorithm 0xbf-0xc0.7 (2) + 0x00000b| 08| .| hash: "intrinsic" (8) 0xbf-0xbf.7 (1) + 0x00000c|0a |. | signature: 10 0xc0-0xc0.7 (1) + | | | [7]{}: signature_algorithm 0xc1-0xc2.7 (2) + 0x00000c| 08 | . | hash: "intrinsic" (8) 0xc1-0xc1.7 (1) + 0x00000c| 0b | . | signature: 11 0xc2-0xc2.7 (1) + | | | [8]{}: signature_algorithm 0xc3-0xc4.7 (2) + 0x00000c| 08 | . | hash: "intrinsic" (8) 0xc3-0xc3.7 (1) + 0x00000c| 04 | . | signature: 4 0xc4-0xc4.7 (1) + | | | [9]{}: signature_algorithm 0xc5-0xc6.7 (2) + 0x00000c| 08 | . | hash: "intrinsic" (8) 0xc5-0xc5.7 (1) + 0x00000c| 05 | . | signature: 5 0xc6-0xc6.7 (1) + | | | [10]{}: signature_algorithm 0xc7-0xc8.7 (2) + 0x00000c| 08 | . | hash: "intrinsic" (8) 0xc7-0xc7.7 (1) + 0x00000c| 06 | . | signature: 6 0xc8-0xc8.7 (1) + | | | [11]{}: signature_algorithm 0xc9-0xca.7 (2) + 0x00000c| 04 | . | hash: "sha256" (4) 0xc9-0xc9.7 (1) + 0x00000c| 01 | . | signature: "rsa" (1) 0xca-0xca.7 (1) + | | | [12]{}: signature_algorithm 0xcb-0xcc.7 (2) + 0x00000c| 05 | . | hash: "sha384" (5) 0xcb-0xcb.7 (1) + 0x00000c| 01 | . | signature: "rsa" (1) 0xcc-0xcc.7 (1) + | | | [13]{}: signature_algorithm 0xcd-0xce.7 (2) + 0x00000c| 06 | . | hash: "sha512" (6) 0xcd-0xcd.7 (1) + 0x00000c| 01 | . | signature: "rsa" (1) 0xce-0xce.7 (1) + | | | [14]{}: signature_algorithm 0xcf-0xd0.7 (2) + 0x00000c| 03| .| hash: "sha224" (3) 0xcf-0xcf.7 (1) + 0x00000d|03 |. | signature: "ecdsa" (3) 0xd0-0xd0.7 (1) + | | | [15]{}: signature_algorithm 0xd1-0xd2.7 (2) + 0x00000d| 02 | . | hash: "sha1" (2) 0xd1-0xd1.7 (1) + 0x00000d| 03 | . | signature: "ecdsa" (3) 0xd2-0xd2.7 (1) + | | | [16]{}: signature_algorithm 0xd3-0xd4.7 (2) + 0x00000d| 03 | . | hash: "sha224" (3) 0xd3-0xd3.7 (1) + 0x00000d| 01 | . | signature: "rsa" (1) 0xd4-0xd4.7 (1) + | | | [17]{}: signature_algorithm 0xd5-0xd6.7 (2) + 0x00000d| 02 | . | hash: "sha1" (2) 0xd5-0xd5.7 (1) + 0x00000d| 01 | . | signature: "rsa" (1) 0xd6-0xd6.7 (1) + | | | [18]{}: signature_algorithm 0xd7-0xd8.7 (2) + 0x00000d| 03 | . | hash: "sha224" (3) 0xd7-0xd7.7 (1) + 0x00000d| 02 | . | signature: "dsa" (2) 0xd8-0xd8.7 (1) + | | | [19]{}: signature_algorithm 0xd9-0xda.7 (2) + 0x00000d| 02 | . | hash: "sha1" (2) 0xd9-0xd9.7 (1) + 0x00000d| 02 | . | signature: "dsa" (2) 0xda-0xda.7 (1) + | | | [20]{}: signature_algorithm 0xdb-0xdc.7 (2) + 0x00000d| 04 | . | hash: "sha256" (4) 0xdb-0xdb.7 (1) + 0x00000d| 02 | . | signature: "dsa" (2) 0xdc-0xdc.7 (1) + | | | [21]{}: signature_algorithm 0xdd-0xde.7 (2) + 0x00000d| 05 | . | hash: "sha384" (5) 0xdd-0xdd.7 (1) + 0x00000d| 02 | . | signature: "dsa" (2) 0xde-0xde.7 (1) + | | | [22]{}: signature_algorithm 0xdf-0xe0.7 (2) + 0x00000d| 06| .| hash: "sha512" (6) 0xdf-0xdf.7 (1) + 0x00000e|02 |. | signature: "dsa" (2) 0xe0-0xe0.7 (1) + | | | [1]{}: record 0xe1-0x10a.7 (42) + 0x00000e| 16 | . | type: "handshake" (22) (valid) 0xe1-0xe1.7 (1) + 0x00000e| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0xe2-0xe3.7 (2) + 0x00000e| 00 25 | .% | length: 37 0xe4-0xe5.7 (2) + | | | message{}: 0xe6-0x10a.7 (37) + 0x00000e| 10 | . | type: "client_key_exchange" (16) 0xe6-0xe6.7 (1) + 0x00000e| 00 00 21 | ..! | length: 33 0xe7-0xe9.7 (3) + | | | public{}: 0xea-NA (0) + 0x00000e| 20 | | length: 32 0xea-0xea.7 (1) + 0x00000e| f6 88 a8 a3 c6| .....| data: raw bits 0xeb-0x10a.7 (32) + 0x00000f|71 70 e2 75 cb 25 8e c8 f0 fb 14 57 31 2a c3 e5|qp.u.%.....W1*..| + 0x000010|5c 9e 0d a1 43 bc 23 8e 25 4a 17 |\...C.#.%J. | + | | | [2]{}: record 0x10b-0x110.7 (6) + 0x000010| 14 | . | type: "change_cipher_spec" (20) (valid) 0x10b-0x10b.7 (1) + 0x000010| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x10c-0x10d.7 (2) + 0x000010| 00 01| ..| length: 1 0x10e-0x10f.7 (2) + | | | message{}: 0x110-0x110.7 (1) + 0x000011|01 |. | type: 1 0x110-0x110.7 (1) + | | | [3]{}: record 0x111-0x13d.7 (45) + 0x000011| 16 | . | type: "handshake" (22) (valid) 0x111-0x111.7 (1) + 0x000011| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x112-0x113.7 (2) + 0x000011| 00 28 | .( | length: 40 0x114-0x115.7 (2) + 0x000011| ac 91 98 bd 48 6b 6e 3c d8 84| ....Hkn<..| encrypted_data: raw bits 0x116-0x13d.7 (40) + 0x000012|6a e9 30 57 0c 87 68 82 17 58 bc c4 23 69 a8 68|j.0W..h..X..#i.h| + 0x000013|e5 d1 70 80 ff 08 6f 3f cf f6 b4 b3 51 d9 |..p...o?....Q. | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0xf.7 (16) + 0x0000|14 |. | type: "finished" (20) 0x0-0x0.7 (1) + 0x0000| 00 00 0c | ... | length: 12 0x1-0x3.7 (3) + 0x0000| b0 0b c8 f1 b1 48 23 1c eb 5c e8 82| .....H#..\..| verify_data: raw bits 0x4-0xf.7 (12) + | | | [4]{}: record 0x13e-0x1a5.7 (104) + 0x000013| 17 | . | type: "application_data" (23) (valid) 0x13e-0x13e.7 (1) + 0x000013| 03| .| version: "tls1.2" (0x303) (valid) 0x13f-0x140.7 (2) + 0x000014|03 |. | + 0x000014| 00 63 | .c | length: 99 0x141-0x142.7 (2) + 0x000014| ac 91 98 bd 48 6b 6e 3d 76 cf c0 2e 0f| ....Hkn=v....| encrypted_data: raw bits 0x143-0x1a5.7 (99) + 0x000015|40 1c de f0 2d d4 23 49 ba 99 1b c4 ba 2e b1 84|@...-.#I........| + * |until 0x1a5.7 (99) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a|GET / HTTP/1.1..| message: raw bits 0x0-0x4a.7 (75) + * |until 0x4a.7 (end) (75) | | + | | | [5]{}: record 0x1a6-0x1c4.7 (31) + 0x00001a| 15 | . | type: "alert" (21) (valid) 0x1a6-0x1a6.7 (1) + 0x00001a| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1a7-0x1a8.7 (2) + 0x00001a| 00 1a | .. | length: 26 0x1a9-0x1aa.7 (2) + 0x00001a| ac 91 98 bd 48| ....H| encrypted_data: raw bits 0x1ab-0x1c4.7 (26) + 0x00001b|6b 6e 3e 56 f4 62 cc e8 aa b6 c9 af 10 7b db aa|kn>V.b.......{..| + 0x00001c|9b aa 57 53 9a| |..WS.| | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| message{}: 0x0-0x1.7 (2) + 0x0000|01 |. | level: "warning" (1) 0x0-0x0.7 (1) + 0x0000| 00| | .| | description: "close_notify" (0) 0x1-0x1.7 (1) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|47 45 54 20 2f 20 48 54 54 50 2f 31 2e 31 0d 0a|GET / HTTP/1.1..| stream: raw bits 0x0-0x4a.7 (75) + * |until 0x4a.7 (end) (75) | | + | | | server{}: 0x6e4d-NA (0) + | | | ip: "116.203.76.237" 0x6e4d-NA (0) + | | | port: "https" (443) (http protocol over TLS/SSL) 0x6e4d-NA (0) + | | | has_start: true 0x6e4d-NA (0) + | | | has_end: true 0x6e4d-NA (0) + | | | skipped_bytes: 0 0x6e4d-NA (0) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| stream{}: (tls) 0x0-0x5d33.7 (23860) + | | | records[0:8]: 0x0-0x5d33.7 (23860) + | | | [0]{}: record 0x0-0x74.7 (117) + 0x000000|16 |. | type: "handshake" (22) (valid) 0x0-0x0.7 (1) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x1-0x2.7 (2) + 0x000000| 00 70 | .p | length: 112 0x3-0x4.7 (2) + | | | message{}: 0x5-0x74.7 (112) + 0x000000| 02 | . | type: "server_hello" (2) 0x5-0x5.7 (1) + 0x000000| 00 00 6c | ..l | length: 108 0x6-0x8.7 (3) + 0x000000| 03 03 | .. | version: "tls1.2" (0x303) 0x9-0xa.7 (2) + | | | random{}: 0xb-0x2a.7 (32) + 0x000000| 32 60 fa 11 | 2`.. | gmt_unix_time: 845216273 (1996-10-13T14:17:53Z) 0xb-0xe.7 (4) + 0x000000| 60| `| random_bytes: raw bits 0xf-0x2a.7 (28) + 0x000001|5a 58 17 74 fc 44 27 78 48 33 37 b7 e1 51 dd 58|ZX.t.D'xH37..Q.X| + 0x000002|3c 7c 69 44 4f 57 4e 47 52 44 01 |<|iDOWNGRD. | + 0x000002| 20 | | session_id_length: 32 0x2b-0x2b.7 (1) + 0x000002| 98 88 f5 a7| ....| session_id: raw bits 0x2c-0x4b.7 (32) + 0x000003|9d 5a 02 a4 ba 46 71 78 39 4d e1 15 b7 68 87 ef|.Z...Fqx9M...h..| + 0x000004|81 94 37 c5 db e0 d7 fa 81 ed e0 14 |..7......... | + 0x000004| c0 2f | ./ | cipher_suit: "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256" (0xc02f) 0x4c-0x4d.7 (2) + 0x000004| 00 | . | compression_method: "null" (0x0) 0x4e-0x4e.7 (1) + 0x000004| 00| .| extensions_length: 36 0x4f-0x50.7 (2) + 0x000005|24 |$ | + | | | extensions[0:5]: 0x51-0x74.7 (36) + | | | [0]{}: extension 0x51-0x55.7 (5) + 0x000005| ff 01 | .. | type: "renegotiation_info" (65281) 0x51-0x52.7 (2) + 0x000005| 00 01 | .. | length: 1 0x53-0x54.7 (2) + 0x000005| 00 | . | data: raw bits 0x55-0x55.7 (1) + | | | [1]{}: extension 0x56-0x59.7 (4) + 0x000005| 00 00 | .. | type: "server_name" (0) 0x56-0x57.7 (2) + 0x000005| 00 00 | .. | length: 0 0x58-0x59.7 (2) + | | | [2]{}: extension 0x5a-0x61.7 (8) + 0x000005| 00 0b | .. | type: "ec_point_formats" (11) 0x5a-0x5b.7 (2) + 0x000005| 00 04 | .. | length: 4 0x5c-0x5d.7 (2) + 0x000005| 03 | . | ex_points_format_length: 3 0x5e-0x5e.7 (1) + | | | ex_points_formats[0:3]: 0x5f-0x61.7 (3) + 0x000005| 00| .| [0]: 0x0 ex_points_format 0x5f-0x5f.7 (1) + 0x000006|01 |. | [1]: 0x1 ex_points_format 0x60-0x60.7 (1) + 0x000006| 02 | . | [2]: 0x2 ex_points_format 0x61-0x61.7 (1) + | | | [3]{}: extension 0x62-0x70.7 (15) + 0x000006| 00 10 | .. | type: "application_layer_protocol_negotiation" (16) 0x62-0x63.7 (2) + 0x000006| 00 0b | .. | length: 11 0x64-0x65.7 (2) + 0x000006| 00 09 | .. | serer_names_length: 9 0x66-0x67.7 (2) + | | | protocols[0:1]: 0x68-0x70.7 (9) + | | | [0]{}: protocol 0x68-0x70.7 (9) + 0x000006| 08 | . | length: 8 0x68-0x68.7 (1) + 0x000006| 68 74 74 70 2f 31 2e| http/1.| name: "http/1.1" 0x69-0x70.7 (8) + 0x000007|31 |1 | + | | | [4]{}: extension 0x71-0x74.7 (4) + 0x000007| 00 17 | .. | type: "extended_master_secret" (23) 0x71-0x72.7 (2) + 0x000007| 00 00 | .. | length: 0 0x73-0x74.7 (2) + | | | [1]{}: record 0x75-0x104a.7 (4054) + 0x000007| 16 | . | type: "handshake" (22) (valid) 0x75-0x75.7 (1) + 0x000007| 03 03 | .. | version: "tls1.2" (0x303) (valid) 0x76-0x77.7 (2) + 0x000007| 0f d1 | .. | length: 4049 0x78-0x79.7 (2) + | | | message{}: 0x7a-0x104a.7 (4049) + 0x000007| 0b | . | type: "certificate" (11) 0x7a-0x7a.7 (1) + 0x000007| 00 0f cd | ... | length: 4045 0x7b-0x7d.7 (3) + 0x000007| 00 0f| ..| certificates_length: 4042 0x7e-0x80.7 (3) + 0x000008|ca |. | + | | | certificates[0:3]: 0x81-0x104a.7 (4042) + | | | [0]{}: certificate 0x81-0x5c6.7 (1350) + 0x000008| 00 05 43 | ..C | length: 1347 0x81-0x83.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x84-0x5c6.7 (1347) + 0x000008| 30 | 0 | class: "universal" (0) 0x84-0x84.1 (0.2) + 0x000008| 30 | 0 | form: "constructed" (1) 0x84.2-0x84.2 (0.1) + 0x000008| 30 | 0 | tag: "sequence" (0x10) 0x84.3-0x84.7 (0.5) + 0x000008| 82 05 3f | ..? | length: 1343 0x85-0x87.7 (3) + | | | constructed[0:3]: 0x88-0x5c6.7 (1343) + | | | [0]{}: object 0x88-0x4b2.7 (1067) + 0x000008| 30 | 0 | class: "universal" (0) 0x88-0x88.1 (0.2) + 0x000008| 30 | 0 | form: "constructed" (1) 0x88.2-0x88.2 (0.1) + 0x000008| 30 | 0 | tag: "sequence" (0x10) 0x88.3-0x88.7 (0.5) + 0x000008| 82 04 27 | ..' | length: 1063 0x89-0x8b.7 (3) + | | | constructed[0:8]: 0x8c-0x4b2.7 (1063) + | | | [0]{}: object 0x8c-0x90.7 (5) + 0x000008| a0 | . | class: "context" (2) 0x8c-0x8c.1 (0.2) + 0x000008| a0 | . | form: "constructed" (1) 0x8c.2-0x8c.2 (0.1) + 0x000008| a0 | . | tag: 0 0x8c.3-0x8c.7 (0.5) + 0x000008| 03 | . | length: 3 0x8d-0x8d.7 (1) + | | | constructed[0:1]: 0x8e-0x90.7 (3) + | | | [0]{}: object 0x8e-0x90.7 (3) + 0x000008| 02 | . | class: "universal" (0) 0x8e-0x8e.1 (0.2) + 0x000008| 02 | . | form: "primitive" (0) 0x8e.2-0x8e.2 (0.1) + 0x000008| 02 | . | tag: "integer" (0x2) 0x8e.3-0x8e.7 (0.5) + 0x000008| 01| .| length: 1 0x8f-0x8f.7 (1) + 0x000009|02 |. | value: 2 0x90-0x90.7 (1) + | | | [1]{}: object 0x91-0xa4.7 (20) + 0x000009| 02 | . | class: "universal" (0) 0x91-0x91.1 (0.2) + 0x000009| 02 | . | form: "primitive" (0) 0x91.2-0x91.2 (0.1) + 0x000009| 02 | . | tag: "integer" (0x2) 0x91.3-0x91.7 (0.5) + 0x000009| 12 | . | length: 18 0x92-0x92.7 (1) + 0x000009| 03 6b 1d d8 07 21 66 14 a0 68 62 40 ae| .k...!f..hb@.| value: 297786740348443350609089518586106012555867 0x93-0xa4.7 (18) + 0x00000a|bb 3c b8 da 5b |.<..[ | + | | | [2]{}: object 0xa5-0xb3.7 (15) + 0x00000a| 30 | 0 | class: "universal" (0) 0xa5-0xa5.1 (0.2) + 0x00000a| 30 | 0 | form: "constructed" (1) 0xa5.2-0xa5.2 (0.1) + 0x00000a| 30 | 0 | tag: "sequence" (0x10) 0xa5.3-0xa5.7 (0.5) + 0x00000a| 0d | . | length: 13 0xa6-0xa6.7 (1) + | | | constructed[0:2]: 0xa7-0xb3.7 (13) + | | | [0]{}: object 0xa7-0xb1.7 (11) + 0x00000a| 06 | . | class: "universal" (0) 0xa7-0xa7.1 (0.2) + 0x00000a| 06 | . | form: "primitive" (0) 0xa7.2-0xa7.2 (0.1) + 0x00000a| 06 | . | tag: "object_identifier" (0x6) 0xa7.3-0xa7.7 (0.5) + 0x00000a| 09 | . | length: 9 0xa8-0xa8.7 (1) + | | | value[0:7]: 0xa9-0xb1.7 (9) + 0x00000a| 2a | * | [0]: 1 oid 0xa9-0xa9.7 (1) + 0x00000a| 2a | * | [1]: 2 oid 0xa9-0xa9.7 (1) + 0x00000a| 86 48 | .H | [2]: 840 oid 0xaa-0xab.7 (2) + 0x00000a| 86 f7 0d | ... | [3]: 113549 oid 0xac-0xae.7 (3) + 0x00000a| 01| .| [4]: 1 oid 0xaf-0xaf.7 (1) + 0x00000b|01 |. | [5]: 1 oid 0xb0-0xb0.7 (1) + 0x00000b| 0b | . | [6]: 11 oid 0xb1-0xb1.7 (1) + | | | [1]{}: object 0xb2-0xb3.7 (2) + 0x00000b| 05 | . | class: "universal" (0) 0xb2-0xb2.1 (0.2) + 0x00000b| 05 | . | form: "primitive" (0) 0xb2.2-0xb2.2 (0.1) + 0x00000b| 05 | . | tag: "null" (0x5) 0xb2.3-0xb2.7 (0.5) + 0x00000b| 00 | . | length: "indefinite" (0) 0xb3-0xb3.7 (1) + | | | value: null 0xb4-NA (0) + | | | [3]{}: object 0xb4-0xe7.7 (52) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb4-0xb4.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb4.2-0xb4.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb4.3-0xb4.7 (0.5) + 0x00000b| 32 | 2 | length: 50 0xb5-0xb5.7 (1) + | | | constructed[0:3]: 0xb6-0xe7.7 (50) + | | | [0]{}: object 0xb6-0xc2.7 (13) + 0x00000b| 31 | 1 | class: "universal" (0) 0xb6-0xb6.1 (0.2) + 0x00000b| 31 | 1 | form: "constructed" (1) 0xb6.2-0xb6.2 (0.1) + 0x00000b| 31 | 1 | tag: "set" (0x11) 0xb6.3-0xb6.7 (0.5) + 0x00000b| 0b | . | length: 11 0xb7-0xb7.7 (1) + | | | constructed[0:1]: 0xb8-0xc2.7 (11) + | | | [0]{}: object 0xb8-0xc2.7 (11) + 0x00000b| 30 | 0 | class: "universal" (0) 0xb8-0xb8.1 (0.2) + 0x00000b| 30 | 0 | form: "constructed" (1) 0xb8.2-0xb8.2 (0.1) + 0x00000b| 30 | 0 | tag: "sequence" (0x10) 0xb8.3-0xb8.7 (0.5) + 0x00000b| 09 | . | length: 9 0xb9-0xb9.7 (1) + | | | constructed[0:2]: 0xba-0xc2.7 (9) + | | | [0]{}: object 0xba-0xbe.7 (5) + 0x00000b| 06 | . | class: "universal" (0) 0xba-0xba.1 (0.2) + 0x00000b| 06 | . | form: "primitive" (0) 0xba.2-0xba.2 (0.1) + 0x00000b| 06 | . | tag: "object_identifier" (0x6) 0xba.3-0xba.7 (0.5) + 0x00000b| 03 | . | length: 3 0xbb-0xbb.7 (1) + | | | value[0:4]: 0xbc-0xbe.7 (3) + 0x00000b| 55 | U | [0]: 2 oid 0xbc-0xbc.7 (1) + 0x00000b| 55 | U | [1]: 5 oid 0xbc-0xbc.7 (1) + 0x00000b| 04 | . | [2]: 4 oid 0xbd-0xbd.7 (1) + 0x00000b| 06 | . | [3]: 6 oid 0xbe-0xbe.7 (1) + | | | [1]{}: object 0xbf-0xc2.7 (4) + 0x00000b| 13| .| class: "universal" (0) 0xbf-0xbf.1 (0.2) + 0x00000b| 13| .| form: "primitive" (0) 0xbf.2-0xbf.2 (0.1) + 0x00000b| 13| .| tag: "printable_string" (0x13) 0xbf.3-0xbf.7 (0.5) + 0x00000c|02 |. | length: 2 0xc0-0xc0.7 (1) + 0x00000c| 55 53 | US | value: "US" 0xc1-0xc2.7 (2) + | | | [1]{}: object 0xc3-0xda.7 (24) + 0x00000c| 31 | 1 | class: "universal" (0) 0xc3-0xc3.1 (0.2) + 0x00000c| 31 | 1 | form: "constructed" (1) 0xc3.2-0xc3.2 (0.1) + 0x00000c| 31 | 1 | tag: "set" (0x11) 0xc3.3-0xc3.7 (0.5) + 0x00000c| 16 | . | length: 22 0xc4-0xc4.7 (1) + | | | constructed[0:1]: 0xc5-0xda.7 (22) + | | | [0]{}: object 0xc5-0xda.7 (22) + 0x00000c| 30 | 0 | class: "universal" (0) 0xc5-0xc5.1 (0.2) + 0x00000c| 30 | 0 | form: "constructed" (1) 0xc5.2-0xc5.2 (0.1) + 0x00000c| 30 | 0 | tag: "sequence" (0x10) 0xc5.3-0xc5.7 (0.5) + 0x00000c| 14 | . | length: 20 0xc6-0xc6.7 (1) + | | | constructed[0:2]: 0xc7-0xda.7 (20) + | | | [0]{}: object 0xc7-0xcb.7 (5) + 0x00000c| 06 | . | class: "universal" (0) 0xc7-0xc7.1 (0.2) + 0x00000c| 06 | . | form: "primitive" (0) 0xc7.2-0xc7.2 (0.1) + 0x00000c| 06 | . | tag: "object_identifier" (0x6) 0xc7.3-0xc7.7 (0.5) + 0x00000c| 03 | . | length: 3 0xc8-0xc8.7 (1) + | | | value[0:4]: 0xc9-0xcb.7 (3) + 0x00000c| 55 | U | [0]: 2 oid 0xc9-0xc9.7 (1) + 0x00000c| 55 | U | [1]: 5 oid 0xc9-0xc9.7 (1) + 0x00000c| 04 | . | [2]: 4 oid 0xca-0xca.7 (1) + 0x00000c| 0a | . | [3]: 10 oid 0xcb-0xcb.7 (1) + | | | [1]{}: object 0xcc-0xda.7 (15) + 0x00000c| 13 | . | class: "universal" (0) 0xcc-0xcc.1 (0.2) + 0x00000c| 13 | . | form: "primitive" (0) 0xcc.2-0xcc.2 (0.1) + 0x00000c| 13 | . | tag: "printable_string" (0x13) 0xcc.3-0xcc.7 (0.5) + 0x00000c| 0d | . | length: 13 0xcd-0xcd.7 (1) + 0x00000c| 4c 65| Le| value: "Let's Encrypt" 0xce-0xda.7 (13) + 0x00000d|74 27 73 20 45 6e 63 72 79 70 74 |t's Encrypt | + | | | [2]{}: object 0xdb-0xe7.7 (13) + 0x00000d| 31 | 1 | class: "universal" (0) 0xdb-0xdb.1 (0.2) + 0x00000d| 31 | 1 | form: "constructed" (1) 0xdb.2-0xdb.2 (0.1) + 0x00000d| 31 | 1 | tag: "set" (0x11) 0xdb.3-0xdb.7 (0.5) + 0x00000d| 0b | . | length: 11 0xdc-0xdc.7 (1) + | | | constructed[0:1]: 0xdd-0xe7.7 (11) + | | | [0]{}: object 0xdd-0xe7.7 (11) + 0x00000d| 30 | 0 | class: "universal" (0) 0xdd-0xdd.1 (0.2) + 0x00000d| 30 | 0 | form: "constructed" (1) 0xdd.2-0xdd.2 (0.1) + 0x00000d| 30 | 0 | tag: "sequence" (0x10) 0xdd.3-0xdd.7 (0.5) + 0x00000d| 09 | . | length: 9 0xde-0xde.7 (1) + | | | constructed[0:2]: 0xdf-0xe7.7 (9) + | | | [0]{}: object 0xdf-0xe3.7 (5) + 0x00000d| 06| .| class: "universal" (0) 0xdf-0xdf.1 (0.2) + 0x00000d| 06| .| form: "primitive" (0) 0xdf.2-0xdf.2 (0.1) + 0x00000d| 06| .| tag: "object_identifier" (0x6) 0xdf.3-0xdf.7 (0.5) + 0x00000e|03 |. | length: 3 0xe0-0xe0.7 (1) + | | | value[0:4]: 0xe1-0xe3.7 (3) + 0x00000e| 55 | U | [0]: 2 oid 0xe1-0xe1.7 (1) + 0x00000e| 55 | U | [1]: 5 oid 0xe1-0xe1.7 (1) + 0x00000e| 04 | . | [2]: 4 oid 0xe2-0xe2.7 (1) + 0x00000e| 03 | . | [3]: 3 oid 0xe3-0xe3.7 (1) + | | | [1]{}: object 0xe4-0xe7.7 (4) + 0x00000e| 13 | . | class: "universal" (0) 0xe4-0xe4.1 (0.2) + 0x00000e| 13 | . | form: "primitive" (0) 0xe4.2-0xe4.2 (0.1) + 0x00000e| 13 | . | tag: "printable_string" (0x13) 0xe4.3-0xe4.7 (0.5) + 0x00000e| 02 | . | length: 2 0xe5-0xe5.7 (1) + 0x00000e| 52 33 | R3 | value: "R3" 0xe6-0xe7.7 (2) + | | | [4]{}: object 0xe8-0x107.7 (32) + 0x00000e| 30 | 0 | class: "universal" (0) 0xe8-0xe8.1 (0.2) + 0x00000e| 30 | 0 | form: "constructed" (1) 0xe8.2-0xe8.2 (0.1) + 0x00000e| 30 | 0 | tag: "sequence" (0x10) 0xe8.3-0xe8.7 (0.5) + 0x00000e| 1e | . | length: 30 0xe9-0xe9.7 (1) + | | | constructed[0:2]: 0xea-0x107.7 (30) + | | | [0]{}: object 0xea-0xf8.7 (15) + 0x00000e| 17 | . | class: "universal" (0) 0xea-0xea.1 (0.2) + 0x00000e| 17 | . | form: "primitive" (0) 0xea.2-0xea.2 (0.1) + 0x00000e| 17 | . | tag: "utc_time" (0x17) 0xea.3-0xea.7 (0.5) + 0x00000e| 0d | . | length: 13 0xeb-0xeb.7 (1) + 0x00000e| 32 33 30 31| 2301| value: "230105073238Z" 0xec-0xf8.7 (13) + 0x00000f|30 35 30 37 33 32 33 38 5a |05073238Z | + | | | [1]{}: object 0xf9-0x107.7 (15) + 0x00000f| 17 | . | class: "universal" (0) 0xf9-0xf9.1 (0.2) + 0x00000f| 17 | . | form: "primitive" (0) 0xf9.2-0xf9.2 (0.1) + 0x00000f| 17 | . | tag: "utc_time" (0x17) 0xf9.3-0xf9.7 (0.5) + 0x00000f| 0d | . | length: 13 0xfa-0xfa.7 (1) + 0x00000f| 32 33 30 34 30| 23040| value: "230405073237Z" 0xfb-0x107.7 (13) + 0x000010|35 30 37 33 32 33 37 5a |5073237Z | + | | | [5]{}: object 0x108-0x11f.7 (24) + 0x000010| 30 | 0 | class: "universal" (0) 0x108-0x108.1 (0.2) + 0x000010| 30 | 0 | form: "constructed" (1) 0x108.2-0x108.2 (0.1) + 0x000010| 30 | 0 | tag: "sequence" (0x10) 0x108.3-0x108.7 (0.5) + 0x000010| 16 | . | length: 22 0x109-0x109.7 (1) + | | | constructed[0:1]: 0x10a-0x11f.7 (22) + | | | [0]{}: object 0x10a-0x11f.7 (22) + 0x000010| 31 | 1 | class: "universal" (0) 0x10a-0x10a.1 (0.2) + 0x000010| 31 | 1 | form: "constructed" (1) 0x10a.2-0x10a.2 (0.1) + 0x000010| 31 | 1 | tag: "set" (0x11) 0x10a.3-0x10a.7 (0.5) + 0x000010| 14 | . | length: 20 0x10b-0x10b.7 (1) + | | | constructed[0:1]: 0x10c-0x11f.7 (20) + | | | [0]{}: object 0x10c-0x11f.7 (20) + 0x000010| 30 | 0 | class: "universal" (0) 0x10c-0x10c.1 (0.2) + 0x000010| 30 | 0 | form: "constructed" (1) 0x10c.2-0x10c.2 (0.1) + 0x000010| 30 | 0 | tag: "sequence" (0x10) 0x10c.3-0x10c.7 (0.5) + 0x000010| 12 | . | length: 18 0x10d-0x10d.7 (1) + | | | constructed[0:2]: 0x10e-0x11f.7 (18) + | | | [0]{}: object 0x10e-0x112.7 (5) + 0x000010| 06 | . | class: "universal" (0) 0x10e-0x10e.1 (0.2) + 0x000010| 06 | . | form: "primitive" (0) 0x10e.2-0x10e.2 (0.1) + 0x000010| 06 | . | tag: "object_identifier" (0x6) 0x10e.3-0x10e.7 (0.5) + 0x000010| 03| .| length: 3 0x10f-0x10f.7 (1) + | | | value[0:4]: 0x110-0x112.7 (3) + 0x000011|55 |U | [0]: 2 oid 0x110-0x110.7 (1) + 0x000011|55 |U | [1]: 5 oid 0x110-0x110.7 (1) + 0x000011| 04 | . | [2]: 4 oid 0x111-0x111.7 (1) + 0x000011| 03 | . | [3]: 3 oid 0x112-0x112.7 (1) + | | | [1]{}: object 0x113-0x11f.7 (13) + 0x000011| 13 | . | class: "universal" (0) 0x113-0x113.1 (0.2) + 0x000011| 13 | . | form: "primitive" (0) 0x113.2-0x113.2 (0.1) + 0x000011| 13 | . | tag: "printable_string" (0x13) 0x113.3-0x113.7 (0.5) + 0x000011| 0b | . | length: 11 0x114-0x114.7 (1) + 0x000011| 74 65 73 74 74 6c 73 2e 63 6f 6d| testtls.com| value: "testtls.com" 0x115-0x11f.7 (11) + | | | [6]{}: object 0x120-0x245.7 (294) + 0x000012|30 |0 | class: "universal" (0) 0x120-0x120.1 (0.2) + 0x000012|30 |0 | form: "constructed" (1) 0x120.2-0x120.2 (0.1) + 0x000012|30 |0 | tag: "sequence" (0x10) 0x120.3-0x120.7 (0.5) + 0x000012| 82 01 22 | .." | length: 290 0x121-0x123.7 (3) + | | | constructed[0:2]: 0x124-0x245.7 (290) + | | | [0]{}: object 0x124-0x132.7 (15) + 0x000012| 30 | 0 | class: "universal" (0) 0x124-0x124.1 (0.2) + 0x000012| 30 | 0 | form: "constructed" (1) 0x124.2-0x124.2 (0.1) + 0x000012| 30 | 0 | tag: "sequence" (0x10) 0x124.3-0x124.7 (0.5) + 0x000012| 0d | . | length: 13 0x125-0x125.7 (1) + | | | constructed[0:2]: 0x126-0x132.7 (13) + | | | [0]{}: object 0x126-0x130.7 (11) + 0x000012| 06 | . | class: "universal" (0) 0x126-0x126.1 (0.2) + 0x000012| 06 | . | form: "primitive" (0) 0x126.2-0x126.2 (0.1) + 0x000012| 06 | . | tag: "object_identifier" (0x6) 0x126.3-0x126.7 (0.5) + 0x000012| 09 | . | length: 9 0x127-0x127.7 (1) + | | | value[0:7]: 0x128-0x130.7 (9) + 0x000012| 2a | * | [0]: 1 oid 0x128-0x128.7 (1) + 0x000012| 2a | * | [1]: 2 oid 0x128-0x128.7 (1) + 0x000012| 86 48 | .H | [2]: 840 oid 0x129-0x12a.7 (2) + 0x000012| 86 f7 0d | ... | [3]: 113549 oid 0x12b-0x12d.7 (3) + 0x000012| 01 | . | [4]: 1 oid 0x12e-0x12e.7 (1) + 0x000012| 01| .| [5]: 1 oid 0x12f-0x12f.7 (1) + 0x000013|01 |. | [6]: 1 oid 0x130-0x130.7 (1) + | | | [1]{}: object 0x131-0x132.7 (2) + 0x000013| 05 | . | class: "universal" (0) 0x131-0x131.1 (0.2) + 0x000013| 05 | . | form: "primitive" (0) 0x131.2-0x131.2 (0.1) + 0x000013| 05 | . | tag: "null" (0x5) 0x131.3-0x131.7 (0.5) + 0x000013| 00 | . | length: "indefinite" (0) 0x132-0x132.7 (1) + | | | value: null 0x133-NA (0) + | | | [1]{}: object 0x133-0x245.7 (275) + 0x000013| 03 | . | class: "universal" (0) 0x133-0x133.1 (0.2) + 0x000013| 03 | . | form: "primitive" (0) 0x133.2-0x133.2 (0.1) + 0x000013| 03 | . | tag: "bit_string" (0x3) 0x133.3-0x133.7 (0.5) + 0x000013| 82 01 0f | ... | length: 271 0x134-0x136.7 (3) + 0x000013| 00 | . | unused_bits_count: 0 0x137-0x137.7 (1) + 0x000013| 30 82 01 0a 02 82 01 01| 0.......| value: raw bits 0x138-0x245.7 (270) + 0x000014|00 bb bb f0 34 b1 bc 32 67 54 38 0d 44 f6 64 97|....4..2gT8.D.d.| + * |until 0x245.7 (270) | | + | | | [7]{}: object 0x246-0x4b2.7 (621) + 0x000024| a3 | . | class: "context" (2) 0x246-0x246.1 (0.2) + 0x000024| a3 | . | form: "constructed" (1) 0x246.2-0x246.2 (0.1) + 0x000024| a3 | . | tag: 3 0x246.3-0x246.7 (0.5) + 0x000024| 82 02 69 | ..i | length: 617 0x247-0x249.7 (3) + | | | constructed[0:1]: 0x24a-0x4b2.7 (617) + | | | [0]{}: object 0x24a-0x4b2.7 (617) + 0x000024| 30 | 0 | class: "universal" (0) 0x24a-0x24a.1 (0.2) + 0x000024| 30 | 0 | form: "constructed" (1) 0x24a.2-0x24a.2 (0.1) + 0x000024| 30 | 0 | tag: "sequence" (0x10) 0x24a.3-0x24a.7 (0.5) + 0x000024| 82 02 65 | ..e | length: 613 0x24b-0x24d.7 (3) + | | | constructed[0:9]: 0x24e-0x4b2.7 (613) + | | | [0]{}: object 0x24e-0x25d.7 (16) + 0x000024| 30 | 0 | class: "universal" (0) 0x24e-0x24e.1 (0.2) + 0x000024| 30 | 0 | form: "constructed" (1) 0x24e.2-0x24e.2 (0.1) + 0x000024| 30 | 0 | tag: "sequence" (0x10) 0x24e.3-0x24e.7 (0.5) + 0x000024| 0e| .| length: 14 0x24f-0x24f.7 (1) + | | | constructed[0:3]: 0x250-0x25d.7 (14) + | | | [0]{}: object 0x250-0x254.7 (5) + 0x000025|06 |. | class: "universal" (0) 0x250-0x250.1 (0.2) + 0x000025|06 |. | form: "primitive" (0) 0x250.2-0x250.2 (0.1) + 0x000025|06 |. | tag: "object_identifier" (0x6) 0x250.3-0x250.7 (0.5) + 0x000025| 03 | . | length: 3 0x251-0x251.7 (1) + | | | value[0:4]: 0x252-0x254.7 (3) + 0x000025| 55 | U | [0]: 2 oid 0x252-0x252.7 (1) + 0x000025| 55 | U | [1]: 5 oid 0x252-0x252.7 (1) + 0x000025| 1d | . | [2]: 29 oid 0x253-0x253.7 (1) + 0x000025| 0f | . | [3]: 15 oid 0x254-0x254.7 (1) + | | | [1]{}: object 0x255-0x257.7 (3) + 0x000025| 01 | . | class: "universal" (0) 0x255-0x255.1 (0.2) + 0x000025| 01 | . | form: "primitive" (0) 0x255.2-0x255.2 (0.1) + 0x000025| 01 | . | tag: "boolean" (0x1) 0x255.3-0x255.7 (0.5) + 0x000025| 01 | . | length: 1 0x256-0x256.7 (1) + 0x000025| ff | . | value: true (255) 0x257-0x257.7 (1) + | | | [2]{}: object 0x258-0x25d.7 (6) + 0x000025| 04 | . | class: "universal" (0) 0x258-0x258.1 (0.2) + 0x000025| 04 | . | form: "primitive" (0) 0x258.2-0x258.2 (0.1) + 0x000025| 04 | . | tag: "octet_string" (0x4) 0x258.3-0x258.7 (0.5) + 0x000025| 04 | . | length: 4 0x259-0x259.7 (1) + 0x000025| 03 02 05 a0 | .... | value: raw bits 0x25a-0x25d.7 (4) + | | | [1]{}: object 0x25e-0x27c.7 (31) + 0x000025| 30 | 0 | class: "universal" (0) 0x25e-0x25e.1 (0.2) + 0x000025| 30 | 0 | form: "constructed" (1) 0x25e.2-0x25e.2 (0.1) + 0x000025| 30 | 0 | tag: "sequence" (0x10) 0x25e.3-0x25e.7 (0.5) + 0x000025| 1d| .| length: 29 0x25f-0x25f.7 (1) + | | | constructed[0:2]: 0x260-0x27c.7 (29) + | | | [0]{}: object 0x260-0x264.7 (5) + 0x000026|06 |. | class: "universal" (0) 0x260-0x260.1 (0.2) + 0x000026|06 |. | form: "primitive" (0) 0x260.2-0x260.2 (0.1) + 0x000026|06 |. | tag: "object_identifier" (0x6) 0x260.3-0x260.7 (0.5) + 0x000026| 03 | . | length: 3 0x261-0x261.7 (1) + | | | value[0:4]: 0x262-0x264.7 (3) + 0x000026| 55 | U | [0]: 2 oid 0x262-0x262.7 (1) + 0x000026| 55 | U | [1]: 5 oid 0x262-0x262.7 (1) + 0x000026| 1d | . | [2]: 29 oid 0x263-0x263.7 (1) + 0x000026| 25 | % | [3]: 37 oid 0x264-0x264.7 (1) + | | | [1]{}: object 0x265-0x27c.7 (24) + 0x000026| 04 | . | class: "universal" (0) 0x265-0x265.1 (0.2) + 0x000026| 04 | . | form: "primitive" (0) 0x265.2-0x265.2 (0.1) + 0x000026| 04 | . | tag: "octet_string" (0x4) 0x265.3-0x265.7 (0.5) + 0x000026| 16 | . | length: 22 0x266-0x266.7 (1) + 0x000026| 30 14 06 08 2b 06 01 05 05| 0...+....| value: raw bits 0x267-0x27c.7 (22) + 0x000027|07 03 01 06 08 2b 06 01 05 05 07 03 02 |.....+....... | + | | | [2]{}: object 0x27d-0x28a.7 (14) + 0x000027| 30 | 0 | class: "universal" (0) 0x27d-0x27d.1 (0.2) + 0x000027| 30 | 0 | form: "constructed" (1) 0x27d.2-0x27d.2 (0.1) + 0x000027| 30 | 0 | tag: "sequence" (0x10) 0x27d.3-0x27d.7 (0.5) + 0x000027| 0c | . | length: 12 0x27e-0x27e.7 (1) + | | | constructed[0:3]: 0x27f-0x28a.7 (12) + | | | [0]{}: object 0x27f-0x283.7 (5) + 0x000027| 06| .| class: "universal" (0) 0x27f-0x27f.1 (0.2) + 0x000027| 06| .| form: "primitive" (0) 0x27f.2-0x27f.2 (0.1) + 0x000027| 06| .| tag: "object_identifier" (0x6) 0x27f.3-0x27f.7 (0.5) + 0x000028|03 |. | length: 3 0x280-0x280.7 (1) + | | | value[0:4]: 0x281-0x283.7 (3) + 0x000028| 55 | U | [0]: 2 oid 0x281-0x281.7 (1) + 0x000028| 55 | U | [1]: 5 oid 0x281-0x281.7 (1) + 0x000028| 1d | . | [2]: 29 oid 0x282-0x282.7 (1) + 0x000028| 13 | . | [3]: 19 oid 0x283-0x283.7 (1) + | | | [1]{}: object 0x284-0x286.7 (3) + 0x000028| 01 | . | class: "universal" (0) 0x284-0x284.1 (0.2) + 0x000028| 01 | . | form: "primitive" (0) 0x284.2-0x284.2 (0.1) + 0x000028| 01 | . | tag: "boolean" (0x1) 0x284.3-0x284.7 (0.5) + 0x000028| 01 | . | length: 1 0x285-0x285.7 (1) + 0x000028| ff | . | value: true (255) 0x286-0x286.7 (1) + | | | [2]{}: object 0x287-0x28a.7 (4) + 0x000028| 04 | . | class: "universal" (0) 0x287-0x287.1 (0.2) + 0x000028| 04 | . | form: "primitive" (0) 0x287.2-0x287.2 (0.1) + 0x000028| 04 | . | tag: "octet_string" (0x4) 0x287.3-0x287.7 (0.5) + 0x000028| 02 | . | length: 2 0x288-0x288.7 (1) + 0x000028| 30 00 | 0. | value: raw bits 0x289-0x28a.7 (2) + | | | [3]{}: object 0x28b-0x2a9.7 (31) + 0x000028| 30 | 0 | class: "universal" (0) 0x28b-0x28b.1 (0.2) + 0x000028| 30 | 0 | form: "constructed" (1) 0x28b.2-0x28b.2 (0.1) + 0x000028| 30 | 0 | tag: "sequence" (0x10) 0x28b.3-0x28b.7 (0.5) + 0x000028| 1d | . | length: 29 0x28c-0x28c.7 (1) + | | | constructed[0:2]: 0x28d-0x2a9.7 (29) + | | | [0]{}: object 0x28d-0x291.7 (5) + 0x000028| 06 | . | class: "universal" (0) 0x28d-0x28d.1 (0.2) + 0x000028| 06 | . | form: "primitive" (0) 0x28d.2-0x28d.2 (0.1) + 0x000028| 06 | . | tag: "object_identifier" (0x6) 0x28d.3-0x28d.7 (0.5) + 0x000028| 03 | . | length: 3 0x28e-0x28e.7 (1) + | | | value[0:4]: 0x28f-0x291.7 (3) + 0x000028| 55| U| [0]: 2 oid 0x28f-0x28f.7 (1) + 0x000028| 55| U| [1]: 5 oid 0x28f-0x28f.7 (1) + 0x000029|1d |. | [2]: 29 oid 0x290-0x290.7 (1) + 0x000029| 0e | . | [3]: 14 oid 0x291-0x291.7 (1) + | | | [1]{}: object 0x292-0x2a9.7 (24) + 0x000029| 04 | . | class: "universal" (0) 0x292-0x292.1 (0.2) + 0x000029| 04 | . | form: "primitive" (0) 0x292.2-0x292.2 (0.1) + 0x000029| 04 | . | tag: "octet_string" (0x4) 0x292.3-0x292.7 (0.5) + 0x000029| 16 | . | length: 22 0x293-0x293.7 (1) + 0x000029| 04 14 45 5e c1 6a f0 7e c3 aa 3c 17| ..E^.j.~..<.| value: raw bits 0x294-0x2a9.7 (22) + 0x00002a|e1 e5 a3 88 fa 0c 23 c6 89 af |......#... | + | | | [4]{}: object 0x2aa-0x2ca.7 (33) + 0x00002a| 30 | 0 | class: "universal" (0) 0x2aa-0x2aa.1 (0.2) + 0x00002a| 30 | 0 | form: "constructed" (1) 0x2aa.2-0x2aa.2 (0.1) + 0x00002a| 30 | 0 | tag: "sequence" (0x10) 0x2aa.3-0x2aa.7 (0.5) + 0x00002a| 1f | . | length: 31 0x2ab-0x2ab.7 (1) + | | | constructed[0:2]: 0x2ac-0x2ca.7 (31) + | | | [0]{}: object 0x2ac-0x2b0.7 (5) + 0x00002a| 06 | . | class: "universal" (0) 0x2ac-0x2ac.1 (0.2) + 0x00002a| 06 | . | form: "primitive" (0) 0x2ac.2-0x2ac.2 (0.1) + 0x00002a| 06 | . | tag: "object_identifier" (0x6) 0x2ac.3-0x2ac.7 (0.5) + 0x00002a| 03 | . | length: 3 0x2ad-0x2ad.7 (1) + | | | value[0:4]: 0x2ae-0x2b0.7 (3) + 0x00002a| 55 | U | [0]: 2 oid 0x2ae-0x2ae.7 (1) + 0x00002a| 55 | U | [1]: 5 oid 0x2ae-0x2ae.7 (1) + 0x00002a| 1d| .| [2]: 29 oid 0x2af-0x2af.7 (1) + 0x00002b|23 |# | [3]: 35 oid 0x2b0-0x2b0.7 (1) + | | | [1]{}: object 0x2b1-0x2ca.7 (26) + 0x00002b| 04 | . | class: "universal" (0) 0x2b1-0x2b1.1 (0.2) + 0x00002b| 04 | . | form: "primitive" (0) 0x2b1.2-0x2b1.2 (0.1) + 0x00002b| 04 | . | tag: "octet_string" (0x4) 0x2b1.3-0x2b1.7 (0.5) + 0x00002b| 18 | . | length: 24 0x2b2-0x2b2.7 (1) + 0x00002b| 30 16 80 14 14 2e b3 17 b7 58 56 cb ae| 0........XV..| value: raw bits 0x2b3-0x2ca.7 (24) + 0x00002c|50 09 40 e6 1f af 9d 8b 14 c2 c6 |P.@........ | + | | | [5]{}: object 0x2cb-0x321.7 (87) + 0x00002c| 30 | 0 | class: "universal" (0) 0x2cb-0x2cb.1 (0.2) + 0x00002c| 30 | 0 | form: "constructed" (1) 0x2cb.2-0x2cb.2 (0.1) + 0x00002c| 30 | 0 | tag: "sequence" (0x10) 0x2cb.3-0x2cb.7 (0.5) + 0x00002c| 55 | U | length: 85 0x2cc-0x2cc.7 (1) + | | | constructed[0:2]: 0x2cd-0x321.7 (85) + | | | [0]{}: object 0x2cd-0x2d6.7 (10) + 0x00002c| 06 | . | class: "universal" (0) 0x2cd-0x2cd.1 (0.2) + 0x00002c| 06 | . | form: "primitive" (0) 0x2cd.2-0x2cd.2 (0.1) + 0x00002c| 06 | . | tag: "object_identifier" (0x6) 0x2cd.3-0x2cd.7 (0.5) + 0x00002c| 08 | . | length: 8 0x2ce-0x2ce.7 (1) + | | | value[0:9]: 0x2cf-0x2d6.7 (8) + 0x00002c| 2b| +| [0]: 1 oid 0x2cf-0x2cf.7 (1) + 0x00002c| 2b| +| [1]: 3 oid 0x2cf-0x2cf.7 (1) + 0x00002d|06 |. | [2]: 6 oid 0x2d0-0x2d0.7 (1) + 0x00002d| 01 | . | [3]: 1 oid 0x2d1-0x2d1.7 (1) + 0x00002d| 05 | . | [4]: 5 oid 0x2d2-0x2d2.7 (1) + 0x00002d| 05 | . | [5]: 5 oid 0x2d3-0x2d3.7 (1) + 0x00002d| 07 | . | [6]: 7 oid 0x2d4-0x2d4.7 (1) + 0x00002d| 01 | . | [7]: 1 oid 0x2d5-0x2d5.7 (1) + 0x00002d| 01 | . | [8]: 1 oid 0x2d6-0x2d6.7 (1) + | | | [1]{}: object 0x2d7-0x321.7 (75) + 0x00002d| 04 | . | class: "universal" (0) 0x2d7-0x2d7.1 (0.2) + 0x00002d| 04 | . | form: "primitive" (0) 0x2d7.2-0x2d7.2 (0.1) + 0x00002d| 04 | . | tag: "octet_string" (0x4) 0x2d7.3-0x2d7.7 (0.5) + 0x00002d| 49 | I | length: 73 0x2d8-0x2d8.7 (1) + 0x00002d| 30 47 30 21 06 08 2b| 0G0!..+| value: raw bits 0x2d9-0x321.7 (73) + 0x00002e|06 01 05 05 07 30 01 86 15 68 74 74 70 3a 2f 2f|.....0...http://| + * |until 0x321.7 (73) | | + | | | [6]{}: object 0x322-0x35c.7 (59) + 0x000032| 30 | 0 | class: "universal" (0) 0x322-0x322.1 (0.2) + 0x000032| 30 | 0 | form: "constructed" (1) 0x322.2-0x322.2 (0.1) + 0x000032| 30 | 0 | tag: "sequence" (0x10) 0x322.3-0x322.7 (0.5) + 0x000032| 39 | 9 | length: 57 0x323-0x323.7 (1) + | | | constructed[0:2]: 0x324-0x35c.7 (57) + | | | [0]{}: object 0x324-0x328.7 (5) + 0x000032| 06 | . | class: "universal" (0) 0x324-0x324.1 (0.2) + 0x000032| 06 | . | form: "primitive" (0) 0x324.2-0x324.2 (0.1) + 0x000032| 06 | . | tag: "object_identifier" (0x6) 0x324.3-0x324.7 (0.5) + 0x000032| 03 | . | length: 3 0x325-0x325.7 (1) + | | | value[0:4]: 0x326-0x328.7 (3) + 0x000032| 55 | U | [0]: 2 oid 0x326-0x326.7 (1) + 0x000032| 55 | U | [1]: 5 oid 0x326-0x326.7 (1) + 0x000032| 1d | . | [2]: 29 oid 0x327-0x327.7 (1) + 0x000032| 11 | . | [3]: 17 oid 0x328-0x328.7 (1) + | | | [1]{}: object 0x329-0x35c.7 (52) + 0x000032| 04 | . | class: "universal" (0) 0x329-0x329.1 (0.2) + 0x000032| 04 | . | form: "primitive" (0) 0x329.2-0x329.2 (0.1) + 0x000032| 04 | . | tag: "octet_string" (0x4) 0x329.3-0x329.7 (0.5) + 0x000032| 32 | 2 | length: 50 0x32a-0x32a.7 (1) + 0x000032| 30 30 82 10 69| 00..i| value: raw bits 0x32b-0x35c.7 (50) + 0x000033|70 76 36 2e 74 65 73 74 74 6c 73 2e 63 6f 6d 82|pv6.testtls.com.| + * |until 0x35c.7 (50) | | + | | | [7]{}: object 0x35d-0x3aa.7 (78) + 0x000035| 30 | 0 | class: "universal" (0) 0x35d-0x35d.1 (0.2) + 0x000035| 30 | 0 | form: "constructed" (1) 0x35d.2-0x35d.2 (0.1) + 0x000035| 30 | 0 | tag: "sequence" (0x10) 0x35d.3-0x35d.7 (0.5) + 0x000035| 4c | L | length: 76 0x35e-0x35e.7 (1) + | | | constructed[0:2]: 0x35f-0x3aa.7 (76) + | | | [0]{}: object 0x35f-0x363.7 (5) + 0x000035| 06| .| class: "universal" (0) 0x35f-0x35f.1 (0.2) + 0x000035| 06| .| form: "primitive" (0) 0x35f.2-0x35f.2 (0.1) + 0x000035| 06| .| tag: "object_identifier" (0x6) 0x35f.3-0x35f.7 (0.5) + 0x000036|03 |. | length: 3 0x360-0x360.7 (1) + | | | value[0:4]: 0x361-0x363.7 (3) + 0x000036| 55 | U | [0]: 2 oid 0x361-0x361.7 (1) + 0x000036| 55 | U | [1]: 5 oid 0x361-0x361.7 (1) + 0x000036| 1d | . | [2]: 29 oid 0x362-0x362.7 (1) + 0x000036| 20 | | [3]: 32 oid 0x363-0x363.7 (1) + | | | [1]{}: object 0x364-0x3aa.7 (71) + 0x000036| 04 | . | class: "universal" (0) 0x364-0x364.1 (0.2) + 0x000036| 04 | . | form: "primitive" (0) 0x364.2-0x364.2 (0.1) + 0x000036| 04 | . | tag: "octet_string" (0x4) 0x364.3-0x364.7 (0.5) + 0x000036| 45 | E | length: 69 0x365-0x365.7 (1) + 0x000036| 30 43 30 08 06 06 67 81 0c 01| 0C0...g...| value: raw bits 0x366-0x3aa.7 (69) + 0x000037|02 01 30 37 06 0b 2b 06 01 04 01 82 df 13 01 01|..07..+.........| + * |until 0x3aa.7 (69) | | + | | | [8]{}: object 0x3ab-0x4b2.7 (264) + 0x00003a| 30 | 0 | class: "universal" (0) 0x3ab-0x3ab.1 (0.2) + 0x00003a| 30 | 0 | form: "constructed" (1) 0x3ab.2-0x3ab.2 (0.1) + 0x00003a| 30 | 0 | tag: "sequence" (0x10) 0x3ab.3-0x3ab.7 (0.5) + 0x00003a| 82 01 04 | ... | length: 260 0x3ac-0x3ae.7 (3) + | | | constructed[0:2]: 0x3af-0x4b2.7 (260) + | | | [0]{}: object 0x3af-0x3ba.7 (12) + 0x00003a| 06| .| class: "universal" (0) 0x3af-0x3af.1 (0.2) + 0x00003a| 06| .| form: "primitive" (0) 0x3af.2-0x3af.2 (0.1) + 0x00003a| 06| .| tag: "object_identifier" (0x6) 0x3af.3-0x3af.7 (0.5) + 0x00003b|0a |. | length: 10 0x3b0-0x3b0.7 (1) + | | | value[0:10]: 0x3b1-0x3ba.7 (10) + 0x00003b| 2b | + | [0]: 1 oid 0x3b1-0x3b1.7 (1) + 0x00003b| 2b | + | [1]: 3 oid 0x3b1-0x3b1.7 (1) + 0x00003b| 06 | . | [2]: 6 oid 0x3b2-0x3b2.7 (1) + 0x00003b| 01 | . | [3]: 1 oid 0x3b3-0x3b3.7 (1) + 0x00003b| 04 | . | [4]: 4 oid 0x3b4-0x3b4.7 (1) + 0x00003b| 01 | . | [5]: 1 oid 0x3b5-0x3b5.7 (1) + 0x00003b| d6 79 | .y | [6]: 11129 oid 0x3b6-0x3b7.7 (2) + 0x00003b| 02 | . | [7]: 2 oid 0x3b8-0x3b8.7 (1) + 0x00003b| 04 | . | [8]: 4 oid 0x3b9-0x3b9.7 (1) + 0x00003b| 02 | . | [9]: 2 oid 0x3ba-0x3ba.7 (1) + | | | [1]{}: object 0x3bb-0x4b2.7 (248) + 0x00003b| 04 | . | class: "universal" (0) 0x3bb-0x3bb.1 (0.2) + 0x00003b| 04 | . | form: "primitive" (0) 0x3bb.2-0x3bb.2 (0.1) + 0x00003b| 04 | . | tag: "octet_string" (0x4) 0x3bb.3-0x3bb.7 (0.5) + 0x00003b| 81 f5 | .. | length: 245 0x3bc-0x3bd.7 (2) + 0x00003b| 04 81| ..| value: raw bits 0x3be-0x4b2.7 (245) + 0x00003c|f2 00 f0 00 76 00 7a 32 8c 54 d8 b7 2d b6 20 ea|....v.z2.T..-. .| + * |until 0x4b2.7 (245) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|03 02 05 a0 30 14 06 08 2b 06 01 05 05 07 03 01|....0...+.......| value: raw bits 0x0-0x1fe.7 (511) + * |until 0x1fe.7 (end) (511) | | + | | | [1]{}: object 0x4b3-0x4c1.7 (15) + 0x00004b| 30 | 0 | class: "universal" (0) 0x4b3-0x4b3.1 (0.2) + 0x00004b| 30 | 0 | form: "constructed" (1) 0x4b3.2-0x4b3.2 (0.1) + 0x00004b| 30 | 0 | tag: "sequence" (0x10) 0x4b3.3-0x4b3.7 (0.5) + 0x00004b| 0d | . | length: 13 0x4b4-0x4b4.7 (1) + | | | constructed[0:2]: 0x4b5-0x4c1.7 (13) + | | | [0]{}: object 0x4b5-0x4bf.7 (11) + 0x00004b| 06 | . | class: "universal" (0) 0x4b5-0x4b5.1 (0.2) + 0x00004b| 06 | . | form: "primitive" (0) 0x4b5.2-0x4b5.2 (0.1) + 0x00004b| 06 | . | tag: "object_identifier" (0x6) 0x4b5.3-0x4b5.7 (0.5) + 0x00004b| 09 | . | length: 9 0x4b6-0x4b6.7 (1) + | | | value[0:7]: 0x4b7-0x4bf.7 (9) + 0x00004b| 2a | * | [0]: 1 oid 0x4b7-0x4b7.7 (1) + 0x00004b| 2a | * | [1]: 2 oid 0x4b7-0x4b7.7 (1) + 0x00004b| 86 48 | .H | [2]: 840 oid 0x4b8-0x4b9.7 (2) + 0x00004b| 86 f7 0d | ... | [3]: 113549 oid 0x4ba-0x4bc.7 (3) + 0x00004b| 01 | . | [4]: 1 oid 0x4bd-0x4bd.7 (1) + 0x00004b| 01 | . | [5]: 1 oid 0x4be-0x4be.7 (1) + 0x00004b| 0b| .| [6]: 11 oid 0x4bf-0x4bf.7 (1) + | | | [1]{}: object 0x4c0-0x4c1.7 (2) + 0x00004c|05 |. | class: "universal" (0) 0x4c0-0x4c0.1 (0.2) + 0x00004c|05 |. | form: "primitive" (0) 0x4c0.2-0x4c0.2 (0.1) + 0x00004c|05 |. | tag: "null" (0x5) 0x4c0.3-0x4c0.7 (0.5) + 0x00004c| 00 | . | length: "indefinite" (0) 0x4c1-0x4c1.7 (1) + | | | value: null 0x4c2-NA (0) + | | | [2]{}: object 0x4c2-0x5c6.7 (261) + 0x00004c| 03 | . | class: "universal" (0) 0x4c2-0x4c2.1 (0.2) + 0x00004c| 03 | . | form: "primitive" (0) 0x4c2.2-0x4c2.2 (0.1) + 0x00004c| 03 | . | tag: "bit_string" (0x3) 0x4c2.3-0x4c2.7 (0.5) + 0x00004c| 82 01 01 | ... | length: 257 0x4c3-0x4c5.7 (3) + 0x00004c| 00 | . | unused_bits_count: 0 0x4c6-0x4c6.7 (1) + 0x00004c| 1a a6 4e 3f 9a 6a d5 6c da| ..N?.j.l.| value: raw bits 0x4c7-0x5c6.7 (256) + 0x00004d|1e 76 1a 4a c2 41 00 46 c5 f2 23 16 ec 3d 3d 2c|.v.J.A.F..#..==,| + * |until 0x5c6.7 (256) | | + | | | [1]{}: certificate 0x5c7-0xae3.7 (1309) + 0x00005c| 00 05 1a | ... | length: 1306 0x5c7-0x5c9.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0x5ca-0xae3.7 (1306) + 0x00005c| 30 | 0 | class: "universal" (0) 0x5ca-0x5ca.1 (0.2) + 0x00005c| 30 | 0 | form: "constructed" (1) 0x5ca.2-0x5ca.2 (0.1) + 0x00005c| 30 | 0 | tag: "sequence" (0x10) 0x5ca.3-0x5ca.7 (0.5) + 0x00005c| 82 05 16 | ... | length: 1302 0x5cb-0x5cd.7 (3) + | | | constructed[0:3]: 0x5ce-0xae3.7 (1302) + | | | [0]{}: object 0x5ce-0x8cf.7 (770) + 0x00005c| 30 | 0 | class: "universal" (0) 0x5ce-0x5ce.1 (0.2) + 0x00005c| 30 | 0 | form: "constructed" (1) 0x5ce.2-0x5ce.2 (0.1) + 0x00005c| 30 | 0 | tag: "sequence" (0x10) 0x5ce.3-0x5ce.7 (0.5) + 0x00005c| 82| .| length: 766 0x5cf-0x5d1.7 (3) + 0x00005d|02 fe |.. | + | | | constructed[0:8]: 0x5d2-0x8cf.7 (766) + | | | [0]{}: object 0x5d2-0x5d6.7 (5) + 0x00005d| a0 | . | class: "context" (2) 0x5d2-0x5d2.1 (0.2) + 0x00005d| a0 | . | form: "constructed" (1) 0x5d2.2-0x5d2.2 (0.1) + 0x00005d| a0 | . | tag: 0 0x5d2.3-0x5d2.7 (0.5) + 0x00005d| 03 | . | length: 3 0x5d3-0x5d3.7 (1) + | | | constructed[0:1]: 0x5d4-0x5d6.7 (3) + | | | [0]{}: object 0x5d4-0x5d6.7 (3) + 0x00005d| 02 | . | class: "universal" (0) 0x5d4-0x5d4.1 (0.2) + 0x00005d| 02 | . | form: "primitive" (0) 0x5d4.2-0x5d4.2 (0.1) + 0x00005d| 02 | . | tag: "integer" (0x2) 0x5d4.3-0x5d4.7 (0.5) + 0x00005d| 01 | . | length: 1 0x5d5-0x5d5.7 (1) + 0x00005d| 02 | . | value: 2 0x5d6-0x5d6.7 (1) + | | | [1]{}: object 0x5d7-0x5e9.7 (19) + 0x00005d| 02 | . | class: "universal" (0) 0x5d7-0x5d7.1 (0.2) + 0x00005d| 02 | . | form: "primitive" (0) 0x5d7.2-0x5d7.2 (0.1) + 0x00005d| 02 | . | tag: "integer" (0x2) 0x5d7.3-0x5d7.7 (0.5) + 0x00005d| 11 | . | length: 17 0x5d8-0x5d8.7 (1) + 0x00005d| 00 91 2b 08 4a cf 0c| ..+.J..| value: 192961496339968674994309121183282847578 0x5d9-0x5e9.7 (17) + 0x00005e|18 a7 53 f6 d6 2e 25 a7 5f 5a |..S...%._Z | + | | | [2]{}: object 0x5ea-0x5f8.7 (15) + 0x00005e| 30 | 0 | class: "universal" (0) 0x5ea-0x5ea.1 (0.2) + 0x00005e| 30 | 0 | form: "constructed" (1) 0x5ea.2-0x5ea.2 (0.1) + 0x00005e| 30 | 0 | tag: "sequence" (0x10) 0x5ea.3-0x5ea.7 (0.5) + 0x00005e| 0d | . | length: 13 0x5eb-0x5eb.7 (1) + | | | constructed[0:2]: 0x5ec-0x5f8.7 (13) + | | | [0]{}: object 0x5ec-0x5f6.7 (11) + 0x00005e| 06 | . | class: "universal" (0) 0x5ec-0x5ec.1 (0.2) + 0x00005e| 06 | . | form: "primitive" (0) 0x5ec.2-0x5ec.2 (0.1) + 0x00005e| 06 | . | tag: "object_identifier" (0x6) 0x5ec.3-0x5ec.7 (0.5) + 0x00005e| 09 | . | length: 9 0x5ed-0x5ed.7 (1) + | | | value[0:7]: 0x5ee-0x5f6.7 (9) + 0x00005e| 2a | * | [0]: 1 oid 0x5ee-0x5ee.7 (1) + 0x00005e| 2a | * | [1]: 2 oid 0x5ee-0x5ee.7 (1) + 0x00005e| 86| .| [2]: 840 oid 0x5ef-0x5f0.7 (2) + 0x00005f|48 |H | + 0x00005f| 86 f7 0d | ... | [3]: 113549 oid 0x5f1-0x5f3.7 (3) + 0x00005f| 01 | . | [4]: 1 oid 0x5f4-0x5f4.7 (1) + 0x00005f| 01 | . | [5]: 1 oid 0x5f5-0x5f5.7 (1) + 0x00005f| 0b | . | [6]: 11 oid 0x5f6-0x5f6.7 (1) + | | | [1]{}: object 0x5f7-0x5f8.7 (2) + 0x00005f| 05 | . | class: "universal" (0) 0x5f7-0x5f7.1 (0.2) + 0x00005f| 05 | . | form: "primitive" (0) 0x5f7.2-0x5f7.2 (0.1) + 0x00005f| 05 | . | tag: "null" (0x5) 0x5f7.3-0x5f7.7 (0.5) + 0x00005f| 00 | . | length: "indefinite" (0) 0x5f8-0x5f8.7 (1) + | | | value: null 0x5f9-NA (0) + | | | [3]{}: object 0x5f9-0x649.7 (81) + 0x00005f| 30 | 0 | class: "universal" (0) 0x5f9-0x5f9.1 (0.2) + 0x00005f| 30 | 0 | form: "constructed" (1) 0x5f9.2-0x5f9.2 (0.1) + 0x00005f| 30 | 0 | tag: "sequence" (0x10) 0x5f9.3-0x5f9.7 (0.5) + 0x00005f| 4f | O | length: 79 0x5fa-0x5fa.7 (1) + | | | constructed[0:3]: 0x5fb-0x649.7 (79) + | | | [0]{}: object 0x5fb-0x607.7 (13) + 0x00005f| 31 | 1 | class: "universal" (0) 0x5fb-0x5fb.1 (0.2) + 0x00005f| 31 | 1 | form: "constructed" (1) 0x5fb.2-0x5fb.2 (0.1) + 0x00005f| 31 | 1 | tag: "set" (0x11) 0x5fb.3-0x5fb.7 (0.5) + 0x00005f| 0b | . | length: 11 0x5fc-0x5fc.7 (1) + | | | constructed[0:1]: 0x5fd-0x607.7 (11) + | | | [0]{}: object 0x5fd-0x607.7 (11) + 0x00005f| 30 | 0 | class: "universal" (0) 0x5fd-0x5fd.1 (0.2) + 0x00005f| 30 | 0 | form: "constructed" (1) 0x5fd.2-0x5fd.2 (0.1) + 0x00005f| 30 | 0 | tag: "sequence" (0x10) 0x5fd.3-0x5fd.7 (0.5) + 0x00005f| 09 | . | length: 9 0x5fe-0x5fe.7 (1) + | | | constructed[0:2]: 0x5ff-0x607.7 (9) + | | | [0]{}: object 0x5ff-0x603.7 (5) + 0x00005f| 06| .| class: "universal" (0) 0x5ff-0x5ff.1 (0.2) + 0x00005f| 06| .| form: "primitive" (0) 0x5ff.2-0x5ff.2 (0.1) + 0x00005f| 06| .| tag: "object_identifier" (0x6) 0x5ff.3-0x5ff.7 (0.5) + 0x000060|03 |. | length: 3 0x600-0x600.7 (1) + | | | value[0:4]: 0x601-0x603.7 (3) + 0x000060| 55 | U | [0]: 2 oid 0x601-0x601.7 (1) + 0x000060| 55 | U | [1]: 5 oid 0x601-0x601.7 (1) + 0x000060| 04 | . | [2]: 4 oid 0x602-0x602.7 (1) + 0x000060| 06 | . | [3]: 6 oid 0x603-0x603.7 (1) + | | | [1]{}: object 0x604-0x607.7 (4) + 0x000060| 13 | . | class: "universal" (0) 0x604-0x604.1 (0.2) + 0x000060| 13 | . | form: "primitive" (0) 0x604.2-0x604.2 (0.1) + 0x000060| 13 | . | tag: "printable_string" (0x13) 0x604.3-0x604.7 (0.5) + 0x000060| 02 | . | length: 2 0x605-0x605.7 (1) + 0x000060| 55 53 | US | value: "US" 0x606-0x607.7 (2) + | | | [1]{}: object 0x608-0x632.7 (43) + 0x000060| 31 | 1 | class: "universal" (0) 0x608-0x608.1 (0.2) + 0x000060| 31 | 1 | form: "constructed" (1) 0x608.2-0x608.2 (0.1) + 0x000060| 31 | 1 | tag: "set" (0x11) 0x608.3-0x608.7 (0.5) + 0x000060| 29 | ) | length: 41 0x609-0x609.7 (1) + | | | constructed[0:1]: 0x60a-0x632.7 (41) + | | | [0]{}: object 0x60a-0x632.7 (41) + 0x000060| 30 | 0 | class: "universal" (0) 0x60a-0x60a.1 (0.2) + 0x000060| 30 | 0 | form: "constructed" (1) 0x60a.2-0x60a.2 (0.1) + 0x000060| 30 | 0 | tag: "sequence" (0x10) 0x60a.3-0x60a.7 (0.5) + 0x000060| 27 | ' | length: 39 0x60b-0x60b.7 (1) + | | | constructed[0:2]: 0x60c-0x632.7 (39) + | | | [0]{}: object 0x60c-0x610.7 (5) + 0x000060| 06 | . | class: "universal" (0) 0x60c-0x60c.1 (0.2) + 0x000060| 06 | . | form: "primitive" (0) 0x60c.2-0x60c.2 (0.1) + 0x000060| 06 | . | tag: "object_identifier" (0x6) 0x60c.3-0x60c.7 (0.5) + 0x000060| 03 | . | length: 3 0x60d-0x60d.7 (1) + | | | value[0:4]: 0x60e-0x610.7 (3) + 0x000060| 55 | U | [0]: 2 oid 0x60e-0x60e.7 (1) + 0x000060| 55 | U | [1]: 5 oid 0x60e-0x60e.7 (1) + 0x000060| 04| .| [2]: 4 oid 0x60f-0x60f.7 (1) + 0x000061|0a |. | [3]: 10 oid 0x610-0x610.7 (1) + | | | [1]{}: object 0x611-0x632.7 (34) + 0x000061| 13 | . | class: "universal" (0) 0x611-0x611.1 (0.2) + 0x000061| 13 | . | form: "primitive" (0) 0x611.2-0x611.2 (0.1) + 0x000061| 13 | . | tag: "printable_string" (0x13) 0x611.3-0x611.7 (0.5) + 0x000061| 20 | | length: 32 0x612-0x612.7 (1) + 0x000061| 49 6e 74 65 72 6e 65 74 20 53 65 63 75| Internet Secu| value: "Internet Security Research Group" 0x613-0x632.7 (32) + 0x000062|72 69 74 79 20 52 65 73 65 61 72 63 68 20 47 72|rity Research Gr| + 0x000063|6f 75 70 |oup | + | | | [2]{}: object 0x633-0x649.7 (23) + 0x000063| 31 | 1 | class: "universal" (0) 0x633-0x633.1 (0.2) + 0x000063| 31 | 1 | form: "constructed" (1) 0x633.2-0x633.2 (0.1) + 0x000063| 31 | 1 | tag: "set" (0x11) 0x633.3-0x633.7 (0.5) + 0x000063| 15 | . | length: 21 0x634-0x634.7 (1) + | | | constructed[0:1]: 0x635-0x649.7 (21) + | | | [0]{}: object 0x635-0x649.7 (21) + 0x000063| 30 | 0 | class: "universal" (0) 0x635-0x635.1 (0.2) + 0x000063| 30 | 0 | form: "constructed" (1) 0x635.2-0x635.2 (0.1) + 0x000063| 30 | 0 | tag: "sequence" (0x10) 0x635.3-0x635.7 (0.5) + 0x000063| 13 | . | length: 19 0x636-0x636.7 (1) + | | | constructed[0:2]: 0x637-0x649.7 (19) + | | | [0]{}: object 0x637-0x63b.7 (5) + 0x000063| 06 | . | class: "universal" (0) 0x637-0x637.1 (0.2) + 0x000063| 06 | . | form: "primitive" (0) 0x637.2-0x637.2 (0.1) + 0x000063| 06 | . | tag: "object_identifier" (0x6) 0x637.3-0x637.7 (0.5) + 0x000063| 03 | . | length: 3 0x638-0x638.7 (1) + | | | value[0:4]: 0x639-0x63b.7 (3) + 0x000063| 55 | U | [0]: 2 oid 0x639-0x639.7 (1) + 0x000063| 55 | U | [1]: 5 oid 0x639-0x639.7 (1) + 0x000063| 04 | . | [2]: 4 oid 0x63a-0x63a.7 (1) + 0x000063| 03 | . | [3]: 3 oid 0x63b-0x63b.7 (1) + | | | [1]{}: object 0x63c-0x649.7 (14) + 0x000063| 13 | . | class: "universal" (0) 0x63c-0x63c.1 (0.2) + 0x000063| 13 | . | form: "primitive" (0) 0x63c.2-0x63c.2 (0.1) + 0x000063| 13 | . | tag: "printable_string" (0x13) 0x63c.3-0x63c.7 (0.5) + 0x000063| 0c | . | length: 12 0x63d-0x63d.7 (1) + 0x000063| 49 53| IS| value: "ISRG Root X1" 0x63e-0x649.7 (12) + 0x000064|52 47 20 52 6f 6f 74 20 58 31 |RG Root X1 | + | | | [4]{}: object 0x64a-0x669.7 (32) + 0x000064| 30 | 0 | class: "universal" (0) 0x64a-0x64a.1 (0.2) + 0x000064| 30 | 0 | form: "constructed" (1) 0x64a.2-0x64a.2 (0.1) + 0x000064| 30 | 0 | tag: "sequence" (0x10) 0x64a.3-0x64a.7 (0.5) + 0x000064| 1e | . | length: 30 0x64b-0x64b.7 (1) + | | | constructed[0:2]: 0x64c-0x669.7 (30) + | | | [0]{}: object 0x64c-0x65a.7 (15) + 0x000064| 17 | . | class: "universal" (0) 0x64c-0x64c.1 (0.2) + 0x000064| 17 | . | form: "primitive" (0) 0x64c.2-0x64c.2 (0.1) + 0x000064| 17 | . | tag: "utc_time" (0x17) 0x64c.3-0x64c.7 (0.5) + 0x000064| 0d | . | length: 13 0x64d-0x64d.7 (1) + 0x000064| 32 30| 20| value: "200904000000Z" 0x64e-0x65a.7 (13) + 0x000065|30 39 30 34 30 30 30 30 30 30 5a |0904000000Z | + | | | [1]{}: object 0x65b-0x669.7 (15) + 0x000065| 17 | . | class: "universal" (0) 0x65b-0x65b.1 (0.2) + 0x000065| 17 | . | form: "primitive" (0) 0x65b.2-0x65b.2 (0.1) + 0x000065| 17 | . | tag: "utc_time" (0x17) 0x65b.3-0x65b.7 (0.5) + 0x000065| 0d | . | length: 13 0x65c-0x65c.7 (1) + 0x000065| 32 35 30| 250| value: "250915160000Z" 0x65d-0x669.7 (13) + 0x000066|39 31 35 31 36 30 30 30 30 5a |915160000Z | + | | | [5]{}: object 0x66a-0x69d.7 (52) + 0x000066| 30 | 0 | class: "universal" (0) 0x66a-0x66a.1 (0.2) + 0x000066| 30 | 0 | form: "constructed" (1) 0x66a.2-0x66a.2 (0.1) + 0x000066| 30 | 0 | tag: "sequence" (0x10) 0x66a.3-0x66a.7 (0.5) + 0x000066| 32 | 2 | length: 50 0x66b-0x66b.7 (1) + | | | constructed[0:3]: 0x66c-0x69d.7 (50) + | | | [0]{}: object 0x66c-0x678.7 (13) + 0x000066| 31 | 1 | class: "universal" (0) 0x66c-0x66c.1 (0.2) + 0x000066| 31 | 1 | form: "constructed" (1) 0x66c.2-0x66c.2 (0.1) + 0x000066| 31 | 1 | tag: "set" (0x11) 0x66c.3-0x66c.7 (0.5) + 0x000066| 0b | . | length: 11 0x66d-0x66d.7 (1) + | | | constructed[0:1]: 0x66e-0x678.7 (11) + | | | [0]{}: object 0x66e-0x678.7 (11) + 0x000066| 30 | 0 | class: "universal" (0) 0x66e-0x66e.1 (0.2) + 0x000066| 30 | 0 | form: "constructed" (1) 0x66e.2-0x66e.2 (0.1) + 0x000066| 30 | 0 | tag: "sequence" (0x10) 0x66e.3-0x66e.7 (0.5) + 0x000066| 09| .| length: 9 0x66f-0x66f.7 (1) + | | | constructed[0:2]: 0x670-0x678.7 (9) + | | | [0]{}: object 0x670-0x674.7 (5) + 0x000067|06 |. | class: "universal" (0) 0x670-0x670.1 (0.2) + 0x000067|06 |. | form: "primitive" (0) 0x670.2-0x670.2 (0.1) + 0x000067|06 |. | tag: "object_identifier" (0x6) 0x670.3-0x670.7 (0.5) + 0x000067| 03 | . | length: 3 0x671-0x671.7 (1) + | | | value[0:4]: 0x672-0x674.7 (3) + 0x000067| 55 | U | [0]: 2 oid 0x672-0x672.7 (1) + 0x000067| 55 | U | [1]: 5 oid 0x672-0x672.7 (1) + 0x000067| 04 | . | [2]: 4 oid 0x673-0x673.7 (1) + 0x000067| 06 | . | [3]: 6 oid 0x674-0x674.7 (1) + | | | [1]{}: object 0x675-0x678.7 (4) + 0x000067| 13 | . | class: "universal" (0) 0x675-0x675.1 (0.2) + 0x000067| 13 | . | form: "primitive" (0) 0x675.2-0x675.2 (0.1) + 0x000067| 13 | . | tag: "printable_string" (0x13) 0x675.3-0x675.7 (0.5) + 0x000067| 02 | . | length: 2 0x676-0x676.7 (1) + 0x000067| 55 53 | US | value: "US" 0x677-0x678.7 (2) + | | | [1]{}: object 0x679-0x690.7 (24) + 0x000067| 31 | 1 | class: "universal" (0) 0x679-0x679.1 (0.2) + 0x000067| 31 | 1 | form: "constructed" (1) 0x679.2-0x679.2 (0.1) + 0x000067| 31 | 1 | tag: "set" (0x11) 0x679.3-0x679.7 (0.5) + 0x000067| 16 | . | length: 22 0x67a-0x67a.7 (1) + | | | constructed[0:1]: 0x67b-0x690.7 (22) + | | | [0]{}: object 0x67b-0x690.7 (22) + 0x000067| 30 | 0 | class: "universal" (0) 0x67b-0x67b.1 (0.2) + 0x000067| 30 | 0 | form: "constructed" (1) 0x67b.2-0x67b.2 (0.1) + 0x000067| 30 | 0 | tag: "sequence" (0x10) 0x67b.3-0x67b.7 (0.5) + 0x000067| 14 | . | length: 20 0x67c-0x67c.7 (1) + | | | constructed[0:2]: 0x67d-0x690.7 (20) + | | | [0]{}: object 0x67d-0x681.7 (5) + 0x000067| 06 | . | class: "universal" (0) 0x67d-0x67d.1 (0.2) + 0x000067| 06 | . | form: "primitive" (0) 0x67d.2-0x67d.2 (0.1) + 0x000067| 06 | . | tag: "object_identifier" (0x6) 0x67d.3-0x67d.7 (0.5) + 0x000067| 03 | . | length: 3 0x67e-0x67e.7 (1) + | | | value[0:4]: 0x67f-0x681.7 (3) + 0x000067| 55| U| [0]: 2 oid 0x67f-0x67f.7 (1) + 0x000067| 55| U| [1]: 5 oid 0x67f-0x67f.7 (1) + 0x000068|04 |. | [2]: 4 oid 0x680-0x680.7 (1) + 0x000068| 0a | . | [3]: 10 oid 0x681-0x681.7 (1) + | | | [1]{}: object 0x682-0x690.7 (15) + 0x000068| 13 | . | class: "universal" (0) 0x682-0x682.1 (0.2) + 0x000068| 13 | . | form: "primitive" (0) 0x682.2-0x682.2 (0.1) + 0x000068| 13 | . | tag: "printable_string" (0x13) 0x682.3-0x682.7 (0.5) + 0x000068| 0d | . | length: 13 0x683-0x683.7 (1) + 0x000068| 4c 65 74 27 73 20 45 6e 63 72 79 70| Let's Encryp| value: "Let's Encrypt" 0x684-0x690.7 (13) + 0x000069|74 |t | + | | | [2]{}: object 0x691-0x69d.7 (13) + 0x000069| 31 | 1 | class: "universal" (0) 0x691-0x691.1 (0.2) + 0x000069| 31 | 1 | form: "constructed" (1) 0x691.2-0x691.2 (0.1) + 0x000069| 31 | 1 | tag: "set" (0x11) 0x691.3-0x691.7 (0.5) + 0x000069| 0b | . | length: 11 0x692-0x692.7 (1) + | | | constructed[0:1]: 0x693-0x69d.7 (11) + | | | [0]{}: object 0x693-0x69d.7 (11) + 0x000069| 30 | 0 | class: "universal" (0) 0x693-0x693.1 (0.2) + 0x000069| 30 | 0 | form: "constructed" (1) 0x693.2-0x693.2 (0.1) + 0x000069| 30 | 0 | tag: "sequence" (0x10) 0x693.3-0x693.7 (0.5) + 0x000069| 09 | . | length: 9 0x694-0x694.7 (1) + | | | constructed[0:2]: 0x695-0x69d.7 (9) + | | | [0]{}: object 0x695-0x699.7 (5) + 0x000069| 06 | . | class: "universal" (0) 0x695-0x695.1 (0.2) + 0x000069| 06 | . | form: "primitive" (0) 0x695.2-0x695.2 (0.1) + 0x000069| 06 | . | tag: "object_identifier" (0x6) 0x695.3-0x695.7 (0.5) + 0x000069| 03 | . | length: 3 0x696-0x696.7 (1) + | | | value[0:4]: 0x697-0x699.7 (3) + 0x000069| 55 | U | [0]: 2 oid 0x697-0x697.7 (1) + 0x000069| 55 | U | [1]: 5 oid 0x697-0x697.7 (1) + 0x000069| 04 | . | [2]: 4 oid 0x698-0x698.7 (1) + 0x000069| 03 | . | [3]: 3 oid 0x699-0x699.7 (1) + | | | [1]{}: object 0x69a-0x69d.7 (4) + 0x000069| 13 | . | class: "universal" (0) 0x69a-0x69a.1 (0.2) + 0x000069| 13 | . | form: "primitive" (0) 0x69a.2-0x69a.2 (0.1) + 0x000069| 13 | . | tag: "printable_string" (0x13) 0x69a.3-0x69a.7 (0.5) + 0x000069| 02 | . | length: 2 0x69b-0x69b.7 (1) + 0x000069| 52 33 | R3 | value: "R3" 0x69c-0x69d.7 (2) + | | | [6]{}: object 0x69e-0x7c3.7 (294) + 0x000069| 30 | 0 | class: "universal" (0) 0x69e-0x69e.1 (0.2) + 0x000069| 30 | 0 | form: "constructed" (1) 0x69e.2-0x69e.2 (0.1) + 0x000069| 30 | 0 | tag: "sequence" (0x10) 0x69e.3-0x69e.7 (0.5) + 0x000069| 82| .| length: 290 0x69f-0x6a1.7 (3) + 0x00006a|01 22 |." | + | | | constructed[0:2]: 0x6a2-0x7c3.7 (290) + | | | [0]{}: object 0x6a2-0x6b0.7 (15) + 0x00006a| 30 | 0 | class: "universal" (0) 0x6a2-0x6a2.1 (0.2) + 0x00006a| 30 | 0 | form: "constructed" (1) 0x6a2.2-0x6a2.2 (0.1) + 0x00006a| 30 | 0 | tag: "sequence" (0x10) 0x6a2.3-0x6a2.7 (0.5) + 0x00006a| 0d | . | length: 13 0x6a3-0x6a3.7 (1) + | | | constructed[0:2]: 0x6a4-0x6b0.7 (13) + | | | [0]{}: object 0x6a4-0x6ae.7 (11) + 0x00006a| 06 | . | class: "universal" (0) 0x6a4-0x6a4.1 (0.2) + 0x00006a| 06 | . | form: "primitive" (0) 0x6a4.2-0x6a4.2 (0.1) + 0x00006a| 06 | . | tag: "object_identifier" (0x6) 0x6a4.3-0x6a4.7 (0.5) + 0x00006a| 09 | . | length: 9 0x6a5-0x6a5.7 (1) + | | | value[0:7]: 0x6a6-0x6ae.7 (9) + 0x00006a| 2a | * | [0]: 1 oid 0x6a6-0x6a6.7 (1) + 0x00006a| 2a | * | [1]: 2 oid 0x6a6-0x6a6.7 (1) + 0x00006a| 86 48 | .H | [2]: 840 oid 0x6a7-0x6a8.7 (2) + 0x00006a| 86 f7 0d | ... | [3]: 113549 oid 0x6a9-0x6ab.7 (3) + 0x00006a| 01 | . | [4]: 1 oid 0x6ac-0x6ac.7 (1) + 0x00006a| 01 | . | [5]: 1 oid 0x6ad-0x6ad.7 (1) + 0x00006a| 01 | . | [6]: 1 oid 0x6ae-0x6ae.7 (1) + | | | [1]{}: object 0x6af-0x6b0.7 (2) + 0x00006a| 05| .| class: "universal" (0) 0x6af-0x6af.1 (0.2) + 0x00006a| 05| .| form: "primitive" (0) 0x6af.2-0x6af.2 (0.1) + 0x00006a| 05| .| tag: "null" (0x5) 0x6af.3-0x6af.7 (0.5) + 0x00006b|00 |. | length: "indefinite" (0) 0x6b0-0x6b0.7 (1) + | | | value: null 0x6b1-NA (0) + | | | [1]{}: object 0x6b1-0x7c3.7 (275) + 0x00006b| 03 | . | class: "universal" (0) 0x6b1-0x6b1.1 (0.2) + 0x00006b| 03 | . | form: "primitive" (0) 0x6b1.2-0x6b1.2 (0.1) + 0x00006b| 03 | . | tag: "bit_string" (0x3) 0x6b1.3-0x6b1.7 (0.5) + 0x00006b| 82 01 0f | ... | length: 271 0x6b2-0x6b4.7 (3) + 0x00006b| 00 | . | unused_bits_count: 0 0x6b5-0x6b5.7 (1) + 0x00006b| 30 82 01 0a 02 82 01 01 00 bb| 0.........| value: raw bits 0x6b6-0x7c3.7 (270) + 0x00006c|02 15 28 cc f6 a0 94 d3 0f 12 ec 8d 55 92 c3 f8|..(.........U...| + * |until 0x7c3.7 (270) | | + | | | [7]{}: object 0x7c4-0x8cf.7 (268) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|03 02 01 86 30 14 06 08 2b 06 01 05 05 07 03 02|....0...+.......| value: raw bits 0x0-0xb0.7 (177) + * |until 0xb0.7 (end) (177) | | + 0x00007c| a3 | . | class: "context" (2) 0x7c4-0x7c4.1 (0.2) + 0x00007c| a3 | . | form: "constructed" (1) 0x7c4.2-0x7c4.2 (0.1) + 0x00007c| a3 | . | tag: 3 0x7c4.3-0x7c4.7 (0.5) + 0x00007c| 82 01 08 | ... | length: 264 0x7c5-0x7c7.7 (3) + | | | constructed[0:1]: 0x7c8-0x8cf.7 (264) + | | | [0]{}: object 0x7c8-0x8cf.7 (264) + 0x00007c| 30 | 0 | class: "universal" (0) 0x7c8-0x7c8.1 (0.2) + 0x00007c| 30 | 0 | form: "constructed" (1) 0x7c8.2-0x7c8.2 (0.1) + 0x00007c| 30 | 0 | tag: "sequence" (0x10) 0x7c8.3-0x7c8.7 (0.5) + 0x00007c| 82 01 04 | ... | length: 260 0x7c9-0x7cb.7 (3) + | | | constructed[0:8]: 0x7cc-0x8cf.7 (260) + | | | [0]{}: object 0x7cc-0x7db.7 (16) + 0x00007c| 30 | 0 | class: "universal" (0) 0x7cc-0x7cc.1 (0.2) + 0x00007c| 30 | 0 | form: "constructed" (1) 0x7cc.2-0x7cc.2 (0.1) + 0x00007c| 30 | 0 | tag: "sequence" (0x10) 0x7cc.3-0x7cc.7 (0.5) + 0x00007c| 0e | . | length: 14 0x7cd-0x7cd.7 (1) + | | | constructed[0:3]: 0x7ce-0x7db.7 (14) + | | | [0]{}: object 0x7ce-0x7d2.7 (5) + 0x00007c| 06 | . | class: "universal" (0) 0x7ce-0x7ce.1 (0.2) + 0x00007c| 06 | . | form: "primitive" (0) 0x7ce.2-0x7ce.2 (0.1) + 0x00007c| 06 | . | tag: "object_identifier" (0x6) 0x7ce.3-0x7ce.7 (0.5) + 0x00007c| 03| .| length: 3 0x7cf-0x7cf.7 (1) + | | | value[0:4]: 0x7d0-0x7d2.7 (3) + 0x00007d|55 |U | [0]: 2 oid 0x7d0-0x7d0.7 (1) + 0x00007d|55 |U | [1]: 5 oid 0x7d0-0x7d0.7 (1) + 0x00007d| 1d | . | [2]: 29 oid 0x7d1-0x7d1.7 (1) + 0x00007d| 0f | . | [3]: 15 oid 0x7d2-0x7d2.7 (1) + | | | [1]{}: object 0x7d3-0x7d5.7 (3) + 0x00007d| 01 | . | class: "universal" (0) 0x7d3-0x7d3.1 (0.2) + 0x00007d| 01 | . | form: "primitive" (0) 0x7d3.2-0x7d3.2 (0.1) + 0x00007d| 01 | . | tag: "boolean" (0x1) 0x7d3.3-0x7d3.7 (0.5) + 0x00007d| 01 | . | length: 1 0x7d4-0x7d4.7 (1) + 0x00007d| ff | . | value: true (255) 0x7d5-0x7d5.7 (1) + | | | [2]{}: object 0x7d6-0x7db.7 (6) + 0x00007d| 04 | . | class: "universal" (0) 0x7d6-0x7d6.1 (0.2) + 0x00007d| 04 | . | form: "primitive" (0) 0x7d6.2-0x7d6.2 (0.1) + 0x00007d| 04 | . | tag: "octet_string" (0x4) 0x7d6.3-0x7d6.7 (0.5) + 0x00007d| 04 | . | length: 4 0x7d7-0x7d7.7 (1) + 0x00007d| 03 02 01 86 | .... | value: raw bits 0x7d8-0x7db.7 (4) + | | | [1]{}: object 0x7dc-0x7fa.7 (31) + 0x00007d| 30 | 0 | class: "universal" (0) 0x7dc-0x7dc.1 (0.2) + 0x00007d| 30 | 0 | form: "constructed" (1) 0x7dc.2-0x7dc.2 (0.1) + 0x00007d| 30 | 0 | tag: "sequence" (0x10) 0x7dc.3-0x7dc.7 (0.5) + 0x00007d| 1d | . | length: 29 0x7dd-0x7dd.7 (1) + | | | constructed[0:2]: 0x7de-0x7fa.7 (29) + | | | [0]{}: object 0x7de-0x7e2.7 (5) + 0x00007d| 06 | . | class: "universal" (0) 0x7de-0x7de.1 (0.2) + 0x00007d| 06 | . | form: "primitive" (0) 0x7de.2-0x7de.2 (0.1) + 0x00007d| 06 | . | tag: "object_identifier" (0x6) 0x7de.3-0x7de.7 (0.5) + 0x00007d| 03| .| length: 3 0x7df-0x7df.7 (1) + | | | value[0:4]: 0x7e0-0x7e2.7 (3) + 0x00007e|55 |U | [0]: 2 oid 0x7e0-0x7e0.7 (1) + 0x00007e|55 |U | [1]: 5 oid 0x7e0-0x7e0.7 (1) + 0x00007e| 1d | . | [2]: 29 oid 0x7e1-0x7e1.7 (1) + 0x00007e| 25 | % | [3]: 37 oid 0x7e2-0x7e2.7 (1) + | | | [1]{}: object 0x7e3-0x7fa.7 (24) + 0x00007e| 04 | . | class: "universal" (0) 0x7e3-0x7e3.1 (0.2) + 0x00007e| 04 | . | form: "primitive" (0) 0x7e3.2-0x7e3.2 (0.1) + 0x00007e| 04 | . | tag: "octet_string" (0x4) 0x7e3.3-0x7e3.7 (0.5) + 0x00007e| 16 | . | length: 22 0x7e4-0x7e4.7 (1) + 0x00007e| 30 14 06 08 2b 06 01 05 05 07 03| 0...+......| value: raw bits 0x7e5-0x7fa.7 (22) + 0x00007f|02 06 08 2b 06 01 05 05 07 03 01 |...+....... | + | | | [2]{}: object 0x7fb-0x80e.7 (20) + 0x00007f| 30 | 0 | class: "universal" (0) 0x7fb-0x7fb.1 (0.2) + 0x00007f| 30 | 0 | form: "constructed" (1) 0x7fb.2-0x7fb.2 (0.1) + 0x00007f| 30 | 0 | tag: "sequence" (0x10) 0x7fb.3-0x7fb.7 (0.5) + 0x00007f| 12 | . | length: 18 0x7fc-0x7fc.7 (1) + | | | constructed[0:3]: 0x7fd-0x80e.7 (18) + | | | [0]{}: object 0x7fd-0x801.7 (5) + 0x00007f| 06 | . | class: "universal" (0) 0x7fd-0x7fd.1 (0.2) + 0x00007f| 06 | . | form: "primitive" (0) 0x7fd.2-0x7fd.2 (0.1) + 0x00007f| 06 | . | tag: "object_identifier" (0x6) 0x7fd.3-0x7fd.7 (0.5) + 0x00007f| 03 | . | length: 3 0x7fe-0x7fe.7 (1) + | | | value[0:4]: 0x7ff-0x801.7 (3) + 0x00007f| 55| U| [0]: 2 oid 0x7ff-0x7ff.7 (1) + 0x00007f| 55| U| [1]: 5 oid 0x7ff-0x7ff.7 (1) + 0x000080|1d |. | [2]: 29 oid 0x800-0x800.7 (1) + 0x000080| 13 | . | [3]: 19 oid 0x801-0x801.7 (1) + | | | [1]{}: object 0x802-0x804.7 (3) + 0x000080| 01 | . | class: "universal" (0) 0x802-0x802.1 (0.2) + 0x000080| 01 | . | form: "primitive" (0) 0x802.2-0x802.2 (0.1) + 0x000080| 01 | . | tag: "boolean" (0x1) 0x802.3-0x802.7 (0.5) + 0x000080| 01 | . | length: 1 0x803-0x803.7 (1) + 0x000080| ff | . | value: true (255) 0x804-0x804.7 (1) + | | | [2]{}: object 0x805-0x80e.7 (10) + 0x000080| 04 | . | class: "universal" (0) 0x805-0x805.1 (0.2) + 0x000080| 04 | . | form: "primitive" (0) 0x805.2-0x805.2 (0.1) + 0x000080| 04 | . | tag: "octet_string" (0x4) 0x805.3-0x805.7 (0.5) + 0x000080| 08 | . | length: 8 0x806-0x806.7 (1) + 0x000080| 30 06 01 01 ff 02 01 00 | 0....... | value: raw bits 0x807-0x80e.7 (8) + | | | [3]{}: object 0x80f-0x82d.7 (31) + 0x000080| 30| 0| class: "universal" (0) 0x80f-0x80f.1 (0.2) + 0x000080| 30| 0| form: "constructed" (1) 0x80f.2-0x80f.2 (0.1) + 0x000080| 30| 0| tag: "sequence" (0x10) 0x80f.3-0x80f.7 (0.5) + 0x000081|1d |. | length: 29 0x810-0x810.7 (1) + | | | constructed[0:2]: 0x811-0x82d.7 (29) + | | | [0]{}: object 0x811-0x815.7 (5) + 0x000081| 06 | . | class: "universal" (0) 0x811-0x811.1 (0.2) + 0x000081| 06 | . | form: "primitive" (0) 0x811.2-0x811.2 (0.1) + 0x000081| 06 | . | tag: "object_identifier" (0x6) 0x811.3-0x811.7 (0.5) + 0x000081| 03 | . | length: 3 0x812-0x812.7 (1) + | | | value[0:4]: 0x813-0x815.7 (3) + 0x000081| 55 | U | [0]: 2 oid 0x813-0x813.7 (1) + 0x000081| 55 | U | [1]: 5 oid 0x813-0x813.7 (1) + 0x000081| 1d | . | [2]: 29 oid 0x814-0x814.7 (1) + 0x000081| 0e | . | [3]: 14 oid 0x815-0x815.7 (1) + | | | [1]{}: object 0x816-0x82d.7 (24) + 0x000081| 04 | . | class: "universal" (0) 0x816-0x816.1 (0.2) + 0x000081| 04 | . | form: "primitive" (0) 0x816.2-0x816.2 (0.1) + 0x000081| 04 | . | tag: "octet_string" (0x4) 0x816.3-0x816.7 (0.5) + 0x000081| 16 | . | length: 22 0x817-0x817.7 (1) + 0x000081| 04 14 14 2e b3 17 b7 58| .......X| value: raw bits 0x818-0x82d.7 (22) + 0x000082|56 cb ae 50 09 40 e6 1f af 9d 8b 14 c2 c6 |V..P.@........ | + | | | [4]{}: object 0x82e-0x84e.7 (33) + 0x000082| 30 | 0 | class: "universal" (0) 0x82e-0x82e.1 (0.2) + 0x000082| 30 | 0 | form: "constructed" (1) 0x82e.2-0x82e.2 (0.1) + 0x000082| 30 | 0 | tag: "sequence" (0x10) 0x82e.3-0x82e.7 (0.5) + 0x000082| 1f| .| length: 31 0x82f-0x82f.7 (1) + | | | constructed[0:2]: 0x830-0x84e.7 (31) + | | | [0]{}: object 0x830-0x834.7 (5) + 0x000083|06 |. | class: "universal" (0) 0x830-0x830.1 (0.2) + 0x000083|06 |. | form: "primitive" (0) 0x830.2-0x830.2 (0.1) + 0x000083|06 |. | tag: "object_identifier" (0x6) 0x830.3-0x830.7 (0.5) + 0x000083| 03 | . | length: 3 0x831-0x831.7 (1) + | | | value[0:4]: 0x832-0x834.7 (3) + 0x000083| 55 | U | [0]: 2 oid 0x832-0x832.7 (1) + 0x000083| 55 | U | [1]: 5 oid 0x832-0x832.7 (1) + 0x000083| 1d | . | [2]: 29 oid 0x833-0x833.7 (1) + 0x000083| 23 | # | [3]: 35 oid 0x834-0x834.7 (1) + | | | [1]{}: object 0x835-0x84e.7 (26) + 0x000083| 04 | . | class: "universal" (0) 0x835-0x835.1 (0.2) + 0x000083| 04 | . | form: "primitive" (0) 0x835.2-0x835.2 (0.1) + 0x000083| 04 | . | tag: "octet_string" (0x4) 0x835.3-0x835.7 (0.5) + 0x000083| 18 | . | length: 24 0x836-0x836.7 (1) + 0x000083| 30 16 80 14 79 b4 59 e6 7b| 0...y.Y.{| value: raw bits 0x837-0x84e.7 (24) + 0x000084|b6 e5 e4 01 73 80 08 88 c8 1a 58 f6 e9 9b 6e |....s.....X...n | + | | | [5]{}: object 0x84f-0x882.7 (52) + 0x000084| 30| 0| class: "universal" (0) 0x84f-0x84f.1 (0.2) + 0x000084| 30| 0| form: "constructed" (1) 0x84f.2-0x84f.2 (0.1) + 0x000084| 30| 0| tag: "sequence" (0x10) 0x84f.3-0x84f.7 (0.5) + 0x000085|32 |2 | length: 50 0x850-0x850.7 (1) + | | | constructed[0:2]: 0x851-0x882.7 (50) + | | | [0]{}: object 0x851-0x85a.7 (10) + 0x000085| 06 | . | class: "universal" (0) 0x851-0x851.1 (0.2) + 0x000085| 06 | . | form: "primitive" (0) 0x851.2-0x851.2 (0.1) + 0x000085| 06 | . | tag: "object_identifier" (0x6) 0x851.3-0x851.7 (0.5) + 0x000085| 08 | . | length: 8 0x852-0x852.7 (1) + | | | value[0:9]: 0x853-0x85a.7 (8) + 0x000085| 2b | + | [0]: 1 oid 0x853-0x853.7 (1) + 0x000085| 2b | + | [1]: 3 oid 0x853-0x853.7 (1) + 0x000085| 06 | . | [2]: 6 oid 0x854-0x854.7 (1) + 0x000085| 01 | . | [3]: 1 oid 0x855-0x855.7 (1) + 0x000085| 05 | . | [4]: 5 oid 0x856-0x856.7 (1) + 0x000085| 05 | . | [5]: 5 oid 0x857-0x857.7 (1) + 0x000085| 07 | . | [6]: 7 oid 0x858-0x858.7 (1) + 0x000085| 01 | . | [7]: 1 oid 0x859-0x859.7 (1) + 0x000085| 01 | . | [8]: 1 oid 0x85a-0x85a.7 (1) + | | | [1]{}: object 0x85b-0x882.7 (40) + 0x000085| 04 | . | class: "universal" (0) 0x85b-0x85b.1 (0.2) + 0x000085| 04 | . | form: "primitive" (0) 0x85b.2-0x85b.2 (0.1) + 0x000085| 04 | . | tag: "octet_string" (0x4) 0x85b.3-0x85b.7 (0.5) + 0x000085| 26 | & | length: 38 0x85c-0x85c.7 (1) + 0x000085| 30 24 30| 0$0| value: raw bits 0x85d-0x882.7 (38) + 0x000086|22 06 08 2b 06 01 05 05 07 30 02 86 16 68 74 74|"..+.....0...htt| + * |until 0x882.7 (38) | | + | | | [6]{}: object 0x883-0x8ab.7 (41) + 0x000088| 30 | 0 | class: "universal" (0) 0x883-0x883.1 (0.2) + 0x000088| 30 | 0 | form: "constructed" (1) 0x883.2-0x883.2 (0.1) + 0x000088| 30 | 0 | tag: "sequence" (0x10) 0x883.3-0x883.7 (0.5) + 0x000088| 27 | ' | length: 39 0x884-0x884.7 (1) + | | | constructed[0:2]: 0x885-0x8ab.7 (39) + | | | [0]{}: object 0x885-0x889.7 (5) + 0x000088| 06 | . | class: "universal" (0) 0x885-0x885.1 (0.2) + 0x000088| 06 | . | form: "primitive" (0) 0x885.2-0x885.2 (0.1) + 0x000088| 06 | . | tag: "object_identifier" (0x6) 0x885.3-0x885.7 (0.5) + 0x000088| 03 | . | length: 3 0x886-0x886.7 (1) + | | | value[0:4]: 0x887-0x889.7 (3) + 0x000088| 55 | U | [0]: 2 oid 0x887-0x887.7 (1) + 0x000088| 55 | U | [1]: 5 oid 0x887-0x887.7 (1) + 0x000088| 1d | . | [2]: 29 oid 0x888-0x888.7 (1) + 0x000088| 1f | . | [3]: 31 oid 0x889-0x889.7 (1) + | | | [1]{}: object 0x88a-0x8ab.7 (34) + 0x000088| 04 | . | class: "universal" (0) 0x88a-0x88a.1 (0.2) + 0x000088| 04 | . | form: "primitive" (0) 0x88a.2-0x88a.2 (0.1) + 0x000088| 04 | . | tag: "octet_string" (0x4) 0x88a.3-0x88a.7 (0.5) + 0x000088| 20 | | length: 32 0x88b-0x88b.7 (1) + 0x000088| 30 1e 30 1c| 0.0.| value: raw bits 0x88c-0x8ab.7 (32) + 0x000089|a0 1a a0 18 86 16 68 74 74 70 3a 2f 2f 78 31 2e|......http://x1.| + 0x00008a|63 2e 6c 65 6e 63 72 2e 6f 72 67 2f |c.lencr.org/ | + | | | [7]{}: object 0x8ac-0x8cf.7 (36) + 0x00008a| 30 | 0 | class: "universal" (0) 0x8ac-0x8ac.1 (0.2) + 0x00008a| 30 | 0 | form: "constructed" (1) 0x8ac.2-0x8ac.2 (0.1) + 0x00008a| 30 | 0 | tag: "sequence" (0x10) 0x8ac.3-0x8ac.7 (0.5) + 0x00008a| 22 | " | length: 34 0x8ad-0x8ad.7 (1) + | | | constructed[0:2]: 0x8ae-0x8cf.7 (34) + | | | [0]{}: object 0x8ae-0x8b2.7 (5) + 0x00008a| 06 | . | class: "universal" (0) 0x8ae-0x8ae.1 (0.2) + 0x00008a| 06 | . | form: "primitive" (0) 0x8ae.2-0x8ae.2 (0.1) + 0x00008a| 06 | . | tag: "object_identifier" (0x6) 0x8ae.3-0x8ae.7 (0.5) + 0x00008a| 03| .| length: 3 0x8af-0x8af.7 (1) + | | | value[0:4]: 0x8b0-0x8b2.7 (3) + 0x00008b|55 |U | [0]: 2 oid 0x8b0-0x8b0.7 (1) + 0x00008b|55 |U | [1]: 5 oid 0x8b0-0x8b0.7 (1) + 0x00008b| 1d | . | [2]: 29 oid 0x8b1-0x8b1.7 (1) + 0x00008b| 20 | | [3]: 32 oid 0x8b2-0x8b2.7 (1) + | | | [1]{}: object 0x8b3-0x8cf.7 (29) + 0x00008b| 04 | . | class: "universal" (0) 0x8b3-0x8b3.1 (0.2) + 0x00008b| 04 | . | form: "primitive" (0) 0x8b3.2-0x8b3.2 (0.1) + 0x00008b| 04 | . | tag: "octet_string" (0x4) 0x8b3.3-0x8b3.7 (0.5) + 0x00008b| 1b | . | length: 27 0x8b4-0x8b4.7 (1) + 0x00008b| 30 19 30 08 06 06 67 81 0c 01 02| 0.0...g....| value: raw bits 0x8b5-0x8cf.7 (27) + 0x00008c|01 30 0d 06 0b 2b 06 01 04 01 82 df 13 01 01 01|.0...+..........| + | | | [1]{}: object 0x8d0-0x8de.7 (15) + 0x00008d|30 |0 | class: "universal" (0) 0x8d0-0x8d0.1 (0.2) + 0x00008d|30 |0 | form: "constructed" (1) 0x8d0.2-0x8d0.2 (0.1) + 0x00008d|30 |0 | tag: "sequence" (0x10) 0x8d0.3-0x8d0.7 (0.5) + 0x00008d| 0d | . | length: 13 0x8d1-0x8d1.7 (1) + | | | constructed[0:2]: 0x8d2-0x8de.7 (13) + | | | [0]{}: object 0x8d2-0x8dc.7 (11) + 0x00008d| 06 | . | class: "universal" (0) 0x8d2-0x8d2.1 (0.2) + 0x00008d| 06 | . | form: "primitive" (0) 0x8d2.2-0x8d2.2 (0.1) + 0x00008d| 06 | . | tag: "object_identifier" (0x6) 0x8d2.3-0x8d2.7 (0.5) + 0x00008d| 09 | . | length: 9 0x8d3-0x8d3.7 (1) + | | | value[0:7]: 0x8d4-0x8dc.7 (9) + 0x00008d| 2a | * | [0]: 1 oid 0x8d4-0x8d4.7 (1) + 0x00008d| 2a | * | [1]: 2 oid 0x8d4-0x8d4.7 (1) + 0x00008d| 86 48 | .H | [2]: 840 oid 0x8d5-0x8d6.7 (2) + 0x00008d| 86 f7 0d | ... | [3]: 113549 oid 0x8d7-0x8d9.7 (3) + 0x00008d| 01 | . | [4]: 1 oid 0x8da-0x8da.7 (1) + 0x00008d| 01 | . | [5]: 1 oid 0x8db-0x8db.7 (1) + 0x00008d| 0b | . | [6]: 11 oid 0x8dc-0x8dc.7 (1) + | | | [1]{}: object 0x8dd-0x8de.7 (2) + 0x00008d| 05 | . | class: "universal" (0) 0x8dd-0x8dd.1 (0.2) + 0x00008d| 05 | . | form: "primitive" (0) 0x8dd.2-0x8dd.2 (0.1) + 0x00008d| 05 | . | tag: "null" (0x5) 0x8dd.3-0x8dd.7 (0.5) + 0x00008d| 00 | . | length: "indefinite" (0) 0x8de-0x8de.7 (1) + | | | value: null 0x8df-NA (0) + | | | [2]{}: object 0x8df-0xae3.7 (517) + 0x00008d| 03| .| class: "universal" (0) 0x8df-0x8df.1 (0.2) + 0x00008d| 03| .| form: "primitive" (0) 0x8df.2-0x8df.2 (0.1) + 0x00008d| 03| .| tag: "bit_string" (0x3) 0x8df.3-0x8df.7 (0.5) + 0x00008e|82 02 01 |... | length: 513 0x8e0-0x8e2.7 (3) + 0x00008e| 00 | . | unused_bits_count: 0 0x8e3-0x8e3.7 (1) + 0x00008e| 85 ca 4e 47 3e a3 f7 85 44 85 bc d5| ..NG>...D...| value: raw bits 0x8e4-0xae3.7 (512) + 0x00008f|67 78 b2 98 63 ad 75 4d 1e 96 3d 33 65 72 54 2d|gx..c.uM..=3erT-| + * |until 0xae3.7 (512) | | + | | | [2]{}: certificate 0xae4-0x104a.7 (1383) + 0x0000ae| 00 05 64 | ..d | length: 1380 0xae4-0xae6.7 (3) + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| data{}: (asn1_ber) 0xae7-0x104a.7 (1380) + 0x0000ae| 30 | 0 | class: "universal" (0) 0xae7-0xae7.1 (0.2) + 0x0000ae| 30 | 0 | form: "constructed" (1) 0xae7.2-0xae7.2 (0.1) + 0x0000ae| 30 | 0 | tag: "sequence" (0x10) 0xae7.3-0xae7.7 (0.5) + 0x0000ae| 82 05 60 | ..` | length: 1376 0xae8-0xaea.7 (3) + | | | constructed[0:3]: 0xaeb-0x104a.7 (1376) + | | | [0]{}: object 0xaeb-0xf36.7 (1100) + 0x0000ae| 30 | 0 | class: "universal" (0) 0xaeb-0xaeb.1 (0.2) + 0x0000ae| 30 | 0 | form: "constructed" (1) 0xaeb.2-0xaeb.2 (0.1) + 0x0000ae| 30 | 0 | tag: "sequence" (0x10) 0xaeb.3-0xaeb.7 (0.5) + 0x0000ae| 82 04 48 | ..H | length: 1096 0xaec-0xaee.7 (3) + | | | constructed[0:8]: 0xaef-0xf36.7 (1096) + | | | [0]{}: object 0xaef-0xaf3.7 (5) + 0x0000ae| a0| .| class: "context" (2) 0xaef-0xaef.1 (0.2) + 0x0000ae| a0| .| form: "constructed" (1) 0xaef.2-0xaef.2 (0.1) + 0x0000ae| a0| .| tag: 0 0xaef.3-0xaef.7 (0.5) + 0x0000af|03 |. | length: 3 0xaf0-0xaf0.7 (1) + | | | constructed[0:1]: 0xaf1-0xaf3.7 (3) + | | | [0]{}: object 0xaf1-0xaf3.7 (3) + 0x0000af| 02 | . | class: "universal" (0) 0xaf1-0xaf1.1 (0.2) + 0x0000af| 02 | . | form: "primitive" (0) 0xaf1.2-0xaf1.2 (0.1) + 0x0000af| 02 | . | tag: "integer" (0x2) 0xaf1.3-0xaf1.7 (0.5) + 0x0000af| 01 | . | length: 1 0xaf2-0xaf2.7 (1) + 0x0000af| 02 | . | value: 2 0xaf3-0xaf3.7 (1) + | | | [1]{}: object 0xaf4-0xb05.7 (18) + 0x0000af| 02 | . | class: "universal" (0) 0xaf4-0xaf4.1 (0.2) + 0x0000af| 02 | . | form: "primitive" (0) 0xaf4.2-0xaf4.2 (0.1) + 0x0000af| 02 | . | tag: "integer" (0x2) 0xaf4.3-0xaf4.7 (0.5) + 0x0000af| 10 | . | length: 16 0xaf5-0xaf5.7 (1) + 0x0000af| 40 01 77 21 37 d4 e9 42 b8 ee| @.w!7..B..| value: 85078200265644417569109389142156118711 0xaf6-0xb05.7 (16) + 0x0000b0|76 aa 3c 64 0a b7 |v...4.k....s...| + * |until 0x5d33.7 (end) (2906) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|6e 20 6a 75 73 74 20 77 65 62 73 69 74 65 73 2c|n just websites,| message: raw bits 0x0-0xb41.7 (2882) + * |until 0xb41.7 (end) (2882) | | + |00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef| + 0x0000|48 54 54 50 2f 31 2e 31 20 32 30 30 20 4f 4b 0d|HTTP/1.1 200 OK.| stream: raw bits 0x0-0x4b41.7 (19266) + * |until 0x4b41.7 (end) (19266) | | diff --git a/format/tls/testdata/testtls.com.http1.1-tls1.2.pcap.keylog b/format/tls/testdata/testtls.com.http1.1-tls1.2.pcap.keylog new file mode 100644 index 00000000..346ed7b2 --- /dev/null +++ b/format/tls/testdata/testtls.com.http1.1-tls1.2.pcap.keylog @@ -0,0 +1 @@ +CLIENT_RANDOM 0ae93f8befae62f4753631f2144f93432191398f83fe9c2bdfc3647df3da8037 44ac028105e892720ed8f4947b7af8cd1b516f600a888502ec570bec2dfcd224305c1ffd57849b4490c92acbdd6e2b3f diff --git a/format/tls/testdata/to_tar.jq b/format/tls/testdata/to_tar.jq new file mode 100644 index 00000000..f6d0881f --- /dev/null +++ b/format/tls/testdata/to_tar.jq @@ -0,0 +1,44 @@ +def to_tar(g): + def lpad($l; $n): [[range($l-length) | $n], .]; + def rpad($l; $n): [., [range($l-length) | $n]]; + def header($filename; $b): + def checksum: [.[range(.size)]] | add; + def h: + [ ($filename | rpad(100; 0)) # name + , ("000644 " | rpad(8; 0)) # mode + , ("000000 " | rpad(8; 0)) # uid + , ("000000 " | rpad(8; 0)) # gid + , [($b.size | to_radix(8) | [lpad(11; "0")]), " "] # size + , [(0| to_radix(8) | lpad(11; "0")), " "] # mtime + , " " # chksum (blank spaces when adding checksum) + , ("0") # typeflag + , ("" | rpad(100; 0)) # linkname + , ["ustar", 0] # magic + , ("00") # version + , ("user" | rpad(32; 0)) # uname + , ("group" | rpad(32; 0)) # gname + , ("000000 " | rpad(8; 0)) # devmajor + , ("000000 " | rpad(8; 0)) # devminor + , ("" | rpad(155; 0)) # prefix + ] | tobytes; + ( h as $h + | [ $h[0:148] + , [(($h | checksum) | to_radix(8) | lpad(6; "0")), 0, " "] + , $h[148+8:] + ] + | tobytes + ); + [ ( # per file + ( g as {$filename, $data} + | ($data | tobytes) as $b + | ($filename | rpad(100; 0)) # name + | header($filename; $b) as $header + | $header + , ("" | lpad((512 - ($header.size % 512)) % 512; 0)) + , $b + , ("" | lpad((512 - ($b.size % 512)) % 512; 0)) + ) + # end_marker + , [range(1024) | 0] + ) + ] | tobytes; \ No newline at end of file diff --git a/format/tls/tls.go b/format/tls/tls.go new file mode 100644 index 00000000..9477719f --- /dev/null +++ b/format/tls/tls.go @@ -0,0 +1,754 @@ +package tls + +// NOTES: +// - after first cipher change records are assume to be encrypted, currently even for +// null encryption decode will happen in post +// +// TODO: key exchange alg, decode key exchange parameters +// TODO: renegotiation, client/server hello again etc, uses current cipher state, keep track of key change +// TODO: tls 1.3, ssl? combine or own format? +// TODO: ALPN +// TODO: pcapng keylog +// TODO: add fields for seq, calculated things? prf result and decode key/iv? +// TODO: warnings to stderr decode api support? +// +// The wireshark TLS/SSL dissector code is a great reference to look at while +// reading the TLS specification: +// https://github.com/boundary/wireshark/blob/master/epan/dissectors/packet-ssl.c +// https://github.com/boundary/wireshark/blob/master/epan/dissectors/packet-ssl-utils.c + +import ( + "bytes" + "embed" + "fmt" + "io" + "time" + + "github.com/wader/fq/format" + "github.com/wader/fq/format/tls/ciphersuites" + "github.com/wader/fq/format/tls/keylog" + "github.com/wader/fq/format/tls/rezlib" + "github.com/wader/fq/format/tls/tlsdecrypt" + "github.com/wader/fq/pkg/bitio" + "github.com/wader/fq/pkg/decode" + "github.com/wader/fq/pkg/interp" + "github.com/wader/fq/pkg/ranges" + "github.com/wader/fq/pkg/scalar" +) + +//go:embed tls.md +var tlsFS embed.FS + +var asn1BerFormat decode.Group + +func init() { + interp.RegisterFormat(decode.Format{ + Name: format.TLS, + Description: "Transport layer security", + Groups: []string{format.TCP_STREAM}, + DecodeFn: decodeTLS, + DefaultInArg: format.TLSIn{}, + Dependencies: []decode.Dependency{ + {Names: []string{format.ASN1_BER}, Group: &asn1BerFormat}, + }, + }) + interp.RegisterFS(tlsFS) +} + +//nolint:revive +const ( + versionSSL = 0x0300 + versionTLS_1_0 = 0x0301 + versionTLS_1_1 = 0x0302 + versionTLS_1_2 = 0x0303 + versionTLS_1_3 = 0x0304 +) + +var versionNames = scalar.UintMapSymStr{ + versionSSL: "ssl", + versionTLS_1_0: "tls1.0", + versionTLS_1_1: "tls1.1", + versionTLS_1_2: "tls1.2", + versionTLS_1_3: "tls1.3", +} + +var versionValid = []uint64{ + versionSSL, + versionTLS_1_0, + versionTLS_1_1, + versionTLS_1_2, + versionTLS_1_3, +} + +const ( + recordTypeChangeCipherSpec = 20 + recordTypeAlert = 21 + recordTypeHandshake = 22 + recordTypeApplicationData = 23 +) + +var recordTypeNames = scalar.UintMapSymStr{ + recordTypeChangeCipherSpec: "change_cipher_spec", + recordTypeAlert: "alert", + recordTypeHandshake: "handshake", + recordTypeApplicationData: "application_data", +} + +var recordTypeValid = []uint64{ + recordTypeChangeCipherSpec, + recordTypeAlert, + recordTypeHandshake, + recordTypeApplicationData, +} + +const ( + handshakeMsgTypeHelloRequest = 0 + handshakeMsgTypeClientHello = 1 + handshakeMsgTypeServerHello = 2 + handshakeMsgTypeNewSessionTicket = 4 + handshakeMsgTypeCertificate = 11 + handshakeMsgTypeServerKeyExchange = 12 + handshakeMsgTypeCertificateRequest = 13 + handshakeMsgTypeServerHelloDone = 14 + handshakeMsgTypeCertificateVerify = 15 + handshakeMsgTypeClientKeyExchange = 16 + handshakeMsgTypeFinished = 20 +) + +var handshakeMsgTypeNames = scalar.UintMapSymStr{ + handshakeMsgTypeHelloRequest: "hello_request", + handshakeMsgTypeClientHello: "client_hello", + handshakeMsgTypeServerHello: "server_hello", + handshakeMsgTypeNewSessionTicket: "new_session_ticket", + handshakeMsgTypeCertificate: "certificate", + handshakeMsgTypeServerKeyExchange: "server_key_exchange", + handshakeMsgTypeCertificateRequest: "certificate_request", + handshakeMsgTypeServerHelloDone: "server_hello_done", + handshakeMsgTypeCertificateVerify: "certificate_verify", + handshakeMsgTypeClientKeyExchange: "client_key_exchange", + handshakeMsgTypeFinished: "finished", +} + +const ( + compressionMethodNull = 0 + compressionMethodDeflate = 1 +) + +var compressionMethodNames = scalar.UintMapSymStr{ + compressionMethodNull: "null", + compressionMethodDeflate: "deflate", +} + +const ( + changeCipherSpecTypeChangeCipherSpec = 0 +) + +var changeCipherSpecTypeNames = scalar.UintMapSymStr{ + changeCipherSpecTypeChangeCipherSpec: "change_cipher_spec", +} + +var cipherNames = scalar.UintFn(func(s scalar.Uint) (scalar.Uint, error) { + if suit, ok := ciphersuites.Suits[int(s.Actual)]; ok { + s.Sym = suit.Name + } + return s, nil +}) + +const ( + signatureAlgorithmAnonymous = 0 + signatureAlgorithmRSA = 1 + signatureAlgorithmDSA = 2 + signatureAlgorithmECDSA = 3 + signatureAlgorithmEd25519 = 7 + signatureAlgorithmEd448 = 8 + signatureAlgorithmGOSTR34102012_256 = 64 + signatureAlgorithmGOSTR34102012_512 = 65 +) + +var signatureAlgorithmNames = scalar.UintMapSymStr{ + signatureAlgorithmAnonymous: "anonymous", + signatureAlgorithmRSA: "rsa", + signatureAlgorithmDSA: "dsa", + signatureAlgorithmECDSA: "ecdsa", + signatureAlgorithmEd25519: "ed25519", + signatureAlgorithmEd448: "ed448", + signatureAlgorithmGOSTR34102012_256: "gostr34102012_256", + signatureAlgorithmGOSTR34102012_512: "gostr34102012_512", +} + +const ( + hashAlgorithmnone = 0 + hashAlgorithmMD5 = 1 + hashAlgorithmSHA1 = 2 + hashAlgorithmSHA224 = 3 + hashAlgorithmSHA256 = 4 + hashAlgorithmSHA384 = 5 + hashAlgorithmSHA512 = 6 + hashAlgorithmIntrinsic = 8 +) + +var hashAlgorithmNames = scalar.UintMapSymStr{ + hashAlgorithmnone: "none", + hashAlgorithmMD5: "md5", + hashAlgorithmSHA1: "sha1", + hashAlgorithmSHA224: "sha224", + hashAlgorithmSHA256: "sha256", + hashAlgorithmSHA384: "sha384", + hashAlgorithmSHA512: "sha512", + hashAlgorithmIntrinsic: "intrinsic", +} + +type encryptedRecord struct { + recordType uint64 + d *decode.D + r ranges.Range +} + +type keyExchange struct { + msgType uint64 + d *decode.D + r ranges.Range + dataV *decode.Value +} + +type tlsCtx struct { + rootD *decode.D + + version uint64 + random [32]byte + + // server only + server struct { + currentCipherSuit uint64 + nextCipherSuit uint64 + compressionMethod uint64 + } + + // cipher has been decided + isEncrypted bool + encryptedRecords []encryptedRecord + keyExchange *keyExchange + + serverCtx *tlsCtx + clientCtx *tlsCtx +} + +func decodeTLSExtension(d *decode.D) { + typ := d.FieldU16("type", extensionNames) + length := d.FieldU16("length") + // server sometimes use empty extension to indicate things, ex: accept SNI + if length == 0 { + return + } + d.FramedFn(int64(length)*8, func(d *decode.D) { + switch typ { + case extensionServerName: + serverNameLength := d.FieldU16("serer_names_length") + d.FieldArray("server_names", func(d *decode.D) { + d.FramedFn(int64(serverNameLength)*8, func(d *decode.D) { + for !d.End() { + d.FieldStruct("server_name", func(d *decode.D) { + d.FieldU8("type") // TODO: + length := d.FieldU16("length") + d.FieldUTF8("name", int(length)) + }) + } + }) + }) + case extensionApplicationLayerProtocolNegotiation: + protocolsLength := d.FieldU16("serer_names_length") + d.FieldArray("protocols", func(d *decode.D) { + d.FramedFn(int64(protocolsLength)*8, func(d *decode.D) { + for !d.End() { + d.FieldStruct("protocol", func(d *decode.D) { + length := d.FieldU8("length") + d.FieldUTF8("name", int(length)) + }) + } + }) + }) + case extensionEcPointFormats: + protocolsLength := d.FieldU8("ex_points_format_length") + d.FieldArray("ex_points_formats", func(d *decode.D) { + d.FramedFn(int64(protocolsLength)*8, func(d *decode.D) { + for !d.End() { + d.FieldU8("ex_points_format", scalar.UintHex) // TODO: names + } + }) + }) + case extensionSupportedGroups: + protocolsLength := d.FieldU16("supported_group_length") + d.FieldArray("supported_groups", func(d *decode.D) { + d.FramedFn(int64(protocolsLength)*8, func(d *decode.D) { + for !d.End() { + d.FieldU16("supported_group", scalar.UintHex) // TODO: names + } + }) + }) + case extensionSignatureAlgorithms: + protocolsLength := d.FieldU16("signature_algorithm_length") + d.FieldArray("signature_algorithms", func(d *decode.D) { + d.FramedFn(int64(protocolsLength)*8, func(d *decode.D) { + for !d.End() { + d.FieldStruct("signature_algorithm", func(d *decode.D) { + d.FieldU8("hash", hashAlgorithmNames) + d.FieldU8("signature", signatureAlgorithmNames) + }) + } + }) + }) + default: + d.FieldRawLen("data", int64(length)*8) + } + }) +} + +func decodeTLSHandshake(d *decode.D, tc *tlsCtx) { + msgType := d.FieldU8("type", handshakeMsgTypeNames) + length := d.FieldU24("length") + + d.FramedFn(int64(length)*8, func(d *decode.D) { + switch msgType { + case handshakeMsgTypeHelloRequest: + // TODO: nothing? + case handshakeMsgTypeClientHello, + handshakeMsgTypeServerHello: + tc.version = d.FieldU16("version", versionNames, scalar.UintHex) + copy(tc.random[:], d.PeekBytes(32)) + d.FieldStruct("random", func(d *decode.D) { + d.FieldU32("gmt_unix_time", scalar.UintActualUnixTime(time.RFC3339)) + d.FieldRawLen("random_bytes", 28*8) + }) + + sessionIDLength := d.FieldU8("session_id_length") + d.FieldRawLen("session_id", int64(sessionIDLength)*8) + + if msgType == handshakeMsgTypeServerHello { + tc.server.nextCipherSuit = d.FieldU16("cipher_suit", cipherNames, scalar.UintHex) + } else { + cipherSuitLength := d.FieldU16("cipher_suits_length") + d.FramedFn(int64(cipherSuitLength)*8, func(d *decode.D) { + d.FieldArray("cipher_suits", func(d *decode.D) { + for !d.End() { + d.FieldU16("cipher_suit", cipherNames, scalar.UintHex) + } + }) + }) + } + + if msgType == handshakeMsgTypeServerHello { + tc.server.compressionMethod = d.FieldU8("compression_method", compressionMethodNames, scalar.UintHex) + } else { + compressionMethodLength := d.FieldU8("compression_methods_length") + d.FramedFn(int64(compressionMethodLength)*8, func(d *decode.D) { + d.FieldArray("compression_methods", func(d *decode.D) { + for !d.End() { + d.FieldU8("compression_method", compressionMethodNames, scalar.UintHex) + } + }) + }) + } + + // SSL v3 should have no extensions but we decode if there are bytes + if d.BitsLeft() > 0 { + extensionsLength := d.FieldU16("extensions_length") + d.FramedFn(int64(extensionsLength)*8, func(d *decode.D) { + d.FieldArray("extensions", func(d *decode.D) { + for !d.End() { + d.FieldStruct("extension", decodeTLSExtension) + } + }) + }) + } + case handshakeMsgTypeCertificate: + certificatesLength := d.FieldU24("certificates_length") + d.FramedFn(int64(certificatesLength)*8, func(d *decode.D) { + d.FieldArray("certificates", func(d *decode.D) { + for !d.End() { + d.FieldStruct("certificate", func(d *decode.D) { + length := d.FieldU24("length") + d.FieldFormatLen("data", int64(length)*8, asn1BerFormat, nil) + }) + } + }) + }) + case handshakeMsgTypeClientKeyExchange, + handshakeMsgTypeServerKeyExchange: + // is decoded later in decodeTLSPostKeyExchange + start := d.Pos() + d.FieldRawLen("data", d.BitsLeft()) + dataV := d.FieldGet("data") + tc.keyExchange = &keyExchange{ + msgType: msgType, + d: d, + r: ranges.Range{Start: d.Pos(), Len: d.Pos() - start}, + dataV: dataV, + } + case handshakeMsgTypeFinished: + d.FieldRawLen("verify_data", d.BitsLeft()) + case handshakeMsgTypeNewSessionTicket: + d.FieldU32("lifetime_hint") + ticketLength := d.FieldU16("ticket_length") + d.FieldRawLen("ticket", int64(ticketLength)*8) + default: + d.FieldRawLen("data", d.BitsLeft()) + } + }) +} + +func decodeTLSRecord(d *decode.D, tc *tlsCtx, isEncrypted bool) { + recordStart := d.Pos() + + recordType := d.FieldU8("type", recordTypeNames, d.UintAssert(recordTypeValid...)) + d.FieldU16("version", versionNames, scalar.UintHex, d.UintAssert(versionValid...)) + length := d.FieldU16("length") + d.FramedFn(int64(length)*8, func(d *decode.D) { + if isEncrypted { + d.FieldRawLen("encrypted_data", d.BitsLeft()) + // is decoded later in decodeTLSPostEncryptedRecords + tc.encryptedRecords = append(tc.encryptedRecords, encryptedRecord{ + recordType: recordType, + d: d, + r: ranges.Range{Start: recordStart, Len: d.Pos() - recordStart}, + }) + return + } + + d.FieldStruct("message", func(d *decode.D) { + decodeTLSRecordMessage(d, tc, recordType) + }) + }) +} + +func decodeTLSRecordMessage(d *decode.D, tc *tlsCtx, recordType uint64) { + switch recordType { + case recordTypeHandshake: + decodeTLSHandshake(d, tc) + case recordTypeChangeCipherSpec: + d.FieldU8("type", changeCipherSpecTypeNames) + tc.server.currentCipherSuit = tc.server.nextCipherSuit + tc.isEncrypted = true + case recordTypeApplicationData: + d.FieldRawLen("data", d.BitsLeft()) + case recordTypeAlert: + d.FieldU8("level", alertLevelNames) + d.FieldU8("description", alertNames) + default: + d.FieldRawLen("data", d.BitsLeft()) + } +} + +func decodeTLSPostEncryptedRecords(rootD *decode.D, tc *tlsCtx, kl keylog.Map) { + // to decrypt tls we need: + // - client random to look up shared master secret + // - client and server random to generate cipher iv/key in both directions + masterSecret, _ := kl.Lookup(keylog.ClientRandom, tc.clientCtx.random) + if masterSecret == nil { + // TODO: info/warn? + return + } + + td := tlsdecrypt.Decryptor{ + IsClient: tc == tc.clientCtx, + Version: int(tc.serverCtx.version), + CipherSuite: int(tc.serverCtx.server.currentCipherSuit), + MasterSecret: masterSecret, + ClientRandom: tc.clientCtx.random[:], + ServerRandom: tc.serverCtx.random[:], + } + + applicationStream := &bytes.Buffer{} + plainBuf := &bytes.Buffer{} + var uncompressR io.Reader + hasApplicationStream := false + + for _, r := range tc.encryptedRecords { + encryptedRecord := r.d.ReadAllBits(rootD.BitBufRange(r.r.Start, r.r.Len)) + plain, decryptErr := td.Decrypt(encryptedRecord) + if decryptErr != nil { + // TODO: warn + // log.Printf("err: %#+v\n", decryptErr) + continue + } + + plainBuf.Write(plain) + + // happens after plainBuf write as uncompressor init might read input + if uncompressR == nil { + switch tc.serverCtx.server.compressionMethod { + case compressionMethodNull: + uncompressR = plainBuf + case compressionMethodDeflate: + var uncompressRErr error + uncompressR, uncompressRErr = rezlib.NewReader(plainBuf) + if uncompressRErr != nil { + // TODO: warn? + continue + } + default: + // TODO: how to inform? option? + // rootD.Fatalf("compression method %d not supported", tc.serverCtx.server.compressionMethod) + continue + } + } + + plainUncomp, plainUncompErr := io.ReadAll(uncompressR) + if plainUncompErr != nil { + continue + } + + bbr := bitio.NewBitReader(plainUncomp, -1) + // application data handled differently to get data as .message + if r.recordType == recordTypeApplicationData { + applicationStream.Write(plainUncomp) + hasApplicationStream = true + r.d.FieldRootBitBuf("message", bbr) + } else { + r.d.FieldStructRootBitBufFn("message", bbr, func(d *decode.D) { + decodeTLSRecordMessage(d, tc, r.recordType) + }) + } + } + + if hasApplicationStream { + applicationBytes := applicationStream.Bytes() + rootD.FieldRootBitBuf("stream", bitio.NewBitReader(applicationBytes, -1)) + } +} + +func decodeTLSPostKeyExchange(tc *tlsCtx) { + ke := tc.keyExchange + if ke == nil { + return + } + + // TODO: better way to track version and cipher changes? + + // only for TLS 1.0-1.2 for now + switch tc.serverCtx.version { + case versionTLS_1_0, + versionTLS_1_1, + versionTLS_1_2: + default: + return + } + s, ok := ciphersuites.Suits[int(tc.serverCtx.server.currentCipherSuit)] + if !ok { + return + } + + // TODO: find a better way + ke.d.SeekRel(-ke.r.Len) + + replaceData := true + + switch ke.msgType { + case handshakeMsgTypeClientKeyExchange: + // struct { + // select (KeyExchangeAlgorithm) { + // case rsa: + // EncryptedPreMasterSecret; + // case dhe_dss: + // case dhe_rsa: + // case dh_dss: + // case dh_rsa: + // case dh_anon: + // ClientDiffieHellmanPublic; + // case ec_diffie_hellman: + // ClientECDiffieHellmanPublic; + // } exchange_keys; + // } ClientKeyExchange; + switch s.KeyAgreement { + // TODO: ssl/tls difference? + // ciphersuites.DH_anon_EXPORT: + //ciphersuites.RSA_PSK, + //ciphersuites.RSA_EXPORT, + //ciphersuites.RSA_FIPS: + case + ciphersuites.RSA: + ke.d.FieldStruct("encrypted_premaster", func(d *decode.D) { + length := d.FieldU16("length") + d.FieldRawLen("data", int64(length)*8) + }) + case ciphersuites.DHE_DSS, + ciphersuites.DHE_RSA, + ciphersuites.DH_DSS, + ciphersuites.DH_RSA, + ciphersuites.DH_anon: + ke.d.FieldStruct("public", func(d *decode.D) { + length := d.FieldU16("length") + d.FieldRawLen("data", int64(length)*8) + }) + case ciphersuites.ECDH_ECDSA, + ciphersuites.ECDH_RSA, + ciphersuites.ECDH_anon, + ciphersuites.ECDHE_ECDSA, + ciphersuites.ECDHE_PSK, + ciphersuites.ECDHE_RSA: + ke.d.FieldStruct("public", func(d *decode.D) { + length := d.FieldU8("length") + d.FieldRawLen("data", int64(length)*8) + }) + default: + replaceData = false + } + case handshakeMsgTypeServerKeyExchange: + // struct { + // select (KeyExchangeAlgorithm) { + // case dh_anon: + // ServerDHParams params; + // case dhe_dss: + // case dhe_rsa: + // ServerDHParams params; + // digitally-signed struct { + // opaque client_random[32]; + // opaque server_random[32]; + // ServerDHParams params; + // } signed_params; + // case rsa: + // case dh_dss: + // case dh_rsa: + // struct {} ; + // /* message is omitted for rsa, dh_dss, and dh_rsa */ + // /* may be extended, e.g., for ECDH -- see [TLSECC] */ + // }; + // } ServerKeyExchange; + switch s.KeyAgreement { + //ciphersuites.ECDHE_PSK, + // case ciphersuites.RSA: + case ciphersuites.ECDH_ECDSA, + ciphersuites.ECDH_RSA, + ciphersuites.ECDH_anon, + ciphersuites.ECDHE_ECDSA, + ciphersuites.ECDHE_RSA: + ke.d.FieldStruct("curve_params", func(d *decode.D) { + curveType := d.FieldU8("curve_type") + // TODO: named 3=named_curve + switch curveType { + case 3: + d.FieldU16("named_curve") + } + }) + ke.d.FieldStruct("public", func(d *decode.D) { + length := d.FieldU8("length") + d.FieldRawLen("data", int64(length)*8) + }) + ke.d.FieldStruct("signature_algorithm", func(d *decode.D) { + d.FieldU8("hash", hashAlgorithmNames) + d.FieldU8("signature", signatureAlgorithmNames) + length := d.FieldU16("length") + d.FieldRawLen("data", int64(length)*8) + }) + default: + replaceData = false + } + default: + panic(fmt.Sprintf("unknown ke type %d", ke.msgType)) + } + + if replaceData { + if err := ke.dataV.Remove(); err != nil { + panic(err) + } + } +} + +// SSL v2 compatible header +func decodeV2ClientHello(d *decode.D, tc *tlsCtx) { + // TODO: header length/padding? + d.FieldU16("length", scalar.UintActualFn(func(a uint64) uint64 { return a & 0x7fff })) + d.FieldU8("type") + d.FieldU16("tls_version") + cipherLength := d.FieldU16("cipher_spec_length") + sessionIDLength := d.FieldU16("session_id_length") + challengeLength := d.FieldU16("challenge_length") + + d.FramedFn(int64(cipherLength)*8, func(d *decode.D) { + d.FieldArray("cipher_specs", func(d *decode.D) { + for !d.End() { + d.FieldU24("cipher_spec", cipherNames, scalar.UintHex) + } + }) + }) + d.FieldRawLen("session_id", int64(sessionIDLength)*8) + copy(tc.random[:], d.PeekBytes(int(challengeLength))) + d.FieldRawLen("challenge", int64(challengeLength)*8) +} + +func decodeTLS(d *decode.D) any { + var ti format.TLSIn + d.ArgAs(&ti) + + isClient := false + + var tsi format.TCPStreamIn + if d.ArgAs(&tsi) { + if !tsi.HasStart { + d.Fatalf("tls requires start of byte stream") + } + isClient = tsi.IsClient + } + + tc := &tlsCtx{ + rootD: d, + } + tc.server.currentCipherSuit = ciphersuites.TLS_NULL_WITH_NULL_NULL + tc.server.nextCipherSuit = ciphersuites.TLS_NULL_WITH_NULL_NULL + + firstByte := d.PeekBits(8) + if firstByte&0x80 != 0 { + d.FieldStruct("ssl_v2", func(d *decode.D) { + decodeV2ClientHello(d, tc) + }) + } + recordsDecoded := 0 + d.FieldArray("records", func(d *decode.D) { + for !d.End() { + d.FieldStruct("record", func(d *decode.D) { + decodeTLSRecord(d, tc, tc.isEncrypted) + recordsDecoded++ + }) + } + }) + // as we're in the tcp group we should at least decode one record + if recordsDecoded == 0 { + d.Fatalf("no records found") + } + + // client side will do post for both + if !isClient { + return format.TCPStreamOut{InArg: tc} + } + + return format.TCPStreamOut{ + PostFn: func(peerIn any) { + // peerIn will be the other peers outArg, the server *tlsCtx + clientTc := tc + serverTc, serverTcOk := peerIn.(*tlsCtx) + if !serverTcOk { + panic(fmt.Sprintf("tls PostFn in not *tlsCtx %+#v", peerIn)) + } + + tc.clientCtx = clientTc + tc.serverCtx = serverTc + serverTc.clientCtx = clientTc + serverTc.serverCtx = serverTc + + decodeTLSPostKeyExchange(clientTc) + decodeTLSPostKeyExchange(serverTc) + + if ti.Keylog == "" { + return + } + + km, err := keylog.Parse(ti.Keylog) + if err != nil { + d.Fatalf("failed to parse keylog: %s", err) + } + + decodeTLSPostEncryptedRecords(clientTc.rootD, clientTc, km) + decodeTLSPostEncryptedRecords(serverTc.rootD, serverTc, km) + }, + InArg: tc, + } +} diff --git a/format/tls/tls.md b/format/tls/tls.md new file mode 100644 index 00000000..8b9521b5 --- /dev/null +++ b/format/tls/tls.md @@ -0,0 +1,126 @@ +Supports decoding of most standard records, messages and extensions. Can also decrypt most standard cipher suits in a PCAP with traffic in both directions if a NSS key log is provided. + +### Decode and decrypt provding a PCAP and key log + +Write traffic to a PCAP file: + +```sh +$ tcpdump -i -w traffic.pcap +``` + +Make sure your curl TLS backend support `SSLKEYLOGFILE` and do: +```sh +$ SSLKEYLOGFILE=traffic.keylog curl --tls-max 1.2 https://host/path +``` + +Decode, decrypt and query. Uses `keylog=@` to read option value from keylog file: +```sh +# decode and show whole tree +$ fq -o keylog=@traffic.keylog d traffic.pcap + +# write unencrypted server response to a file. +# first .stream is the TCP stream, second .stream is TLS application data stream +# +# first TCP connections: +$ fq -o keylog=@traffic.keylog '.tcp_connections[0].server.stream.stream | tobytes' traffic.pcap > data +# first TLS connection: +$ fq -o keylog=@traffic.keylog 'first(grep_by(.server.stream | format == "tls")).server.stream.stream | tobytes' > data +``` + +### Supported cipher suites for decryption + +`TLS_DH_ANON_EXPORT_WITH_DES40_CBC_SHA`, +`TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5`, +`TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA`, +`TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA`, +`TLS_DHE_DSS_WITH_AES_128_CBC_SHA`, +`TLS_DHE_DSS_WITH_AES_128_CBC_SHA256`, +`TLS_DHE_DSS_WITH_AES_128_GCM_SHA256`, +`TLS_DHE_DSS_WITH_AES_256_CBC_SHA`, +`TLS_DHE_DSS_WITH_AES_256_CBC_SHA256`, +`TLS_DHE_DSS_WITH_AES_256_GCM_SHA384`, +`TLS_DHE_DSS_WITH_DES_CBC_SHA`, +`TLS_DHE_DSS_WITH_RC4_128_SHA`, +`TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA`, +`TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_DHE_RSA_WITH_AES_128_CBC_SHA`, +`TLS_DHE_RSA_WITH_AES_128_CBC_SHA256`, +`TLS_DHE_RSA_WITH_AES_128_GCM_SHA256`, +`TLS_DHE_RSA_WITH_AES_256_CBC_SHA`, +`TLS_DHE_RSA_WITH_AES_256_CBC_SHA256`, +`TLS_DHE_RSA_WITH_AES_256_GCM_SHA384`, +`TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256`, +`TLS_DHE_RSA_WITH_DES_CBC_SHA`, +`TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256`, +`TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256`, +`TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384`, +`TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384`, +`TLS_ECDH_ECDSA_WITH_RC4_128_SHA`, +`TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_ECDH_RSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256`, +`TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256`, +`TLS_ECDH_RSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384`, +`TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384`, +`TLS_ECDH_RSA_WITH_RC4_128_SHA`, +`TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256`, +`TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256`, +`TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384`, +`TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384eadAESGCM`, +`TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256`, +`TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305`, +`TLS_ECDHE_ECDSA_WITH_RC4_128_SHA`, +`TLS_ECDHE_ECDSA_WITH_RC4_128_SHA`, +`TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA`, +`TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256`, +`TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256`, +`TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256`, +`TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA`, +`TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384`, +`TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384`, +`TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256`, +`TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305`, +`TLS_ECDHE_RSA_WITH_RC4_128_SHA`, +`TLS_ECDHE_RSA_WITH_RC4_128_SHA`, +`TLS_PSK_WITH_AES_128_CBC_SHA`, +`TLS_PSK_WITH_AES_256_CBC_SHA`, +`TLS_PSK_WITH_RC4_128_SHA`, +`TLS_RSA_EXPORT_WITH_DES40_CBC_SHA`, +`TLS_RSA_EXPORT_WITH_RC4_40_MD5`, +`TLS_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_RSA_WITH_3DES_EDE_CBC_SHA`, +`TLS_RSA_WITH_AES_128_CBC_SHA`, +`TLS_RSA_WITH_AES_128_CBC_SHA`, +`TLS_RSA_WITH_AES_128_CBC_SHA256`, +`TLS_RSA_WITH_AES_128_CBC_SHA256`, +`TLS_RSA_WITH_AES_128_GCM_SHA256`, +`TLS_RSA_WITH_AES_128_GCM_SHA256`, +`TLS_RSA_WITH_AES_256_CBC_SHA`, +`TLS_RSA_WITH_AES_256_CBC_SHA`, +`TLS_RSA_WITH_AES_256_CBC_SHA256`, +`TLS_RSA_WITH_AES_256_GCM_SHA384`, +`TLS_RSA_WITH_AES_256_GCM_SHA384`, +`TLS_RSA_WITH_DES_CBC_SHA`, +`TLS_RSA_WITH_RC4_128_MD5`, +`TLS_RSA_WITH_RC4_128_SHA`, +`TLS_RSA_WITH_RC4_128_SHA` + +### References + +- [RFC 5246: The Transport Layer Security (TLS) Protocol](https://www.rfc-editor.org/rfc/rfc5246) +- [RFC 6101: The Secure Sockets Layer (SSL) Protocol Version 3.0](https://www.rfc-editor.org/rfc/rfc) diff --git a/format/tls/tlsdecrypt/README.md b/format/tls/tlsdecrypt/README.md new file mode 100644 index 00000000..d2934b56 --- /dev/null +++ b/format/tls/tlsdecrypt/README.md @@ -0,0 +1,7 @@ +This code is an adaptation of golang crypto/tls and https://github.com/zmap/zcrypto + +Copyright 2009 The Go Authors. All rights reserved. +Use of this source code is governed by a BSD-style +license that can be found in the LICENSE file. + +https://github.com/zmap/zcrypto/blob/master/LICENSE diff --git a/format/tls/tlsdecrypt/alert.go b/format/tls/tlsdecrypt/alert.go new file mode 100644 index 00000000..dbe2a181 --- /dev/null +++ b/format/tls/tlsdecrypt/alert.go @@ -0,0 +1,93 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package tlsdecrypt + +import "strconv" + +type alert uint8 + +const ( + alertCloseNotify alert = 0 + alertUnexpectedMessage alert = 10 + alertBadRecordMAC alert = 20 + alertDecryptionFailed alert = 21 + alertRecordOverflow alert = 22 + alertDecompressionFailure alert = 30 + alertHandshakeFailure alert = 40 + alertBadCertificate alert = 42 + alertUnsupportedCertificate alert = 43 + alertCertificateRevoked alert = 44 + alertCertificateExpired alert = 45 + alertCertificateUnknown alert = 46 + alertIllegalParameter alert = 47 + alertUnknownCA alert = 48 + alertAccessDenied alert = 49 + alertDecodeError alert = 50 + alertDecryptError alert = 51 + alertExportRestriction alert = 60 + alertProtocolVersion alert = 70 + alertInsufficientSecurity alert = 71 + alertInternalError alert = 80 + alertInappropriateFallback alert = 86 + alertUserCanceled alert = 90 + alertNoRenegotiation alert = 100 + alertMissingExtension alert = 109 + alertUnsupportedExtension alert = 110 + alertCertificateUnobtainable alert = 111 + alertUnrecognizedName alert = 112 + alertBadCertificateStatusResponse alert = 113 + alertBadCertificateHashValue alert = 114 + alertUnknownPSKIdentity alert = 115 + alertCertificateRequired alert = 116 + alertNoApplicationProtocol alert = 120 +) + +var alertText = map[alert]string{ + alertCloseNotify: "close notify", + alertUnexpectedMessage: "unexpected message", + alertBadRecordMAC: "bad record MAC", + alertDecryptionFailed: "decryption failed", + alertRecordOverflow: "record overflow", + alertDecompressionFailure: "decompression failure", + alertHandshakeFailure: "handshake failure", + alertBadCertificate: "bad certificate", + alertUnsupportedCertificate: "unsupported certificate", + alertCertificateRevoked: "revoked certificate", + alertCertificateExpired: "expired certificate", + alertCertificateUnknown: "unknown certificate", + alertIllegalParameter: "illegal parameter", + alertUnknownCA: "unknown certificate authority", + alertAccessDenied: "access denied", + alertDecodeError: "error decoding message", + alertDecryptError: "error decrypting message", + alertExportRestriction: "export restriction", + alertProtocolVersion: "protocol version not supported", + alertInsufficientSecurity: "insufficient security level", + alertInternalError: "internal error", + alertInappropriateFallback: "inappropriate fallback", + alertUserCanceled: "user canceled", + alertNoRenegotiation: "no renegotiation", + alertMissingExtension: "missing extension", + alertUnsupportedExtension: "unsupported extension", + alertCertificateUnobtainable: "certificate unobtainable", + alertUnrecognizedName: "unrecognized name", + alertBadCertificateStatusResponse: "bad certificate status response", + alertBadCertificateHashValue: "bad certificate hash value", + alertUnknownPSKIdentity: "unknown PSK identity", + alertCertificateRequired: "certificate required", + alertNoApplicationProtocol: "no application protocol", +} + +func (e alert) String() string { + s, ok := alertText[e] + if ok { + return "tls: " + s + } + return "tls: alert(" + strconv.Itoa(int(e)) + ")" +} + +func (e alert) Error() string { + return e.String() +} diff --git a/format/tls/tlsdecrypt/cipher_suites.go b/format/tls/tlsdecrypt/cipher_suites.go new file mode 100644 index 00000000..5247daca --- /dev/null +++ b/format/tls/tlsdecrypt/cipher_suites.go @@ -0,0 +1,841 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package tlsdecrypt + +import ( + "crypto" + "crypto/aes" + "crypto/cipher" + "crypto/des" + "crypto/hmac" + "crypto/md5" + "crypto/rc4" + "crypto/sha1" + "crypto/sha256" + "crypto/sha512" + "hash" + + "golang.org/x/crypto/chacha20poly1305" +) + +// CipherSuite is a TLS cipher suite. Note that most functions in this package +// accept and expose cipher suite IDs instead of this type. +type CipherSuite struct { + ID uint16 + Name string + + // Supported versions is the list of TLS protocol versions that can + // negotiate this cipher suite. + SupportedVersions []uint16 + + // Insecure is true if the cipher suite has known security issues + // due to its primitives, design, or implementation. + Insecure bool +} + +var ( + supportedUpToTLS12 = []uint16{VersionTLS10, VersionTLS11, VersionTLS12} + supportedOnlyTLS12 = []uint16{VersionTLS12} + supportedOnlyTLS13 = []uint16{VersionTLS13} +) + +const ( + // suiteECDHE indicates that the cipher suite involves elliptic curve + // Diffie-Hellman. This means that it should only be selected when the + // client indicates that it supports ECC with a curve and point format + // that we're happy with. + suiteECDHE = 1 << iota + // suiteECSign indicates that the cipher suite involves an ECDSA or + // EdDSA signature and therefore may only be selected when the server's + // certificate is ECDSA or EdDSA. If this is not set then the cipher suite + // is RSA based. + suiteECSign + // suiteTLS12 indicates that the cipher suite should only be advertised + // and accepted when using TLS 1.2. + suiteTLS12 + // suiteSHA384 indicates that the cipher suite uses SHA384 as the + // handshake hash. + suiteSHA384 + + // suiteExport indicates that the cipher suite is an export suite + suiteExport +) + +// A cipherSuite is a TLS 1.0–1.2 cipher suite, and defines the key exchange +// mechanism, as well as the cipher+MAC pair or the AEAD. +type cipherSuite struct { + id uint16 + // the lengths, in bytes, of the key material needed for each component. + keyLen int + macLen int + ivLen int + + expandedKeyLen int + + ka any // FQ-CHANGE: func(version uint16) keyAgreement + // flags is a bitmask of the suite* values, above. + flags int + cipher func(key, iv []byte, isRead bool) any + mac func(key []byte) hash.Hash + aead func(key, fixedNonce []byte) aead +} + +var cipherSuites = []*cipherSuite{ // TODO: replace with a map, since the order doesn't matter. + // FQ-CHANGE: some of these probably have wrong flags, fq only uses cipher, mac and aead + {TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305, 32, 0, 12, 32, ecdheRSAKA, suiteECDHE | suiteTLS12, nil, nil, aeadChaCha20Poly1305}, + {TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305, 32, 0, 12, 32, ecdheECDSAKA, suiteECDHE | suiteECSign | suiteTLS12, nil, nil, aeadChaCha20Poly1305}, + {TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, 16, 0, 4, 16, ecdheRSAKA, suiteECDHE | suiteTLS12, nil, nil, aeadAESGCM}, + {TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, 16, 0, 4, 16, ecdheECDSAKA, suiteECDHE | suiteECSign | suiteTLS12, nil, nil, aeadAESGCM}, + {TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, 32, 0, 4, 32, ecdheRSAKA, suiteECDHE | suiteTLS12 | suiteSHA384, nil, nil, aeadAESGCM}, + {TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, 32, 0, 4, 32, ecdheECDSAKA, suiteECDHE | suiteECSign | suiteTLS12 | suiteSHA384, nil, nil, aeadAESGCM}, + {TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, 16, 32, 16, 16, ecdheRSAKA, suiteECDHE | suiteTLS12, cipherAES, macSHA256, nil}, + {TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, ecdheRSAKA, suiteECDHE, cipherAES, macSHA1, nil}, + {TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, 16, 32, 16, 16, ecdheECDSAKA, suiteECDHE | suiteECSign | suiteTLS12, cipherAES, macSHA256, nil}, + {TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, ecdheECDSAKA, suiteECDHE | suiteECSign, cipherAES, macSHA1, nil}, + {TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, ecdheRSAKA, suiteECDHE, cipherAES, macSHA1, nil}, + {TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, ecdheECDSAKA, suiteECDHE | suiteECSign, cipherAES, macSHA1, nil}, + {TLS_RSA_WITH_AES_128_GCM_SHA256, 16, 0, 4, 16, rsaKA, suiteTLS12, nil, nil, aeadAESGCM}, + {TLS_RSA_WITH_AES_256_GCM_SHA384, 32, 0, 4, 32, rsaKA, suiteTLS12 | suiteSHA384, nil, nil, aeadAESGCM}, + {TLS_RSA_WITH_AES_128_CBC_SHA256, 16, 32, 16, 16, rsaKA, suiteTLS12, cipherAES, macSHA256, nil}, + {TLS_RSA_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, rsaKA, 0, cipherAES, macSHA1, nil}, + {TLS_RSA_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, rsaKA, 0, cipherAES, macSHA1, nil}, + {TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, 24, 20, 8, 24, ecdheRSAKA, suiteECDHE, cipher3DES, macSHA1, nil}, + {TLS_RSA_WITH_3DES_EDE_CBC_SHA, 24, 20, 8, 24, rsaKA, 0, cipher3DES, macSHA1, nil}, + {TLS_RSA_WITH_RC4_128_SHA, 16, 20, 0, 16, rsaKA, 0, cipherRC4, macSHA1, nil}, + {TLS_ECDHE_RSA_WITH_RC4_128_SHA, 16, 20, 0, 16, ecdheRSAKA, suiteECDHE, cipherRC4, macSHA1, nil}, + {TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, 16, 20, 0, 16, ecdheECDSAKA, suiteECDHE | suiteECSign, cipherRC4, macSHA1, nil}, + {TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256, 32, 0, 12, 32, nil, suiteECDHE | 0 | suiteTLS12, nil, nil, aeadChaCha20Poly1305}, + {TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256, 32, 0, 12, 32, ecdheRSAKA, suiteECDHE | suiteTLS12, nil, nil, aeadChaCha20Poly1305}, + {TLS_ECDHE_RSA_WITH_RC4_128_SHA, 16, 20, 0, 16, ecdheRSAKA, suiteECDHE | 0, cipherRC4, macSHA1, nil}, + {TLS_ECDHE_ECDSA_WITH_RC4_128_SHA, 16, 20, 0, 16, nil, suiteECDHE | 0 | 0, cipherRC4, macSHA1, nil}, + {TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, ecdheRSAKA, suiteECDHE, cipherAES, macSHA1, nil}, + {TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, nil, suiteECDHE | 0, cipherAES, macSHA1, nil}, + {TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, 32, 48, 16, 32, ecdheRSAKA, suiteECDHE | suiteTLS12 | suiteSHA384, cipherAES, macSHA384, nil}, + {TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, 32, 48, 16, 32, nil, suiteECDHE | 0 | suiteTLS12 | suiteSHA384, cipherAES, macSHA384, nil}, + {TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, ecdheRSAKA, suiteECDHE, cipherAES, macSHA1, nil}, + {TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, nil, suiteECDHE | 0, cipherAES, macSHA1, nil}, + {TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256, 32, 0, 12, 32, nil, suiteTLS12, nil, nil, aeadChaCha20Poly1305}, + {TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, 16, 0, 4, 16, nil, suiteTLS12, nil, nil, aeadAESGCM}, + {TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, 32, 0, 4, 32, nil, suiteTLS12 | suiteSHA384, nil, nil, aeadAESGCM}, + {TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, 16, 32, 16, 16, nil, suiteTLS12, cipherAES, macSHA256, nil}, + {TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, 32, 32, 16, 32, nil, suiteTLS12, cipherAES, macSHA256, nil}, + {TLS_DHE_RSA_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, nil, 0, cipherAES, macSHA1, nil}, + {TLS_DHE_RSA_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, nil, 0, cipherAES, macSHA1, nil}, + {TLS_RSA_WITH_AES_128_GCM_SHA256, 16, 0, 4, 16, rsaKA, suiteTLS12, nil, nil, aeadAESGCM}, + {TLS_RSA_WITH_AES_256_GCM_SHA384, 32, 0, 4, 32, rsaKA, suiteTLS12 | suiteSHA384, nil, nil, aeadAESGCM}, + {TLS_RSA_WITH_RC4_128_SHA, 16, 20, 0, 16, rsaKA, 0, cipherRC4, macSHA1, nil}, + {TLS_RSA_WITH_RC4_128_MD5, 16, 16, 0, 16, rsaKA, 0, cipherRC4, macMD5, nil}, + {TLS_RSA_WITH_AES_128_CBC_SHA256, 16, 32, 16, 16, rsaKA, suiteTLS12, cipherAES, macSHA256, nil}, + {TLS_RSA_WITH_AES_256_CBC_SHA256, 32, 32, 16, 32, rsaKA, suiteTLS12, cipherAES, macSHA256, nil}, + {TLS_RSA_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, rsaKA, 0, cipherAES, macSHA1, nil}, + {TLS_RSA_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, rsaKA, 0, cipherAES, macSHA1, nil}, + {TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA, 24, 20, 8, 24, ecdheRSAKA, suiteECDHE, cipher3DES, macSHA1, nil}, + {TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA, 24, 20, 8, 24, nil, 0, cipher3DES, macSHA1, nil}, + {TLS_RSA_WITH_3DES_EDE_CBC_SHA, 24, 20, 8, 24, rsaKA, 0, cipher3DES, macSHA1, nil}, + // WARN: PSK: Not supported/implemented + {TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256, 16, 0, 4, 16, nil, suiteECDHE | suiteTLS12 | 0, nil, nil, aeadAESGCM}, + {TLS_PSK_WITH_RC4_128_SHA, 16, 20, 0, 16, nil, 0 | 0, cipherRC4, macSHA1, nil}, + {TLS_PSK_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, nil, 0, cipherAES, macSHA1, nil}, + {TLS_PSK_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, nil, 0, cipherAES, macSHA1, nil}, + {TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, nil, suiteECDHE | 0, cipherAES, macSHA1, nil}, + {TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, nil, suiteECDHE | 0, cipherAES, macSHA1, nil}, + {TLS_RSA_EXPORT_WITH_RC4_40_MD5, 5, 16, 0, 16, nil, suiteExport, cipherRC4, macMD5, nil}, + {TLS_RSA_EXPORT_WITH_DES40_CBC_SHA, 5, 20, 8, 8, nil, suiteExport, cipherDES, macSHA1, nil}, + // {TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5, 5, 16, 8, 16, nil, suiteExport, cipherRC2, macMD5, nil}, + {TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA, 5, 20, 8, 8, nil, suiteExport, cipherDES, macSHA1, nil}, + // WARN: DSS: Certificate not supported/implemented + {TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA, 5, 20, 8, 8, nil, suiteExport | 0, cipherDES, macSHA1, nil}, + // WARN: Non-ephemeral, Anonymous DH: Not supported/implemented + {TLS_DH_ANON_EXPORT_WITH_DES40_CBC_SHA, 5, 20, 8, 8, nil, suiteExport | 0, cipherDES, macSHA1, nil}, + {TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5, 5, 16, 0, 16, nil, suiteExport | 0, cipherRC4, macMD5, nil}, + // WARN DSS: Certificate not supported/implemented + {TLS_DHE_DSS_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, nil, 0, cipherAES, macSHA1, nil}, + {TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA, 24, 20, 8, 24, ecdheECDSAKA, suiteECDHE | 0, cipher3DES, macSHA1, nil}, + // WARN: DSS: Certificate not supported/implemented + {TLS_DHE_DSS_WITH_DES_CBC_SHA, 8, 20, 8, 8, nil, 0, cipherDES, macSHA1, nil}, + {TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA, 24, 20, 8, 24, nil, 0, cipher3DES, macSHA1, nil}, + {TLS_DHE_RSA_WITH_DES_CBC_SHA, 8, 20, 8, 8, nil, 0, cipherDES, macSHA1, nil}, + // WARN: DSS: Certificate not supported/implemented + {TLS_DHE_DSS_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, nil, 0, cipherAES, macSHA1, nil}, + {TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, 16, 32, 16, 16, nil, 0 | suiteTLS12, cipherAES, macSHA256, nil}, + {TLS_DHE_DSS_WITH_RC4_128_SHA, 16, 20, 0, 16, nil, 0, cipherRC4, macSHA1, nil}, + {TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, 32, 32, 16, 32, nil, 0 | suiteTLS12, cipherAES, macSHA256, nil}, + {TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, 16, 0, 4, 16, nil, 0 | suiteTLS12, nil, nil, aeadAESGCM}, + {TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, 32, 0, 4, 32, nil, 0 | suiteTLS12 | suiteSHA384, nil, nil, aeadAESGCM}, + + // these are in dump.pcapng but not supported + // TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA + // TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA + // TLS_DHE_DSS_WITH_SEED_CBC_SHA + // TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA + // TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA + // TLS_DHE_RSA_WITH_SEED_CBC_SHA + // TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 + // TLS_RSA_WITH_CAMELLIA_128_CBC_SHA + // TLS_RSA_WITH_CAMELLIA_256_CBC_SHA + // TLS_RSA_WITH_SEED_CBC_SHA + // TLS_RSA_WITH_IDEA_CBC_SHA + + {TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA, 24, 20, 8, 24, nil, 0, cipher3DES, macSHA1, nil}, + {TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, nil, 0, cipherAES, macSHA1, nil}, + {TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256, 16, 32, 16, 16, nil, 0 | suiteTLS12, cipherAES, macSHA256, nil}, + {TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256, 16, 0, 4, 16, nil, 0, nil, nil, aeadAESGCM}, + {TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, nil, 0, cipherAES, macSHA1, nil}, + {TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384, 32, 48, 16, 32, ecdheRSAKA, suiteECDHE | suiteTLS12 | suiteSHA384, cipherAES, macSHA384, nil}, + {TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384, 32, 0, 4, 32, nil, suiteSHA384, nil, nil, aeadAESGCM}, + {TLS_ECDH_ECDSA_WITH_RC4_128_SHA, 16, 20, 0, 16, nil, 0, cipherRC4, macSHA1, nil}, + {TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA, 24, 20, 8, 24, nil, 0, cipher3DES, macSHA1, nil}, + {TLS_ECDH_RSA_WITH_AES_128_CBC_SHA, 16, 20, 16, 16, nil, 0, cipherAES, macSHA1, nil}, + {TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256, 16, 32, 16, 16, nil, 0 | suiteTLS12, cipherAES, macSHA256, nil}, + {TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256, 16, 0, 4, 16, nil, 0, nil, nil, aeadAESGCM}, + {TLS_ECDH_RSA_WITH_AES_256_CBC_SHA, 32, 20, 16, 32, nil, 0, cipherAES, macSHA1, nil}, + {TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384, 32, 48, 16, 32, ecdheRSAKA, suiteECDHE | suiteTLS12 | suiteSHA384, cipherAES, macSHA384, nil}, + {TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384, 32, 0, 4, 32, nil, suiteSHA384, nil, nil, aeadAESGCM}, + {TLS_ECDH_RSA_WITH_RC4_128_SHA, 16, 20, 0, 16, nil, 0, cipherRC4, macSHA1, nil}, + {TLS_RSA_WITH_DES_CBC_SHA, 8, 20, 8, 8, nil, 0, cipherDES, macSHA1, nil}, +} + +// selectCipherSuite returns the first TLS 1.0–1.2 cipher suite from ids which +// is also in supportedIDs and passes the ok filter. +func selectCipherSuite(ids, supportedIDs []uint16, ok func(*cipherSuite) bool) *cipherSuite { + for _, id := range ids { + candidate := cipherSuiteByID(id) + if candidate == nil || !ok(candidate) { + continue + } + + for _, suppID := range supportedIDs { + if id == suppID { + return candidate + } + } + } + return nil +} + +// A cipherSuiteTLS13 defines only the pair of the AEAD algorithm and hash +// algorithm to be used with HKDF. See RFC 8446, Appendix B.4. +type cipherSuiteTLS13 struct { + id uint16 + keyLen int + aead func(key, fixedNonce []byte) aead + hash crypto.Hash +} + +func cipherRC4(key, iv []byte, isRead bool) any { + cipher, _ := rc4.NewCipher(key) + return cipher +} + +func cipher3DES(key, iv []byte, isRead bool) any { + block, _ := des.NewTripleDESCipher(key) + if isRead { + return cipher.NewCBCDecrypter(block, iv) + } + return cipher.NewCBCEncrypter(block, iv) +} + +func cipherDES(key, iv []byte, isRead bool) any { + block, _ := des.NewCipher(key) + if isRead { + return cipher.NewCBCDecrypter(block, iv) + } + return cipher.NewCBCEncrypter(block, iv) +} + +func cipherAES(key, iv []byte, isRead bool) any { + block, _ := aes.NewCipher(key) + if isRead { + return cipher.NewCBCDecrypter(block, iv) + } + return cipher.NewCBCEncrypter(block, iv) +} + +// macSHA1 returns a SHA-1 based constant time MAC. +func macSHA1(key []byte) hash.Hash { + h := sha1.New + // // The BoringCrypto SHA1 does not have a constant-time + // // checksum function, so don't try to use it. + // h = newConstantTimeHash(h) + return hmac.New(h, key) +} + +// macSHA256 returns a SHA-256 based MAC. This is only supported in TLS 1.2 and +// is currently only used in disabled-by-default cipher suites. +func macSHA256(key []byte) hash.Hash { + return hmac.New(sha256.New, key) +} + +// func macSHA384(version uint16, key []byte) hash.Hash { +func macSHA384(key []byte) hash.Hash { + // if version == VersionSSL30 { + // mac := ssl30MAC{ + // h: sha512.New384(), + // key: make([]byte, len(key)), + // } + // copy(mac.key, key) + // return mac + // } + // return tls10MAC{hmac.New(sha512.New384, key)} + return hmac.New(sha512.New384, key) +} + +func macMD5(key []byte) hash.Hash { + h := md5.New + // // The BoringCrypto SHA1 does not have a constant-time + // // checksum function, so don't try to use it. + // h = newConstantTimeHash(h) + return hmac.New(h, key) +} + +type aead interface { + cipher.AEAD + + // explicitNonceLen returns the number of bytes of explicit nonce + // included in each record. This is eight for older AEADs and + // zero for modern ones. + explicitNonceLen() int +} + +const ( + aeadNonceLength = 12 + noncePrefixLength = 4 +) + +// prefixNonceAEAD wraps an AEAD and prefixes a fixed portion of the nonce to +// each call. +type prefixNonceAEAD struct { + // nonce contains the fixed part of the nonce in the first four bytes. + nonce [aeadNonceLength]byte + aead cipher.AEAD +} + +func (f *prefixNonceAEAD) NonceSize() int { return aeadNonceLength - noncePrefixLength } +func (f *prefixNonceAEAD) Overhead() int { return f.aead.Overhead() } +func (f *prefixNonceAEAD) explicitNonceLen() int { return f.NonceSize() } + +func (f *prefixNonceAEAD) Seal(out, nonce, plaintext, additionalData []byte) []byte { + copy(f.nonce[4:], nonce) + return f.aead.Seal(out, f.nonce[:], plaintext, additionalData) +} + +func (f *prefixNonceAEAD) Open(out, nonce, ciphertext, additionalData []byte) ([]byte, error) { + copy(f.nonce[4:], nonce) + return f.aead.Open(out, f.nonce[:], ciphertext, additionalData) +} + +// xorNonceAEAD wraps an AEAD by XORing in a fixed pattern to the nonce +// before each call. +type xorNonceAEAD struct { + nonceMask [aeadNonceLength]byte + aead cipher.AEAD +} + +func (f *xorNonceAEAD) NonceSize() int { return 8 } // 64-bit sequence number +func (f *xorNonceAEAD) Overhead() int { return f.aead.Overhead() } +func (f *xorNonceAEAD) explicitNonceLen() int { return 0 } + +func (f *xorNonceAEAD) Seal(out, nonce, plaintext, additionalData []byte) []byte { + for i, b := range nonce { + f.nonceMask[4+i] ^= b + } + result := f.aead.Seal(out, f.nonceMask[:], plaintext, additionalData) + for i, b := range nonce { + f.nonceMask[4+i] ^= b + } + + return result +} + +func (f *xorNonceAEAD) Open(out, nonce, ciphertext, additionalData []byte) ([]byte, error) { + for i, b := range nonce { + f.nonceMask[4+i] ^= b + } + result, err := f.aead.Open(out, f.nonceMask[:], ciphertext, additionalData) + for i, b := range nonce { + f.nonceMask[4+i] ^= b + } + + return result, err +} + +func aeadAESGCM(key, noncePrefix []byte) aead { + if len(noncePrefix) != noncePrefixLength { + panic("tls: internal error: wrong nonce length") + } + aes, err := aes.NewCipher(key) + if err != nil { + panic(err) + } + var aead cipher.AEAD + + aead, err = cipher.NewGCM(aes) + if err != nil { + panic(err) + } + + ret := &prefixNonceAEAD{aead: aead} + copy(ret.nonce[:], noncePrefix) + return ret +} + +func aeadAESGCMTLS13(key, nonceMask []byte) aead { + if len(nonceMask) != aeadNonceLength { + panic("tls: internal error: wrong nonce length") + } + aes, err := aes.NewCipher(key) + if err != nil { + panic(err) + } + aead, err := cipher.NewGCM(aes) + if err != nil { + panic(err) + } + + ret := &xorNonceAEAD{aead: aead} + copy(ret.nonceMask[:], nonceMask) + return ret +} + +func aeadChaCha20Poly1305(key, nonceMask []byte) aead { + if len(nonceMask) != aeadNonceLength { + panic("tls: internal error: wrong nonce length") + } + aead, err := chacha20poly1305.New(key) + if err != nil { + panic(err) + } + + ret := &xorNonceAEAD{aead: aead} + copy(ret.nonceMask[:], nonceMask) + return ret +} + +// tls10MAC implements the TLS 1.0 MAC function. RFC 2246, Section 6.2.3. +func tls10MAC(h hash.Hash, out, seq, header, data, extra []byte) []byte { + h.Reset() + h.Write(seq) + h.Write(header) + h.Write(data) + res := h.Sum(out) + if extra != nil { + h.Write(extra) + } + return res +} + +func rsaKA(version uint16) any { return nil } +func ecdheECDSAKA(version uint16) any { return nil } +func ecdheRSAKA(version uint16) any { return nil } + +func cipherSuiteByID(id uint16) *cipherSuite { + for _, cipherSuite := range cipherSuites { + if cipherSuite.id == id { + return cipherSuite + } + } + return nil +} + +// A list of cipher suite IDs that are, or have been, implemented by this +// package. +// +// See https://www.iana.org/assignments/tls-parameters/tls-parameters.xml +const ( + // TLS 1.0 - 1.2 cipher suites. + TLS_RSA_WITH_RC4_128_SHA uint16 = 0x0005 + TLS_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0x000a + TLS_RSA_WITH_AES_128_CBC_SHA uint16 = 0x002f + TLS_RSA_WITH_AES_256_CBC_SHA uint16 = 0x0035 + TLS_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0x003c + TLS_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0x009c + TLS_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0x009d + TLS_ECDHE_ECDSA_WITH_RC4_128_SHA uint16 = 0xc007 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA uint16 = 0xc009 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA uint16 = 0xc00a + TLS_ECDHE_RSA_WITH_RC4_128_SHA uint16 = 0xc011 + TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA uint16 = 0xc012 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA uint16 = 0xc013 + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA uint16 = 0xc014 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 uint16 = 0xc023 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 uint16 = 0xc027 + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 uint16 = 0xc02f + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 uint16 = 0xc02b + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 uint16 = 0xc030 + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 uint16 = 0xc02c + TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xcca8 + TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 uint16 = 0xcca9 + + // TLS 1.3 cipher suites. + TLS_AES_128_GCM_SHA256 uint16 = 0x1301 + TLS_AES_256_GCM_SHA384 uint16 = 0x1302 + TLS_CHACHA20_POLY1305_SHA256 uint16 = 0x1303 + + // TLS_FALLBACK_SCSV isn't a standard cipher suite but an indicator + // that the client is doing version fallback. See RFC 7507. + TLS_FALLBACK_SCSV uint16 = 0x5600 + + // Legacy names for the corresponding cipher suites with the correct _SHA256 + // suffix, retained for backward compatibility. + TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305 = TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 + TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 = TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 + + TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = 0x0040 + TLS_RSA_WITH_RC4_128_MD5 = 0x0004 + TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = 0x0011 + + ////// + + TLS_NULL_WITH_NULL_NULL = 0x0000 + TLS_RSA_WITH_NULL_MD5 = 0x0001 + TLS_RSA_WITH_NULL_SHA = 0x0002 + TLS_RSA_EXPORT_WITH_RC4_40_MD5 = 0x0003 + // TLS_RSA_WITH_RC4_128_MD5 = 0x0004 + // TLS_RSA_WITH_RC4_128_SHA = 0x0005 + TLS_RSA_EXPORT_WITH_RC2_CBC_40_MD5 = 0x0006 + TLS_RSA_WITH_IDEA_CBC_SHA = 0x0007 + TLS_RSA_EXPORT_WITH_DES40_CBC_SHA = 0x0008 + TLS_RSA_WITH_DES_CBC_SHA = 0x0009 + // TLS_RSA_WITH_3DES_EDE_CBC_SHA = 0x000A + TLS_DH_DSS_EXPORT_WITH_DES40_CBC_SHA = 0x000B + TLS_DH_DSS_WITH_DES_CBC_SHA = 0x000C + TLS_DH_DSS_WITH_3DES_EDE_CBC_SHA = 0x000D + TLS_DH_RSA_EXPORT_WITH_DES40_CBC_SHA = 0x000E + TLS_DH_RSA_WITH_DES_CBC_SHA = 0x000F + TLS_DH_RSA_WITH_3DES_EDE_CBC_SHA = 0x0010 + // TLS_DHE_DSS_EXPORT_WITH_DES40_CBC_SHA = 0x0011 + TLS_DHE_DSS_WITH_DES_CBC_SHA = 0x0012 + TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA = 0x0013 + TLS_DHE_RSA_EXPORT_WITH_DES40_CBC_SHA = 0x0014 + TLS_DHE_RSA_WITH_DES_CBC_SHA = 0x0015 + TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA = 0x0016 + TLS_DH_ANON_EXPORT_WITH_RC4_40_MD5 = 0x0017 + TLS_DH_ANON_WITH_RC4_128_MD5 = 0x0018 + TLS_DH_ANON_EXPORT_WITH_DES40_CBC_SHA = 0x0019 + TLS_DH_ANON_WITH_DES_CBC_SHA = 0x001A + TLS_DH_ANON_WITH_3DES_EDE_CBC_SHA = 0x001B + SSL_FORTEZZA_KEA_WITH_NULL_SHA = 0x001C + SSL_FORTEZZA_KEA_WITH_FORTEZZA_CBC_SHA = 0x001D + TLS_KRB5_WITH_DES_CBC_SHA = 0x001E + TLS_KRB5_WITH_3DES_EDE_CBC_SHA = 0x001F + TLS_KRB5_WITH_RC4_128_SHA = 0x0020 + TLS_KRB5_WITH_IDEA_CBC_SHA = 0x0021 + TLS_KRB5_WITH_DES_CBC_MD5 = 0x0022 + TLS_KRB5_WITH_3DES_EDE_CBC_MD5 = 0x0023 + TLS_KRB5_WITH_RC4_128_MD5 = 0x0024 + TLS_KRB5_WITH_IDEA_CBC_MD5 = 0x0025 + TLS_KRB5_EXPORT_WITH_DES_CBC_40_SHA = 0x0026 + TLS_KRB5_EXPORT_WITH_RC2_CBC_40_SHA = 0x0027 + TLS_KRB5_EXPORT_WITH_RC4_40_SHA = 0x0028 + TLS_KRB5_EXPORT_WITH_DES_CBC_40_MD5 = 0x0029 + TLS_KRB5_EXPORT_WITH_RC2_CBC_40_MD5 = 0x002A + TLS_KRB5_EXPORT_WITH_RC4_40_MD5 = 0x002B + TLS_PSK_WITH_NULL_SHA = 0x002C + TLS_DHE_PSK_WITH_NULL_SHA = 0x002D + TLS_RSA_PSK_WITH_NULL_SHA = 0x002E + // TLS_RSA_WITH_AES_128_CBC_SHA = 0x002F + TLS_DH_DSS_WITH_AES_128_CBC_SHA = 0x0030 + TLS_DH_RSA_WITH_AES_128_CBC_SHA = 0x0031 + TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 0x0032 + TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 0x0033 + TLS_DH_ANON_WITH_AES_128_CBC_SHA = 0x0034 + // TLS_RSA_WITH_AES_256_CBC_SHA = 0x0035 + TLS_DH_DSS_WITH_AES_256_CBC_SHA = 0x0036 + TLS_DH_RSA_WITH_AES_256_CBC_SHA = 0x0037 + TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 0x0038 + TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 0x0039 + TLS_DH_ANON_WITH_AES_256_CBC_SHA = 0x003A + TLS_RSA_WITH_NULL_SHA256 = 0x003B + // TLS_RSA_WITH_AES_128_CBC_SHA256 = 0x003C + TLS_RSA_WITH_AES_256_CBC_SHA256 = 0x003D + TLS_DH_DSS_WITH_AES_128_CBC_SHA256 = 0x003E + TLS_DH_RSA_WITH_AES_128_CBC_SHA256 = 0x003F + // TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = 0x0040 + TLS_RSA_WITH_CAMELLIA_128_CBC_SHA = 0x0041 + TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA = 0x0042 + TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA = 0x0043 + TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA = 0x0044 + TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA = 0x0045 + TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA = 0x0046 + TLS_RSA_EXPORT1024_WITH_RC4_56_MD5 = 0x0060 + TLS_RSA_EXPORT1024_WITH_RC2_CBC_56_MD5 = 0x0061 + TLS_RSA_EXPORT1024_WITH_DES_CBC_SHA = 0x0062 + TLS_DHE_DSS_EXPORT1024_WITH_DES_CBC_SHA = 0x0063 + TLS_RSA_EXPORT1024_WITH_RC4_56_SHA = 0x0064 + TLS_DHE_DSS_EXPORT1024_WITH_RC4_56_SHA = 0x0065 + TLS_DHE_DSS_WITH_RC4_128_SHA = 0x0066 + TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 0x0067 + TLS_DH_DSS_WITH_AES_256_CBC_SHA256 = 0x0068 + TLS_DH_RSA_WITH_AES_256_CBC_SHA256 = 0x0069 + TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = 0x006A + TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 0x006B + TLS_DH_ANON_WITH_AES_128_CBC_SHA256 = 0x006C + TLS_DH_ANON_WITH_AES_256_CBC_SHA256 = 0x006D + TLS_GOSTR341094_WITH_28147_CNT_IMIT = 0x0080 + TLS_GOSTR341001_WITH_28147_CNT_IMIT = 0x0081 + TLS_GOSTR341094_WITH_NULL_GOSTR3411 = 0x0082 + TLS_GOSTR341001_WITH_NULL_GOSTR3411 = 0x0083 + TLS_RSA_WITH_CAMELLIA_256_CBC_SHA = 0x0084 + TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA = 0x0085 + TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA = 0x0086 + TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA = 0x0087 + TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA = 0x0088 + TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA = 0x0089 + TLS_PSK_WITH_RC4_128_SHA = 0x008A + TLS_PSK_WITH_3DES_EDE_CBC_SHA = 0x008B + TLS_PSK_WITH_AES_128_CBC_SHA = 0x008C + TLS_PSK_WITH_AES_256_CBC_SHA = 0x008D + TLS_DHE_PSK_WITH_RC4_128_SHA = 0x008E + TLS_DHE_PSK_WITH_3DES_EDE_CBC_SHA = 0x008F + TLS_DHE_PSK_WITH_AES_128_CBC_SHA = 0x0090 + TLS_DHE_PSK_WITH_AES_256_CBC_SHA = 0x0091 + TLS_RSA_PSK_WITH_RC4_128_SHA = 0x0092 + TLS_RSA_PSK_WITH_3DES_EDE_CBC_SHA = 0x0093 + TLS_RSA_PSK_WITH_AES_128_CBC_SHA = 0x0094 + TLS_RSA_PSK_WITH_AES_256_CBC_SHA = 0x0095 + TLS_RSA_WITH_SEED_CBC_SHA = 0x0096 + TLS_DH_DSS_WITH_SEED_CBC_SHA = 0x0097 + TLS_DH_RSA_WITH_SEED_CBC_SHA = 0x0098 + TLS_DHE_DSS_WITH_SEED_CBC_SHA = 0x0099 + TLS_DHE_RSA_WITH_SEED_CBC_SHA = 0x009A + TLS_DH_ANON_WITH_SEED_CBC_SHA = 0x009B + // TLS_RSA_WITH_AES_128_GCM_SHA256 = 0x009C + // TLS_RSA_WITH_AES_256_GCM_SHA384 = 0x009D + TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = 0x009E + TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = 0x009F + TLS_DH_RSA_WITH_AES_128_GCM_SHA256 = 0x00A0 + TLS_DH_RSA_WITH_AES_256_GCM_SHA384 = 0x00A1 + TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = 0x00A2 + TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = 0x00A3 + TLS_DH_DSS_WITH_AES_128_GCM_SHA256 = 0x00A4 + TLS_DH_DSS_WITH_AES_256_GCM_SHA384 = 0x00A5 + TLS_DH_ANON_WITH_AES_128_GCM_SHA256 = 0x00A6 + TLS_DH_ANON_WITH_AES_256_GCM_SHA384 = 0x00A7 + TLS_PSK_WITH_AES_128_GCM_SHA256 = 0x00A8 + TLS_PSK_WITH_AES_256_GCM_SHA384 = 0x00A9 + TLS_DHE_PSK_WITH_AES_128_GCM_SHA256 = 0x00AA + TLS_DHE_PSK_WITH_AES_256_GCM_SHA384 = 0x00AB + TLS_RSA_PSK_WITH_AES_128_GCM_SHA256 = 0x00AC + TLS_RSA_PSK_WITH_AES_256_GCM_SHA384 = 0x00AD + TLS_PSK_WITH_AES_128_CBC_SHA256 = 0x00AE + TLS_PSK_WITH_AES_256_CBC_SHA384 = 0x00AF + TLS_PSK_WITH_NULL_SHA256 = 0x00B0 + TLS_PSK_WITH_NULL_SHA384 = 0x00B1 + TLS_DHE_PSK_WITH_AES_128_CBC_SHA256 = 0x00B2 + TLS_DHE_PSK_WITH_AES_256_CBC_SHA384 = 0x00B3 + TLS_DHE_PSK_WITH_NULL_SHA256 = 0x00B4 + TLS_DHE_PSK_WITH_NULL_SHA384 = 0x00B5 + TLS_RSA_PSK_WITH_AES_128_CBC_SHA256 = 0x00B6 + TLS_RSA_PSK_WITH_AES_256_CBC_SHA384 = 0x00B7 + TLS_RSA_PSK_WITH_NULL_SHA256 = 0x00B8 + TLS_RSA_PSK_WITH_NULL_SHA384 = 0x00B9 + TLS_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 0x00BA + TLS_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 = 0x00BB + TLS_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 0x00BC + TLS_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 = 0x00BD + TLS_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 0x00BE + TLS_DH_ANON_WITH_CAMELLIA_128_CBC_SHA256 = 0x00BF + TLS_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 0x00C0 + TLS_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 = 0x00C1 + TLS_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 0x00C2 + TLS_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 = 0x00C3 + TLS_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 = 0x00C4 + TLS_DH_ANON_WITH_CAMELLIA_256_CBC_SHA256 = 0x00C5 + TLS_RENEGO_PROTECTION_REQUEST = 0x00FF + // TLS_FALLBACK_SCSV = 0x5600 + TLS_ECDH_ECDSA_WITH_NULL_SHA = 0xC001 + TLS_ECDH_ECDSA_WITH_RC4_128_SHA = 0xC002 + TLS_ECDH_ECDSA_WITH_3DES_EDE_CBC_SHA = 0xC003 + TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA = 0xC004 + TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA = 0xC005 + TLS_ECDHE_ECDSA_WITH_NULL_SHA = 0xC006 + // TLS_ECDHE_ECDSA_WITH_RC4_128_SHA = 0xC007 + TLS_ECDHE_ECDSA_WITH_3DES_EDE_CBC_SHA = 0xC008 + // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 0xC009 + // TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 0xC00A + TLS_ECDH_RSA_WITH_NULL_SHA = 0xC00B + TLS_ECDH_RSA_WITH_RC4_128_SHA = 0xC00C + TLS_ECDH_RSA_WITH_3DES_EDE_CBC_SHA = 0xC00D + TLS_ECDH_RSA_WITH_AES_128_CBC_SHA = 0xC00E + TLS_ECDH_RSA_WITH_AES_256_CBC_SHA = 0xC00F + TLS_ECDHE_RSA_WITH_NULL_SHA = 0xC010 + // TLS_ECDHE_RSA_WITH_RC4_128_SHA = 0xC011 + // TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA = 0xC012 + // TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 0xC013 + // TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 0xC014 + TLS_ECDH_ANON_WITH_NULL_SHA = 0xC015 + TLS_ECDH_ANON_WITH_RC4_128_SHA = 0xC016 + TLS_ECDH_ANON_WITH_3DES_EDE_CBC_SHA = 0xC017 + TLS_ECDH_ANON_WITH_AES_128_CBC_SHA = 0xC018 + TLS_ECDH_ANON_WITH_AES_256_CBC_SHA = 0xC019 + TLS_SRP_SHA_WITH_3DES_EDE_CBC_SHA = 0xC01A + TLS_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA = 0xC01B + TLS_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA = 0xC01C + TLS_SRP_SHA_WITH_AES_128_CBC_SHA = 0xC01D + TLS_SRP_SHA_RSA_WITH_AES_128_CBC_SHA = 0xC01E + TLS_SRP_SHA_DSS_WITH_AES_128_CBC_SHA = 0xC01F + TLS_SRP_SHA_WITH_AES_256_CBC_SHA = 0xC020 + TLS_SRP_SHA_RSA_WITH_AES_256_CBC_SHA = 0xC021 + TLS_SRP_SHA_DSS_WITH_AES_256_CBC_SHA = 0xC022 + // TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = 0xC023 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = 0xC024 + TLS_ECDH_ECDSA_WITH_AES_128_CBC_SHA256 = 0xC025 + TLS_ECDH_ECDSA_WITH_AES_256_CBC_SHA384 = 0xC026 + // TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = 0xC027 + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = 0xC028 + TLS_ECDH_RSA_WITH_AES_128_CBC_SHA256 = 0xC029 + TLS_ECDH_RSA_WITH_AES_256_CBC_SHA384 = 0xC02A + // TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 0xC02B + // TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 0xC02C + TLS_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 = 0xC02D + TLS_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 = 0xC02E + // TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 0xC02F + // TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 0xC030 + TLS_ECDH_RSA_WITH_AES_128_GCM_SHA256 = 0xC031 + TLS_ECDH_RSA_WITH_AES_256_GCM_SHA384 = 0xC032 + TLS_ECDHE_PSK_WITH_RC4_128_SHA = 0xC033 + TLS_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA = 0xC034 + TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA = 0xC035 + TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA = 0xC036 + TLS_ECDHE_PSK_WITH_AES_128_CBC_SHA256 = 0xC037 + TLS_ECDHE_PSK_WITH_AES_256_CBC_SHA384 = 0xC038 + TLS_ECDHE_PSK_WITH_NULL_SHA = 0xC039 + TLS_ECDHE_PSK_WITH_NULL_SHA256 = 0xC03A + TLS_ECDHE_PSK_WITH_NULL_SHA384 = 0xC03B + TLS_RSA_WITH_ARIA_128_CBC_SHA256 = 0xC03C + TLS_RSA_WITH_ARIA_256_CBC_SHA384 = 0xC03D + TLS_DH_DSS_WITH_ARIA_128_CBC_SHA256 = 0xC03E + TLS_DH_DSS_WITH_ARIA_256_CBC_SHA384 = 0xC03F + TLS_DH_RSA_WITH_ARIA_128_CBC_SHA256 = 0xC040 + TLS_DH_RSA_WITH_ARIA_256_CBC_SHA384 = 0xC041 + TLS_DHE_DSS_WITH_ARIA_128_CBC_SHA256 = 0xC042 + TLS_DHE_DSS_WITH_ARIA_256_CBC_SHA384 = 0xC043 + TLS_DHE_RSA_WITH_ARIA_128_CBC_SHA256 = 0xC044 + TLS_DHE_RSA_WITH_ARIA_256_CBC_SHA384 = 0xC045 + TLS_DH_ANON_WITH_ARIA_128_CBC_SHA256 = 0xC046 + TLS_DH_ANON_WITH_ARIA_256_CBC_SHA384 = 0xC047 + TLS_ECDHE_ECDSA_WITH_ARIA_128_CBC_SHA256 = 0xC048 + TLS_ECDHE_ECDSA_WITH_ARIA_256_CBC_SHA384 = 0xC049 + TLS_ECDH_ECDSA_WITH_ARIA_128_CBC_SHA256 = 0xC04A + TLS_ECDH_ECDSA_WITH_ARIA_256_CBC_SHA384 = 0xC04B + TLS_ECDHE_RSA_WITH_ARIA_128_CBC_SHA256 = 0xC04C + TLS_ECDHE_RSA_WITH_ARIA_256_CBC_SHA384 = 0xC04D + TLS_ECDH_RSA_WITH_ARIA_128_CBC_SHA256 = 0xC04E + TLS_ECDH_RSA_WITH_ARIA_256_CBC_SHA384 = 0xC04F + TLS_RSA_WITH_ARIA_128_GCM_SHA256 = 0xC050 + TLS_RSA_WITH_ARIA_256_GCM_SHA384 = 0xC051 + TLS_DHE_RSA_WITH_ARIA_128_GCM_SHA256 = 0xC052 + TLS_DHE_RSA_WITH_ARIA_256_GCM_SHA384 = 0xC053 + TLS_DH_RSA_WITH_ARIA_128_GCM_SHA256 = 0xC054 + TLS_DH_RSA_WITH_ARIA_256_GCM_SHA384 = 0xC055 + TLS_DHE_DSS_WITH_ARIA_128_GCM_SHA256 = 0xC056 + TLS_DHE_DSS_WITH_ARIA_256_GCM_SHA384 = 0xC057 + TLS_DH_DSS_WITH_ARIA_128_GCM_SHA256 = 0xC058 + TLS_DH_DSS_WITH_ARIA_256_GCM_SHA384 = 0xC059 + TLS_DH_ANON_WITH_ARIA_128_GCM_SHA256 = 0xC05A + TLS_DH_ANON_WITH_ARIA_256_GCM_SHA384 = 0xC05B + TLS_ECDHE_ECDSA_WITH_ARIA_128_GCM_SHA256 = 0xC05C + TLS_ECDHE_ECDSA_WITH_ARIA_256_GCM_SHA384 = 0xC05D + TLS_ECDH_ECDSA_WITH_ARIA_128_GCM_SHA256 = 0xC05E + TLS_ECDH_ECDSA_WITH_ARIA_256_GCM_SHA384 = 0xC05F + TLS_ECDHE_RSA_WITH_ARIA_128_GCM_SHA256 = 0xC060 + TLS_ECDHE_RSA_WITH_ARIA_256_GCM_SHA384 = 0xC061 + TLS_ECDH_RSA_WITH_ARIA_128_GCM_SHA256 = 0xC062 + TLS_ECDH_RSA_WITH_ARIA_256_GCM_SHA384 = 0xC063 + TLS_PSK_WITH_ARIA_128_CBC_SHA256 = 0xC064 + TLS_PSK_WITH_ARIA_256_CBC_SHA384 = 0xC065 + TLS_DHE_PSK_WITH_ARIA_128_CBC_SHA256 = 0xC066 + TLS_DHE_PSK_WITH_ARIA_256_CBC_SHA384 = 0xC067 + TLS_RSA_PSK_WITH_ARIA_128_CBC_SHA256 = 0xC068 + TLS_RSA_PSK_WITH_ARIA_256_CBC_SHA384 = 0xC069 + TLS_PSK_WITH_ARIA_128_GCM_SHA256 = 0xC06A + TLS_PSK_WITH_ARIA_256_GCM_SHA384 = 0xC06B + TLS_DHE_PSK_WITH_ARIA_128_GCM_SHA256 = 0xC06C + TLS_DHE_PSK_WITH_ARIA_256_GCM_SHA384 = 0xC06D + TLS_RSA_PSK_WITH_ARIA_128_GCM_SHA256 = 0xC06E + TLS_RSA_PSK_WITH_ARIA_256_GCM_SHA384 = 0xC06F + TLS_ECDHE_PSK_WITH_ARIA_128_CBC_SHA256 = 0xC070 + TLS_ECDHE_PSK_WITH_ARIA_256_CBC_SHA384 = 0xC071 + TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = 0xC072 + TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = 0xC073 + TLS_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 = 0xC074 + TLS_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 = 0xC075 + TLS_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 0xC076 + TLS_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 = 0xC077 + TLS_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 = 0xC078 + TLS_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 = 0xC079 + TLS_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xC07A + TLS_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xC07B + TLS_DHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xC07C + TLS_DHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xC07D + TLS_DH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xC07E + TLS_DH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xC07F + TLS_DHE_DSS_WITH_CAMELLIA_128_GCM_SHA256 = 0xC080 + TLS_DHE_DSS_WITH_CAMELLIA_256_GCM_SHA384 = 0xC081 + TLS_DH_DSS_WITH_CAMELLIA_128_GCM_SHA256 = 0xC082 + TLS_DH_DSS_WITH_CAMELLIA_256_GCM_SHA384 = 0xC083 + TLS_DH_ANON_WITH_CAMELLIA_128_GCM_SHA256 = 0xC084 + TLS_DH_ANON_WITH_CAMELLIA_256_GCM_SHA384 = 0xC085 + TLS_ECDHE_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xC086 + TLS_ECDHE_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xC087 + TLS_ECDH_ECDSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xC088 + TLS_ECDH_ECDSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xC089 + TLS_ECDHE_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xC08A + TLS_ECDHE_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xC08B + TLS_ECDH_RSA_WITH_CAMELLIA_128_GCM_SHA256 = 0xC08C + TLS_ECDH_RSA_WITH_CAMELLIA_256_GCM_SHA384 = 0xC08D + TLS_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 0xC08E + TLS_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 0xC08F + TLS_DHE_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 0xC090 + TLS_DHE_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 0xC091 + TLS_RSA_PSK_WITH_CAMELLIA_128_GCM_SHA256 = 0xC092 + TLS_RSA_PSK_WITH_CAMELLIA_256_GCM_SHA384 = 0xC093 + TLS_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 0xC094 + TLS_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 0xC095 + TLS_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 0xC096 + TLS_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 0xC097 + TLS_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 0xC098 + TLS_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 0xC099 + TLS_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 = 0xC09A + TLS_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 = 0xC09B + TLS_RSA_WITH_AES_128_CCM = 0xC09C + TLS_RSA_WITH_AES_256_CCM = 0xC09D + TLS_DHE_RSA_WITH_AES_128_CCM = 0xC09E + TLS_DHE_RSA_WITH_AES_256_CCM = 0xC09F + TLS_RSA_WITH_AES_128_CCM_8 = 0xC0A0 + TLS_RSA_WITH_AES_256_CCM_8 = 0xC0A1 + TLS_DHE_RSA_WITH_AES_128_CCM_8 = 0xC0A2 + TLS_DHE_RSA_WITH_AES_256_CCM_8 = 0xC0A3 + TLS_PSK_WITH_AES_128_CCM = 0xC0A4 + TLS_PSK_WITH_AES_256_CCM = 0xC0A5 + TLS_DHE_PSK_WITH_AES_128_CCM = 0xC0A6 + TLS_DHE_PSK_WITH_AES_256_CCM = 0xC0A7 + TLS_PSK_WITH_AES_128_CCM_8 = 0xC0A8 + TLS_PSK_WITH_AES_256_CCM_8 = 0xC0A9 + TLS_PSK_DHE_WITH_AES_128_CCM_8 = 0xC0AA + TLS_PSK_DHE_WITH_AES_256_CCM_8 = 0xC0AB + TLS_ECDHE_ECDSA_WITH_AES_128_CCM = 0xC0AC + TLS_ECDHE_ECDSA_WITH_AES_256_CCM = 0xC0AD + TLS_ECDHE_ECDSA_WITH_AES_128_CCM_8 = 0xC0AE + TLS_ECDHE_ECDSA_WITH_AES_256_CCM_8 = 0xC0AF + TLS_ECDHE_PSK_WITH_AES_128_GCM_SHA256 = 0xCAFE + // TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCA8 + // TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCA9 + TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256 = 0xCCAA + // Old ids for Chacha20 ciphers + TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256_OLD = 0xCC13 + TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256_OLD = 0xCC14 + TLS_DHE_RSA_WITH_CHACHA20_POLY1305_SHA256_OLD = 0xCC15 + //SSL_RSA_FIPS_WITH_DES_CBC_SHA = 0xFEFE + //SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA = 0xFEFF + //SSL_RSA_FIPS_WITH_3DES_EDE_CBC_SHA = 0xFFE0 + //SSL_RSA_FIPS_WITH_DES_CBC_SHA = 0xFFE1 + SSL_RSA_WITH_RC2_CBC_MD5 = 0xFF80 + SSL_RSA_WITH_IDEA_CBC_MD5 = 0xFF81 + SSL_RSA_WITH_DES_CBC_MD5 = 0xFF82 + SSL_RSA_WITH_3DES_EDE_CBC_MD5 = 0xFF83 + SSL_EN_RC2_128_CBC_WITH_MD5 = 0xFF03 + OP_PCL_TLS10_AES_128_CBC_SHA512 = 0xFF85 +) diff --git a/format/tls/tlsdecrypt/common.go b/format/tls/tlsdecrypt/common.go new file mode 100644 index 00000000..b4568f71 --- /dev/null +++ b/format/tls/tlsdecrypt/common.go @@ -0,0 +1,49 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package tlsdecrypt + +const ( + VersionTLS10 = 0x0301 + VersionTLS11 = 0x0302 + VersionTLS12 = 0x0303 + VersionTLS13 = 0x0304 + + // Deprecated: SSLv3 is cryptographically broken, and is no longer + // supported by this package. See golang.org/issue/32716. + VersionSSL30 = 0x0300 +) + +const ( + maxPlaintext = 16384 // maximum plaintext payload length + maxCiphertext = 16384 + 2048 // maximum ciphertext payload length + maxCiphertextTLS13 = 16384 + 256 // maximum ciphertext length in TLS 1.3 + recordHeaderLen = 5 // record header length + maxHandshake = 65536 // maximum handshake we support (protocol max is 16 MB) + maxUselessRecords = 16 // maximum number of consecutive non-advancing records +) + +// TLS record types. +type recordType uint8 + +const ( + recordTypeChangeCipherSpec recordType = 20 + recordTypeAlert recordType = 21 + recordTypeHandshake recordType = 22 + recordTypeApplicationData recordType = 23 +) + +// CurveID is the type of a TLS identifier for an elliptic curve. See +// https://www.iana.org/assignments/tls-parameters/tls-parameters.xml#tls-parameters-8. +// +// In TLS 1.3, this type is called NamedGroup, but at this time this library +// only supports Elliptic Curve based groups. See RFC 8446, Section 4.2.7. +type CurveID uint16 + +const ( + CurveP256 CurveID = 23 + CurveP384 CurveID = 24 + CurveP521 CurveID = 25 + X25519 CurveID = 29 +) diff --git a/format/tls/tlsdecrypt/conn.go b/format/tls/tlsdecrypt/conn.go new file mode 100644 index 00000000..6c73aa1f --- /dev/null +++ b/format/tls/tlsdecrypt/conn.go @@ -0,0 +1,258 @@ +// Copyright 2010 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +// TLS low level connection and record layer + +package tlsdecrypt + +import ( + "crypto/cipher" + "crypto/subtle" + "hash" + "sync" +) + +// A halfConn represents one direction of the record layer +// connection, either sending or receiving. +type halfConn struct { + sync.Mutex + + err error // first permanent error + version uint16 // protocol version + cipher any // cipher algorithm + mac hash.Hash + seq [8]byte // 64-bit sequence number + + scratchBuf [13]byte // to avoid allocs; interface method args escape + + nextCipher any // next encryption state + nextMac hash.Hash // next MAC algorithm + + trafficSecret []byte // current TLS 1.3 traffic secret +} + +// incSeq increments the sequence number. +func (hc *halfConn) incSeq() { + for i := 7; i >= 0; i-- { + hc.seq[i]++ + if hc.seq[i] != 0 { + return + } + } + + // Not allowed to let sequence number wrap. + // Instead, must renegotiate before it does. + // Not likely enough to bother. + panic("TLS: sequence number wraparound") +} + +// explicitNonceLen returns the number of bytes of explicit nonce or IV included +// in each record. Explicit nonces are present only in CBC modes after TLS 1.0 +// and in certain AEAD modes in TLS 1.2. +func (hc *halfConn) explicitNonceLen() int { + if hc.cipher == nil { + return 0 + } + + switch c := hc.cipher.(type) { + case cipher.Stream: + return 0 + case aead: + return c.explicitNonceLen() + case cbcMode: + // TLS 1.1 introduced a per-record explicit IV to fix the BEAST attack. + if hc.version >= VersionTLS11 { + return c.BlockSize() + } + return 0 + default: + panic("unknown cipher type") + } +} + +// extractPadding returns, in constant time, the length of the padding to remove +// from the end of payload. It also returns a byte which is equal to 255 if the +// padding was valid and 0 otherwise. See RFC 2246, Section 6.2.3.2. +func extractPadding(payload []byte) (toRemove int, good byte) { + if len(payload) < 1 { + return 0, 0 + } + + paddingLen := payload[len(payload)-1] + t := uint(len(payload)-1) - uint(paddingLen) + // if len(payload) >= (paddingLen - 1) then the MSB of t is zero + good = byte(int32(^t) >> 31) + + // The maximum possible padding length plus the actual length field + toCheck := 256 + // The length of the padded data is public, so we can use an if here + if toCheck > len(payload) { + toCheck = len(payload) + } + + for i := 0; i < toCheck; i++ { + t := uint(paddingLen) - uint(i) + // if i <= paddingLen then the MSB of t is zero + mask := byte(int32(^t) >> 31) + b := payload[len(payload)-1-i] + good &^= mask&paddingLen ^ mask&b + } + + // We AND together the bits of good and replicate the result across + // all the bits. + good &= good << 4 + good &= good << 2 + good &= good << 1 + good = uint8(int8(good) >> 7) + + // Zero the padding length on error. This ensures any unchecked bytes + // are included in the MAC. Otherwise, an attacker that could + // distinguish MAC failures from padding failures could mount an attack + // similar to POODLE in SSL 3.0: given a good ciphertext that uses a + // full block's worth of padding, replace the final block with another + // block. If the MAC check passed but the padding check failed, the + // last byte of that block decrypted to the block size. + // + // See also macAndPaddingGood logic below. + paddingLen &= good + + toRemove = int(paddingLen) + 1 + return +} + +func roundUp(a, b int) int { + return a + (b-a%b)%b +} + +// cbcMode is an interface for block ciphers using cipher block chaining. +type cbcMode interface { + cipher.BlockMode + SetIV([]byte) +} + +// decrypt authenticates and decrypts the record if protection is active at +// this stage. The returned plaintext might overlap with the input. +func (hc *halfConn) decrypt(record []byte) ([]byte, recordType, error) { + var plaintext []byte + typ := recordType(record[0]) + payload := record[recordHeaderLen:] + + // In TLS 1.3, change_cipher_spec messages are to be ignored without being + // decrypted. See RFC 8446, Appendix D.4. + if hc.version == VersionTLS13 && typ == recordTypeChangeCipherSpec { + return payload, typ, nil + } + + paddingGood := byte(255) + paddingLen := 0 + + explicitNonceLen := hc.explicitNonceLen() + + if hc.cipher != nil { + switch c := hc.cipher.(type) { + case cipher.Stream: + c.XORKeyStream(payload, payload) + case aead: + if len(payload) < explicitNonceLen { + return nil, 0, alertBadRecordMAC + } + nonce := payload[:explicitNonceLen] + if len(nonce) == 0 { + nonce = hc.seq[:] + } + payload = payload[explicitNonceLen:] + + var additionalData []byte + if hc.version == VersionTLS13 { + additionalData = record[:recordHeaderLen] + } else { + additionalData = append(hc.scratchBuf[:0], hc.seq[:]...) + additionalData = append(additionalData, record[:3]...) + n := len(payload) - c.Overhead() + additionalData = append(additionalData, byte(n>>8), byte(n)) + } + + var err error + plaintext, err = c.Open(payload[:0], nonce, payload, additionalData) + if err != nil { + return nil, 0, alertBadRecordMAC + } + case cbcMode: + blockSize := c.BlockSize() + minPayload := explicitNonceLen + roundUp(hc.mac.Size()+1, blockSize) + if len(payload)%blockSize != 0 || len(payload) < minPayload { + return nil, 0, alertBadRecordMAC + } + + if explicitNonceLen > 0 { + c.SetIV(payload[:explicitNonceLen]) + payload = payload[explicitNonceLen:] + } + c.CryptBlocks(payload, payload) + + // In a limited attempt to protect against CBC padding oracles like + // Lucky13, the data past paddingLen (which is secret) is passed to + // the MAC function as extra data, to be fed into the HMAC after + // computing the digest. This makes the MAC roughly constant time as + // long as the digest computation is constant time and does not + // affect the subsequent write, modulo cache effects. + paddingLen, paddingGood = extractPadding(payload) + default: + panic("unknown cipher type") + } + + if hc.version == VersionTLS13 { + if typ != recordTypeApplicationData { + return nil, 0, alertUnexpectedMessage + } + if len(plaintext) > maxPlaintext+1 { + return nil, 0, alertRecordOverflow + } + // Remove padding and find the ContentType scanning from the end. + for i := len(plaintext) - 1; i >= 0; i-- { + if plaintext[i] != 0 { + typ = recordType(plaintext[i]) + plaintext = plaintext[:i] + break + } + if i == 0 { + return nil, 0, alertUnexpectedMessage + } + } + } + } else { + plaintext = payload + } + + if hc.mac != nil { + macSize := hc.mac.Size() + if len(payload) < macSize { + return nil, 0, alertBadRecordMAC + } + + n := len(payload) - macSize - paddingLen + n = subtle.ConstantTimeSelect(int(uint32(n)>>31), 0, n) // if n < 0 { n = 0 } + record[3] = byte(n >> 8) + record[4] = byte(n) + remoteMAC := payload[n : n+macSize] + localMAC := tls10MAC(hc.mac, hc.scratchBuf[:0], hc.seq[:], record[:recordHeaderLen], payload[:n], payload[n+macSize:]) + + // This is equivalent to checking the MACs and paddingGood + // separately, but in constant-time to prevent distinguishing + // padding failures from MAC failures. Depending on what value + // of paddingLen was returned on bad padding, distinguishing + // bad MAC from bad padding can lead to an attack. + // + // See also the logic at the end of extractPadding. + macAndPaddingGood := subtle.ConstantTimeCompare(localMAC, remoteMAC) & int(paddingGood) + if macAndPaddingGood != 1 { + return nil, 0, alertBadRecordMAC + } + + plaintext = payload[:n] + } + + hc.incSeq() + return plaintext, typ, nil +} diff --git a/format/tls/tlsdecrypt/key_schedule.go b/format/tls/tlsdecrypt/key_schedule.go new file mode 100644 index 00000000..449aac35 --- /dev/null +++ b/format/tls/tlsdecrypt/key_schedule.go @@ -0,0 +1,115 @@ +// Copyright 2018 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +//nolint:all +package tlsdecrypt + +import ( + "crypto/hmac" + "fmt" + "hash" + + "golang.org/x/crypto/cryptobyte" + "golang.org/x/crypto/hkdf" +) + +// This file contains the functions necessary to compute the TLS 1.3 key +// schedule. See RFC 8446, Section 7. + +const ( + resumptionBinderLabel = "res binder" + clientHandshakeTrafficLabel = "c hs traffic" + serverHandshakeTrafficLabel = "s hs traffic" + clientApplicationTrafficLabel = "c ap traffic" + serverApplicationTrafficLabel = "s ap traffic" + exporterLabel = "exp master" + resumptionLabel = "res master" + trafficUpdateLabel = "traffic upd" +) + +// expandLabel implements HKDF-Expand-Label from RFC 8446, Section 7.1. +func (c *cipherSuiteTLS13) expandLabel(secret []byte, label string, context []byte, length int) []byte { + var hkdfLabel cryptobyte.Builder + hkdfLabel.AddUint16(uint16(length)) + hkdfLabel.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes([]byte("tls13 ")) + b.AddBytes([]byte(label)) + }) + hkdfLabel.AddUint8LengthPrefixed(func(b *cryptobyte.Builder) { + b.AddBytes(context) + }) + hkdfLabelBytes, err := hkdfLabel.Bytes() + if err != nil { + // Rather than calling BytesOrPanic, we explicitly handle this error, in + // order to provide a reasonable error message. It should be basically + // impossible for this to panic, and routing errors back through the + // tree rooted in this function is quite painful. The labels are fixed + // size, and the context is either a fixed-length computed hash, or + // parsed from a field which has the same length limitation. As such, an + // error here is likely to only be caused during development. + // + // NOTE: another reasonable approach here might be to return a + // randomized slice if we encounter an error, which would break the + // connection, but avoid panicking. This would perhaps be safer but + // significantly more confusing to users. + panic(fmt.Errorf("failed to construct HKDF label: %s", err)) + } + out := make([]byte, length) + n, err := hkdf.Expand(c.hash.New, secret, hkdfLabelBytes).Read(out) + if err != nil || n != length { + panic("tls: HKDF-Expand-Label invocation failed unexpectedly") + } + return out +} + +// deriveSecret implements Derive-Secret from RFC 8446, Section 7.1. +func (c *cipherSuiteTLS13) deriveSecret(secret []byte, label string, transcript hash.Hash) []byte { + if transcript == nil { + transcript = c.hash.New() + } + return c.expandLabel(secret, label, transcript.Sum(nil), c.hash.Size()) +} + +// extract implements HKDF-Extract with the cipher suite hash. +func (c *cipherSuiteTLS13) extract(newSecret, currentSecret []byte) []byte { + if newSecret == nil { + newSecret = make([]byte, c.hash.Size()) + } + return hkdf.Extract(c.hash.New, newSecret, currentSecret) +} + +// nextTrafficSecret generates the next traffic secret, given the current one, +// according to RFC 8446, Section 7.2. +func (c *cipherSuiteTLS13) nextTrafficSecret(trafficSecret []byte) []byte { + return c.expandLabel(trafficSecret, trafficUpdateLabel, nil, c.hash.Size()) +} + +// trafficKey generates traffic keys according to RFC 8446, Section 7.3. +func (c *cipherSuiteTLS13) trafficKey(trafficSecret []byte) (key, iv []byte) { + key = c.expandLabel(trafficSecret, "key", nil, c.keyLen) + iv = c.expandLabel(trafficSecret, "iv", nil, aeadNonceLength) + return +} + +// finishedHash generates the Finished verify_data or PskBinderEntry according +// to RFC 8446, Section 4.4.4. See sections 4.4 and 4.2.11.2 for the baseKey +// selection. +func (c *cipherSuiteTLS13) finishedHash(baseKey []byte, transcript hash.Hash) []byte { + finishedKey := c.expandLabel(baseKey, "finished", nil, c.hash.Size()) + verifyData := hmac.New(c.hash.New, finishedKey) + verifyData.Write(transcript.Sum(nil)) + return verifyData.Sum(nil) +} + +// exportKeyingMaterial implements RFC5705 exporters for TLS 1.3 according to +// RFC 8446, Section 7.5. +func (c *cipherSuiteTLS13) exportKeyingMaterial(masterSecret []byte, transcript hash.Hash) func(string, []byte, int) ([]byte, error) { + expMasterSecret := c.deriveSecret(masterSecret, exporterLabel, transcript) + return func(label string, context []byte, length int) ([]byte, error) { + secret := c.deriveSecret(expMasterSecret, label, nil) + h := c.hash.New() + h.Write(context) + return c.expandLabel(secret, "exporter", h.Sum(nil), length), nil + } +} diff --git a/format/tls/tlsdecrypt/prf.go b/format/tls/tlsdecrypt/prf.go new file mode 100644 index 00000000..633c45e9 --- /dev/null +++ b/format/tls/tlsdecrypt/prf.go @@ -0,0 +1,295 @@ +// Copyright 2009 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. +// +//nolint:all +package tlsdecrypt + +import ( + "crypto" + "crypto/hmac" + "crypto/md5" + "crypto/sha1" + "crypto/sha256" + "crypto/sha512" + "errors" + "fmt" + "hash" +) + +const ( + tlsRandomLength = 32 // Length of a random nonce in TLS 1.1. + masterSecretLength = 48 // Length of a master secret in TLS 1.1. + finishedVerifyLength = 12 // Length of verify_data in a Finished message. +) + +var masterSecretLabel = []byte("master secret") +var extendedMasterSecretLabel = []byte("extended master secret") +var keyExpansionLabel = []byte("key expansion") +var clientFinishedLabel = []byte("client finished") +var serverFinishedLabel = []byte("server finished") +var clientFinalKeyLabel = []byte("client write key") +var serverFinalKeyLabel = []byte("server write key") +var finalIVLabel = []byte("IV block") + +// Split a premaster secret in two as specified in RFC 4346, Section 5. +func splitPreMasterSecret(secret []byte) (s1, s2 []byte) { + s1 = secret[0 : (len(secret)+1)/2] + s2 = secret[len(secret)/2:] + return +} + +// pHash implements the P_hash function, as defined in RFC 4346, Section 5. +func pHash(result, secret, seed []byte, hash func() hash.Hash) { + h := hmac.New(hash, secret) + h.Write(seed) + a := h.Sum(nil) + + j := 0 + for j < len(result) { + h.Reset() + h.Write(a) + h.Write(seed) + b := h.Sum(nil) + copy(result[j:], b) + j += len(b) + + h.Reset() + h.Write(a) + a = h.Sum(nil) + } +} + +// prf10 implements the TLS 1.0 pseudo-random function, as defined in RFC 2246, section 5. +func prf10(result, secret, label, seed []byte) { + hashSHA1 := sha1.New + hashMD5 := md5.New + + labelAndSeed := make([]byte, len(label)+len(seed)) + copy(labelAndSeed, label) + copy(labelAndSeed[len(label):], seed) + + s1, s2 := splitPreMasterSecret(secret) + pHash(result, s1, labelAndSeed, hashMD5) + result2 := make([]byte, len(result)) + pHash(result2, s2, labelAndSeed, hashSHA1) + + for i, b := range result2 { + result[i] ^= b + } +} + +// prf12 implements the TLS 1.2 pseudo-random function, as defined in RFC 5246, section 5. +func prf12(hashFunc func() hash.Hash) func(result, secret, label, seed []byte) { + return func(result, secret, label, seed []byte) { + labelAndSeed := make([]byte, len(label)+len(seed)) + copy(labelAndSeed, label) + copy(labelAndSeed[len(label):], seed) + + pHash(result, secret, labelAndSeed, hashFunc) + } +} + +// prf30 implements the SSL 3.0 pseudo-random function, as defined in +// www.mozilla.org/projects/security/pki/nss/ssl/draft302.txt section 6. +func prf30(result, secret, label, seed []byte) { + hashSHA1 := sha1.New() + hashMD5 := md5.New() + + done := 0 + i := 0 + // RFC5246 section 6.3 says that the largest PRF output needed is 128 + // bytes. Since no more ciphersuites will be added to SSLv3, this will + // remain true. Each iteration gives us 16 bytes so 10 iterations will + // be sufficient. + var b [11]byte + for done < len(result) { + for j := 0; j <= i; j++ { + b[j] = 'A' + byte(i) + } + + hashSHA1.Reset() + hashSHA1.Write(b[:i+1]) + hashSHA1.Write(secret) + hashSHA1.Write(seed) + digest := hashSHA1.Sum(nil) + + hashMD5.Reset() + hashMD5.Write(secret) + hashMD5.Write(digest) + + done += copy(result[done:], hashMD5.Sum(nil)) + i++ + } +} + +func exportPRF30(result, secret, label, seed []byte) { + hash := md5.New() + hash.Write(secret) + hash.Write(seed) + copy(result, hash.Sum(nil)) +} +func prfAndHashForVersion(version uint16, suite *cipherSuite) (func(result, secret, label, seed []byte), crypto.Hash) { + switch version { + case VersionTLS10, VersionTLS11: + return prf10, crypto.Hash(0) + case VersionTLS12: + if suite.flags&suiteSHA384 != 0 { + return prf12(sha512.New384), crypto.SHA384 + } + return prf12(sha256.New), crypto.SHA256 + default: + panic("unknown version") + } +} + +func prfForVersion(version uint16, suite *cipherSuite) func(result, secret, label, seed []byte) { + prf, _ := prfAndHashForVersion(version, suite) + return prf +} + +// keysFromMasterSecret generates the connection keys from the master +// secret, given the lengths of the MAC key, cipher key and IV, as defined in +// RFC 2246, section 6.3. +func keysFromMasterSecret(version uint16, suite *cipherSuite, masterSecret, clientRandom, serverRandom []byte, macLen, keyLen, ivLen int) (clientMAC, serverMAC, clientKey, serverKey, clientIV, serverIV []byte) { + if suite.flags&suiteExport > 0 { + return exportKeysFromMasterSecret(version, suite, masterSecret, clientRandom, serverRandom, macLen, keyLen, ivLen) + } + var seed [tlsRandomLength * 2]byte + copy(seed[0:len(clientRandom)], serverRandom) + copy(seed[len(serverRandom):], clientRandom) + + n := 2*macLen + 2*keyLen + 2*ivLen + keyMaterial := make([]byte, n) + prfForVersion(version, suite)(keyMaterial, masterSecret, keyExpansionLabel, seed[0:]) + clientMAC = keyMaterial[:macLen] + keyMaterial = keyMaterial[macLen:] + serverMAC = keyMaterial[:macLen] + keyMaterial = keyMaterial[macLen:] + clientKey = keyMaterial[:keyLen] + keyMaterial = keyMaterial[keyLen:] + serverKey = keyMaterial[:keyLen] + keyMaterial = keyMaterial[keyLen:] + clientIV = keyMaterial[:ivLen] + keyMaterial = keyMaterial[ivLen:] + serverIV = keyMaterial[:ivLen] + return +} + +// The crypto wars must have been the worst +func exportKeysFromMasterSecret30(version uint16, suite *cipherSuite, masterSecret, clientRandom, serverRandom []byte, macLen, keyLen, ivLen int) (clientMAC, serverMAC, clientKey, serverKey, clientIV, serverIV []byte) { + var seed [tlsRandomLength * 2]byte + copy(seed[0:len(clientRandom)], serverRandom) + copy(seed[len(serverRandom):], clientRandom) + n := 2*macLen + 2*keyLen + keyMaterial := make([]byte, n) + prf30(keyMaterial, masterSecret, keyExpansionLabel, seed[0:]) + clientMAC = keyMaterial[:macLen] + keyMaterial = keyMaterial[macLen:] + serverMAC = keyMaterial[:macLen] + keyMaterial = keyMaterial[macLen:] + clientKey = keyMaterial[:keyLen] + keyMaterial = keyMaterial[keyLen:] + serverKey = keyMaterial[:keyLen] + var exportSeed [tlsRandomLength * 2]byte + copy(exportSeed[0:len(serverRandom)], clientRandom) + copy(exportSeed[len(clientRandom):], serverRandom) + expandedKeyLen := suite.expandedKeyLen + finalKeyBlock := make([]byte, 2*expandedKeyLen) + exportPRF30(finalKeyBlock[:expandedKeyLen], clientKey, clientFinalKeyLabel, exportSeed[0:]) + clientKey = finalKeyBlock[:expandedKeyLen] + finalKeyBlock = finalKeyBlock[expandedKeyLen:] + exportPRF30(finalKeyBlock[:expandedKeyLen], serverKey, serverFinalKeyLabel, seed[0:]) + serverKey = finalKeyBlock[:expandedKeyLen] + ivBlock := make([]byte, 2*ivLen) + clientIV = ivBlock[:ivLen] + exportPRF30(clientIV, []byte{}, finalIVLabel, exportSeed[0:]) + ivBlock = ivBlock[ivLen:] + serverIV = ivBlock[:ivLen] + exportPRF30(serverIV, []byte{}, finalIVLabel, seed[0:]) + return +} + +// If a cryptographer kills me in the night, let it be known I was sorry +func exportKeysFromMasterSecretTLS(version uint16, suite *cipherSuite, masterSecret, clientRandom, serverRandom []byte, macLen, keyLen, ivLen int) (clientMAC, serverMAC, clientKey, serverKey, clientIV, serverIV []byte) { + var seed [tlsRandomLength * 2]byte + copy(seed[0:len(clientRandom)], serverRandom) + copy(seed[len(serverRandom):], clientRandom) + n := 2*macLen + 2*keyLen + keyMaterial := make([]byte, n) + prf := prfForVersion(version, suite) + prf(keyMaterial, masterSecret, keyExpansionLabel, seed[0:]) + clientMAC = keyMaterial[:macLen] + keyMaterial = keyMaterial[macLen:] + serverMAC = keyMaterial[:macLen] + keyMaterial = keyMaterial[macLen:] + clientKey = keyMaterial[:keyLen] + keyMaterial = keyMaterial[keyLen:] + serverKey = keyMaterial[:keyLen] + expandedKeyLen := suite.expandedKeyLen + finalKeyBlock := make([]byte, 2*expandedKeyLen) + var exportSeed [tlsRandomLength * 2]byte + copy(exportSeed[0:len(serverRandom)], clientRandom) + copy(exportSeed[len(clientRandom):], serverRandom) + prf(finalKeyBlock[:expandedKeyLen], clientKey, clientFinalKeyLabel, exportSeed[0:]) + clientKey = finalKeyBlock[:expandedKeyLen] + finalKeyBlock = finalKeyBlock[expandedKeyLen:] + prf(finalKeyBlock[:expandedKeyLen], serverKey, serverFinalKeyLabel, exportSeed[0:]) + serverKey = finalKeyBlock[:expandedKeyLen] + ivBlock := make([]byte, 2*ivLen) + prf(ivBlock, []byte{}, finalIVLabel, exportSeed[0:]) + clientIV = ivBlock[:ivLen] + ivBlock = ivBlock[ivLen:] + serverIV = ivBlock[:ivLen] + return +} + +func exportKeysFromMasterSecret(version uint16, suite *cipherSuite, masterSecret, clientRandom, serverRandom []byte, macLen, keyLen, ivLen int) (clientMAC, serverMAC, clientKey, serverKey, clientIV, serverIV []byte) { + switch version { + case VersionSSL30: + return exportKeysFromMasterSecret30(version, suite, masterSecret, clientRandom, serverRandom, macLen, keyLen, ivLen) + case VersionTLS10, VersionTLS11, VersionTLS12: + return exportKeysFromMasterSecretTLS(version, suite, masterSecret, clientRandom, serverRandom, macLen, keyLen, ivLen) + default: + panic("unknown version") + } +} + +// noExportedKeyingMaterial is used as a value of +// ConnectionState.ekm when renegotiation is enabled and thus +// we wish to fail all key-material export requests. +func noExportedKeyingMaterial(label string, context []byte, length int) ([]byte, error) { + return nil, errors.New("crypto/tls: ExportKeyingMaterial is unavailable when renegotiation is enabled") +} + +// ekmFromMasterSecret generates exported keying material as defined in RFC 5705. +func ekmFromMasterSecret(version uint16, suite *cipherSuite, masterSecret, clientRandom, serverRandom []byte) func(string, []byte, int) ([]byte, error) { + return func(label string, context []byte, length int) ([]byte, error) { + switch label { + case "client finished", "server finished", "master secret", "key expansion": + // These values are reserved and may not be used. + return nil, fmt.Errorf("crypto/tls: reserved ExportKeyingMaterial label: %s", label) + } + + seedLen := len(serverRandom) + len(clientRandom) + if context != nil { + seedLen += 2 + len(context) + } + seed := make([]byte, 0, seedLen) + + seed = append(seed, clientRandom...) + seed = append(seed, serverRandom...) + + if context != nil { + if len(context) >= 1<<16 { + return nil, fmt.Errorf("crypto/tls: ExportKeyingMaterial context too long") + } + seed = append(seed, byte(len(context)>>8), byte(len(context))) + seed = append(seed, context...) + } + + keyMaterial := make([]byte, length) + prfForVersion(version, suite)(keyMaterial, masterSecret, []byte(label), seed) + return keyMaterial, nil + } +} diff --git a/format/tls/tlsdecrypt/tlsdecrypt.go b/format/tls/tlsdecrypt/tlsdecrypt.go new file mode 100644 index 00000000..c3d26b36 --- /dev/null +++ b/format/tls/tlsdecrypt/tlsdecrypt.go @@ -0,0 +1,96 @@ +package tlsdecrypt + +// TODO: SSLv3 MAC +// TODO: TLS 1.3 + +import ( + "fmt" + "hash" +) + +type Decryptor struct { + IsClient bool + Version int + CipherSuite int + MasterSecret []byte + ClientRandom []byte + ServerRandom []byte + + halfConn *halfConn +} + +type keys struct { + clientCipher any + serverCipher any + clientHash hash.Hash + serverHash hash.Hash +} + +// TODO: only need one direction at a time +func establishKeys( + vers uint16, + suite *cipherSuite, + masterSecret []byte, + clientRandom []byte, + serverRandom []byte, +) keys { + clientMAC, serverMAC, clientKey, serverKey, clientIV, serverIV := + keysFromMasterSecret(vers, suite, masterSecret, clientRandom, serverRandom, suite.macLen, suite.keyLen, suite.ivLen) + + var clientCipher, serverCipher any + var clientHash, serverHash hash.Hash + + if suite.aead == nil { + clientCipher = suite.cipher(clientKey, clientIV, true /* for reading */) + clientHash = suite.mac(clientMAC) + serverCipher = suite.cipher(serverKey, serverIV, true /* for reading */) + serverHash = suite.mac(serverMAC) + } else { + clientCipher = suite.aead(clientKey, clientIV) + serverCipher = suite.aead(serverKey, serverIV) + } + + return keys{ + clientCipher: clientCipher, + serverCipher: serverCipher, + clientHash: clientHash, + serverHash: serverHash, + } +} + +func (d *Decryptor) Decrypt(record []byte) ([]byte, error) { + if d.halfConn == nil { + cipherSuite := cipherSuiteByID(uint16(d.CipherSuite)) + if cipherSuite == nil { + return nil, fmt.Errorf("unsupported cipher suit %x", d.CipherSuite) + } + + keys := establishKeys( + uint16(d.Version), + cipherSuite, + d.MasterSecret, + d.ClientRandom, + d.ServerRandom, + ) + + var cipher any + var mac hash.Hash + if d.IsClient { + cipher = keys.clientCipher + mac = keys.clientHash + } else { + cipher = keys.serverCipher + mac = keys.serverHash + } + + d.halfConn = &halfConn{ + version: uint16(d.Version), + cipher: cipher, + mac: mac, + seq: [8]byte{}, // zero + } + } + + plain, _, err := d.halfConn.decrypt(record) + return plain, err +} diff --git a/pkg/decode/decode.go b/pkg/decode/decode.go index 221e2fe6..4e710ba9 100644 --- a/pkg/decode/decode.go +++ b/pkg/decode/decode.go @@ -5,6 +5,7 @@ import ( "context" "fmt" "io" + "reflect" "regexp" @@ -204,6 +205,8 @@ func newDecoder(ctx context.Context, format Format, br bitio.ReaderAtSeeker, opt } } +// ArgAs looks for a decoder option with type of target, similar to errors.As +// return true if found func (d *D) ArgAs(target any) bool { targeType := reflect.TypeOf(target) for _, in := range d.inArgs { @@ -920,8 +923,6 @@ func (d *D) RangeFn(firstBit int64, nBits int64, fn func(d *D)) int64 { fn(&nd) - d.Value = nd.Value - endPos := nd.Pos() return endPos - startPos diff --git a/pkg/decode/value.go b/pkg/decode/value.go index 817eda66..b4e4ddf5 100644 --- a/pkg/decode/value.go +++ b/pkg/decode/value.go @@ -2,6 +2,7 @@ package decode import ( "errors" + "fmt" "github.com/wader/fq/pkg/bitio" "github.com/wader/fq/pkg/ranges" @@ -253,3 +254,34 @@ func (v *Value) TryBitBufScalarFn(sms ...scalar.BitBufMapper) error { v.V = &s return err } + +func (v *Value) Remove() error { + p := v.Parent + if p == nil { + return fmt.Errorf("d has no parent") + } + + switch fv := p.V.(type) { + case *Compound: + if !fv.IsArray { + if _, ok := fv.ByName[v.Name]; !ok { + return fmt.Errorf("d not in parent ByName") + } + delete(fv.ByName, p.Name) + } + found := false + var cs []*Value + for _, c := range fv.Children { + if c == v { + found = true + continue + } + cs = append(cs, c) + } + if !found { + return fmt.Errorf("d not in parent children") + } + fv.Children = cs + } + return nil +}