Mercurial > libervia-backend
comparison sat/plugins/plugin_xep_0277.py @ 3934:e345d93fb6e5
plugin OXPS: OpenPGP for XMPP Pubsub implementation:
OpenPGP for XMPP Pubsub (https://xmpp.org/extensions/inbox/pubsub-encryption.html,
currently a protoXEP) is implemented and activated when `encrypted` is set to `True` in
pubsub's `extra` data.
On item retrieval, the decryption is transparent if the key is known, except if the
`decrypt` key in `extra` is set to `False` (notably useful when one wants to checks that
data is well encrypted).
Methods and corresponding bridge methods have been implemented to manage shared secrets
(to share, revoke or rotate the secrets).
plugin XEP-0060's `XEP-0060_publish` trigger point as been move before actual publish so
item can be modified (here e2ee) by the triggers. A new `XEP-0060_items` trigger point has
also been added.
`encrypted` flag can be used with plugin XEP-0277's microblog data
rel 380
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 15 Oct 2022 20:36:53 +0200 |
parents | 6c5f0fbc519b |
children | f7ff893b536e |
comparison
equal
deleted
inserted
replaced
3933:cecf45416403 | 3934:e345d93fb6e5 |
---|---|
981 if not await self.host.trigger.asyncPoint( | 981 if not await self.host.trigger.asyncPoint( |
982 "XEP-0277_send", client, service, node, item, data | 982 "XEP-0277_send", client, service, node, item, data |
983 ): | 983 ): |
984 return None | 984 return None |
985 | 985 |
986 await self._p.publish(client, service, node, [item]) | 986 extra = {"encrypted": True} if data.get("encrypted") else None |
987 | |
988 await self._p.publish(client, service, node, [item], extra=extra) | |
987 return item_id | 989 return item_id |
988 | 990 |
989 def _mbRepeat( | 991 def _mbRepeat( |
990 self, | 992 self, |
991 service_s: str, | 993 service_s: str, |