dino
dino copied to clipboard
No OMEMO offered even though contact uses it
For one of my contacts, dino offers no OMEMO encryption (and shows no OMEMO key in "contact details"), all the while Conversations can send OMEMO-encrypted messages to that contact just fine. dino is also happy to received and decrypt OMEMO-encrypted messages from that contact, it just refuses to use encryption for outgoing messages.
I guess you need some additional debug information for this, but have no idea how to collect that information...
It seems that more generally speaking, dino is extremely slow at noticing OMEMO keys of my contact. Conversations by now sees both keys (laptop+phone) of my contact, but dino still insists that there is only one key and doesn't show OMEMO messages my contact sends that are encrypted with the other key. I did restart dino, to no avail.
EDIT: After another restart, at least dino now shows the messages my contact sends on his laptop. It doesn't show his 2nd key though, so I still cannot send him messages. It seems like Dino's OMEMO key handling is still rather fragile...
I am seeing messages like this in the log:
Nov 07 11:21:13 r-thinktop im.dino.desktop[10236]: NS URI eu.siacs.conversations.axolotl not found.
Nov 07 11:21:13 r-thinktop im.dino.desktop[10236]: NS URI http://jabber.org/protocol/pubsub#event not found.
but I can't tell if that's even about the same contact.
You can check what Dino currently "knows" about an omemo contact by running
sqlite3 -header -column ~/.local/share/dino/omemo.db "select * from identity_meta where address_name = '%jid%'"
You can log omemo related xmpp traffic to the terminal by using the switch
--print-xmpp="....list|....bundle|message.encrypted.payload"
The NS URI not found
messages seem to be a bug, would be great if you can run dino using a debugger, add a breakpoint at namespace_state.vala:59
and do a stack trace at the point it halts.
Might be related: https://github.com/dino/dino/issues/112
I always need to wait for the contact to go online and them restart dino. The problem is, that then I cannot send other contacts offline messages, if they went offline till then.
also interesting about this bug is.
I can send an omemo encrypted message with conversations to a contact of mine. that message gets encrypted and synced into dino but, still i cannot activate omemo in dino for that contact.
the query above shows no result for that contact, and theres also no omemo keys in the contact details within omemo.
iit seems that this https://github.com/dino/dino/issues/112#issuecomment-329333036 could be a very good thing todo since source of all seems to be that dino doesnt correctly gets all the keys it needs.
my server: Prosody 0.9.12 contact server : Prosody dont know which version (dismail.de) conversations: 1.22.1 dino-git r198.f6ac5bb-1 ( arch repo)
client of my contact: chatsecure
have the same also with multiple other useres. it seems like i cannot send omemo encrypted messages to anyone i have not written to with dino while they were online once..
Since some days it happens that for one of my contact I cannot send him encrypted messages anymore. Normally this was fixed if he is online and I restart dino, but this doesnt happen anymore. We are both using conversations.im servers, he is using the conversations app. In the contact details one omemo fingerprint is listed. He can send me encrypted messages, I cannot send him anymore.
Still a problem with current master.
I encountered the same problem. My contact in dino showed only one old key and none of the new ones.
Dino version: 4a3cef89fd7ebf15bfc6a108ac31f36e469cf80a
Thanks to https://github.com/dino/dino/issues/206#issuecomment-342455205 I looked in the omemo database:
identity_id address_name device_id identity_key_public_base64 trust_level now_active last_active
----------- ---------------- ---------- -------------------------------------------- ----------- ---------- -----------
1 [email protected] 1826948132 BYArPDiCfo8Xz3kl/zF4auh+2bNgHTkMAjuIy8LEXdFe 2 1 1577267230
Somehow the key was still marked as active. After deleting this entry with
sqlite3 -header -column ~/.local/share/dino/omemo.db "delete from identity_meta where address_name = '[email protected]'"
and restarting dino, all current keys were received and the encryption works now:
identity_id address_name device_id identity_key_public_base64 trust_level now_active last_active
----------- ---------------- ---------- -------------------------------------------- ----------- ---------- -----------
1 [email protected] 44480768 BWAo5xMSbsjCDjW9JxPlfJqkfQqeKizwqho8o/RJ8vAt 1 1 1577521510
1 [email protected] 966748987 BVJyh+NBsBMPfddrE52iYeK6Lbbc4zOZ3dzy8JALZvVt 1 1 1577521510
1 [email protected] 1826948132 BYArPDiCfo8Xz3kl/zF4auh+2bNgHTkMAjuIy8LEXdFe 1 1 1577521510
1 [email protected] 99240223 Bca70y/mdZwpzERZLZPgnvkVWIBZ6ZD2Vr4guhTXPUJd 1 1 1577521510
Can someone confirm this ?
I have a similar issue. I can receive and decrypt messages ok, but not send them encrypted. The key is marked as inactive, even after I trusted it manually. Deleting the key from the database and restarting dino didn't help and shows the same result:
1 [email protected] 1833596376 BSxFgGdobJsPRmsSZUNrKALdG4pTayeSFfv7vSdFE1sz 1 0
After trusting it manually: 1 [email protected] 1833596376 BSxFgGdobJsPRmsSZUNrKALdG4pTayeSFfv7vSdFE1sz 0 0
Same issue here. A = some client (e.g. profanity) B = dino I can send from A->B using B's fingerprint. B lists A's fingerprint (which can be trusted), albeit as "inactive". The UI doesn't offer an option to manually "activate" A's fingerprint. This can be changed manually in the sqlite database, however. After this, I can send from B to A.
Same issue as previous commenters. Had to manually set new keys to "active" in the database in the end.
Edit: this didn't work for long. The keys are marked as inactive again shortly after. :/
Same issue. I set sqlite3 -header -column ~/.local/share/dino/omemo.db "update identity_meta set trust_level =1, now_active=1, last_active=xxxxxx where device_id = xxxxxxx;"
and restarted. It works now, let's see for how long.