SMOC - is messenger with end-to-end (kind of) feature, also using safe method at sending new messages to other people - fernet.
*to run released binary you don't need to have installed python, or modules (PyPi libaries)
- macOS (darwin), Linux, Termux, Windows
- Python, 3.13 as minimum recomended (for Termux:
pkg install python3) - PyPi (pip) "cryptography" and "paramiko" libraries installed (for Termux: pip is broken, to install all required libs, run
sh termux-install.sh)
- Make sure you meet all basic requirements to run (Requirements to run)
- Install pyinstaller:
- For Termux:
apt install pyinstaller - For Linux:
pacman -Sy pyinstallerorapt install pyinstaller - For macOS (darwin):
brew install pyinstaller(make sure brew is installed, if not - install trough their offical website)
- For Termux:
- Run
python3 build.py(or use your own python enviroment)
Documentation (will be completed soon)
When creating chat
- Codename of chat: used for syncing, and sorting chats
- Password for online syncing: this password will be used to decrypt/encrypt new messages on clients (messenger). This password must be shared to read new messages (if using mode Sync)
- Password for local chat: uses for decrypting local chat. Only for safety about info ({chat name}/chat.smoc file)
How chat work
- Message encrypts (in this format {username}: {message itself}) in Fernet, using internal library "smessage"
- Then, client connects to the server by entered data, then executes ~/SMOC-Server/server.py (using python) with args "send"
- On server, it writes encrypted message by this form SMOC-Server/main/{codename of chat}.{username supposed to read}
- When another client, syncing chat, by it settings connects to server, executes server.py and checks if there's any messages unread by {codename}.{username}
- If client finds there's a unread one, it will decrypt it, then put into local chat