From 0a09bcaa502e6ad95c16ac1b39199838cc9317e2 Mon Sep 17 00:00:00 2001 From: Andres Toom Date: Wed, 1 Nov 2023 16:52:36 +0200 Subject: [PATCH] Add test samples for DTLS 1.3 and TLS 1.3 Ref. eng/recordflux/RecordFlux#1221 --- tests/examples/data/tls/README.md | 181 ++++++++++++++++++ tests/examples/data/tls/dtls13-1.pcap | Bin 0 -> 8239 bytes tests/examples/data/tls/dtls13-2-keylog.txt | 4 + tests/examples/data/tls/dtls13-2.pcap | Bin 0 -> 2275 bytes tests/examples/data/tls/tls13-1-keylog.txt | 5 + tests/examples/data/tls/tls13-1.pcap | Bin 0 -> 3856 bytes tests/examples/data/tls/tls13-2.pcap | Bin 0 -> 4158 bytes .../data/tls_alert/alert/valid/README.md | 3 + .../tls_alert/alert/valid/dtls13-0_00.raw | 1 + .../ch_extension/invalid/README.md | 20 ++ .../invalid/tls13-1_04a_hs_ch_ex1.raw | Bin 0 -> 8 bytes .../invalid/tls13-1_04a_hs_ch_ex3.raw | Bin 0 -> 4 bytes .../invalid/tls13-1_04a_hs_ch_ex4.raw | Bin 0 -> 4 bytes .../invalid/tls13-1_04a_hs_ch_ex5.raw | Bin 0 -> 4 bytes .../invalid/tls13-2_00_hs_ch_ex0.raw | Bin 0 -> 5 bytes .../invalid/tls13-2_00_hs_ch_ex1.raw | Bin 0 -> 4 bytes .../invalid/tls13-2_00_hs_ch_ex2.raw | Bin 0 -> 4 bytes .../invalid/tls13-2_00_hs_ch_ex4.raw | Bin 0 -> 6 bytes .../invalid/tls13-2_00_hs_ch_ex7.raw | Bin 0 -> 17 bytes .../valid/tls13-1_04a_hs_ch_ex0.raw | Bin 0 -> 28 bytes .../valid/tls13-1_04a_hs_ch_ex2.raw | Bin 0 -> 26 bytes .../valid/tls13-1_04a_hs_ch_ex6.raw | Bin 0 -> 34 bytes .../valid/tls13-1_04a_hs_ch_ex7.raw | Bin 0 -> 7 bytes .../valid/tls13-1_04a_hs_ch_ex8.raw | Bin 0 -> 6 bytes .../valid/tls13-1_04a_hs_ch_ex9.raw | Bin 0 -> 42 bytes .../valid/tls13-2_00_hs_ch_ex3.raw | Bin 0 -> 24 bytes .../valid/tls13-2_00_hs_ch_ex5.raw | Bin 0 -> 42 bytes .../valid/tls13-2_00_hs_ch_ex6.raw | Bin 0 -> 6 bytes .../valid/tls13-2_00_hs_ch_ex8.raw | Bin 0 -> 12 bytes .../invalid/dtls13-1_00_hs_ch.raw | Bin 0 -> 578 bytes .../invalid/dtls13-1_01_hs_ch.raw | Bin 0 -> 578 bytes .../invalid/dtls13-1_02_hs_ch.raw | Bin 0 -> 578 bytes .../client_hello/invalid/tls13-2_00_hs_ch.raw | Bin 0 -> 229 bytes .../dtls_handshake/invalid/README.md | 8 + .../dtls_handshake/invalid/dtls13-1_00_hs.raw | Bin 0 -> 590 bytes .../dtls_handshake/invalid/dtls13-1_01_hs.raw | Bin 0 -> 590 bytes .../dtls_handshake/invalid/dtls13-1_02_hs.raw | Bin 0 -> 590 bytes .../dtls_handshake/valid/dtls13-1_03a_hs.raw | Bin 0 -> 131 bytes .../server_hello/valid/dtls13-1_03a_hs_sh.raw | Bin 0 -> 119 bytes .../server_hello/valid/tls13-2_01a_hs_sh.raw | Bin 0 -> 118 bytes .../valid/tls13-2_01a_hs_sh_ex0.raw | Bin 0 -> 40 bytes .../valid/tls13-2_01a_hs_sh_ex1.raw | Bin 0 -> 6 bytes .../tls_handshake/invalid/README.md | 5 + .../tls_handshake/invalid/tls13-1_04_hs.raw | Bin 0 -> 248 bytes .../tls_handshake/invalid/tls13-2_00_hs.raw | Bin 0 -> 233 bytes .../tls_handshake/valid/tls13-1_06a_hs.raw | Bin 0 -> 122 bytes .../tls_handshake/valid/tls13-2_01a_hs.raw | Bin 0 -> 122 bytes .../dtls_ciphertext/valid/dtls13-1_03b.raw | Bin 0 -> 36 bytes .../dtls_ciphertext/valid/dtls13-1_03c.raw | Bin 0 -> 77 bytes .../dtls_ciphertext/valid/dtls13-1_04.raw | Bin 0 -> 1383 bytes .../dtls_ciphertext/valid/dtls13-1_05.raw | Bin 0 -> 1242 bytes .../dtls_ciphertext/valid/dtls13-1_06a.raw | Bin 0 -> 294 bytes .../dtls_ciphertext/valid/dtls13-1_06b.raw | Bin 0 -> 66 bytes .../dtls_ciphertext/valid/dtls13-1_07.raw | Bin 0 -> 1356 bytes .../dtls_ciphertext/valid/dtls13-1_08a.raw | Bin 0 -> 294 bytes .../dtls_ciphertext/valid/dtls13-1_08b.raw | Bin 0 -> 66 bytes .../dtls_ciphertext/valid/dtls13-1_09.raw | Bin 0 -> 48 bytes .../dtls_ciphertext/valid/dtls13-1_10.raw | Bin 0 -> 232 bytes .../dtls_ciphertext/valid/dtls13-1_11.raw | Bin 0 -> 36 bytes .../dtls_ciphertext/valid/dtls13-1_12.raw | Bin 0 -> 33 bytes .../dtls_ciphertext/valid/dtls13-1_13.raw | Bin 0 -> 33 bytes .../dtls_ciphertext/valid/dtls13-1_14.raw | Bin 0 -> 24 bytes .../dtls_ciphertext/valid/dtls13-1_15.raw | Bin 0 -> 32 bytes .../dtls_ciphertext/valid/dtls13-1_16.raw | Bin 0 -> 24 bytes .../tls_plaintext/invalid/README.md | 8 + .../tls_plaintext/invalid/dtls13-1_00.raw | Bin 0 -> 603 bytes .../tls_plaintext/invalid/dtls13-1_01.raw | Bin 0 -> 603 bytes .../tls_plaintext/invalid/dtls13-1_02.raw | Bin 0 -> 603 bytes .../tls_plaintext/valid/dtls13-1_03a.raw | Bin 0 -> 144 bytes .../tls_record/invalid/dtls13-1_00.raw | 1 + .../tls_record/invalid/dtls13-2_00.raw | Bin 0 -> 170 bytes .../tls_record/invalid/tls13-1_04.raw | Bin 0 -> 253 bytes .../tls_record/invalid/tls13-2_00.raw | Bin 0 -> 238 bytes .../tls_record/invalid/tls13-2_06.raw | Bin 0 -> 517 bytes .../tls_record/valid/dtls13-1_03b.raw | 1 + .../tls_record/valid/dtls13-2_01.raw | Bin 0 -> 111 bytes .../tls_record/valid/dtls13-2_02.raw | Bin 0 -> 52 bytes .../tls_record/valid/dtls13-2_03.raw | Bin 0 -> 848 bytes .../tls_record/valid/dtls13-2_04.raw | 1 + .../tls_record/valid/dtls13-2_05.raw | Bin 0 -> 66 bytes .../tls_record/valid/dtls13-2_06.raw | Bin 0 -> 66 bytes .../tls_record/valid/dtls13-2_07.raw | Bin 0 -> 40 bytes .../tls_record/valid/dtls13-2_08.raw | Bin 0 -> 26 bytes .../tls_record/valid/dtls13-2_09.raw | Bin 0 -> 26 bytes .../tls_record/valid/dtls13-2_10.raw | Bin 0 -> 24 bytes .../tls_record/valid/tls13-1_06a.raw | Bin 0 -> 127 bytes .../tls_record/valid/tls13-1_06b.raw | Bin 0 -> 6 bytes .../tls_record/valid/tls13-1_06c.raw | Bin 0 -> 28 bytes .../tls_record/valid/tls13-1_06d.raw | Bin 0 -> 840 bytes .../tls_record/valid/tls13-1_06e.raw | Bin 0 -> 286 bytes .../tls_record/valid/tls13-1_06f.raw | Bin 0 -> 74 bytes .../tls_record/valid/tls13-1_08a.raw | Bin 0 -> 6 bytes .../tls_record/valid/tls13-1_08b.raw | Bin 0 -> 74 bytes .../tls_record/valid/tls13-1_10.raw | Bin 0 -> 26 bytes .../tls_record/valid/tls13-1_12.raw | Bin 0 -> 239 bytes .../tls_record/valid/tls13-1_14.raw | Bin 0 -> 239 bytes .../tls_record/valid/tls13-1_16.raw | Bin 0 -> 26 bytes .../tls_record/valid/tls13-2_01a.raw | Bin 0 -> 127 bytes .../tls_record/valid/tls13-2_01b.raw | Bin 0 -> 6 bytes .../tls_record/valid/tls13-2_01c.raw | Bin 0 -> 459 bytes .../tls_record/valid/tls13-2_02a.raw | Bin 0 -> 6 bytes .../tls_record/valid/tls13-2_02b.raw | Bin 0 -> 58 bytes .../tls_record/valid/tls13-2_03.raw | Bin 0 -> 402 bytes .../tls_record/valid/tls13-2_04.raw | Bin 0 -> 45 bytes .../tls_record/valid/tls13-2_05.raw | Bin 0 -> 139 bytes .../tls_record/valid/tls13-2_07a.raw | Bin 0 -> 6 bytes .../tls_record/valid/tls13-2_07b.raw | Bin 0 -> 45 bytes .../tls_record/valid/tls13-2_08a.raw | Bin 0 -> 133 bytes .../tls_record/valid/tls13-2_08b.raw | Bin 0 -> 6 bytes .../tls_record/valid/tls13-2_08c.raw | Bin 0 -> 68 bytes .../tls_record/valid/tls13-2_08e.raw | Bin 0 -> 402 bytes .../tls_record/valid/tls13-2_09.raw | Bin 0 -> 140 bytes .../tls_record/valid/tls13-2_09a.raw | Bin 0 -> 26 bytes .../tls_record/valid/tls13-2_09b.raw | Bin 0 -> 58 bytes .../tls_record/valid/tls13-2_10.raw | Bin 0 -> 46 bytes .../tls_record/valid/tls13-2_11.raw | Bin 0 -> 141 bytes tools/extract_packets.py | 19 +- 117 files changed, 256 insertions(+), 1 deletion(-) create mode 100644 tests/examples/data/tls/README.md create mode 100644 tests/examples/data/tls/dtls13-1.pcap create mode 100644 tests/examples/data/tls/dtls13-2-keylog.txt create mode 100644 tests/examples/data/tls/dtls13-2.pcap create mode 100644 tests/examples/data/tls/tls13-1-keylog.txt create mode 100644 tests/examples/data/tls/tls13-1.pcap create mode 100644 tests/examples/data/tls/tls13-2.pcap create mode 100644 tests/examples/data/tls_alert/alert/valid/README.md create mode 100644 tests/examples/data/tls_alert/alert/valid/dtls13-0_00.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/invalid/README.md create mode 100644 tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex1.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex3.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex4.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex5.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex0.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex1.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex2.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex4.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex7.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex0.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex2.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex6.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex7.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex8.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex9.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/valid/tls13-2_00_hs_ch_ex3.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/valid/tls13-2_00_hs_ch_ex5.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/valid/tls13-2_00_hs_ch_ex6.raw create mode 100644 tests/examples/data/tls_handshake/ch_extension/valid/tls13-2_00_hs_ch_ex8.raw create mode 100644 tests/examples/data/tls_handshake/client_hello/invalid/dtls13-1_00_hs_ch.raw create mode 100644 tests/examples/data/tls_handshake/client_hello/invalid/dtls13-1_01_hs_ch.raw create mode 100644 tests/examples/data/tls_handshake/client_hello/invalid/dtls13-1_02_hs_ch.raw create mode 100644 tests/examples/data/tls_handshake/client_hello/invalid/tls13-2_00_hs_ch.raw create mode 100644 tests/examples/data/tls_handshake/dtls_handshake/invalid/README.md create mode 100644 tests/examples/data/tls_handshake/dtls_handshake/invalid/dtls13-1_00_hs.raw create mode 100644 tests/examples/data/tls_handshake/dtls_handshake/invalid/dtls13-1_01_hs.raw create mode 100644 tests/examples/data/tls_handshake/dtls_handshake/invalid/dtls13-1_02_hs.raw create mode 100644 tests/examples/data/tls_handshake/dtls_handshake/valid/dtls13-1_03a_hs.raw create mode 100644 tests/examples/data/tls_handshake/server_hello/valid/dtls13-1_03a_hs_sh.raw create mode 100644 tests/examples/data/tls_handshake/server_hello/valid/tls13-2_01a_hs_sh.raw create mode 100644 tests/examples/data/tls_handshake/sh_extension/valid/tls13-2_01a_hs_sh_ex0.raw create mode 100644 tests/examples/data/tls_handshake/sh_extension/valid/tls13-2_01a_hs_sh_ex1.raw create mode 100644 tests/examples/data/tls_handshake/tls_handshake/invalid/README.md create mode 100644 tests/examples/data/tls_handshake/tls_handshake/invalid/tls13-1_04_hs.raw create mode 100644 tests/examples/data/tls_handshake/tls_handshake/invalid/tls13-2_00_hs.raw create mode 100644 tests/examples/data/tls_handshake/tls_handshake/valid/tls13-1_06a_hs.raw create mode 100644 tests/examples/data/tls_handshake/tls_handshake/valid/tls13-2_01a_hs.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_03b.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_03c.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_04.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_05.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_06a.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_06b.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_07.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_08a.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_08b.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_09.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_10.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_11.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_12.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_13.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_14.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_15.raw create mode 100644 tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_16.raw create mode 100644 tests/examples/data/tls_record/tls_plaintext/invalid/README.md create mode 100644 tests/examples/data/tls_record/tls_plaintext/invalid/dtls13-1_00.raw create mode 100644 tests/examples/data/tls_record/tls_plaintext/invalid/dtls13-1_01.raw create mode 100644 tests/examples/data/tls_record/tls_plaintext/invalid/dtls13-1_02.raw create mode 100644 tests/examples/data/tls_record/tls_plaintext/valid/dtls13-1_03a.raw create mode 120000 tests/examples/data/tls_record/tls_record/invalid/dtls13-1_00.raw create mode 100644 tests/examples/data/tls_record/tls_record/invalid/dtls13-2_00.raw create mode 100644 tests/examples/data/tls_record/tls_record/invalid/tls13-1_04.raw create mode 100644 tests/examples/data/tls_record/tls_record/invalid/tls13-2_00.raw create mode 100644 tests/examples/data/tls_record/tls_record/invalid/tls13-2_06.raw create mode 120000 tests/examples/data/tls_record/tls_record/valid/dtls13-1_03b.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/dtls13-2_01.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/dtls13-2_02.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/dtls13-2_03.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/dtls13-2_04.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/dtls13-2_05.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/dtls13-2_06.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/dtls13-2_07.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/dtls13-2_08.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/dtls13-2_09.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/dtls13-2_10.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_06a.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_06b.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_06c.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_06d.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_06e.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_06f.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_08a.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_08b.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_10.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_12.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_14.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-1_16.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_01a.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_01b.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_01c.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_02a.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_02b.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_03.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_04.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_05.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_07a.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_07b.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_08a.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_08b.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_08c.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_08e.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_09.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_09a.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_09b.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_10.raw create mode 100644 tests/examples/data/tls_record/tls_record/valid/tls13-2_11.raw diff --git a/tests/examples/data/tls/README.md b/tests/examples/data/tls/README.md new file mode 100644 index 000000000..fee9b6cc2 --- /dev/null +++ b/tests/examples/data/tls/README.md @@ -0,0 +1,181 @@ +# Message samples for TLS and DTLS + +## General + +The `pcap` files in the current folder contain WireShark captures that have been used to populate +several of the folders with the path prefix `../tls*` containing raw packets with specific TLS or +DTLS message types. See the original resources referenced below for the full details of the +applicable copyright terms. In addition, some of the folders contain also custom-built samples. +Those have been documented in the respective folders. + +### About TLS 1.3 and DTLS 1.3 extensions + +Several of the extensions defined for TLS 1.2 / DTLS 1.2 are no more neither required nor supported in TLS 1.3 / DTLS 1.3. See [RFC 8446 4.2](https://datatracker.ietf.org/doc/html/rfc8446#section-4.2) for the applicable extensions. + +However, many available TLS 1.3 and DTLS 1.3 captures still contain some extensions that should not be there. +For instance, the Encrypt_Then_Mac extension (22). +Presumably, the other parties just ignore them. +However, for strict compliance they should be rejected. +See the `invalid` folders of the respective samples for more information. + +## TLS: Captures + +### Capture 1: Illustrated TLS (TLS 1.3) + +* File: [tls13-1.pcap](tls13-1.pcap) -- TLS 1.3. session over TCP from "The Illustrated TLS + Connection" [repository](https://tls13-1.pcap/syncsynchalt/illustrated-tls13). See also the related + website: [https://tls13.xargs.org/](https://tls13.xargs.org/). + +* File: [tls13-1-keylog.txt](tls13-1-keylog.txt) -- A [NSS key +log](https://web.archive.org/web/20230425034128/https://firefox-source-docs.mozilla.org/security/nss/legacy/key_log_format/index.html) + for this capture. + + * Note: For TLS such files can be loaded in Wireshark by right-clicking a TLS packet and selecting + `Protocol Preferences -> Transport Layer Security -> Pre-Master-Secret log filename` to let + Wireshark decrypt and show TLS connection details. + * Note: See [this IETF draft](https://datatracker.ietf.org/doc/draft-thomson-tls-keylogfile/) for + followup documentation on that format. + +License: MIT. + +### Capture 2: TLS 1.3 WireShark test + +File: [tls13-2.pcap](tls13-2.pcap) -- WireShark test sample for TLS 1.3. Original file: [tls13-rfc8446.pcap](https://gitlab.com/wireshark/wireshark/-/blob/master/test/captures/tls13-rfc8446.pcap). + +License: GNU GPLv2. + +## TLS: Extracting Protocol Data Units (PDUs) + +For the extraction of TLS records from a `.pcap` file there are several possiblities. + +Unfortunately, at this point the [extract_packets.py](../../../../tools/extract_packets.py) script doesn't yet support the extraction of the TLS layer packets directly. We could extract the TCP segments this way. +However, the TCP header doesn't have a fixed length (e.g., [see here](https://www.rfc-editor.org/rfc/rfc9293#name-header-format)). +So, we cannot simply trim the segments by a fixed number. + +Instead, one solution is to export the TLS records manually from the Wireshark GUI by selecting the +relevant part of the packet and choosing the action "Export Packet Bytes". +This has been done for the `tls13-1.pcap` and parts of the `tls13-2.pcap` capture. + +Notes: +* Not all the frames in that capture contain TLS records. + Some are other TCP messages. +* Some TCP segments contain multiple TLS records. +* If the RecordFlux type does not correspond exactly to the packet tree in WireShark, then the + extracted file might need further trimming. + See the section [Extract DTLS packets](#2-extract-dtls-packets) for tips how to do that. + +# DTLS: Captures + +### Capture 1: dtls13-1.pcap (DTLS 1.3) + +File: [ws-dtls13.pcap](dtls13-1.pcap) -- DTLS 1.3. session over UDP from: +https://gitlab.com/wireshark/wireshark/-/issues/18071. + +License: No explicit license mentioned. + +### Capture 2: Illustrated DTLS (DTLS 1.3) + +* File: [dtls13-2.pcap](dtls13-2.pcap) -- DTLS 1.3. session over UDP from "The Illustrated DTLS + Connection" [repository](https://github.com/syncsynchalt/illustrated-dtls). See also the related + website: [https://dtls.xargs.org](https://dtls.xargs.org). + +* File: [dtls13-2-keylog.txt](dtls13-2-keylog.txt) -- A [NSS key + log](https://web.archive.org/web/20230425034128/https://firefox-source-docs.mozilla.org/security/nss/legacy/key_log_format/index.html) + for this capture. + + * Note: For TLS such files can be loaded in Wireshark by right-clicking a TLS packet and selecting + `Protocol Preferences -> Transport Layer Security -> Pre-Master-Secret log filename` to let + Wireshark decrypt and show TLS connection details. However, as of Wireshark version version 4.0.6 + this capability is not yet supported in Wireshark for DTLS. + * Note: See [this IETF draft](https://datatracker.ietf.org/doc/draft-thomson-tls-keylogfile/) for + followup documentation on that format. + +License: MIT. + +## DTLS: Extracting Protocol Data Units (PDUs) + +The extraction of DTLS packets from the `.pcap` files is done in several phases: + +1. The [extract_packets.py](../../../../tools/extract_packets.py) script is used to extract the byte + representation of the UDP datagrams from the `.pcap` files. (Unfortunately, at this point the + script doesn't yet support the extraction of DTLS layer packets directly.) +1. Remove the UDP headers to obtain the payload bytes. +1. If the UDP payload contains multiple DTLS records, then split them further into several smaller + files. + +### 1. Extract UDP datagrams + +For instance, a file `capture.pcap` capture can be split to UDP datagrams like this: + +```console +RECORDFLUX_DIR/tools/extract_packets.py inet.UDP \ + CAPTURES_DIR/capture.pcap \ + OUTPUT_DIR +``` +### 2. Extract DTLS packets + +The UDP frame header has a fixed length of 8 bytes (e.g., [see +here](https://en.wikipedia.org/wiki/User_Datagram_Protocol#UDP_datagram_structure)). So, we can just +use any tool to drop off the first 8 bytes from the frame. For instance, it could be done using the +`tail` utility on Linux like that (note that the bytes that will be included start from the next +position, i.e. 9): + +```console +$ tail -c +9 INPUT_FILE > OUTPUT_FILE +``` + +For example, assuming that the UDP frames have been stored to some directory one frame per file and +each file has the extension .raw, then you can do: + +```console +$ cd UDP_DIR +$ find -maxdepth 1 -name "*.raw" -exec sh -c "tail -c +9 {} > DTLS_DIR/{}" \; +``` + +### 3. Split multi-record datagrams + +A single UDP datagaram (packet) may carry multiple DTLS records. There is no generic means to +extract those records without decoding the record data first. For instance, the `dtls13-1` capture +03 contains 3 records, captures 06 and 08 contain 2 records. The lengths of these records have been +determined one by one and the respective sample files have been split to smaller sample files. + +For example: + +```console +$ # Extract 144 bytes from the beginning of a file. +$ head -c 144 dtls13-1_03.raw > dtls13-1_03a.raw +$ # Extract 36 bytes from the middle of the file starting with position 145. +$ tail -c +145 dtls13-1_03.raw | head -c 36 > dtls13-1_03b.raw +$ # Extract 77 bytes from the end of the file. +$ tail -c 77 dtls13-1_03.raw > dtls13-1_03c.raw +``` +### Sample file naming scheme + +The following naming convention has been used: + +``` +_<2 digit frame id>?(_?)*.raw +``` + +For example: + +``` +tls13-1_04a_hs_ch_ex0.raw + +where: + * capture_prefix = `tls13-1` + * 2 digit frame id = `04` <-- Ethernet frame number 5. + * record id letter = `a` <-- 1st DTLS_Record (DTLS_Plaintext) in the TCP segment. + * packet type id 1 = `hs` <-- Handshake message + * packet type id 2 = `ch` <-- ClientHello message + * packet type id 3 = `ex0` <-- Extension number 1 +``` + +``` +dtls13-1_03b.raw + +where: + * capture_prefix = `dtls13-1` + * 2 digit frame id = `03` <-- Ethernet frame number 4. + * record id letter = `b` <-- 2nd DTLS_Record (DTLS_Ciphertext) in the packet. +``` diff --git a/tests/examples/data/tls/dtls13-1.pcap b/tests/examples/data/tls/dtls13-1.pcap new file mode 100644 index 0000000000000000000000000000000000000000..d098680658023081cd276ff6fcbff836d8062bb5 GIT binary patch literal 8239 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 literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls/dtls13-2-keylog.txt b/tests/examples/data/tls/dtls13-2-keylog.txt new file mode 100644 index 000000000..40706b498 --- /dev/null +++ b/tests/examples/data/tls/dtls13-2-keylog.txt @@ -0,0 +1,4 @@ +CLIENT_HANDSHAKE_TRAFFIC_SECRET e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff 33e472fb8d821b0193314626bebee307ccbd1aeb3d3a17ba468888ffc5246da1 +SERVER_HANDSHAKE_TRAFFIC_SECRET e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff 8ad7990b9d249bcbaa0805d8d3f3ad2259e75f3a42c5d84db3ea3c6ee57b3d38 +CLIENT_TRAFFIC_SECRET e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff a9185352f61134f1d24eaa4a930fff2edca40ce8c06420848deb27699e9baf2c +SERVER_TRAFFIC_SECRET e0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff 4ab12ae4022fc013eca21abb071e13aa24a150e3876c660fe0ed10a8eebd8f17 diff --git a/tests/examples/data/tls/dtls13-2.pcap b/tests/examples/data/tls/dtls13-2.pcap new file mode 100644 index 0000000000000000000000000000000000000000..93a449a3ddbced28225471c08613974c1fae8a99 GIT binary patch literal 2275 zcmZuy2{e>lAHOqW8H2JkrDZUhhO%Y|MRqA-Qh6;+U-m6!X<@8Iwqfuhl#B)+si;&; ziwf13Y{{0l-m#1&rI9okjQ4rueBalpd(Q8id!Ogt-||1_-hXGqovTP71pYUE%q!T> z+7#O04CA^!~lSR(HgDT4(5h=lJsri-IL+r-&><7AcE@&ba{+AOZrw0Y%-|knSB$ zv2QBJwJ)(V@%s7)Ch$!9uG1gA+B;g-x*r0n0EHAR07;+-x1Xv4+V4#>tfLl&hfdT2zCm1WqXd&7^CsS;1jRt20DgU3$9op;& zoq>m=U@<5-B=pqjGiSrXsS%M;(J`^-&d0@HNJvadPNAiy(bIt}lt=?gw48_0b2G4Q zdTZL-xj@&A+vcQ-4!W*M>Y3#~)VY+W5_=yD<$>bB_RK3W;1DDMW5pg>VemKh3jMJdeKz8Yf54BQDWpV=A&@CH@yl5v{rVp@BCkp#Xdz= zUKBS@f{#1@#$w5p)jJJ>6MD5d=Mvk`jHeB2%OuuaUSwj|_c`@9#yaLl@6}*)&IG7+ z$zN5i=XH@?V~00*Qm);Kc|t|h?sqLyx-$^<&LLIBqs604_nvL<=A6X%4bGZ%f4Hg- zq#VzmIe*P@Fm=?=$IQnldQ@-vM8N}QvU)C_+x$vlZ3wZn&bFX8AXo5B+xX3&)5pfR zw9H*k7`eh87djh0tE#@&XiV`=<$aZ`7J$rLJ}WJ9TN3t$i{0A_bT(^lE=R^(a!Ntg zcCU^}=vC_@iM2smHG|+5X(N5r7m!A|(&!D{^$~87ivQ^0o&gPk-3@UD9Z5Q)S^M$BAPF8(%6Py@B&1vC&x{Rv8|NdF!=?Sj}l@3bewV z$FP@9&qrWsACt9``(9}kVP^~Oa+Rnoj?v^A>K0Mwq5h4O8fys$D$XWFtnr5M!i#Pb zYh#S+*FS^~#v8I-W^q`NWwRZ}X zAGXP}$vY1TTZtD+@v`=rmbcZ2AImry?cIG4>&8Xj9QxbxY}wfWp5sI7BVSb1;;7}1 z`u#^lt_JrUy0}BoyPNQYA>|r{L-uJUv=a7KG21^AAiP7V> z-TYB4<)W0S5^vqG!7kee7VQbc+Aj^pu;cHy#fvtEJf7rDib&oKULUL{I#lJpMatvUJHy$Om#!IiREpsE#+-c)ouNAL-O_84zp)kh~ZHU z6QS?c-N}FEr^0G0bb8a`!lm@As*=>}rI0(;(iR5GRZk-W`U}{FipGB+%9LH3rzI5M|nNPlkMi zV|7!fG=Jvt0optkW@7(_X_E6Z)3QUDiRlEe-yf5vB0|De=_(Y7qUIT1slJSyN|6^(m87P8zw~oNz+dP$bLv|kE*z6|K>V5X^UR^tCQuo$NmAJ#j8gE literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls/tls13-1-keylog.txt b/tests/examples/data/tls/tls13-1-keylog.txt new file mode 100644 index 000000000..15d1fb448 --- /dev/null +++ b/tests/examples/data/tls/tls13-1-keylog.txt @@ -0,0 +1,5 @@ +SERVER_HANDSHAKE_TRAFFIC_SECRET 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 23323da031634b241dd37d61032b62a4f450584d1f7f47983ba2f7cc0cdcc39a68f481f2b019f9403a3051908a5d1622 +CLIENT_HANDSHAKE_TRAFFIC_SECRET 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f db89d2d6df0e84fed74a2288f8fd4d0959f790ff23946cdf4c26d85e51bebd42ae184501972f8d30c4a3e4a3693d0ef0 +EXPORTER_SECRET 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 5da16dd8325dd8279e4535363384d9ad0dbe370538fc3ad74e53d533b77ac35ee072d56c90871344e6857ccb2efc9e14 +SERVER_TRAFFIC_SECRET_0 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 86c967fd7747a36a0685b4ed8d0e6b4c02b4ddaf3cd294aa44e9f6b0183bf911e89a189ba5dfd71fccffb5cc164901f8 +CLIENT_TRAFFIC_SECRET_0 000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f 9e47af27cb60d818a9ea7d233cb5ed4cc525fcd74614fb24b0ee59acb8e5aa7ff8d88b89792114208fec291a6fa96bad diff --git a/tests/examples/data/tls/tls13-1.pcap b/tests/examples/data/tls/tls13-1.pcap new file mode 100644 index 0000000000000000000000000000000000000000..f43bb1a4e24638a81462847cbfc5388917a03a58 GIT binary patch literal 3856 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 E7r=3Yxc~qF literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls/tls13-2.pcap b/tests/examples/data/tls/tls13-2.pcap new file mode 100644 index 0000000000000000000000000000000000000000..4500f5931fb66e4264616ef75dad695eb1f565c7 GIT binary patch literal 4158 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 aIa2JM#4%{vO^~~yVVyF7KilvzVE7+Svs@kk literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_alert/alert/valid/README.md b/tests/examples/data/tls_alert/alert/valid/README.md new file mode 100644 index 000000000..bd07232f7 --- /dev/null +++ b/tests/examples/data/tls_alert/alert/valid/README.md @@ -0,0 +1,3 @@ +# Valid DTLS Alert messages + +File: [dtls13-0_00.raw](dtls13-0_00.raw) -- A simple DTLS Alert message. Produced using RecordFlux generated Ada SPARK code. \ No newline at end of file diff --git a/tests/examples/data/tls_alert/alert/valid/dtls13-0_00.raw b/tests/examples/data/tls_alert/alert/valid/dtls13-0_00.raw new file mode 100644 index 000000000..283882646 --- /dev/null +++ b/tests/examples/data/tls_alert/alert/valid/dtls13-0_00.raw @@ -0,0 +1 @@ +Z \ No newline at end of file diff --git a/tests/examples/data/tls_handshake/ch_extension/invalid/README.md b/tests/examples/data/tls_handshake/ch_extension/invalid/README.md new file mode 100644 index 000000000..98e6df711 --- /dev/null +++ b/tests/examples/data/tls_handshake/ch_extension/invalid/README.md @@ -0,0 +1,20 @@ +* tls13-1_04a_hs_ch_ex1.raw + * Bad Extension type: Ec_Point_Formats(11) -- This extension type isn't strictly compatible with TLS 1.3. +* tls13-1_04a_hs_ch_ex3.raw + * Bad Extension type: Session_Ticket(35) -- This extension type isn't strictly compatible with TLS 1.3. +* tls13-1_04a_hs_ch_ex4.raw + * Bad Extension type: Encrypt_Then_Mac(22) -- This extension type isn't strictly compatible with TLS 1.3. +* tls13-1_04a_hs_ch_ex5.raw + * Bad Extension type: Extended_Master_Secret(23) -- This extension type isn't strictly compatible with TLS 1.3. + +* tls13-2_00_hs_ch_ex0.raw + * Bad Extension type: Renegotiation_Info(65281) -- This extension type isn't strictly compatible with TLS 1.3. +* tls13-2_00_hs_ch_ex1.raw + * Bad Extension type: Extended_Master_Secret(23) -- This extension type isn't strictly compatible with TLS 1.3. +* tls13-2_00_hs_ch_ex2.raw + * Bad Extension type: Session_Ticket(35) -- This extension type isn't strictly compatible with TLS 1.3. +* tls13-2_00_hs_ch_ex4.raw + * Bad Extension type: Ec_Point_Formats(11) -- This extension type isn't strictly compatible with TLS 1.3. +* tls13-2_00_hs_ch_ex7.raw + * A Supported_Versions(43) extension which contains non-standard draft versions of TLS 1.3. These are not supported by the current RecordFlux TLS 1.3 specification. + \ No newline at end of file diff --git a/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex1.raw b/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex1.raw new file mode 100644 index 0000000000000000000000000000000000000000..fb627338a6691262c648103d4bcb53e6878cd0be GIT binary patch literal 8 PcmZSJW?*4vU}ORS0C@lw literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex3.raw b/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex3.raw new file mode 100644 index 0000000000000000000000000000000000000000..490a4c0e6b7a01177055aebbc0d20b6431c8acf0 GIT binary patch literal 4 LcmZQjW?%pS0Bryy literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex4.raw b/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex4.raw new file mode 100644 index 0000000000000000000000000000000000000000..2b89ac84d5c11664a96f0c3cd29a654232c12582 GIT binary patch literal 4 LcmZP&V_*OP07d{8 literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex5.raw b/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-1_04a_hs_ch_ex5.raw new file mode 100644 index 0000000000000000000000000000000000000000..28bf8ddb3d26e95c846b9c9a282dfa37cf400f61 GIT binary patch literal 4 LcmZP&XJ7yT07(EC literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex0.raw b/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex0.raw new file mode 100644 index 0000000000000000000000000000000000000000..59020011151480e2211565aa2a3fae73a8c2c084 GIT binary patch literal 5 Mcmey*$iT<|00jmC0ssI2 literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex1.raw b/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex1.raw new file mode 100644 index 0000000000000000000000000000000000000000..28bf8ddb3d26e95c846b9c9a282dfa37cf400f61 GIT binary patch literal 4 LcmZP&XJ7yT07(EC literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex2.raw b/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex2.raw new file mode 100644 index 0000000000000000000000000000000000000000..490a4c0e6b7a01177055aebbc0d20b6431c8acf0 GIT binary patch literal 4 LcmZQjW?%pS0Bryy literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex4.raw b/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex4.raw new file mode 100644 index 0000000000000000000000000000000000000000..32c497acba80e0da195512232b1b481c8c4d99c1 GIT binary patch literal 6 NcmZSJW?*7u0000*01p5F literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex7.raw b/tests/examples/data/tls_handshake/ch_extension/invalid/tls13-2_00_hs_ch_ex7.raw new file mode 100644 index 0000000000000000000000000000000000000000..79202d48cc54db208fdc86d7157d8bb5cf19b6fa GIT binary patch literal 17 YcmZS3X5i&vW~rB{7iVT>W@2Up01qeui~s-t literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex0.raw b/tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex0.raw new file mode 100644 index 0000000000000000000000000000000000000000..0907f0237a5f44cf8496104fa995cad3ba379f36 GIT binary patch literal 28 jcmZQzV31%CV_*JB>*@8 literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex8.raw b/tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex8.raw new file mode 100644 index 0000000000000000000000000000000000000000..cb04387b2d3ad9935695694dc58572aeca7caa1e GIT binary patch literal 6 NcmZS3Wnf}t1ONc=05Sjo literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex9.raw b/tests/examples/data/tls_handshake/ch_extension/valid/tls13-1_04a_hs_ch_ex9.raw new file mode 100644 index 0000000000000000000000000000000000000000..0f95b5817ba3e1fddfbbd75eee0dd619e6212a21 GIT binary patch literal 42 ycmZQDW>8~LVUT4|Fl{KhW){(KaosDUS@$O@T37_WRb13(UHUTh!lkofNg)6t+YrP6 literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/valid/tls13-2_00_hs_ch_ex3.raw b/tests/examples/data/tls_handshake/ch_extension/valid/tls13-2_00_hs_ch_ex3.raw new file mode 100644 index 0000000000000000000000000000000000000000..114fad831695565fa8f20401edab7b8c7d23b74e GIT binary patch literal 24 fcmZSJWe{NyVqxZBVPRxt=3r%I8~LVUT4|U>AFLYFg#o3g@&ht}$#`EE!_&7%r_l`M%|@bHuZ4w@m>Lh7hs< literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/valid/tls13-2_00_hs_ch_ex6.raw b/tests/examples/data/tls_handshake/ch_extension/valid/tls13-2_00_hs_ch_ex6.raw new file mode 100644 index 0000000000000000000000000000000000000000..cb04387b2d3ad9935695694dc58572aeca7caa1e GIT binary patch literal 6 NcmZS3Wnf}t1ONc=05Sjo literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/ch_extension/valid/tls13-2_00_hs_ch_ex8.raw b/tests/examples/data/tls_handshake/ch_extension/valid/tls13-2_00_hs_ch_ex8.raw new file mode 100644 index 0000000000000000000000000000000000000000..350c95809bea8b12fbdaa78505ec65a01df64240 GIT binary patch literal 12 TcmZSJV&Gt4V~}MKXOI8@0onj% literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/client_hello/invalid/dtls13-1_00_hs_ch.raw b/tests/examples/data/tls_handshake/client_hello/invalid/dtls13-1_00_hs_ch.raw new file mode 100644 index 0000000000000000000000000000000000000000..2fb11d83e13edcb22ee878765526bc92ee9a7903 GIT binary patch literal 578 zcmV-I0=@nI{T+`|)7K7|S{1zwNfPO|3dx|-Y>2hSxWoGZ`0bOfd;kCdauWd)0uuuh z1QP|ow7|8%EWj(kFu*SWp8%c!s{k|rrvR$Vsm!R%s=z0}Bfu!YB)|&53BU-z6u=X} z62Pp$uE4JVYXD~eIRG;N7R(gP6U-IB1^}}FvcRUmr_8I&tjw*zHvqN3Ismi)MF5BZ zz5v7l00E`|D*yum{`>$903-k+1_K2H1OoyC2nPrV2nGlX2n7fV2m}ZT1_1>D1OWp9 z0s#OD02}}s02u%r02lxp03HAr02Tlm0384o02BcM0RR9N0000p0ZRc%02cs31fIOG z)FBYS)s8%McTaxVCih;euze2gos zB9a~laIj_Pr6$6;cAWI$YUlbNr!ZfpOiTP!cfAuLt&R7!n*U6tl}-xDxx|*6(~A_e zjJu?{_*aOAqy|lxmW9d1PLq@l-7jY`8suJ%%2EGu090?PY$dm?w0h*REBg2YM{GaI zTWd(lxrP2GqlrJJX&VW>hPW6f$0Iv(Le(L)0BOOMgJt6ACr8Snh;sq5NEFe``ONB! zj*a3Zk?enR#b2#>MS4NOa4-7~iaGn=>%&XCFT(YEpg1OP9Rd+Vp+fz QaIXWxdr62#(EuX=0I9R)0{{R3 literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/client_hello/invalid/dtls13-1_01_hs_ch.raw b/tests/examples/data/tls_handshake/client_hello/invalid/dtls13-1_01_hs_ch.raw new file mode 100644 index 0000000000000000000000000000000000000000..2fb11d83e13edcb22ee878765526bc92ee9a7903 GIT binary patch literal 578 zcmV-I0=@nI{T+`|)7K7|S{1zwNfPO|3dx|-Y>2hSxWoGZ`0bOfd;kCdauWd)0uuuh z1QP|ow7|8%EWj(kFu*SWp8%c!s{k|rrvR$Vsm!R%s=z0}Bfu!YB)|&53BU-z6u=X} z62Pp$uE4JVYXD~eIRG;N7R(gP6U-IB1^}}FvcRUmr_8I&tjw*zHvqN3Ismi)MF5BZ zz5v7l00E`|D*yum{`>$903-k+1_K2H1OoyC2nPrV2nGlX2n7fV2m}ZT1_1>D1OWp9 z0s#OD02}}s02u%r02lxp03HAr02Tlm0384o02BcM0RR9N0000p0ZRc%02cs31fIOG z)FBYS)s8%McTaxVCih;euze2gos zB9a~laIj_Pr6$6;cAWI$YUlbNr!ZfpOiTP!cfAuLt&R7!n*U6tl}-xDxx|*6(~A_e zjJu?{_*aOAqy|lxmW9d1PLq@l-7jY`8suJ%%2EGu090?PY$dm?w0h*REBg2YM{GaI zTWd(lxrP2GqlrJJX&VW>hPW6f$0Iv(Le(L)0BOOMgJt6ACr8Snh;sq5NEFe``ONB! zj*a3Zk?enR#b2#>MS4NOa4-7~iaGn=>%&XCFT(YEpg1OP9Rd+Vp+fz QaIXWxdr62#(EuX=0I9R)0{{R3 literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/client_hello/invalid/dtls13-1_02_hs_ch.raw b/tests/examples/data/tls_handshake/client_hello/invalid/dtls13-1_02_hs_ch.raw new file mode 100644 index 0000000000000000000000000000000000000000..2fb11d83e13edcb22ee878765526bc92ee9a7903 GIT binary patch literal 578 zcmV-I0=@nI{T+`|)7K7|S{1zwNfPO|3dx|-Y>2hSxWoGZ`0bOfd;kCdauWd)0uuuh z1QP|ow7|8%EWj(kFu*SWp8%c!s{k|rrvR$Vsm!R%s=z0}Bfu!YB)|&53BU-z6u=X} z62Pp$uE4JVYXD~eIRG;N7R(gP6U-IB1^}}FvcRUmr_8I&tjw*zHvqN3Ismi)MF5BZ zz5v7l00E`|D*yum{`>$903-k+1_K2H1OoyC2nPrV2nGlX2n7fV2m}ZT1_1>D1OWp9 z0s#OD02}}s02u%r02lxp03HAr02Tlm0384o02BcM0RR9N0000p0ZRc%02cs31fIOG z)FBYS)s8%McTaxVCih;euze2gos zB9a~laIj_Pr6$6;cAWI$YUlbNr!ZfpOiTP!cfAuLt&R7!n*U6tl}-xDxx|*6(~A_e zjJu?{_*aOAqy|lxmW9d1PLq@l-7jY`8suJ%%2EGu090?PY$dm?w0h*REBg2YM{GaI zTWd(lxrP2GqlrJJX&VW>hPW6f$0Iv(Le(L)0BOOMgJt6ACr8Snh;sq5NEFe``ONB! zj*a3Zk?enR#b2#>MS4NOa4-7~iaGn=>%&XCFT(YEpg1OP9Rd+Vp+fz QaIXWxdr62#(EuX=0I9R)0{{R3 literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/client_hello/invalid/tls13-2_00_hs_ch.raw b/tests/examples/data/tls_handshake/client_hello/invalid/tls13-2_00_hs_ch.raw new file mode 100644 index 0000000000000000000000000000000000000000..85b0f54fdad78b71def922e58b268186cf3af8a3 GIT binary patch literal 229 zcmZQ(Rx|zeN9@QfyP0+0MGiAJ2hSxWoGZ`0bOf zd;kCdauWd)0uuuh1QP|ow7|8%EWj(kFu*SWp8%c!s{k|rrvR$Vsm!R%s=z0}Bfu!Y zB)|&53BU-z6u=X}62Pp$uE4JVYXD~eIRG;N7R(gP6U-IB1^}}FvcRUmr_8I&tjw*z zHvqN3Ismi)MF5BZz5v7l00E`|D*yum{`>$903-k+1_K2H1OoyC2nPrV2nGlX2n7fV z2m}ZT1_1>D1OWp90s#OD02}}s02u%r02lxp03HAr02Tlm0384o02BcM0RR9N0000p z0ZRc%02cs31fIOG)FBYS)s8%McT zaxVCih;euze2gosB9a~laIj_Pr6$6;cAWI$YUlbNr!ZfpOiTP!cfAuLt&R7!n*U6t zl}-xDxx|*6(~A_ejJu?{_*aOAqy|lxmW9d1PLq@l-7jY`8suJ%%2EGu090?PY$dm? zw0h*REBg2YM{GaITWd(lxrP2GqlrJJX&VW>hPW6f$0Iv(Le(L)0BOOMgJt6ACr8Sn zh;sq5NEFe``ONB!j*a3Zk?enR#b2#>MS4NOa4-7~iaGn=>%&XCFT(YEpg1OP9Rd+Vp+fzaIXWxdr62#(EuX=0O8o?i~s-t literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/dtls_handshake/invalid/dtls13-1_01_hs.raw b/tests/examples/data/tls_handshake/dtls_handshake/invalid/dtls13-1_01_hs.raw new file mode 100644 index 0000000000000000000000000000000000000000..08c1926f866dc40fafb05835d8df81d37d8ad560 GIT binary patch literal 590 zcmV-U02hSxWoGZ`0bOf zd;kCdauWd)0uuuh1QP|ow7|8%EWj(kFu*SWp8%c!s{k|rrvR$Vsm!R%s=z0}Bfu!Y zB)|&53BU-z6u=X}62Pp$uE4JVYXD~eIRG;N7R(gP6U-IB1^}}FvcRUmr_8I&tjw*z zHvqN3Ismi)MF5BZz5v7l00E`|D*yum{`>$903-k+1_K2H1OoyC2nPrV2nGlX2n7fV z2m}ZT1_1>D1OWp90s#OD02}}s02u%r02lxp03HAr02Tlm0384o02BcM0RR9N0000p z0ZRc%02cs31fIOG)FBYS)s8%McT zaxVCih;euze2gosB9a~laIj_Pr6$6;cAWI$YUlbNr!ZfpOiTP!cfAuLt&R7!n*U6t zl}-xDxx|*6(~A_ejJu?{_*aOAqy|lxmW9d1PLq@l-7jY`8suJ%%2EGu090?PY$dm? zw0h*REBg2YM{GaITWd(lxrP2GqlrJJX&VW>hPW6f$0Iv(Le(L)0BOOMgJt6ACr8Sn zh;sq5NEFe``ONB!j*a3Zk?enR#b2#>MS4NOa4-7~iaGn=>%&XCFT(YEpg1OP9Rd+Vp+fzaIXWxdr62#(EuX=0O8o?i~s-t literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/dtls_handshake/invalid/dtls13-1_02_hs.raw b/tests/examples/data/tls_handshake/dtls_handshake/invalid/dtls13-1_02_hs.raw new file mode 100644 index 0000000000000000000000000000000000000000..08c1926f866dc40fafb05835d8df81d37d8ad560 GIT binary patch literal 590 zcmV-U02hSxWoGZ`0bOf zd;kCdauWd)0uuuh1QP|ow7|8%EWj(kFu*SWp8%c!s{k|rrvR$Vsm!R%s=z0}Bfu!Y zB)|&53BU-z6u=X}62Pp$uE4JVYXD~eIRG;N7R(gP6U-IB1^}}FvcRUmr_8I&tjw*z zHvqN3Ismi)MF5BZz5v7l00E`|D*yum{`>$903-k+1_K2H1OoyC2nPrV2nGlX2n7fV z2m}ZT1_1>D1OWp90s#OD02}}s02u%r02lxp03HAr02Tlm0384o02BcM0RR9N0000p z0ZRc%02cs31fIOG)FBYS)s8%McT zaxVCih;euze2gosB9a~laIj_Pr6$6;cAWI$YUlbNr!ZfpOiTP!cfAuLt&R7!n*U6t zl}-xDxx|*6(~A_ejJu?{_*aOAqy|lxmW9d1PLq@l-7jY`8suJ%%2EGu090?PY$dm? zw0h*REBg2YM{GaITWd(lxrP2GqlrJJX&VW>hPW6f$0Iv(Le(L)0BOOMgJt6ACr8Sn zh;sq5NEFe``ONB!j*a3Zk?enR#b2#>MS4NOa4-7~iaGn=>%&XCFT(YEpg1OP9Rd+Vp+fzaIXWxdr62#(EuX=0O8o?i~s-t literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/dtls_handshake/valid/dtls13-1_03a_hs.raw b/tests/examples/data/tls_handshake/dtls_handshake/valid/dtls13-1_03a_hs.raw new file mode 100644 index 0000000000000000000000000000000000000000..08cd2a53a32c79a2251d33ae3007a5f3befb6ef0 GIT binary patch literal 131 zcmZQ#U?^vRfbxHTnY7nGm{Xsy>ty8{!OA|FY^}u0Tyw5|{S>&@TXew*#zF>RMg|6d z24e|33)&h(XV_Pb7)m2f@yi=bW3PlpAo j+p?3mwoDR@S;@UHuX6sz(sYlVk0#$c&7jS|^zRP<1MoL6 literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/server_hello/valid/dtls13-1_03a_hs_sh.raw b/tests/examples/data/tls_handshake/server_hello/valid/dtls13-1_03a_hs_sh.raw new file mode 100644 index 0000000000000000000000000000000000000000..85fbba9b0786293cd02ce9728c21eb1b2b4e1f02 GIT binary patch literal 119 zcmV--0Eqwo{Q@hm;GBP8y2*L$5qXXrYbs&W3Y^vT@=?7@6`;rgaR3tm002(_GXO;Z z7XU#7)6nAN!vJS_!XZQZKPz-Xg}H0miJHugbP10|keXoEQ}hu&Z23T-tA=Z03bc|H ZT&WA8Zh4=vb!SMq;*;LX04o3j{``-JHb4LX literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/server_hello/valid/tls13-2_01a_hs_sh.raw b/tests/examples/data/tls_handshake/server_hello/valid/tls13-2_01a_hs_sh.raw new file mode 100644 index 0000000000000000000000000000000000000000..59afe82243ea6293a5f9b9f7691ed9243d6e6b4a GIT binary patch literal 118 zcmV-+0Ezzt13z9>!OgjA35Y1aU0p1+kn>-X0InPLCjeR`@86e4Ss)|Bs7$6Y^QlPD zU6P!aE&$!_2v_o;54zn}7hFy@D})mP001rkGXNw29RMIi?LFvcLj-l^2U!)+keYH; YdvgqdTmfAp<%BYlE0#q7D*yrm1Sj4r_5c6? literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/sh_extension/valid/tls13-2_01a_hs_sh_ex0.raw b/tests/examples/data/tls_handshake/sh_extension/valid/tls13-2_01a_hs_sh_ex0.raw new file mode 100644 index 0000000000000000000000000000000000000000..4e063f0cbc2690c89fb460f37da1f3ba3bbf950a GIT binary patch literal 40 wcmZQDW>8^}Wl(T=Yx^SInWgj@d!*=v3A2hqtBZLWV;EzVpSBoH(w^oD0QX7_wEzGB literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/sh_extension/valid/tls13-2_01a_hs_sh_ex1.raw b/tests/examples/data/tls_handshake/sh_extension/valid/tls13-2_01a_hs_sh_ex1.raw new file mode 100644 index 0000000000000000000000000000000000000000..f37fa2d01008abf46caa392b0ed4b83816b82c4d GIT binary patch literal 6 NcmZS3W?*7w0RRB)05t#r literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/tls_handshake/invalid/README.md b/tests/examples/data/tls_handshake/tls_handshake/invalid/README.md new file mode 100644 index 000000000..a1b01042c --- /dev/null +++ b/tests/examples/data/tls_handshake/tls_handshake/invalid/README.md @@ -0,0 +1,5 @@ +* tls13-1_04_hs.raw + * Invalid due to unsupported extensions. See [../../ch_extension/invalid/README.md](../../ch_extension/invalid/README.md) + +* tls13-2_00_hs.raw + * Invalid due to unsupported extensions. See [../../ch_extension/invalid/README.md](../../ch_extension/invalid/README.md) \ No newline at end of file diff --git a/tests/examples/data/tls_handshake/tls_handshake/invalid/tls13-1_04_hs.raw b/tests/examples/data/tls_handshake/tls_handshake/invalid/tls13-1_04_hs.raw new file mode 100644 index 0000000000000000000000000000000000000000..daea65858338ad210c648ef5ab4456ec7b921280 GIT binary patch literal 248 zcmWlTxlRI67=_P2_s;M$BW@RmK>;BU8zY5AL*i4ISlDWEjV54>k;IZGFrlT?-Zvo; z3tRUE6j$6Ayw>0O&N&2hgaBDW+D?eWuGbUk?du;HRM8L z>blvwxozLwKRiA?cV1rK-akISzJGqZU}Y(x2wehp0R->?rMDJK>qVU}7nfJ`YAL^_ zH{n74@4+>RD3XXFg*XBN5m_WiB5QnO8v;ZOO-Nx2M{tOl!|bxhl5KV*+2jz$AFLVG;mks%vDccc9aS@h!dyGEvprjG>ivVdzcl{`^sGJO literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/tls_handshake/invalid/tls13-2_00_hs.raw b/tests/examples/data/tls_handshake/tls_handshake/invalid/tls13-2_00_hs.raw new file mode 100644 index 0000000000000000000000000000000000000000..4b417fe94cfe113b57fdd9dfdd258858bcb3509e GIT binary patch literal 233 zcmZQ%V0g;RtY-S_kJyn}b~Ed~iyUTd$USlUo5>=EXgg(+7?(gvN^7Hid_V@Vt`uqI-{{IsK001rkD*yrm1OPJtBmf-%AfMN*ZO`;6 cjnnyUTN^6*5TH|A6o}XO`nxomm?(g@6|P!9yZ`_I literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_handshake/tls_handshake/valid/tls13-2_01a_hs.raw b/tests/examples/data/tls_handshake/tls_handshake/valid/tls13-2_01a_hs.raw new file mode 100644 index 0000000000000000000000000000000000000000..1d4f739107cea707a88080bc6c34b7c5afe052c3 GIT binary patch literal 122 zcmV-=0EPbo004Fa13z9>!OgjA35Y1aU0p1+kn>-X0InPLCjeR`@86e4Ss)|Bs7$6Y z^QlPDU6P!aE&$!_2v_o;54zn}7hFy@D})mP001rkGXNw29RMIi?LFvcLj-l^2U!)+ ckeYH;dvgqdTmfAp<%BYlE0#q7D*yrm1YfW$ZU6uP literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_03b.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_03b.raw new file mode 100644 index 0000000000000000000000000000000000000000..a81890c8e074b1b476a460c6921adda26f76a294 GIT binary patch literal 36 scmdOk5oM5{Q6FLQe$l1tTWzkZy)^OO_`y`nem8IH96!slX$?u)03II?<^TWy literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_03c.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_03c.raw new file mode 100644 index 0000000000000000000000000000000000000000..5cc4e83ce43d1557aa0cbd390605403ec99f51a6 GIT binary patch literal 77 zcmV-T0J8rs6eR#i3smAGTfbkMkh3S~kG^^2&}%yWJrU7!Gy0;p&f9XINhDSsovRo8 jnr=*)oYegwP3z-#C$yckmBd*2x)8}6-jY~9+XsKyrWJ3&L|d*=Wd~4siO(h_t!-OVT%X^$gKPHQ9QkEp$O%iw-Zi^5Wt3 zZOAlm-Tx=j{(#k@2^XHObv~c41_AJw;o7eVl|zPmkk_B+7lLi^&6Da*T=kY2S!;C4 zoY>xk&)Y=so76T*!Bmv$Ia!Zs?p&`9QONYHCBj_wDRtgQd`kA_-g86oWpx)qgDO99 z^qC?^$}=0PnuEnCZib%zM7h;s>0O}cp0D60n6*AXBSiL?y$P{>kb7=ot`>n>T2d|a zi>gSTSA>=0DbWL8a}4)gm#5_eq=-e_qD)mO;zXhf!&2hm-U(8`xcEoeU?ENkXh65! zHlE-JDophA!b|W7?^uMZ`gN;X9)*^pers=vN>Bh1Nb2=ZcSO_&!!;M8ge+4_3xajZ zp#5Rt(et*Grnn3!ob}tDy{P?9R0`4I@0$5H@rhztsQke`Ox=}V+tlYfZYI@ zF=;$@e(l70`J$LvnBsb(;_YkcYP{)p441%%;hbmcS$Z_430O4+buDjc3k})a*)Xl% zSC?Dop0_af4Qq3snG?+PPSc*T?_^=A+!gBU{+o%oBRvmiRH+oaJrLOGRfEzDm=^eQT=5yILJL z6e&D;ZTzkmfXP4wJyFBvjl zmL&?YhK7PXo2@EaV=bA7y11HIwZ=(K{;?knhVu$;OIhgS14;{~d1i#cRNE%$Qtzzb z2hs%k5!P7;K}ZFD*>{ifj0iaip54|29fix&*<1#oj=)fWsjN(sdxg3n@q+SO64)!I zo0J>ec21o=%o{pM!nL*W4WM9bp}zwsZ##tOUQqBfE*?r|%&Hp=>kTu;F}OBP?VG}_ z%0i1y@GmEXTs{mquOtz7wZHm~Qr{%5!b|<}RMzQwZMiWmyp7v@@PB$N%8b8SY}V1* z53=MiNK+hAG`u{SFdLOcnq;INv3 z02BKT33Ofia3K5LGj0f|l_L8HFYT z%E$=m<$)PIa$>urwMVamM)WPrAsS28@|~Eo~)I9AqOs^&q3w7>Owx*6T7T*bprSjQmx3n pEr#a%M0pzLv?L|KS7kgVIfL9gcg$ntlFgy71mPbC0tQV6$#73hv3dXi literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_05.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_05.raw new file mode 100644 index 0000000000000000000000000000000000000000..a8efe1efefd1cd8d00ad0da2403a1796a70c4494 GIT binary patch literal 1242 zcmV<01SR_}0rdpc$2{O<$q?w)3hIH?F9v-7)`WW_ zsn0z;8mZ&4kfC`W^lAe;x?aTr%(F^8o@ezT_rn$z3osZ{-6&di_0dj+_w{Qv$yPJS zJJgm3G=0Pl9_GZ&A^jwpF9@#8i86n+O(y)C)PoBd{37qDjRxzeo@+ipMPa2_9No2s zTbd<|Ng!Rm$Z7(`9bNB{>TA&tN9)NGq1;Wo=?{oy0OO)@5H~~ui3b&mrG-L@`8@x^ z9~GvA(4NbaF8;K*EHDeKS=lb-!4+Bs3)hz+FdIJxwd=#Dhl>q_60`$aTs5tm7(K&c zJ`3LHc}(^fXX*h21|(LxeF<%Ej#yswr)3QT7YQkz0z$0sO;D-?TtRFDI$@T6er1ZI zHoz{1_P+E22tyC_q3!0~psM1ND2_B5T=bZYN$l|t;@TpD&VlVVP0&6GlpSurN)Fi?Vq{Y>Ch5g2%W=N?U3tK3KnGvqtBZdpuAk!XRSFT;q<&rME4sCr= z`IFZ$yGNw~UerUlBcyr++kjS#YWcYeM7@x)Em|3Q+eO+{q`45GfS&w}E=~3EeC11I{WfY&`TI zjFUM6x}5SQ>JbFRF4WC%c^Zh9DtXv0UWHmYSylV`6rzvat}@_$uoDviao?~?aSwXbv1gcZ(n2O>3A+43;ER#{Bq#XN~8 zkOdYycyJ$ZmQU+yiwUk!K*KhVkxZTSNMdYdQU+R?Xf}a^{{in;{Ia4zO^3%QYl(wa zZO^Y>S;xu4f$vAhki$1_F(1iL!8#5w_>pk^VAg|Yx=?DYsQ$|knF&P%KiHOS0Mgnn z0tWd&mCJKvzLtSeGlHbNDx?;%B-N0hjeJyQ2`q+CVJp}y_sss52IBhpJj5GC0@-(k zTakedf79Z(e`vpQK{T#Z=s{E&^!=Qf$HxAce+9onDuP0L*4K3T^iV+%Ic*-#o|^32 zlkh$9bs4@m#rc*SSAUHHXi!Cr-Os%D2xSOBM{U54>J=Cb%~bj9Ir^Hd$Zu4ymaK=w zOqx>~dwPy{<#Wpoev{%jifD#(ygNW5HKrRrS0ond8e%%2f&uc-Sy#V>Tz`s$VnoKReLsbWZIp1TJIcjeTVF-6 z2W{_1&OH_qf=YgNWpJn5t&Uu91vCnHymJmk&XAmBZnZFeZ|5>t_gfBaO6(v0DjjV% z(5lZE47j7*t)^1`_Enxxzyp*5FYBlV&x_;`uWs#OL1Q6nwX#+y1cr@T<22tA6sYG# z$@8#-PL-@)PvVbHB4T0EDAkEW6)dL_<>)$i8N(ieLS!PLcis3vTn}~M#GVidd=?2A shW`>}Jn-(SXib>(HePzy)KC9QPre{rQ7^vzc3Gu$N&HU literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_06b.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_06b.raw new file mode 100644 index 0000000000000000000000000000000000000000..cbf0101efb6a84a001ef89bcdd51fc28e43dd8a4 GIT binary patch literal 66 zcmV-I0KNY%P@(`m@zwp`CPFyS@)N#P(1%Vv3Ext*`y2=-J4#{pH#49jeRm_-Z=phd YTH)4_Er%*nSKE;WUUG7d&$=k*lmkv4`~Uy| literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_07.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_07.raw new file mode 100644 index 0000000000000000000000000000000000000000..07aee9faaa9b99eb97fc9b3722133f5e329af700 GIT binary patch literal 1356 zcmV-S1+)4t(jNs!$mI|=^E&uKJ9hUQ^{WloT4lg|bdY{O0ATp?U?^ zbJOzWqMRtmrEMk1P3}<2Lliq*!X;6*{UMpaGC|qOUTY`!>++|o zK zGLwB9cS;t*MdW}XGI?QOO0vi(sZWFS@_02>fR+04Dd-n~$M9zm{k{D{W&Pr*<8j8I z44P5Gtjh`zmy7*XGU+4P1pI}0T?KVF)JrtW6C*nlVu<>tBWI3)lo`Xli;axC=yQ@J zZS^+&o2$|GAK=Ti$i8K3?Vjs_x5N52)!uR|0Nt<9WI2fvhLM>JtT-Vcw(ba*6Q&- zYKC04H`XXEF%%8+f(_ZwD>geYJO$D%=wx>kR|3*wV}$At6AvSG1jV1b-XxrvXEjzb zgwGLMhQ}3|0f3zGCRKL`irNB(>9^&TOP&Z=&>;pv$8-52hayD4AMN%*HOk6ls=tXN z;jfoFDulo!=kv;AZI1K|fUu^Y^+AUIH)~$UbKD1Is9w%s9ezAivwSTj3iTdW#Zd1b zsLn|~-!l3W{|7Gn*`x*F5-e7+YltIda~|v$rPe?fi>-_r{I;Q)#(dyL5*{N%j3s8D zSZbShi4~=1^To?g)##LWIzR<9_t%C9q$Vb(rbt>aC!hrx=YRRy?ZSwcKAkdM{p`M9 zz<*3B&M5JF5846rA8<3V%+XKnSEAk5+hEdzmU1G6QKUfj$PNIQbOIT?L4Ee zXyLo!$WN>)NC5Bzk8%lZriVs`!c(0EL~}8ysXszEC6$ewIH6;ownf^!<`YnPLl<*I zx|1d@qVW@TQ9H6J_o;-GT;Te=Q|+qp*)uL2sJZ7nh5=amP+yq5lXqUCs9X)Zd#jz0 ztx|}T-$fX-5;D7J22QF^>sG)Cv@Lpq-wo zHgfF|QdppAXV@^{%5bVF%a$i?+V^)m#y}&%s5wq?i=lvwh$EHiByaG{=F9El23xfD z6QE!R)E22D?F`sqjz}HGaDL|8561HHJ*V7Hr^cjM?W2J4?-}-?l!?~S^XDgX6NvF;zN6I*d__m z2O=)uA1W7%d|YXVV*xStwF}5$@KLetti}K=tIk*|AR?;+;_5kwGkt_f#_ZS04x+}7 z!DF+XD^jWvJiVhXXiwJUGmq_73@jf>Tl${Ypwg81D2hAyi%MjC>I7Ux$WlcwB9EjU zN;45S0SZ)=d0O-p_o9bD%BrW(W*(M7BRd_cAR{t#mRp&d!oZFU)$wI^V2@~=)?a4g z!%fu;CEtdgpewlgqd3?-A`TVmXCj%9Al@(X*H9#Ic|#En;a8&s`EMI=fdW8!<4e2R O%1T2he3mq2Y`@t16rL#n literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_08a.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_08a.raw new file mode 100644 index 0000000000000000000000000000000000000000..14b3189e94d3b6c64a95375c0cf2f684dfca89b0 GIT binary patch literal 294 zcmV+>0ond8?;8OjDZoyTjlIz(h#gCL_$gAGLgE?U^HIQNQt#L}>4uZ+Z6;7S>sNnSTxfU6O#`W$U}dE@0aV-OM)It^Lu?E|QFPrN~~ zyfa+z(;@C9m-%~s&{Sn>rOaPX<|NxPYxNl z9ME?#mCMd+a*Cvo=(ikXw_KCylJ@qJ&W!pR38Vn@bMlKdCTx0$*0MuoeHoDe4y1Nu sAyT&KRZ-M7-pikpODSC;08y{p>a6jS1Pbl*jp!oHbAD&IU8H+di6dQ+E&u=k literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_08b.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_08b.raw new file mode 100644 index 0000000000000000000000000000000000000000..7babed4288692156ce761596ca9d3b07c82ecfcf GIT binary patch literal 66 zcmV-I0KNY%HiG~?7B(`JF1-5eh$w+(iD)-3$d4S^|M@zc75&@=jgi`c#2o3rw37F} YObl4IZ?!W-fS-Nb&2IU35Zk;O=n|tL%K!iX literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_09.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_09.raw new file mode 100644 index 0000000000000000000000000000000000000000..23f08d1a3a1ca57395332c9355f6e981ab99f1a6 GIT binary patch literal 48 zcmV-00MGv~uG|1Cx!Ht-aSBK=HS=5tE*+O$pqPgRt%-1CN>=&kidJiPbP?bI0pa10 G`IhyM?DbvlkqdBX?u>)FUpL@VM1XPLgpR@e$vv^NMcM58S5;iO{YWsdH(_1lb&0LX>jgO!Y9B~ z%)VEt(}GTKWZZdt`8pRulh>9E`meItV_uOMp}SEfvGr5v8GvjPVldjL+ML=(fO!Ny iWwiFrqYlBR0NX^v_QLvD77B>tpnIp$o~a!1KOKXsn~ literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_11.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_11.raw new file mode 100644 index 0000000000000000000000000000000000000000..0609c3d0f2b77c372da893256df1320d1f7bb51a GIT binary patch literal 36 scmdNtdy+xE{jc(smHaDZ7_z4A^^rLe{>iVUytX+%tE`MU#?G9&gJS~?xvw!*Z7$8Yujq$(*WY<4zd6M literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_13.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_13.raw new file mode 100644 index 0000000000000000000000000000000000000000..25e03c2be9811611ae913ba417e65c1edf28806b GIT binary patch literal 33 pcmdNl+rS`m*HZQMe+whqETJ101!OOGd^9roCeiy}x6mN+Gyvzw4vqi- literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_14.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_14.raw new file mode 100644 index 0000000000000000000000000000000000000000..74df28fabb5cc15e8ab6aec124e3e421c04930aa GIT binary patch literal 24 gcmdN_kYW&S;kdnlCCfm*{(s)_yXPKRYwP?40AzOxAOHXW literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_15.raw b/tests/examples/data/tls_record/dtls_ciphertext/valid/dtls13-1_15.raw new file mode 100644 index 0000000000000000000000000000000000000000..805a0a269eb613adec6a678f2996ec84f86eecc8 GIT binary patch literal 32 ocmdN_4PlU$dEM~Su+$+Cz}7<@GtF5LEfg}s0T9l^5$N|kcrl)D zC7ioO)ov+DOHkd35+awFgWljkxK~*&q-(`;SIdCe693 z1YQi3PMQSits6(VR&p-*l8AA5AbgA~tRj*g2XL@u=cOjXxptiN;%evmAEz*1rc6ux zRCm1-BCU=0wVMA-rIk(!$+^Uqo70OFw2Zr?x%gLzhNK2fn3jdf#ZHry4&5(jF&gAv zj>=L0aR5|rs%#~$y;kk%DIL9C!>i!rfC}qy@t3LC&wc@azfQ1 zwE$_sm4jvC=qE?YqKI<=vPcxs%=ygfjE;@sB$4cYa>ZY*ctv_a!Ei784vIPZ-|NFm pyD!4^d!RTbZyv8lOb`)WVoFiMl44oF7I3cv!h1=GN6`Qy004Fb=u+$+Cz}7<@GtF5LEfg}s0T9l^5$N|kcrl)D zC7ioO)ov+DOHkd35+awFgWljkxK~*&q-(`;SIdCe693 z1YQi3PMQSits6(VR&p-*l8AA5AbgA~tRj*g2XL@u=cOjXxptiN;%evmAEz*1rc6ux zRCm1-BCU=0wVMA-rIk(!$+^Uqo70OFw2Zr?x%gLzhNK2fn3jdf#ZHry4&5(jF&gAv zj>=L0aR5|rs%#~$y;kk%DIL9C!>i!rfC}qy@t3LC&wc@azfQ1 zwE$_sm4jvC=qE?YqKI<=vPcxs%=ygfjE;@sB$4cYa>ZY*ctv_a!Ei784vIPZ-|NFm pyD!4^d!RTbZyv8lOb`)WVoFiMl44oF7I3cv!h1=GN6`Qy004MZ=u+$+Cz}7<@GtF5LEfg}s0T9l^5$N|kcrl)D zC7ioO)ov+DOHkd35+awFgWljkxK~*&q-(`;SIdCe693 z1YQi3PMQSits6(VR&p-*l8AA5AbgA~tRj*g2XL@u=cOjXxptiN;%evmAEz*1rc6ux zRCm1-BCU=0wVMA-rIk(!$+^Uqo70OFw2Zr?x%gLzhNK2fn3jdf#ZHry4&5(jF&gAv zj>=L0aR5|rs%#~$y;kk%DIL9C!>i!rfC}qy@t3LC&wc@azfQ1 zwE$_sm4jvC=qE?YqKI<=vPcxs%=ygfjE;@sB$4cYa>ZY*ctv_a!Ei784vIPZ-|NFm pyD!4^d!RTbZyv8lOb`)WVoFiMl44oF7I3cv!h1=GN6`Qy004TX=@*FTt3pRns>^LH>(1<3owLsLm2mdEPMDQ&J@|{D pUCvL31*_Y#leo4_5{+5Oy)dtG{>IXDkDZSu-#g8q&A{~U4*+g3Im7?} literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/invalid/dtls13-1_00.raw b/tests/examples/data/tls_record/tls_record/invalid/dtls13-1_00.raw new file mode 120000 index 000000000..fa2a79ecb --- /dev/null +++ b/tests/examples/data/tls_record/tls_record/invalid/dtls13-1_00.raw @@ -0,0 +1 @@ +../../tls_plaintext/invalid/dtls13-1_00.raw \ No newline at end of file diff --git a/tests/examples/data/tls_record/tls_record/invalid/dtls13-2_00.raw b/tests/examples/data/tls_record/tls_record/invalid/dtls13-2_00.raw new file mode 100644 index 0000000000000000000000000000000000000000..baee7110a6fb3aac901b9280609b93378869be26 GIT binary patch literal 170 zcmWgp_m=?%<}xxcOoVbK{`>pj;iJb-o<4j2;^nK?Z{EIp|Ka1O&tJZN`~KtSuitE!8GwL=qozhktVk5dBq={c4v9KligrpS_O)UEhn%G*h_fI5P z*t%a@>RQybKI?Oy=bV5EEdrX%Ad8jlL?r5Z9kI@??w(#h-WMdoWdA@aof*uYoSvOu zTwYz@)ati)jr)hkr{|aE>)U(l(@dNrVIm?X_BWG74AFdyZ9y_#*M8ntP(HlE zXPM#Wl^z#kC(W6z$8h&8NBE}&{JZXkiO2YvX}2(_2r~*Z2{RwiKA?X<=YYYPm1kBQ z;5;CFfa`z=!yJaW4EhYF3|v6VD*iJv04Z?>1_osy=4B9J5Mp8GU}0foW#(XIW#nLE zV`O4v;AQ|448{y<3@Qw=3<~UG?@mptoLk|X_Qf@ZEsG^X>>b0Ubtm7q+;xt4w(Yhl kgDy}#BZD>rFAp650D|8^v;Y7A literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/invalid/tls13-2_06.raw b/tests/examples/data/tls_record/tls_record/invalid/tls13-2_06.raw new file mode 100644 index 0000000000000000000000000000000000000000..7b1197a53d69cc486cfbf6c528c6101d401faea8 GIT binary patch literal 517 zcmWe*W@KVuWMKTm%)G7A{nlJNZ=Dxw{;w>3%(eXegzs;7E$>y_w$!)SxpIlD!hW$Q zho=6HZv9p4DzVwp{j*zGDR$g@iey)MPYhvD5oQ!-5@tT2eL(+!&H;lnE6=Pr zzm9Tz|8<87>pUz7*rT!85DLO==^99HszyAoU_Ih{rq2ljX2yyn=j`q`<@nJyvVL=>OuaZWGcyx2BLf!$2Ll_>5OD?x22lnFpc2Y}Cc|llWef|R zwA{SxWqoXqr)g~$RPjqrRaBmmWy;b&FjZ0p!t*kqC;%us9`pwuS zb%i|Z9*^aCo0?l%+uA!iySjUN`}!G# z85tP#7>pTI7-Sg~=3if%d;W`N@8zGl(b8H!1r`KHi*#K7@oTrqtQi^&+e8_(8JPb4 F0RZK4DLeoG literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/dtls13-2_02.raw b/tests/examples/data/tls_record/tls_record/valid/dtls13-2_02.raw new file mode 100644 index 0000000000000000000000000000000000000000..bddd765b07328a33f898432a27dfe67a2be34458 GIT binary patch literal 52 zcmV-40L%X_dHMh^?w!x`_-C3(S^j7@f3r&3h2MvqXFgCJdQOiSP~iObf8;{v*V4G7 K)%saiPyGP&867bI literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/dtls13-2_03.raw b/tests/examples/data/tls_record/tls_record/valid/dtls13-2_03.raw new file mode 100644 index 0000000000000000000000000000000000000000..b2eb9f6ad9c7526c70c5b38cbfcd445cd4151cd4 GIT binary patch literal 848 zcmV-W1F!rp?JEOI(|3Lv-=3Jr#Q&gj!o#+^&7Zw3A2d8&`Bd4LqRkyMLZdxDYK7q; zLOkFC>N8$9etIEWik{3~CVXI`ym?O1*dIBI&flYG``dh@XP`!9U18*gXJY!S{iK}_ zIyrHM*fQjShtPKFjpZ^DhrXNrq7@n1Sm4BfR+)ZDF5l#KYb@0sp)11n)lgf2)dI7jiTc;wj;eFXsj3{HxW2ZH>OxPophlCngFTPh>E#Zo6nfHRJR^p83X=g%b zJ$~mm^lqHGqKPe+A@9t|9~N>ZrM^s@*lU;m^D;ltlJsEc?~9Q;zn_-{V};bi>?O;m9${TrlnJqA`NFUmfKNO#K;#P5^_nI|3K9=3Rs4&}MA`+F6O>4`9j+Q~4W z75JRA?;?7+OxkBnv-|LzZE!l}LJ}a@Po8jnLHoC%exc-%vVK1x5>=5cZQw zL8#BS3t*6MerDEF6=ClPt>fNBcc*u2_Ex({T<$0=gLfw#mNx#_J|w@N z5L1uuxromJ}+OWNaRe_45#mH8)7xyo==W`=5+B%(&7 zaga+bY1|jf{!pc2|0e&QKuvop5oZi1RzE&BnLNhkb3<*zs8JzJZ6}5+WL?V(^wh^h z4{Fqd@10osw0$H?*3YJo66vb0%`H-ng=YDGP*%^5{Cyr(`|ca)e}9Q{e2V%Y!JxE:A;56EzJH$NBF&ּ,ńd{Xﯙ&Bd)]icxStZ]+U+ih3ߟA7'Z3|DL-(0PHrݡKc˔) 4)qMXha%ҎRҧZOs M,44Z:43Rݷ!,Yn KefZ3a1C]A"9;LDІ29*r qq8|!9O \ No newline at end of file diff --git a/tests/examples/data/tls_record/tls_record/valid/dtls13-2_05.raw b/tests/examples/data/tls_record/tls_record/valid/dtls13-2_05.raw new file mode 100644 index 0000000000000000000000000000000000000000..87b9d245e068108dc9accbd7b583dba96c045c69 GIT binary patch literal 66 zcmV-I0KNY%3%CG1q(L=vDhZe)xTW?QD>crN8i}j1QuubwCV73s?Q_`|vYEkYD7nv` YSkcW`Xlsj*&Y$K*P7Lp!{6O+Kdg`|z@c;k- literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/dtls13-2_06.raw b/tests/examples/data/tls_record/tls_record/valid/dtls13-2_06.raw new file mode 100644 index 0000000000000000000000000000000000000000..95366db98e6d916a3aadb506088c7a55663d0cb1 GIT binary patch literal 66 zcmV-I0KNY%!bku;iY(PFPyqONYWqjc@VN506GE^IL)_*|9RZZm;sN%7bqRPVT_`2+25=L5(Ceaq4a7*kkU5BMY_!JhOz~l(yO^T06vEcM^91 literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/dtls13-2_08.raw b/tests/examples/data/tls_record/tls_record/valid/dtls13-2_08.raw new file mode 100644 index 0000000000000000000000000000000000000000..024dbffa280989dbb01c525aea54250d69cacfd5 GIT binary patch literal 26 icmdPTuxAjhEmH5!NtrKK9k%(@6~SNM_Xc+V76kx?3=8J~ literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/dtls13-2_09.raw b/tests/examples/data/tls_record/tls_record/valid/dtls13-2_09.raw new file mode 100644 index 0000000000000000000000000000000000000000..d35ce2154e9301115ee87dd0870ec93153428858 GIT binary patch literal 26 icmdO26u}_+b+7TK>Y@rhQ~3q#%)jTS_GHYTx()!3hYMT) literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/dtls13-2_10.raw b/tests/examples/data/tls_record/tls_record/valid/dtls13-2_10.raw new file mode 100644 index 0000000000000000000000000000000000000000..6c7c09e62f13b1501aad9a61f480964152db7903 GIT binary patch literal 24 gcmdPTu$;>FVq3?e6dJ@$&QZ_4fDp`TG0({r>+G0ssIm04o3j0|Wpw03-k%03e^& ht!>ZrDUH+lZCe{E`4FH}TNH@b`1-pvnwThnwiWi+K~ew! literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-1_06b.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-1_06b.raw new file mode 100644 index 0000000000000000000000000000000000000000..8f87187b807b854f8edab91c9fd6f43da2bd74bc GIT binary patch literal 6 NcmWe(W@cby1ONb>0384T literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-1_06c.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-1_06c.raw new file mode 100644 index 0000000000000000000000000000000000000000..c0ae12ac8bfbf61e9b14c9f8556d992387ecec56 GIT binary patch literal 28 kcmWe=?|scz$=Jzte^DUgYG#*p0HfOsG5`Po literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-1_06d.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-1_06d.raw new file mode 100644 index 0000000000000000000000000000000000000000..55358cc0b4b4cbe5862414f4f2a62c9701f77bb8 GIT binary patch literal 840 zcmV-O1GoGa0|Ns?y6_5{U?`{;yAX zc26y7Ifoc*z!NFKho$6Tj*Ta?80n4KM``zSoaT0elFG`B%vpVR>nI-AmXD5BOuwHB^H=bWHHz zxxjp`a&6K-nN!~%9OJC(J903G9+EK(`zr~AhV(T!_~%SR03P?38I!wha*Byw7K#9yCZDYjy0XZH7;;8Z6yN3(74 zFuf$N5Y{r=rBB4@ki7+ll8gcd$}TA6P9l0OP-7WcHQzYei8cu??*Zsctu9H{E=LM% zcSZIk>^bE8BQl(M(HAIofP6OBHo8K)X|M$URrxqj+%v)Xio249gCxgq@#_d(v%&mO z_fEh>LgpfuKBosmL5GyXh!hL7lGZ6o1wiGcociVqpz%nV{HGH$F_%a|bP z)SCY7X2gDP!b9r5yUPm#ML2i$tX;po_}dUtqsf%AB+Z(t^=krax$mOj69Thj0jp$` z=K+mwTUR^Ni_Y*PvHX&hYrLQ!oTd7bYe{gi0FeV^T(SKARU;Aqa|KwKLvRC+(#+zi zAID8^K0c}VL+;a7_V_I|&^y9Qfwhe58bj=qH|Fu>4z~4G<01WL$TKdnxH77Zd0Hpb zdB);>T44i5gNYdf_GBT@l;N-nniGwN9&dP}3e(|O094ZB1tmOjIs*P4DBkXKHY9Iq z<3llkYeuwtgFHF8(;U+P!lvzm6Pb5y2la63@CBMIXr=S67Pc2aO82)T8cmcZSo{JD zKO^pp72{w;&(?g_K$$xhAa$4f^M&eqO_}J_R{w+4AA5^W2AcwkDr2b`rw%$0;|M`m S`lY)1Fc@rWFC&h%FvmWo=b5?y literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-1_06e.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-1_06e.raw new file mode 100644 index 0000000000000000000000000000000000000000..42a5a2311d23794f91e045eedf7c09ce27ed6f1f GIT binary patch literal 286 zcmV+(0pb1^0|NmWb8(-}2kb9xJGugrpwtT|aKLIO7n!9q6!!Oj$y{IOxui0m*;I^Y z4!-IyEnGDn*)?wR+|@3zH@!M%Wg_^^54TnaiLHAMJgcJPerrLQ#(6t4M(sw=bPAuL z{=^jAaa=)MVC8jiJm#ZIaJ3m4rluMg`u`zpXnNSueiEnYnH8oHzrmuu{1xWuO?XB^ z=7RkfI4U%ZFc4O`K*@x106>fER>&Ts*CBei=vs(zQ5MkaYT(2wREb^rhX literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-1_08a.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-1_08a.raw new file mode 100644 index 0000000000000000000000000000000000000000..8f87187b807b854f8edab91c9fd6f43da2bd74bc GIT binary patch literal 6 NcmWe(W@cby1ONb>0384T literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-1_08b.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-1_08b.raw new file mode 100644 index 0000000000000000000000000000000000000000..8f6e3c1b2f69c259da318ee8f48b1f03e3766c43 GIT binary patch literal 74 zcmV-Q0JZ-Y0|Nj>pZTz37g2XIDn{Lymh;2Af(o@4L+ip{+TBw{OLN|}OvfaRK^hpm g&t-a+2qfvDlVpQ@H415{jZ5}5$X>W~uDqT7=+$E*#sB~S literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-1_10.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-1_10.raw new file mode 100644 index 0000000000000000000000000000000000000000..179980edb3bd8a5b5c74cc2ce9a6f213ce9a4b28 GIT binary patch literal 26 icmWeD0n+#D4!${jK$(tk`(9w%A(8?OYEy3dh#f=Ppo+l|x zYYs7(_tP2c6k;yKi)zUDX4gqir*+7H|3j@y8udB@${BZ+caQ%s{vA7+vrXrMr)s~b zK;|}V*EF4*&-Ov};NSUPK-Vq_@BSF>WM?e7UC~*i9)Z zw}?H-qr=BBI)^DgF}58f*^rmWg**G}mC?{2naTyQP#9UyV?gLPaCMgfQu>tj^}Z_cso~9gZ{WPfzFdOZ40e zlKSUD95cp6JnO)76_ya7mq4p61#gW}&!S=geLxa6+WaqalK%|IhNSN}pDgVXCdRbf z_MMqe`4o=%X}ovYLprh3sWMa{f`Xrjn%Q3j$5Q!9&Q}y_U4*bgzq3eMWasHuu!(@p z2)g-ci-{?iZ4q?Ts%_V&=)i^rEIfAD88p51o0e`lATjet8s5F#+vrcvAM^->YU#3! pq^aj9gi1+0fJI$yukr=73Lf!=bnn2qYSV+Sy^Z{a_y~L-eaL?Dd^-RD literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-1_16.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-1_16.raw new file mode 100644 index 0000000000000000000000000000000000000000..22bab3c9ad2f36beaf0ca376ce27ad11685f32c5 GIT binary patch literal 26 icmWe(k^rt7^(O#YB=6ssM_C{v z!>CNAG4rWN(Or_9mo5O^?Fd)$pbxs;Ru^1OHY0384T literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-2_01c.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-2_01c.raw new file mode 100644 index 0000000000000000000000000000000000000000..32aae0c21622e251ce2f28809530ca8035ce8d12 GIT binary patch literal 459 zcmV;+0W|&>0|NoZu-ZZ|OT~xbEM-zlVc6O#J2qg9VE>gGE{5Cph#OuR?MY7Khsd9* zl!1=ehP19z^b}<#QV7Y{+3&1$dqcpzCnqMfZ}m%Xblcp_Ik_EMYf?w2AQ;1}uACXB zEljiU?EMO79EV!lqF_GR&)y;Jafj0d+c{Zu>_{1`ECeB?=~92%7=!XWrUWL8Vh`j0vZSr6|}`g)=!4GHfrW$VZZ1|lMhTl8&u B0384T literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-2_02b.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-2_02b.raw new file mode 100644 index 0000000000000000000000000000000000000000..c421c90115a4d5d40d68fd31d4ba18861f12a162 GIT binary patch literal 58 zcmV-A0LA|o0|NjxlJ>lJRn~B>k%KNT^{inx86ScXJRn#@cEr>}9c5O81M~I2IEv|A Q(S*go)ODu)v$&rVsLqfZtpET3 literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-2_03.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-2_03.raw new file mode 100644 index 0000000000000000000000000000000000000000..594fbbc25ffe1754fa780e4b616a904f3b3bb973 GIT binary patch literal 402 zcmV;D0d4*l0|Nn#rkYnacf~q4uLmH|44b>Wg7}1qG;fm)^$T)io{L}c&Y#e`L9Tm) zocd}#4HXh3dtNa&Od$Z zr|y7N*eltSFnWs+3NpeY4pDkSoUx)%n)V^_kd^o?>dn)>!2Dez$+|m-NId{M*p1Vx zY?XpgGE-6qTyH-Zp{C@RN}LC5ek0)tIFTXY)ltZmq6E_g^+W$;Gma6`OYnfgHlE{$ zKop3D+tARi&nL|7Mdrs>+yMs|uSi1D_q*hmb3;goojh*v7*mL{Apv>%{-PVpa$x4{ z?5mn#-+r}K+H5SMzvaD@>4x*tuG948A2E2NY ww*V`UGISLa3ytN+Bq}x@AaR30!XRP0KsJ{GpUl*OuAn>OPRU>{CPDZex}KBBkN^Mx literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-2_04.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-2_04.raw new file mode 100644 index 0000000000000000000000000000000000000000..0efcf73dfbb5a5767b08f34647d75427a739a5f3 GIT binary patch literal 45 zcmWe?yQ$UFHKA(YYL|aK;r-a literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-2_07a.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-2_07a.raw new file mode 100644 index 0000000000000000000000000000000000000000..8f87187b807b854f8edab91c9fd6f43da2bd74bc GIT binary patch literal 6 NcmWe(W@cby1ONb>0384T literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-2_07b.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-2_07b.raw new file mode 100644 index 0000000000000000000000000000000000000000..ef86f2702b8ae8d5454e49a9040c4da9e48a1384 GIT binary patch literal 45 zcmV+|0Mh>#0|Njk0SezT2i<^?w&JB%Ebh!x^DP;yWpcMQ2uFI#)6Apgi?u-uM`i#y DlCcu_ literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-2_08a.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-2_08a.raw new file mode 100644 index 0000000000000000000000000000000000000000..233ead951389e5393ab7b677f8712c63f8d150ac GIT binary patch literal 133 zcmV;00DAux0|Nkn0ssJf0|U$%!s4Zqd{X`+hxZ&Cp=c@%L<(|@2?3KOi~M%S$T=Xt z7UaT}`&)(jb43`lIY;wOV_sLq$z(nYymB3>OOaF)0RR9r04V?h0000p03-k%03ZkD nyCnUXSMnW?IyD0HtWZHyb*_ek1-RIH>%H=g!5aW800IL9*a$Hk literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-2_08b.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-2_08b.raw new file mode 100644 index 0000000000000000000000000000000000000000..8f87187b807b854f8edab91c9fd6f43da2bd74bc GIT binary patch literal 6 NcmWe(W@cby1ONb>0384T literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-2_08c.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-2_08c.raw new file mode 100644 index 0000000000000000000000000000000000000000..f6556a9dac39e219d0e88ece78a845d945a39d0c GIT binary patch literal 68 zcmV-K0K5Me0|Nj*^>8YZ_iF%;6OuSMu@N(H;1n{m;*byb{OtLmq)ku7B8(V*6Y#Te anra*Zl{ey1ANW@7ycvwqPVqz>FS2#ym>$gl literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-2_08e.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-2_08e.raw new file mode 100644 index 0000000000000000000000000000000000000000..00cfaa2dfc4085bd087b064b75c2bd7f20ceebf6 GIT binary patch literal 402 zcmV;D0d4*l0|Nn#cKU}}!wCub)*ap5&so!?cWS%T4lLAm@2<&)Icsg;AOIIw5NSvW z3V8Q9U3%9%+@`jM%~!~-qZ@TYns$uV@`}d*;Xm(Q(tJ!wP5WQtCh?^t$%bn-U$1y> z%mA?i-Byn{H~v)>jbF%bEbt~f&pIHNSd!#<3dOQSy>faDTE~JMk0&oN_50MbzBUZ3 z);VycA7Jb%h!CX75&%lIWnf;= zj<+{acU@n4jTk#Q{pS=Dgi|`qHtYjeiTWciYNs$NT=BKe*`QX w<`JH644(@49c(<1CWe3LsSkCx3Vy8v+#n+9NML?8R<{2?q?s?V{#7*Xwprc3Z2$lO literal 0 HcmV?d00001 diff --git a/tests/examples/data/tls_record/tls_record/valid/tls13-2_09.raw b/tests/examples/data/tls_record/tls_record/valid/tls13-2_09.raw new file mode 100644 index 0000000000000000000000000000000000000000..1f03c934d5713701e51b2b28f9d115a0371d3e59 GIT binary patch literal 140 zcmV;70CWEr0|Nkuh^Lg0!2uC3=ic)L zPRK1nVs|()DAT@>n9s>A^IwN|?A+A-nIm1(WeE+YbY;`mjgN^Z!8mFSP4t$N+5V}ux1*E_o*2h}F#`6ul&bxCg9$hO vfYQmqEa{8&EswD7fCV9#*I>&nC7a(mwtk`$+*j5^GHgO*q}w@M%JGEWH Union[bool, str]: for c in pyclbr.readmodule(f"scapy.layers.{p.name}") ] - arg_parser = argparse.ArgumentParser() + arg_parser = argparse.ArgumentParser( + formatter_class=argparse.RawDescriptionHelpFormatter, + description=""" +Extract all packets of a specified protocol layer from a PCAP file. + +The PCAP file contains a capture of several networks packets with metadata. See +https://en.wikipedia.org/wiki/Pcap and +https://datatracker.ietf.org/doc/draft-ietf-opsawg-pcap for more information on +the file format. + +The current script can be used to (a) split the capture into individual packets +and (b) extract only the sub-packets from a given layer. The byte +representation of each extracted packet is written into a separate file. + +The script is based on Scapy https://scapy.net/. +""", + ) arg_parser.add_argument( "-l", "--layers",