Skip to content

fix: negotiate object framing in authenticated SDP - #44

Merged
TheCryptoDonkey merged 1 commit into
mainfrom
fix/framing-handshake-20261027
Oct 27, 2026
Merged

TheCryptoDonkey merged 1 commit into
mainfrom
fix/framing-handshake-20261027

Conversation

@TheCryptoDonkey

Copy link
Copy Markdown
Member

Late viewers can receive cached-object availability before the holder’s ephemeral presence, leaving an open connection without framing-2 knowledge. The zero-budget cached race then downloads from HTTP until another presence arrives.

Advertise optional obj: 2 in the existing encrypted SDP offer/answer and accept it only after admission, current-negotiation checks and successful remote SDP installation. Missing or invalid metadata preserves existing presence-derived behaviour. This adds no signalling messages or timers and preserves verification, upload limits and HTTP deadlines.

Validation:

  • 661 JavaScript tests and 16 focused capability controls passed; syntax and documentation checks passed.
  • Two real SDK factories reproduce the cold-race failure before the fix, with missing, invalid, legacy, denied and stale negotiation controls.
  • M4 Chrome with native SCTP and the committed WASM delivered a verified 6 MiB object while all receiver presence was withheld; the single HTTP backstop aborted after the client read 320 KiB. Origin-win and reused-connection controls also passed. This is a synthetic protocol fixture; real 4K playback, physical devices and public NAT remain separate acceptance gates.

@TheCryptoDonkey
TheCryptoDonkey merged commit eaecb52 into main Oct 27, 2026
17 checks passed
@TheCryptoDonkey
TheCryptoDonkey deleted the fix/framing-handshake-20261027 branch October 27, 2026 19:40
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