Commit graph

101 commits

Author SHA1 Message Date
52e49e9422
xep_0384: pass the correct omemo backend to _parse_bundle
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-23 13:41:56 +00:00
f3d9143bf6
xep_0384: update to using TrustException from the omemo lib
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-19 00:09:16 +00:00
de1ecb730a
Pass the correct variable to public_bundle.serialize
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-17 19:15:18 +00:00
3580b3941b
Also depend on omemo-backend-signal
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-17 18:58:26 +00:00
85998773c8
Fix error message whe no data_dir specified
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-17 18:31:26 +00:00
f66f5a8db7
Fix import path of JSONFileStorage
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-17 18:30:31 +00:00
9a3283abf2
Initial split version of this repo
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-02-17 18:05:43 +00:00
8dbfc140ed xep_0384: do things in session_bind only if lib is available
`session_bind` is apparently loaded at about the same time as
plugin_init, and exceptions will be raise if the library could not be
loaded.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-31 16:28:12 +01:00
3a7711aaf1 xep_0384: when encrypting, only tell client when trust is undecided
On UntrustedException, there are two possibilities.  Either trust has not been
explicitely set yet, and is 'undecided', or the device is explicitely not
trusted. When undecided, we need to ask our user to make a choice. If
untrusted, then we can safely tell the OMEMO lib to not encrypt to this device.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-31 15:47:12 +01:00
4626c80ff3 xep_0384: otpk class doesn't need instancianting
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-31 11:33:41 +01:00
6641404def xep_0384: rework passing in storage class
The previous way wasn't allowing passing classes with different
parameters.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-31 11:33:41 +01:00
33d605f5e2 xep_0384: Use DefaultOTPKPolicy from the lib. Remove stuff implementation
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-31 11:33:41 +01:00
7ccd6c89fb xep_0384: pass the UntrustedException to the user
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-31 11:33:41 +01:00
2455d00d59 xep_0384: Add allow_untrusted parameter to decrypt_message
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-31 11:33:41 +01:00
2a14807c02 xep_0384: _receive_device_list was never called because event system doesn't do async.
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:10:10 +01:00
9591cf0ced xep_0384: Modify device list handling
When receiving the device list, do not read from storage before checking
if our JID is included, because the OMEMO library always includes it.
The method now verifies directly from the items and calls the set method
if necessary.

Also fix an issue where the `device_ids` parameter of ̀_set_device_list`
was never used.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
7492508d6c xep_0384: Move publish calls on session_bind
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
0c3946c556 xep_0384: Remove own Storage implementation, use JSONFileStorage from lib
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
ae8fd402f8 xep_0384: Add a way to specify parameters to the plugin
Users can now specify replacements for the storage backend, otpk policy,
and the omemo backend.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
a490ca6066 xep_0384: Add check on data_dir before loading plugin
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
15f34aa145 xep_0384: Use variables for filenames in Storage
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
1f6c13fdd1 xep_0384: only clean specified session for a user; use existing storeSession method
Thanks Syndace

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
3fdb7cc953 xep_0384: add types to Storage
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
d3c2db0d08 xep_0384: use correct variable name in deleteJID impl
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
011aeaa7a2 xep_0384: Change listJIDs' return value to set
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
77dccdb332 xep_0384: Change behaviour for NoElibibleDevices, add comments
Thanks to Syndace for the explanation.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
2880aef846 xep_0384: Use Optional instead of Union[None, T]
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
46a7e414a4 xep_0384: update plugin to work with OMEMO lib updates
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
2c90249462 xep_0384: update storage with new lib updates
Add:
- deleteSession
- storeTrust
- loadTrust
- listJIDs
- deleteJID

Fix:
- loadInactiveDevices
- storeInactiveDevices

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
623ca1e2bb xep_0384: get_device_list now always returns active devices
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
57addc3b39 xep_0384: add _fetch_device_list method for manual fetching
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
09083d0724 xep_0384: handle IqError and IqTimeout in _fetch_bundle
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
71c592d666 xep_0384: Move _fetching_bundle method out of plugin class
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
be6b0efb0f xep_0384: rework _store_device_ids method
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
8d35f7f80a xep_0384: Allow Devices in Items as well as EventItems
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
eb3916e92e xep_0384: handle OMEMO devices ns explicitely
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
b64371e8fe xep_0384: Move _generate_encrypted_payload out of plugin class
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
2891e92269 xep_0384: move _parse_bundle out of plugin class
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
bc97de440a xep_0384: don't register the plugin twice
We're already calling `register_plugin` in __init__.py

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
b6fb1ec015 xep_0384: rename cache_dir to data_dir. This data should be persisted
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
53d49f838d xep_0384: add bare_jid and device_id to NoAvailableSession exception
We actually had the data all along!

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
a8fb31a4b1 xep_0384: republish our bundle after decryption if necessary
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
4b565c0f7b xep_0384: document & raise NoAvailableSession
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
f81e6525cd xep_0384: import omemo.exceptions directly
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
05ef6d75c3 xep_0384: store sessions to file
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
23ac4a5bff xep_0384: Fix issue when loading session
Slixmpp was never able to load the session as ids would mismatch, thus
unable to decrypt incoming messages.

Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
4b51f117bb xep_0384: Generate XML from encrypted payload received from the lib
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
c355b14f79 xep_0384: loop again until encryption errors are fixed or until we're stuck
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
112bdddf11 xep_0384: Use set instead of list for no_eligible_devices
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
a12dad7241 xep_0384: Fixup; get check for eligible devices out of the loop
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00