Repository navigation
feat(application): implement DTLS 1.3 unified-header records (#2467) - #2494
Conversation
- Parse and make the unified-header ciphertext record (RFC 9147 4.1) in DTLS: first octet 001CSLEE, 8- or 16-bit sequence number, optional length. - Dispatch on the first octet's 001 prefix ahead of legacy content types. - A record with a connection ID, or a length past the buffer, degrades to Raw. - Add DTLSCiphertext header schema and data model. - Update the DTLS docs and the constant-home allowlist for the EE bit offset. Tests: 11 new unit tests, all passing; DTLS modules at 100% coverage.
…mple length (#2467) - Refuse a unified-header ciphertext shorter than 16 octets, the record-number sample (RFC 9147 4.2.3), so the datagram degrades to Raw on UDP 5684. - Raise the test fixture to 16 octets; the old 12-octet stand-in was not a record the RFC allows. - Allowlist the new constant in the one-home test: it is not a pcap header. Tests: new short-ciphertext cases fail without the check and pass with it.
|
GOOD TO GO (Sonnet, |
|
Red required check on |
|
Coverage: 94.51% (unit tier, Python 3.15,
Per-file detail: the |
…kages (#2467) - pcapkit/protocols/data/application/__init__.py and pcapkit/protocols/schema/application/__init__.py do not import DTLSCiphertext, which their dtls __all__ lists. - Re-export it as DTLS_Ciphertext, matching DTLS_Handshake. - Add the alias to the data and schema aggregator __all__ lists. Fixes test_package_reexports_1807_unit (test_every_package_reexports_every_child_export).
|
GOOD TO GO (Sonnet, |
Closes #2467. Parses and builds RFC 9147 unified-header records. Refuses connection-ID records. Enforces the 16-octet minimum ciphertext from RFC 9147 section 4.2.3. Narrow: unified-header file 15 passed, 13 subtests; DTLS-referencing files 223 passed.