Paul Fariello
7df7e05639
Fix unit test after account_new API change
2019-04-17 14:03:14 +02:00
Paul Fariello
5f015e32b2
Add OMEMO policy
...
There is 3 policy:
- manual: OMEMO session are only started manually
- automatic: OMEMO session are only started if they have been started
manually before
- always: OMEMO session are always started unless they have been ended
manually before
Closes #1040 and fixes #1052
2019-04-17 14:03:14 +02:00
Michael Vetter
9574127177
Merge pull request #1066 from paulfariello/hotfix/OMEMO-ensure-muc-is-nonanonymous
...
Ensure MUC is Non-Anonymous before starting OMEMO
2019-04-17 13:58:45 +02:00
Paul Fariello
8c71a74afe
Ensure MUC is Non-Anonymous before starting OMEMO
...
Store MUC anonymous type in mucwin for that purpose.
Fixes #1065
2019-04-17 13:56:27 +02:00
Michael Vetter
2eaec58c41
Merge pull request #1064 from paulfariello/hotfix/omemo-crypto-generation-too-long
...
Alert about long OMEMO cryptographic generation
2019-04-17 10:16:22 +02:00
Paul Fariello
fc8dc328a4
Alert about long OMEMO cryptographic generation
...
Fixes #1055
2019-04-17 09:55:16 +02:00
Michael Vetter
02d0f7fc38
Merge pull request #1061 from paulfariello/hotfix/handle-message-without-id-in-muc
...
Handle message without id in MUC
2019-04-15 10:43:39 +02:00
Michael Vetter
a22ddb3306
Merge pull request #1054 from paulfariello/hotfix/omemo_disconnect_while_not_loaded
...
Don't touch OMEMO cryto keys on disconnect if OMEMO wasn't loaded
2019-04-15 10:42:40 +02:00
Paul Fariello
9c0a395408
Don't persist OMEMO {signed,}prekey cleaning on disconnect
...
We should not remove signed prekey and prekey from persistent storage
when cleaning OMEMO store on disconnect.
2019-04-14 22:03:16 +02:00
Paul Fariello
94a39b2e9b
Handle malformed OMEMO identity.txt
...
If OMEMO identity.txt is malformed just abort loading.
User should be able to call `/omemo gen` again.
2019-04-14 22:03:16 +02:00
Paul Fariello
c33d8e5f0b
Don't unload OMEMO cryto on disconnect if OMEMO wasn't loaded
...
If OMEMO wasn't loaded, removing key would create empty identity.txt
file. Then at load time it would segfault profanity.
Another commit should fix load of malformed identity.txt.
2019-04-14 22:03:16 +02:00
Paul Fariello
cdc0290a59
Handle message without id in MUC
...
Some clients seems to send message without id.
2019-04-14 21:53:26 +02:00
Michael Vetter
0857b5ee4e
Set locale in docker container
...
Install libmicrohttpd which are used for (currently disabled) functional
tests).
Install glibc-locale to get the locales.
Unit test for `prof_whole_occurrences_tests` uses UTF-8 character and
fails without proper locale being set.
2019-04-14 10:39:24 +02:00
Michael Vetter
b40fcf248c
Add omemo_start_sessions to unittest stub
2019-04-14 00:02:17 +02:00
Michael Vetter
9cd5dfbdaa
Move travis from Ubuntu to docker+openSUSE
...
Travis supports only quite old Ubuntu releases.
They don't ship with libsignal-protocol-c and not with a recent enough
libgrcypt.
We could build libsignal-protocol-c manually but for libgcrypt it's more
annoying.
Let us switch to Docker and use openSUSE Tumbleweed, which is rolling
release) and thus have up to date libs.
2019-04-13 23:18:44 +02:00
Michael Vetter
4532735956
travis: Build libgcrypt by hand
...
Ubuntu xenial only has 1.6.x and we need 1.7.
2019-04-13 11:03:25 +02:00
Michael Vetter
f73500ae32
Use xenial on travis
2019-04-13 10:34:44 +02:00
Michael Vetter
c7d7e70b8d
Merge pull request #1056 from paulfariello/feature/omemo_travis
...
Build OMEMO support in travis
2019-04-13 10:27:20 +02:00
Paul Fariello
b2dfdc7509
Add libgcrypt minimum version in configure error log
2019-04-13 00:41:24 +02:00
Paul Fariello
c00ab0351d
Look for gcry_md_extract (libgcrypt >= 1.7.0)
2019-04-13 00:35:28 +02:00
Paul Fariello
991153d8bd
test
2019-04-13 00:27:10 +02:00
Paul Fariello
28334d2955
Build with libcmocka from packages
2019-04-12 22:02:50 +02:00
Paul Fariello
13ae6f4efd
Add manual build of libsignal in travis
2019-04-12 16:42:28 +02:00
Michael Vetter
0f5df134ed
Update travis from Ubuntu trusty to bionic
2019-04-12 16:18:35 +02:00
Michael Vetter
fa8ffe3e56
Update travis
...
Add OMEMO dependencies.
Build with and without OMEMO enabled.
2019-04-12 16:11:27 +02:00
Michael Vetter
17a17a84a9
Merge pull request #1053 from paulfariello/feature/random_resource
...
Add random string at the end of the default resource
2019-04-12 15:58:12 +02:00
Paul Fariello
9714d1d867
Add random string at the end of the default resource
...
When connecting for the first time or when creating a new account don't
use only 'profanity' as default resource.
Some server don't support having 2 connection with same resource. Using
profanity as default lead to deconnections.
2019-04-12 15:49:54 +02:00
Michael Vetter
0dfe61c01c
Revert "Set C99 standard in configure"
...
This reverts commit 7be6158c80
.
2019-04-12 15:36:11 +02:00
Michael Vetter
7be6158c80
Set C99 standard in configure
...
We already use uint_32 from stdint.h which AFAIK is C99.
I seem to remember there is more C99 in the code. Let's explicitly
define it here.
Also fixes build for https://github.com/boothj5/profanity/pull/1053
2019-04-12 12:18:51 +02:00
Michael Vetter
61df0c8e85
Merge pull request #1039 from paulfariello/feature/omemo
...
Add basic OMEMO support.
2019-04-11 10:58:22 +02:00
Paul Fariello
f75e1d7a7b
Support contact name in /omemo fingerprint command
2019-04-10 17:24:56 +02:00
Paul Fariello
ad21021ce7
Fix issue with first encrypted message
...
When decrypting first message with prekey, libsignal wants to remove
used prekey from storage. Return value on success should be 0.
We used to return number of deleted keys. Thus libsignal was considering
we failed to remove the key and we were ignoring plaintext.
2019-04-10 17:24:56 +02:00
Paul Fariello
df648ba959
Try to start sessions with every jid in roster
2019-04-10 17:24:56 +02:00
Paul Fariello
f9b2fdc7db
OMEMO should be written uppercase
2019-04-10 17:24:56 +02:00
Paul Fariello
381d85bcca
Fix build on travis
2019-04-10 17:24:56 +02:00
Paul Fariello
277e8dc901
Add /omemo char command
2019-04-10 17:24:56 +02:00
Paul Fariello
0bc660400b
Automatically starts OMEMO if one identity is trusted
2019-04-10 17:24:56 +02:00
Paul Fariello
25eb138d0b
Rework trusted fingerprint storage
...
Stop using "jid:device_id" keys. And move long term storage to its own
file: trust.txt.
2019-04-10 17:23:46 +02:00
Paul Fariello
4ad6904216
Wait for discovery end to publish omemo devicelist and bundle
...
Add sv_ev_connection_features_received for that purpose
2019-04-10 17:23:46 +02:00
Paul Fariello
edbc15fa2b
Don't build OMEMO by default
2019-04-10 17:23:46 +02:00
Paul Fariello
01e96769c2
Prefix static function with _
2019-04-10 17:23:46 +02:00
Paul Fariello
0f4dd61776
Ensure pre keys are generated if missing from long term storage
2019-04-10 17:23:46 +02:00
Paul Fariello
e69f947547
Rework MUC reflected message filtering
...
Reflected messages can't be filtered by nick only otherwise you might
ignore messages comming from you on another devices.
Consequently we maintain a list of sent messages id in mucwin.
To be sure the id will be correctly reflected we use the origin-id
stanza.
2019-04-10 17:23:46 +02:00
Paul Fariello
e7be3a605b
Add OMEMO in prefs command
2019-04-10 17:23:46 +02:00
Paul Fariello
65b3f82c5f
Fix devicelist notification handler
...
devicelist handler should be kept after trigger
2019-04-10 17:23:46 +02:00
Paul Fariello
898302243e
Add clear_device_list command
2019-04-10 17:23:46 +02:00
Paul Fariello
5cd2b8dc9d
Permanently store pre keys
2019-04-10 17:23:46 +02:00
Paul Fariello
0d0e2b246a
Add support for missing from in bundle iq
2019-04-10 17:23:45 +02:00
Paul Fariello
562302846a
Handle bundle publication error on publish-options
...
We try to reconfigure node and publish again.
If it fails again then we give up.
2019-04-10 17:23:45 +02:00
Paul Fariello
904528b490
Ensure signal context is built on connection
...
We can't keep it between two connection because signal context is
specific to a given account.
2019-04-10 17:23:45 +02:00