Warning
This is a proof of concept, it was not audited!
Vortex is a lightweight, end-to-end encrypted chat application that ensures message authenticity and confidentiality. It offers transport agnosticism, supporting both PostgreSQL and WebSocket, all in less than 600 lines of Python code.
Setup and Usage
- Clone the repository or download
requirements.txtandvortex.pyto an empty directory. - Install python dependencies:
pip install -r requirements.txt
- Generate your public/private key pair:
./vortex.py --generate-keys
- Share your public key (
id_rsa.pub) with your contacts and ask them to share theirs with you. - Put your contacts' public keys in the
known_usersfile. E.g.:# Work contacts: ssh-rsa <public key> John ssh-rsa <public key> Ofélia HR # Family: ssh-rsa <public key> Mother ssh-rsa <public key> Father ssh-rsa <public key> Joana - Optionally, add rooms to the
known_roomsfile. E.g.:# Work: Jonh, Ofélia HR # Family: Joana, Mother, Father - Run:
Where
./vortex.py <connection-uri>
<connection-uri>is either a PostgreSQL connection string or a WebSocket:postgresql://user:password@localhost:5432/vortex,ws://localhost:8080,wss://localhost:8080.
Setup Server
Create a database like the specified on postgres-setup.sql if you want to use
PostgreSQL, or, to start a WebSocket server run:
