changeset 3948:cd4d95b3fed3

plugin OXPS, XEP-0060: indicate which items were e2ee: the new `encryption` key is added to `getItems` metadata if items were e2ee, it contains a map from item ID to encryption metadata. rel 380
author Goffi <goffi@goffi.org>
date Sat, 15 Oct 2022 20:38:33 +0200
parents 08c1d5485411
children f7ff893b536e
files sat/plugins/plugin_sec_oxps.py sat/plugins/plugin_xep_0060.py
diffstat 2 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/sat/plugins/plugin_sec_oxps.py	Sat Oct 15 20:38:33 2022 +0200
+++ b/sat/plugins/plugin_sec_oxps.py	Sat Oct 15 20:38:33 2022 +0200
@@ -736,6 +736,7 @@
                 decrypted_elt = xml_tools.parse(decrypted)
                 item.children.clear()
                 item.addChild(decrypted_elt)
+                extra.setdefault("encrypted", {})[item["id"]] = {"type": NS_OXPS}
 
     async def _message_received_trigger(
         self,
--- a/sat/plugins/plugin_xep_0060.py	Sat Oct 15 20:38:33 2022 +0200
+++ b/sat/plugins/plugin_xep_0060.py	Sat Oct 15 20:38:33 2022 +0200
@@ -854,6 +854,9 @@
                     # normally we have a strict equality here but XEP-0059 states
                     # that index MAY be approximative, so just in caseā€¦
                     metadata["complete"] = index + len(items) >= count
+        # encrypted metadata can be added by plugins in XEP-0060_items trigger
+        if "encrypted" in extra:
+            metadata["encrypted"] = extra["encrypted"]
 
         return (items, metadata)