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
This commit is contained in:
parent
8ec64e41fd
commit
f74e555c23
1 changed files with 21 additions and 18 deletions
|
|
@ -1004,23 +1004,23 @@ class XEP_0373:
|
|||
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 @@ class XEP_0373:
|
|||
)
|
||||
)
|
||||
|
||||
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 @@ class XEP_0373:
|
|||
@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 @@ class XEP_0373:
|
|||
@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 @@ class XEP_0373:
|
|||
@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 @@ class XEP_0373:
|
|||
@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 @@ class XEP_0373:
|
|||
@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 @@ class XEP_0373:
|
|||
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 @@ class XEP_0373:
|
|||
@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 @@ class XEP_0373:
|
|||
@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 @@ class XEP_0373:
|
|||
"""
|
||||
|
||||
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 @@ class XEP_0373:
|
|||
@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 @@ class XEP_0373:
|
|||
@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 @@ class XEP_0373:
|
|||
|
||||
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,
|
||||
|
|
|
|||
Loading…
Reference in a new issue