Switch from Rust-side HKDF (KDF_HKDF=1) to Python-side HKDF derivation with raw key mode (KDF_RAW=0). This eliminates potential HKDF implementation mismatches between Rust FFI and Element Call JS that caused video frame decryption failures (audio worked, video showed 8x8 garbage frames). Changes: - Add _derive_and_set_key() helper that pre-derives HKDF then calls set_key() - Set key_derivation_function=KDF_RAW (proto 0 = no Rust-side derivation) - Replace all direct set_key() calls with _derive_and_set_key() - Add per-track diagnostic logging (audio vs video) - Add frame size check in look_at_screen (detect E2EE failure early) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
68 KiB
68 KiB