This is a reference implementation of encrypted chats for small trusted groups.
It runs SSH server in a container that acts as a mailbox for opaque encrypted blobs (145 lines of code).
SSH keys serve as an identity.
Then a local demon syncs and decrypts these blobs into SQLite database (321 lines of code).
I wanted to make crypto as simple as possible and have only widely used and well audited components.
Relay server and sync demon are implemented in standard Python without any extra dependencies.
I've chosen Python as it ships with SQLite client in standard library. Could have used go/rust, but wanted to keep reference implementation as simple as possible with minimal dependencies.
It runs SSH server in a container that acts as a mailbox for opaque encrypted blobs (145 lines of code).
SSH keys serve as an identity.
Then a local demon syncs and decrypts these blobs into SQLite database (321 lines of code).
I wanted to make crypto as simple as possible and have only widely used and well audited components.
Relay server and sync demon are implemented in standard Python without any extra dependencies.
I've chosen Python as it ships with SQLite client in standard library. Could have used go/rust, but wanted to keep reference implementation as simple as possible with minimal dependencies.
I've prepared a quick demo on how to run relay locally and connect two demo users: https://github.com/achempion/tlx#demo
Nice. what the use cases and groups of people you see that are going to use it?
I'll share a quote from a readme
I hope this answers your question.