Add interface semi-hidden to RatchetForwardingMessage

Signed-off-by: Maxime Buquet's avatarMaxime “pep” Buquet <pep@bouah.net>
parent 26665d9e
Pipeline #4065 passed with stage
......@@ -602,10 +602,11 @@ class XEP_0384(BasePlugin):
"""
msg = self.xmpp.make_message(mto=jid)
encrypted = await self.encrypt_key_transport_message(
encrypted = await self.encrypt_message(
plaintext=None,
recipients=[jid],
expect_problems=None,
_ignore_trust=True,
)
msg.append(encrypted)
return msg
......@@ -708,21 +709,10 @@ class XEP_0384(BasePlugin):
async def encrypt_message(
self,
plaintext: str,
recipients: List[JID],
expect_problems: Optional[Dict[JID, List[int]]] = None,
) -> Encrypted:
return await self.encrypt_key_transport_message(
plaintext.encode('utf-8'),
recipients,
expect_problems,
)
async def encrypt_key_transport_message(
self,
plaintext: Optional[bytes],
plaintext: Optional[str],
recipients: List[JID],
expect_problems: Optional[Dict[JID, List[int]]] = None,
_ignore_trust: bool = False,
) -> Encrypted:
"""
Returns an encrypted payload to be placed into a message.
......@@ -730,6 +720,14 @@ class XEP_0384(BasePlugin):
The API for getting an encrypted payload consists of trying first
and fixing errors progressively. The actual sending happens once the
application (us) thinks we're good to go.
If `plaintext` is specified, this will generate a full OMEMO payload. If
not, if `_ignore_trust` is True, this will generate a ratchet forwarding
message, and otherwise it will generate a key transport message.
These are rather technical details to the user and fiddling with
parameters else than `plaintext` and `recipients` should be rarely
needed.
"""
recipients = [jid.bare for jid in recipients]
......@@ -749,7 +747,13 @@ class XEP_0384(BasePlugin):
if plaintext is not None:
encrypted = self._omemo.encryptMessage(
recipients,
plaintext,
plaintext.encode('utf-8'),
self.bundles,
expect_problems=expect_problems,
)
elif _ignore_trust:
encrypted = self._omemo.encryptRatchetForwardingMessage(
recipients,
self.bundles,
expect_problems=expect_problems,
)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment