Commit Graph

5208 Commits

Author SHA1 Message Date
JC Brand
18c7ba4ad8 Bugfix. Need to first create bookmark
Otherwise we don't include it in the stanza.
So if an error occurs, remove the bookmark again.
2018-08-31 11:24:05 +02:00
JC Brand
bb6d4f75bf Fade out enter/leave messages sooner and add check 2018-08-31 10:36:51 +02:00
JC Brand
86a0fa280b Call clearSession when disconnecting
So that the chatboxes get closed/removed.

Also, don't render the login form when we're just reconnecting.
2018-08-31 10:17:24 +02:00
JC Brand
38bfbbf61f New builds 2018-08-30 23:14:23 +02:00
JC Brand
1294d682e1 Automatically remove leave/enter and enter/leave messages
after 10 seconds.
2018-08-30 23:13:28 +02:00
JC Brand
4b5b517390 Update bookmark form with proper bootstrap markup 2018-08-30 22:32:16 +02:00
JC Brand
a44f38329c Only create bookmark after succesfully setting it on the server 2018-08-30 13:39:50 +02:00
JC Brand
34541d6410 Add check before resetting 2018-08-30 13:39:33 +02:00
JC Brand
3ecb906dbd New builds 2018-08-29 13:56:23 +02:00
JC Brand
f947bcc4b1 Also notify if the chat is not visible in the page. 2018-08-29 13:56:18 +02:00
JC Brand
33c2d4614f Remove unused method 2018-08-29 10:33:43 +02:00
JC Brand
f72ace506f Replace the onChatBoxAdded override with event handlers 2018-08-28 15:08:38 +02:00
JC Brand
934e86536e Remove another vestige of OTR 2018-08-28 14:58:07 +02:00
JC Brand
21178add98 Remove converse-otr 2018-08-27 22:09:22 +02:00
JC Brand
4f8b5a4022 Use built-in crypto instead of CryptoJS 2018-08-27 21:54:29 +02:00
JC Brand
11cc41d3a3 Merge branch 'converse-omemo' 2018-08-27 21:14:03 +02:00
JC Brand
da68ea9c9f New build 2018-08-27 21:02:31 +02:00
JC Brand
1dc1c1f98a Properly generate and render fingerprints 2018-08-27 21:02:31 +02:00
JC Brand
c142437320 Create new message for correction if the original is not available
Fixes #1172
2018-08-27 21:02:31 +02:00
JC Brand
3e7c8655ad Add a <store> hint to OMEMO messages.
updates #497
2018-08-27 16:44:19 +02:00
JC Brand
15a4bcd11e Add method to generate missing prekeys
When receiving a PreKeySignalMessage, then a prekey has been chosen and
should now be removed from the list of available prekeys in the bundle,
so that a different device doesn't choose it as well.

AFAICT, libsignal removes the prekey, so it's then up to us to
regenerate it and republish our bundle.

updates #497
2018-08-27 16:43:58 +02:00
JC Brand
3d015c787f Extract common code into helper functions 2018-08-27 10:41:54 +02:00
JC Brand
ea5144c7e5 Refactor the OMEMOStore to not duplicate prekeys
Before these changes, prekeys were stored in two places, one place that
converse-omemo accessed and one that libsignal accessed and when
libsignal deleted a prekey the other store wasn't updated.

Now we let the methods called by libsignal store/remove prekeys (and the
signed_prekey) in the same place as used by the code in converse-omemo.
2018-08-25 23:22:18 +02:00
JC Brand
5406e9739c Trying to fix timing issue on Travis 2018-08-25 01:04:17 +02:00
JC Brand
9e240c5647 Increase timeouts to try and avoid timing issues on Travis 2018-08-25 00:43:05 +02:00
JC Brand
7959855891 Move publishBundle to OMEMOStore
updates #497
2018-08-24 16:32:40 +02:00
JC Brand
71e418fab6 Bugfix. Not stored as base64 2018-08-24 16:27:37 +02:00
JC Brand
d784e4a73a Show an icon to indicate that a message is encrypted
updates #497
2018-08-24 16:26:54 +02:00
JC Brand
4c5ea34acf New build 2018-08-24 15:39:14 +02:00
JC Brand
3eb5e93f81 Finally able to send a message and decrypt it on the other side
Updates #497
2018-08-24 14:40:48 +02:00
JC Brand
2dd5976f65 Fix bugs in the OMEMO store and in the decrypt method.
Updates #497
2018-08-24 13:17:32 +02:00
JC Brand
9e56858aae Remove unnecessary promise wrapper 2018-08-24 10:51:59 +02:00
linkmauve
5693350883 Keep multiple whitespace characters as is
Currently multiple consecutive spaces or tabs were being transformed into a single space, rendering some ASCII art unreadable.  This patch fixes it by giving each message text the CSS behaviour of <pre/>.
2018-08-24 09:36:00 +02:00
JC Brand
7bb7f8f4dc Can now successfully send an encrypted stanza
updates #497
2018-08-23 14:03:16 +02:00
JC Brand
c1123fd6a0 Used wrong registration id and identity key when building a session
updates #497
2018-08-23 14:03:12 +02:00
JC Brand
058905134e Serialize all array buffers to base64 before storing
Array Buffers can't be JSON serialized as is.

updates #497
2018-08-23 14:03:09 +02:00
JC Brand
d4ccf20e7f Update modals when devices get added
updates #497
2018-08-23 14:03:06 +02:00
JC Brand
b17579501f Provide error output to user when encrypted message can't be sent
updates #497
2018-08-23 14:03:00 +02:00
JC Brand
7692a46e17 Nonsencical to wrap a promise in try/catch 2018-08-23 14:02:53 +02:00
JC Brand
069d4a9fae Remove unnecessary promise wrapper
updates #497
2018-08-23 14:02:50 +02:00
JC Brand
fd639e2da6 Remove the active flag for devices.
Instead of setting `active` to `false`, we remove the device entirely
(unless its the current device).

Doing it this way means more fetching of bundles for devices that
disappear and then reappear from a user's devicelist.

However, there might be caching invalidation concerns with just reusing
a cached bundle for a device id that disappeared and then reappears.

Additionally this change simplifies the showing of a contact's device
fingerprints in the modal, since we don't have to take active/inactive
into consideration.

updates #497
2018-08-23 14:02:43 +02:00
JC Brand
781ad3d643 Update to use _converse.config 2018-08-23 09:49:51 +02:00
JC Brand
5e9d6c3d6a Merge branch 'master' into converse-omemo 2018-08-23 09:45:13 +02:00
JC Brand
9f8d30dde3 Create a new store, _converse.config to store trusted
The `_converse.session` store gets cleared after logout, but we want the
`trusted` flag to persist after logout.

Also update the documentation no that the `storage` config option has
been removed in favor of `trusted`.
2018-08-23 09:41:39 +02:00
JC Brand
62cecbec5f Merge branch 'master' into converse-omemo 2018-08-22 23:41:36 +02:00
JC Brand
76a2192afa Singleton models need an id attribute via its getter
Setting it on the model itself is not sufficient and then causes
changes which should be type `update` become type `create`, causing
multiple versions of the model... resulting in chaos.
2018-08-22 23:39:42 +02:00
JC Brand
9ed2ad631a Store whether this is a trusted device in _converse.session
So that it persists across page loads. Otherwise storage falls back to
the default, causing records to be in both local- and sessionStorage.

Additionally, update singleton models to have the 'id' available as a getter.

Otherwise multiple records gets stored in browserStorage, causing random
results being returned.
2018-08-22 23:36:54 +02:00
JC Brand
f01b6c29c8 Collections shouldn't have id attributes
Otherwise the collection's items aren't fetched but it's own properties.
The way to persistently remove items from a collection is to destroy
them, NOT to call `remove`.
2018-08-22 19:26:38 +02:00
JC Brand
5ded22207b identity_key should be stored as base64, not array buffer 2018-08-22 18:32:31 +02:00
JC Brand
fa0e7aeff5 Updated so that own device is properly created and published
Based on live testing. Updated tests accordingly.
2018-08-22 18:16:36 +02:00