Commit graph

3980 commits

Author SHA1 Message Date
92e81d8f87 Allow encryption in normal messages
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-31 11:54:52 +01:00
238eb8a0a1 E2EEPlugin: Mute some lint warnings because of metaclass
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-31 11:54:52 +01:00
323d39f932 Tabs: add by_jid search method for tabs who have a jid attr
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-31 11:54:52 +01:00
28be8ab0cd
Add TODO in plugin_e2ee _decrypt
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-30 05:39:08 +01:00
fa063ddd57 Merge branch 'plugin-omemo' into 'master'
E2EE plugins support

See merge request poezio/poezio!18
2019-12-28 22:36:27 +01:00
mathieui
abbb6a714e
Disable a pylint error on a line (due to __getattr__ override) 2019-12-28 16:47:18 +01:00
9e390085a1
omemo: omemo_plugin moved to its own repository for licensing purposes
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 19:02:09 +01:00
39e756cb35 omemo: Add TODO for unverified state
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:58:48 +01:00
96acbaa13d omemo: remove unnecessary newline in docstring
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:58:48 +01:00
fb637a597b omemo: prevent traceback when no JID is specified in non-supported tab
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:58:48 +01:00
c610a76fd9 omemo: use dedicated method to check if encryption is enabled
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:58:48 +01:00
3697e308c2 omemo: use jid property instead of name on chat tab
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:58:48 +01:00
931fc58199 omemo: Update decrypt_message with slixmpp-omemo changes
decrypt_message now takes an Encrypted container and a sender (JID)
instead of a Message object.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:58:48 +01:00
ecdd036237 omemo: Update get_fingerprints with slixmpp-omemo changes
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>
2019-12-27 18:58:48 +01:00
mathieui
e8dd6f0a91 omemo: fix show_fingerprints (JID instead of str) 2019-12-27 18:58:48 +01:00
04efd8ee07 omemo: implement get_fingerprints method
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:58:48 +01:00
mathieui
518ba47e2a omemo: add an api in plugin_e2ee to get the fingerprint(s) of a jid 2019-12-27 18:58:48 +01:00
mathieui
5c4571751e omemo: fix an indent error and make mypy happy 2019-12-27 18:58:48 +01:00
mathieui
b40de0bcbe omemo: fix some errors / feedback in trust setting 2019-12-27 18:58:48 +01:00
mathieui
07447a465a omemo: fix the type of the supported tab tyoes 2019-12-27 18:58:48 +01:00
03499a2d2c omemo: handle MissingBundleException when it comes from EncryptionPrepareException
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>
2019-12-27 18:58:48 +01:00
0e27485c36 Remove exception catchall in omemo plugin as it's now handled in plugin_e2ee
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:58:48 +01:00
cd3f2a197b omemo: Remove unused variable in encrypt method
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:58:48 +01:00
mathieui
c85c8f6c77 omemo: add supported_tab_types and trust_states into the omemo plugin 2019-12-27 18:58:48 +01:00
mathieui
25dae11eb3 omemo: add supported_tab_types and trust_states plugin attributes
- supported tab types is a list of tabs this plugin should be active in
 (only chattabs)
- trust_states is a dict[str → set] containing only two keys: accepted
 and rejected, whose values are the internal plugin states that should
 allow encryption and the ones that should not
2019-12-27 18:58:48 +01:00
4586765793 omemo: session_start is now async
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:58:48 +01:00
mathieui
1dd713b857 omemo: add a wrapper around _encrypt() to handle user feedback
(yes, another one)
2019-12-27 18:58:48 +01:00
mathieui
b1e913d772 omemo: fix indentation of one line 2019-12-27 18:58:48 +01:00
mathieui
e94ee52c10 omemo: add missing typing import 2019-12-27 18:58:47 +01:00
mathieui
97d29bc1cd Fix potential race condition when encrypting
(do not try to rely on the current tab)
2019-12-27 18:57:33 +01:00
0c86e9a52f omemo: Edit and move TODO comment for NoEligibleDevicesException
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:57:33 +01:00
mathieui
5a1a2e6c18 Add a "passthrough" parameter for calls through the safetymetaclass
So errors don’t get caught
2019-12-27 18:57:33 +01:00
33a1519a39 omemo: Catch IqError and IqTimeout and display generic message for now
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:57:33 +01:00
cbe96a6f77 omemo: Skip devices on MissingBundleException. Encrypt to the rest
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:57:33 +01:00
687f360797 omemo: ensure whitelist includes encryption tag in the correct format
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:57:33 +01:00
83e8305554 omemo: use @to instead of @from for message recipients
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:57:33 +01:00
ec846f222e omemo: decode decrypted body
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:57:33 +01:00
50833050c7 omemo: handle async encryption methods
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:57:33 +01:00
7609a56e48 omemo: handle StaticConversationTab as well
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:57:31 +01:00
fa3c96a602 omemo: Ensure session_start is published
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:56:27 +01:00
1be00f5e20 omemo: put OMEMO data into a folder specific to the account
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:56:27 +01:00
95a9858717 omemo: the container tag for OMEMO is 'encrypted' not 'payload'
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:56:27 +01:00
c8f88658b4 omemo: adapt to new E2EE API
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:56:27 +01:00
42fa792aa5 omemo: Add omemo_enable and omemo_disable commands
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:56:27 +01:00
d30c39c6a9 omemo: add docstring on the plugin
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:56:27 +01:00
f13587a386 omemo: remove unused imports and reorder them
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:56:27 +01:00
4ab6e64437 omemo: Add omemo status in the tab infobar
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:56:27 +01:00
2c720c9d9b omemo: remove unused commands
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:56:27 +01:00
43a97d6430 omemo: change /omemo description
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:56:27 +01:00
c9091dfac8 omemo: consistent returns
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-12-27 18:56:27 +01:00