HMessager is a decentralized messaging app for Android based on the Signal Protocol and build with Jetpack Compose.
This project is under development and not ready for use.
To setup a server you just have to run the script server.py
located in the server
folder.
You can run it on a public IP or in a private network and then do port-forwarding.
The code is pretty straightforward, it's just a simple Websocket server that listen for connections and then forward the messages to clients based on hashed identity if they are connected or store message locally if not.
Then in HMessager, go to the settings screen and enter the IP and port of your server.
To create a conversation with someone, you have to scan his QR code and he must scan yours.
The X3DH and the double ratchet algorithm are used to provide end-to-end encryption.
All your conversations, settings, keys and messages (including medias) are stored in the files storage of the app inaccessible to other apps and you. Their are also encrypted with different keys derived from a password that you have to enter when you open the app.
The first time you open the app, you need to choose your password, this password will then be used to derive a master key. If you forget your password, you will lose all your data and it's impossible to recover them so be aware of that.
Currently group conversations are not supported, it's only possible to chat with one person at a time.
Here an exemple of a conversation with the app.