-
-
Notifications
You must be signed in to change notification settings - Fork 763
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
"Error: Identity key changed" when sending a second OMEMO message #1242
Comments
In src/converse-omemo.js line 566:
|
Further more:
If i change to:
messages are encrypted (i can see that i jabber log). So I am not really sure if this is the right way to solve this? |
So are you saying that checking for If so then the problem seems to be (in part at least) that an identify key with an empty string as value had been saved, which is why your change seems to fix it. The question now is why it got that value in the first place and whether we should be concerned about it. What browser are you using? Also, could you please check what happens when saveIdentity is called and whether the values look correct there? Specifically important to know is whether a proper value (i.e. not |
Error: Identity key changed
when sending a second OMEMO message
Error: Identity key changed
when sending a second OMEMO message
I am using
|
I think this might be causing the issue here. At least in part. It doesn't really make sense to try and use OMEMO when that box is unchecked. An established OMEMO (libsignal) session is supposed to be permanent, which means that it needs to get stored somewhere when you log out. However when the "This is a trusted device" checkbox is unchecked, then your storage gets cleared when you log out. This means you'll never be able to decrypt messages from before you logged in. Additionally, OMEMO establishes dependencies between different stores in localStorage and sessionStorage. When first running as a trusted device, and then as an untrusted device, the stores get mixed up and I get There are ways to fix this, for example by clearing all browser storage before logging in when "This is an untrusted device" is unchecked, or by giving all the stores different root keys. However, simplest is just to disable OMEMO entirely when that checkbox is unchecked (done in c8dc7b6), which in any case makes sense given the first point raised. |
I'm not sure if I should create another issue or post here but I have the exact same problem as stated in this issue: only first message can be sent encrypted and afterwards input box gets grey and "Identity key changed." error occurs.
Could it maybe be wrong configuration of XMPP server (latest version of ejabberd) or maybe it's connected to the fact that this is being tested locally and self-signed certificates are being used or is it something entirely else? |
@Bajchos you're on Converse 5.0.1 right? |
@licaon-kter |
@Bajchos Are you using your browser in incognito mode? |
@jcbrand Actually I tried both normal and incognito mode (Chrome and Firefox), tried also with clearing session and local storage, nothing helped. |
@Bajchos: Can you please register an account conversejs.org (you can only do so on https://conversejs.org through Converse.js itself which runs there) and then check whether you can reproduce this issue on that XMPP server? |
@jcbrand
|
I gave up on conversejs and wrote my own client. |
I get Used scripts: |
Any update on this issue @jcbrand |
@nikita-cerejo you are seeing this issue with latest 8 release or git HEAD code? |
I faced this issue on v8.0.2dev |
@nikita-cerejo: Where/how are you using Converse? The latest version can be tested here: https://conversejs.org/trunk/fullscreen.html Can you reproduce the issue there? |
I am using github conversejs master branch, downloading the zip and using it via docker on localhost. |
@nikita-cerejo: So you're building Converse yourself with Can you please update the HTML file you're using (I'm guessing Then check your browser console for errors and post it here. Thanks. |
Yes I have replaced Below is the screenshot of the error I am getting. |
Please use the unminified version of libsignal as well ( https://conversejs.org/3rdparty/libsignal-protocol.js Then, when you get the error, please click on the red triangle (just before |
@jcbrand I tried the same with v9.0.0 still getting the same error. Let me know if any more information needed. |
@jcbrand Were you able to regenerate this issue at your end? Any update on it? |
No, I haven't reproduced it. I've mainly been looking at the code based on the traceback you've sent. Have you read this comment? #1242 (comment) Please set Maybe there's something in there that shows what's going on. If that doesn't work, we can try to schedule a video call some time. |
Thanks @jcbrand I am able to send encrypted messages when I changed my virtualhost domain from
|
@nikita-cerejo: Ok, that sounds like a different issue. Can you please create a new issue for this? You can just copy/paste the same data from this comment into it. Sounds to me like Converse should be fetching the OMEMO bundle for user A, but isn't. |
Sorry, could not send the message due to an error. Identity key changed
This is a trusted device
)I am trying this all day and every time it is the same. I used latest
libsignal-protocol.js
.So as far as i can see Omemo does not work on converse.js. Hwo to debug this to checkout why?
Want to back this issue? Post a bounty on it! We accept bounties via Bountysource.
The text was updated successfully, but these errors were encountered: