Skip to content

Add TLS key-log decryption - #91

Draft
NghiaTranUIT wants to merge 5 commits into
mainfrom
codex/explain-wireshark-tls-key-logs
Draft

Add TLS key-log decryption#91
NghiaTranUIT wants to merge 5 commits into
mainfrom
codex/explain-wireshark-tls-key-logs

Conversation

@NghiaTranUIT

@NghiaTranUIT NghiaTranUIT commented Aug 19, 2026

Copy link
Copy Markdown
Member

Summary

  • add a reusable Tools → TLS Key Log… window with bounded NSS key-log validation and session-only configuration
  • configure the embedded Wireshark tls.keylog_file preference for the TLS, DTLS, and QUIC formats supported by the pinned build
  • add bounded Request and Response directional stream tabs with progress, cancellation, UTF-8 rendering, and hex fallback
  • support offline captures and disk-backed retained packets after a live capture stops
  • keep the lifecycle simple: no live-capture session resets, generation tracking, polling timers, or custom TLS cryptography
  • add real Wireshark TLS 1.2/TLS 1.3 integration coverage plus focused key-log, menu, formatter, and inspector tests

User impact

Users can select a Proxyman or NSS-compatible TLS key-log file and inspect decrypted client-to-server and server-to-client application streams in an offline or stopped capture. A running live capture is not rebuilt or replayed; stop it before loading the complete stream.

The selection lasts only for the current app launch. TCPViewer references the original key file, so appended secrets are available to later Wireshark dissection without reselecting the file.

Validation

  • xcodebuild -project TCPViewer.xcodeproj -scheme TCPViewer build CODE_SIGNING_ALLOWED=NO TCPVIEWER_DEVELOPMENT_TEAM=ABCDE12345 TCPVIEWER_BUILD_KEY=unit-test DEVELOPMENT_TEAM=ABCDE12345
  • complete PcapPlusPlusCoreTests: 132 tests passed
  • complete TCPViewerTests: 513 tests passed
  • git diff --check
  • private-path and secret-pattern scan

Only public Wireshark fixtures already vendored in the repository are used. The attached private key log was not copied or committed.

AI assistance

This pull request was substantially assisted by OpenAI Codex. The contributor has reviewed the implementation and validation results and remains responsible for the change.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant