Michael Vetter
a2726b6a7d
Apply coding style
2020-07-07 14:18:57 +02:00
Michael Vetter
a4cadf78fa
Revert "Apply coding style"
...
This reverts commit 9b55f2dec0
.
Sorting the includes creates some problems.
2020-07-07 13:53:30 +02:00
Michael Vetter
9b55f2dec0
Apply coding style
...
Regards https://github.com/profanity-im/profanity/issues/1396
2020-07-07 09:43:28 +02:00
Michael Vetter
d2c3aa566b
Merge branch 'master' of github.com:profanity-im/profanity
2020-07-04 17:41:56 +02:00
Michael Vetter
193282a4fc
Merge pull request #1387 from DebXWoody/bugfix/1332-omemo
...
Request Device and Key, when OMEMO is in use
2020-07-04 17:41:20 +02:00
Michael Vetter
bf170d6c91
Merge branch 'omemofix'
2020-07-04 17:38:44 +02:00
DebXWoody
54667c022f
Messages are not shown in ChatSecure
...
In 0.9.x we fixed an issue, because OMEMO devices should be defined in "item"
with id "current". This should work, but it won't work if there is no "current".
If there is no "current" we will just use the first item.
Issue #1384
2020-07-04 17:38:30 +02:00
Michael Vetter
e5ac12afa6
Remove prefs_free_string()
...
It just does a free.
Related to b580b9ef11
2020-07-02 11:34:12 +02:00
Michael Vetter
1224aa414e
Use files_get_account_data_path instead of duplicate code
...
We often had a use case where we want the account specific data dir.
Let's create a function for this instead of doing it by hand each time.
2020-07-01 10:05:45 +02:00
DebXWoody
3232451448
Request Device and Key, when OMEMO is in use
...
Profanity requests the device list and keys for contacts, also when the user
hasn't generated the OMEMO key. If the user has no OMEMO key, there is no need
to request OMEMO information.
Issue: #1332
2020-06-04 19:57:07 +02:00
Michael Vetter
de8975c008
Add and use connection_get_barejid()
...
Instead of connection_get_fulljid() and then creating a Jid from it.
2020-05-25 13:04:19 +02:00
Michael Vetter
2a952cb4c5
Expand omemo error message
2020-02-21 10:30:09 +01:00
Michael Vetter
11b6e1bfa0
xep-0308: enable corrections for outgoing encrypted messages
2020-02-12 08:54:12 +01:00
Paul Fariello
a52e3ea1d8
Add context to autocomplete_with_func and use it for omemo trust command
...
Fix #1068
2020-01-31 10:07:08 +01:00
Paul Fariello
8d1202efbd
Add support for 12 bytes IV
...
16 bytes IV should be used. Some clients can't use it so we should also
support decrypting 12 bytes IV.
Fix #1253
2020-01-20 14:41:18 +01:00
Paul Fariello
84506cbaeb
Use OMEMO for offline MUC members ( #1242 )
2020-01-20 14:28:13 +01:00
Michael Vetter
be13e98fe7
Update my Copyright to 2020
2020-01-03 19:52:31 +01:00
Michael Vetter
46fd7150e5
Add vim modeline
2019-11-13 12:11:05 +01:00
Michael Vetter
ab60a61fb9
omemo: use lower case to log info
2019-08-23 10:18:20 +02:00
Michael Vetter
976c2ec524
Fix typo in OMEMO materials log
2019-08-23 10:14:04 +02:00
Michael Vetter
a9db705faa
Fix potential leak in omemo_untrust()
2019-07-23 08:34:46 +02:00
Michael Vetter
e540ccd50e
Remove dead assignments
2019-07-22 14:27:14 +02:00
Paul Fariello
b110da9a92
Fix various OMEMO memleaks
2019-07-10 17:32:23 +02:00
Michael Vetter
0410802753
Free omemo_ctx.device_list_handler
2019-07-04 10:47:50 +02:00
Michael Vetter
d0047c8376
Dont initialize omemo autocompleter twice
...
We already do this in omemo_init() no need to do it again in
omemo_on_connect().
2019-07-04 10:38:24 +02:00
Michael Vetter
199162b11a
Add omemo_close function
...
We call omemo_init() when starting profanity and should have an
omemo_close() at exit.
For now we free the fingerprint autocompleter in there.
Fixes valgrind:
```
==13226== 24 bytes in 1 blocks are definitely lost in loss record 2,855
of 6,958
==13226== at 0x483677F: malloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==13226== by 0x48AD39: autocomplete_new (autocomplete.c:57)
==13226== by 0x4AB89F: omemo_init (omemo.c:127)
==13226== by 0x42C283: _init (profanity.c:206)
==13226== by 0x42BFF3: prof_run (profanity.c:98)
==13226== by 0x4B25E6: main (main.c:172)
```
Regards https://github.com/profanity-im/profanity/issues/1131
2019-07-04 10:30:56 +02:00
Paul Fariello
f081766913
Mark messages received from a session as trusted
2019-06-25 18:43:15 +02:00
Paul Fariello
a650ecc67d
Add trusted state after OMEMO decryption
...
Use it to print message on red background if not trusted.
2019-06-20 14:29:55 +02:00
Paul Fariello
2604786cb6
Decrypt all incoming OMEMO msg
...
Trust all key as long as it's for reading. This code isn't multithread
safe.
2019-06-20 14:29:55 +02:00
Michael Vetter
29e2d16e14
Free contacts in omemo_start_sessions()
2019-06-19 23:18:45 +02:00
Michael Vetter
0d698d4898
Free OMEMO session store upon disconnect
2019-06-19 23:15:24 +02:00
Michael Vetter
e4b007c9da
Add copyright to omemo code
2019-06-17 10:47:56 +02:00
Paul Fariello
5731a7c472
Remove OMEMO session when untrusting a fingerprint
...
We have to store known_devices in a long term fashion otherwise we might
not be able to delete session if it is remove from device list server
side.
2019-06-07 23:43:40 +02:00
Paul Fariello
04cd1b4409
Correctly handle malformed OMEMO messages
...
Fix #1101
2019-05-23 13:12:02 +02:00
Michael Vetter
722cb5fdc3
OMEMO: Initialize result in omemo_automatic_start
...
This is actually not needed because result will always be set.
hartmann had problems building profanity on OpenBSD and he proposed this
patch.
Let's use it to make the compiler happy there.
2019-04-29 11:32:22 +02:00
Paul Fariello
a6eb0d2c43
Handle missing real jid in OMEMO encrypted MUC
...
This should never happens since we should ensure MUC is Non-Anonymous
before enabling OMEMO.
But we should neither segfault if this happens.
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
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
df648ba959
Try to start sessions with every jid in roster
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
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
5cd2b8dc9d
Permanently store pre keys
2019-04-10 17:23:46 +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
Paul Fariello
075d4cf35b
Don't use glib 2.58 func
2019-04-10 17:23:45 +02:00