feat: OMEMO E2E encryption for all agents (XMPP direct messages)

- Add omemo_storage.py: SQLite key/value backend for python-omemo
- Rewrite xmpp_client.py OMEMO support: real XEP_0384 plugin subclass
  with BTBV (Blind Trust Before Verification / TOFU for bots)
- Async decrypt in _on_message handler, async encrypt in _send_omemo
- MUC messages remain plaintext (OMEMO MUC not widely supported)
- base_agent.py: pass data_dir to XMPPClient for OMEMO storage
- setup.py: bump omemo extra to slixmpp-omemo>=2.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-15 19:06:47 +00:00
parent f71cd0d48d
commit f714e8ae8a
4 changed files with 196 additions and 20 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ setup(
"requests>=2.28",
],
extras_require={
"omemo": ["slixmpp-omemo>=1.0"],
"omemo": ["slixmpp-omemo>=2.0"],
},
python_requires=">=3.10",
)