Mercurial > libervia-backend
changeset 3960:4836b81c5f31
plugin XEP-0373: minor renaming + set `gpg_provider` in client:
- `sat` and `self.__sat` have been renamed to `host` and `self.host` for consistency with
other plugins.
- `gpg_provider` is set in client while profile is connecting, so the instance is easily
accessible to plugins depending on XEP-0373
rel 381
author | Goffi <goffi@goffi.org> |
---|---|
date | Sun, 30 Oct 2022 01:06:32 +0200 |
parents | da0e772881c3 |
children | a15c171836bb |
files | sat/plugins/plugin_xep_0373.py |
diffstat | 1 files changed, 21 insertions(+), 18 deletions(-) [+] |
line wrap: on
line diff
--- a/sat/plugins/plugin_xep_0373.py Fri Oct 28 18:47:17 2022 +0200 +++ b/sat/plugins/plugin_xep_0373.py Sun Oct 30 01:06:32 2022 +0200 @@ -1004,23 +1004,23 @@ Implementation of XEP-0373: OpenPGP for XMPP under namespace ``urn:xmpp:openpgp:0``. """ - def __init__(self, sat: SAT) -> None: + def __init__(self, host: SAT) -> None: """ @param sat: The SAT instance. """ - self.__sat = sat + self.host = host # Add configuration option to choose between manual trust and BTBV as the trust # model - sat.memory.updateParams(DEFAULT_TRUST_MODEL_PARAM) + host.memory.updateParams(DEFAULT_TRUST_MODEL_PARAM) - self.__xep_0045 = cast(Optional[XEP_0045], sat.plugins.get("XEP-0045")) - self.__xep_0060 = cast(XEP_0060, sat.plugins["XEP-0060"]) + self.__xep_0045 = cast(Optional[XEP_0045], host.plugins.get("XEP-0045")) + self.__xep_0060 = cast(XEP_0060, host.plugins["XEP-0060"]) self.__storage: Dict[str, persistent.LazyPersistentBinaryDict] = {} - xep_0163 = cast(XEP_0163, sat.plugins["XEP-0163"]) + xep_0163 = cast(XEP_0163, host.plugins["XEP-0163"]) xep_0163.addPEPEvent( "OX_PUBLIC_KEYS_LIST", PUBLIC_KEYS_LIST_NODE, @@ -1029,6 +1029,9 @@ ) ) + async def profileConnecting(self, client): + client.gpg_provider = get_gpg_provider(self.host, client) + async def profileConnected( # pylint: disable=invalid-name self, client: SatXMPPClient @@ -1058,7 +1061,7 @@ @param profile: The profile this event belongs to. """ - client = self.__sat.getClient(profile) + client = self.host.getClient(profile) sender = cast(jid.JID, items_event.sender) items = cast(List[domish.Element], items_event.items) @@ -1156,7 +1159,7 @@ @return: The set of public keys available for this JID. """ - gpg_provider = get_gpg_provider(self.__sat, client) + gpg_provider = get_gpg_provider(self.host, client) return gpg_provider.list_public_keys(f"xmpp:{jid.userhost()}") @@ -1167,7 +1170,7 @@ @return: The set of secret keys available for this JID. """ - gpg_provider = get_gpg_provider(self.__sat, client) + gpg_provider = get_gpg_provider(self.host, client) return gpg_provider.list_secret_keys(f"xmpp:{client.jid.userhost()}") @@ -1180,7 +1183,7 @@ @return: The new key. """ - gpg_provider = get_gpg_provider(self.__sat, client) + gpg_provider = get_gpg_provider(self.host, client) secret_key = gpg_provider.create_key(f"xmpp:{client.jid.userhost()}") @@ -1308,7 +1311,7 @@ @return: The ``<openpgp/>`` element. """ - gpg_provider = get_gpg_provider(self.__sat, client) + gpg_provider = get_gpg_provider(self.host, client) # TODO: I'm not sure whether we want to sign with all keys by default or choose # just one key/a subset of keys to sign with. @@ -1369,7 +1372,7 @@ the calling code. """ - gpg_provider = get_gpg_provider(self.__sat, client) + gpg_provider = get_gpg_provider(self.host, client) decryption_keys = set(filter( lambda secret_key: gpg_provider.can_encrypt(secret_key.public_key), @@ -1457,7 +1460,7 @@ @raise XMPPInteractionFailed: if any interaction via XMPP failed. """ - gpg_provider = get_gpg_provider(self.__sat, client) + gpg_provider = get_gpg_provider(self.host, client) packet = gpg_provider.export_public_key(public_key) @@ -1561,7 +1564,7 @@ @raise XMPPInteractionFailed: if any interaction via XMPP failed. """ - gpg_provider = get_gpg_provider(self.__sat, client) + gpg_provider = get_gpg_provider(self.host, client) node = f"urn:xmpp:openpgp:0:public-keys:{fingerprint}" @@ -1738,7 +1741,7 @@ """ try: - infos = cast(DiscoInfo, await self.__sat.memory.disco.getInfos( + infos = cast(DiscoInfo, await self.host.memory.disco.getInfos( client, client.jid.userhostJID() )) @@ -1813,7 +1816,7 @@ @raise XMPPInteractionFailed: if any interaction via XMPP failed. """ - gpg_provider = get_gpg_provider(self.__sat, client) + gpg_provider = get_gpg_provider(self.host, client) await self.__prepare_secret_key_synchronization(client) @@ -1901,7 +1904,7 @@ @raise DecryptionFailed: on decryption failure. """ - gpg_provider = get_gpg_provider(self.__sat, client) + gpg_provider = get_gpg_provider(self.host, client) return gpg_provider.restore_secret_keys(gpg_provider.decrypt_symmetrically( ciphertext, @@ -2045,7 +2048,7 @@ return {} - submit_id = self.__sat.registerCallback(callback, with_data=True, one_shot=True) + submit_id = self.host.registerCallback(callback, with_data=True, one_shot=True) result = xml_tools.XMLUI( panel_type=C.XMLUI_FORM,