PGP Legacy in MUCs
This patch makes Legacy PGP work in MUCs. Been using it for some time, probably not clean enough to be mergeable as-is, but it works, so I figured I'd share if anyone else wants this ability.
diff -ru a/pgp/modules/pgp_legacy.py b/pgp/modules/pgp_legacy.py
--- a/pgp/modules/pgp_legacy.py 2022-05-16 17:24:38.971718846 +0100
+++ b/pgp/modules/pgp_legacy.py 2022-05-16 17:23:41.158385284 +0100
@@ -141,7 +141,7 @@
return
def _message_received(self, _con, stanza, properties):
- if not properties.is_pgp_legacy or properties.from_muc:
+ if not properties.is_pgp_legacy:
return
from_jid = properties.jid.bare
@@ -157,7 +157,7 @@
callback(event)
return
- to_jid = app.get_jid_without_resource(event.jid)
+ to_jid = event.jid.bare
try:
key_id, own_key_id = self._get_key_ids(to_jid)
except NoKeyIdFound as error:
@@ -184,6 +184,8 @@
callback(event)
def _handle_encrypt_error(self, con, error, event, keys, callback):
+ self._encrypt(con, event, keys, callback, True)
+ return
if error.startswith('NOT_TRUSTED'):
def on_yes(checked):
if checked:
--- a/pgp/plugin.py 2022-05-16 17:24:38.971718846 +0100
+++ b/pgp/plugin.py 2022-05-16 17:23:41.158385284 +0100
@@ -82,8 +82,10 @@
self.config_dialog = partial(PGPConfigDialog, self)
self.encryption_name = ENCRYPTION_NAME
self.allow_zeroconf = True
+ self.allow_groupchat = True
self.gui_extension_points = {
'encrypt' + ENCRYPTION_NAME: (self._encrypt_message, None),
+ 'gc_encrypt' + ENCRYPTION_NAME: (self._encrypt_message, None),
'send_message' + ENCRYPTION_NAME: (
self._before_sendmessage, None),
'encryption_dialog' + ENCRYPTION_NAME: (