It's currently impractical to use out-of-tree plugins that want to be
distributed via distribution channels.
Poezio now looks for every entry point registered in the
`poezio_plugins` entry group, and will use the first matching module
with the specified name.
This also helps specifically for the OMEMO plugin that has a conflicting
name (omemo / omemo) with the backend library.
Thanks jonas for pointing this out.
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
There is no apparent reason why a disco#info should be done on the
domain Jid rather than the bare Jid. MUCs advertize their MUC-y-ness on
the bare Jid. This will also fix cases like chat@dino.im which is a MUC
component itself (whereas dino.im is a user host), and biboumi
components that serves a mic of MUCs and (IRC) users.
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
Use new `by_jid` API to search for any tab containing the barejid, and
then look at the type of Tab.
Move the Tab search at the top of the checks so that we stop searching
if we already have done all this work for previous stanzas.
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
This change transmits the original JID of the sender (in decrypt) or
receiver(s) (in encrypt).
Handling of MUC is not complete. It is possible that some participants
have access to realjids while others don't (e.g., moderators in
semi-anon MUCs).
The code currently doesn't handle this and this will cause at least two
issues:
- Sending an encrypted message in a semi-anon MUC would reveal the
sender's identity (public key)
- Recipients wouldn't be able to decrypt this message as they don't have
access to the sender's realjid. Unless they already have the bundle
available and then they could associate the public key with a jid
(another privacy issue/defeating the point of semi-anon rooms).
TODO: Fix this ^
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
slixmpp-omemo's get_trust_for_jid doesn't provide fingerprints directly
anymore, it simply wraps the omemo lib method.
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
We're not supposed to see MissingBundleException directly as it's
handled by slixmpp-omemo. Slixmpp-omemo will give us all the remaining
exceptions via EncryptionPrepareException when it doesn't know what to
do anymore.
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>