-
-
Notifications
You must be signed in to change notification settings - Fork 180
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Feature/omemo #1039
Feature/omemo #1039
Conversation
5ce153e
to
6a3113c
Compare
They are close to release as this sounds like a very prospering draft: profanity-im/profanity#1039 Cheers
They are close to release as this sounds like a very prospering draft: profanity-im/profanity#1039 Cheers
To build this PR with profanity i had to remove |
@kaffeekanne that's an issue. It should build without error. Can you provide a log of failing build? |
Sure:
Steps to reproduce:
Do you set your build flags somewhere outside that Also i |
@kaffeekanne I have observed the same behaviour with |
@NiklausHofer ok, that did the trick for generation. Now i get the feedback, that everything has been created. Starting a OMEMO-Chat segfaults profanity. |
@kaffeekanne I am getting this as well, yes. See my comment in the bug report: #658 (comment) |
@kaffeekanne can you tell which version of libsignal you have? I suspect it's 2.3.2. Currently the PR only support 2.3.1. |
Concerning the |
|
Sadly libsignal broke the api between 2.3.1 and 2.3.2 😒 |
Building |
I am using 2.3.1 (signalapp/libsignal-protocol-c@aac6c68) though and as mentioned I am also getting the segfault. |
@kaffeekanne just wait monday so I can add support for 2.3.2. @NiklausHofer yes your issue doesn't seems to be related to libsignal. |
@kaffeekanne 61ec496 should add support for both 2.3.2 and 2.3.1 |
@NiklausHofer 35a11bf should fix your segfault. |
I can compile with |
You could give a look at logs and xmlconsole. I'll have to add way more logs to debug this kind of issue. |
83807c6
to
094855d
Compare
I think |
20fb37d
to
be02c1a
Compare
We can't keep it between two connection because signal context is specific to a given account.
We try to reconfigure node and publish again. If it fails again then we give up.
devicelist handler should be kept after trigger
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.
Add sv_ev_connection_features_received for that purpose
Stop using "jid:device_id" keys. And move long term storage to its own file: trust.txt.
bd6b6f5
to
f75e1d7
Compare
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.
Basic OMEMO functionality merged! @paulfariello some of the tasks in the first comment are unchecked. You you reply down here which ones and why we chose to leave them out for now? Maybe we can also create individual issues for the one that make sense. |
Good job @paulfariello! @jubalh, sorry, I didn't have time to fully review the code. I will do it separately from the pull request. |
Add native support to OMEMO
TODO:
add support for old gcm tag format parsing(not being done for now since we are not aware of any client using it)add support for signal pre v3 encryption(not being done for now since we are not aware of any client using it)publish-options
is supported by server before attaching such node to queryprecondition-not-met
error forpublish-options
To test this PR you must install:
On first run, ensure to create OMEMO cryptographic materials:
To start an omemo session you must start it twice (issue about handling device_list_request response):
Then you must trust some fingerprint: