Comments (6)
The error message you see is not an error message. It is the fallback message sent by the other client (probably Conversations in this case, but could also be a fork) that is displayed in case the message is not targeting the recipient device.
OMEMO is a forward-secure, device-to-device message encryption system. As such, if you have a new device, it will not be a recipient of any previous messages (as it was not a known device before it is first used). This is why you see the fallback displayed instead.
If you think the fallback is confusing or could be more helpful, you need to report this to the sending client, not the receiving client.
from dino.
hmmm thanks for taking the time to explain to me; this protocol is quite the learning curve.
Do I understand correctly? You are saying that this specific wording comes from some outside source? Not this project.
If correct, how do I determine where it comes from?
I did a general web search for the message and found issues in several xmpp client repos. They seem to be largely opened by confused people like myself. Or are related to general implementation of OMEMO. I was unable to glean any useful information from them.
from dino.
The message will come with an encrypted part, if your client can't decrypt it (for some reason) the message also has a clear text part that your client can show to you. And that tries to explain to you a bit about the issue.
Eg. You joined an encrypted group or an 1:1 chat with a client that can't do OMEMO.
Now, if you use Dino, hope you are up to date and everything :), but Dino supports encryption, so it signals that your chat partner didn't encrypt with your key for some reason.
from dino.
The error message you see is not an error message. It is the fallback message sent by the other client (probably Conversations in this case, but could also be a fork) that is displayed in case the message is not targeting the recipient device.
OMEMO is a forward-secure, device-to-device message encryption system. As such, if you have a new device, it will not be a recipient of any previous messages (as it was not a known device before it is first used). This is why you see the fallback displayed instead.
If you think the fallback is confusing or could be more helpful, you need to report this to the sending client, not the receiving client.
Since Dino can recognize that this is an OMEMO message that it cannot decrypt, maybe it should render something other than the fallback text? E.g. "this message is encrypted, but not to this device".
from dino.
Conversations has Message was not encrypted for this device.
from dino.
The fallback body is generated here: https://codeberg.org/iNPUTmice/Conversations/src/branch/master/src/main/java/eu/siacs/conversations/generator/MessageGenerator.java#L27
If you have ideas for improving the text, feel free to open an issue at https://codeberg.org/iNPUTmice/Conversations/issues
Since Dino can recognize that this is an OMEMO message that it cannot decrypt, maybe it should render something other than the fallback text?
While technically possible, it would be non-compliant behavior
When an OMEMO element is received, the client MUST check whether there is a element with an rid attribute matching its own device ID. If this is not the case, the element MUST be silently discarded.
Although I'm not aware of such a deployment in practice, one might want to use OMEMO only for optional authenticity validation and not for encryption. In such a case, the <body>
of the message would contain the original plain text of the message and discarding it would be counterproductive.
There are also valid reasons to send OMEMO messages to only a subset of recipient devices (e.g. to finish a session setup). Those messages would not have a <body>
and thus currently wouldn't be displayed in Dino.
As the messages from Conversations also have a XEP-0380 tag, we could support that as an indicator for incoming messages to actually be encrypted and thus to not display the <body>
as sent from the remote entity, but instead show a more helpful error messages.
from dino.
Related Issues (20)
- APK files might get corrupted on upload HOT 1
- Feature request: better context menu support
- UI refinement: tooltip for the button that brings up "omemo key management"
- the button for showing account info should be an icon of a person instead of three vertical dots HOT 3
- Unable to recevie files through IBB
- MAM for MUC is not syncing MUCs history properly HOT 1
- Enable echo cancellation during calls HOT 7
- can't get voice/video calls between two dino on postmarket devices HOT 2
- dns-over-tls in Dino HOT 2
- Segmentation fault on KDE when hovering the icon taskbar HOT 2
- HTTP upload functionality not detected if http upload hostname starts with "xmpp-"
- Segmentation fault in xmpp_message_archive_management_NS_VER
- HiDPI: Scaling makes Emojis huge HOT 1
- Sent message not synced (MAM sync problem?) on other device HOT 3
- A way to make dino open http links in a chosen web browser. HOT 6
- Dino 0.4.3 fails to compile after Vala-c update to 0.56.17 HOT 7
- XEP-0174: Serverless messaging support HOT 1
- Feature request: Phosh `feedbackd` vibration support HOT 2
- [Flatpak] Does not run without `sudo -i -- ...`
- org.gnome.Platform branch 44 is end-of-life HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. ๐๐๐
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google โค๏ธ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from dino.