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.
- Clone the repository or download
requirements.txt
andvortex.py
to 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_users
file. 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_rooms
file. 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
.
Create a database like the specified on postgres-setup.sql
if you want to use
PostgreSQL, or, to start a WebSocket server run:
./websocket-server.py