Skip to content

feat(application): parse TLS handshake extensions #2514

Open

Description

@JarryShaw

Follow-up split out of #2437 (owner's choice, option 1).

TLS handshake messages on main are parsed at the message-type level (ClientHello, ServerHello, Certificate, ...), and the only extension read is supported_versions, which is peeked to identify TLS/DTLS 1.3 (#2441). Every other extension is kept undecoded.

Scope: parse the extension list of ClientHello, ServerHello, EncryptedExtensions and HelloRetryRequest into typed records (RFC 8446 §4.2, IANA "TLS ExtensionType Values"), backed by a pcapkit.const registry with its vendor crawler (const-vendor-pairing). Unknown extensions stay as raw bytes. Construction and parsing must round-trip byte-exact.

Blocked: #2490's reorder is editing pcapkit/protocols/application/ssl.py, and #2457's capture check may touch the TLS modules. This unblocks when both hand back.

Activity

  1. added
    featPull requests that add a new capability (feat: subject prefix)
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    on Nov 1, 2026
  2. moved this to Blocked in PyPCAPKiton Nov 1, 2026
  3. JarryShaw commented on Nov 1, 2026

    @JarryShaw
    OwnerAuthor

    Still blocked, on a new condition. #2457 closed, and #2490 does not touch ssl.py (#2522 is FTP only). #2517 and #2525 are now changing how TLS.read handles records. This unblocks when their PR merges.

  4. JarryShaw commented on Nov 1, 2026

    @JarryShaw
    OwnerAuthor

    Unblocked: #2537 merged, so TLS's chained records are on main. Held one tick for the same fan-out width as #2489. It starts next sweep.

  5. added
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    wipWork in flight - a covering PR is open or an agent is actively on it
    and removed
    blockedDeferred pending another issue or decision; see the last comment for what unblocks it
    pendingAccepted and unstarted - nobody is on it and nothing blocks it
    on Nov 1, 2026
  6. moved this from Blocked to WIP in PyPCAPKiton Nov 1, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    featPull requests that add a new capability (feat: subject prefix)wipWork in flight - a covering PR is open or an agent is actively on it

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions