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
bc85bc7efd
xep_0384: raise NoEligibleDevices all at once
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
8465936715
xep_0384: Handle NoEligibleDevicesException
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
c192c180e1
xep_0384: fix type annotation for bundles
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
85e5d44bb8
xep_0384: encryption: handle MissingBundleException
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
4bdea25179
xep_0384: encryption, return empty payload (doesn't encrypt anything)
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00
fb13027906
xep_0384: Remove custom encode function; use bundle API
...
Signed-off-by: Maxime “pep” Buquet <pep@bouah.net>
2019-01-29 18:05:59 +01:00