fix: Enable E2EE with caller's key as shared key
Element Call now rejects unencrypted audio. Use caller's key as shared_key so both sides encrypt/decrypt with the same key. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
11
voice.py
11
voice.py
@@ -189,14 +189,15 @@ class VoiceSession:
|
|||||||
break
|
break
|
||||||
await asyncio.sleep(0.1)
|
await asyncio.sleep(0.1)
|
||||||
|
|
||||||
# E2EE disabled — Element Call key derivation mismatch not yet resolved.
|
# Use caller's key as shared key for E2EE
|
||||||
# Audio pipeline confirmed working without E2EE.
|
|
||||||
if self._e2ee_key:
|
if self._e2ee_key:
|
||||||
logger.info("Caller E2EE key available (%d bytes) — E2EE disabled pending fix",
|
logger.info("Enabling E2EE with caller's key (%d bytes)", len(self._e2ee_key))
|
||||||
len(self._e2ee_key))
|
|
||||||
if self._publish_key_cb:
|
if self._publish_key_cb:
|
||||||
self._publish_key_cb(self._e2ee_key)
|
self._publish_key_cb(self._e2ee_key)
|
||||||
e2ee_opts = None
|
e2ee_opts = _build_e2ee_options(self._e2ee_key)
|
||||||
|
else:
|
||||||
|
logger.warning("No E2EE key available, connecting without encryption")
|
||||||
|
e2ee_opts = None
|
||||||
|
|
||||||
room_opts = rtc.RoomOptions(e2ee=e2ee_opts)
|
room_opts = rtc.RoomOptions(e2ee=e2ee_opts)
|
||||||
self.lk_room = rtc.Room()
|
self.lk_room = rtc.Room()
|
||||||
|
|||||||
Reference in New Issue
Block a user