BlackWire
- Repo: BlackWire
BlackWire is a cyberpunk, self-hosted secure messaging app.
BlackWire is a signal-based chat. The primary goal is a hacker's secure chat app; the goal is signal without the potential for local device censorship, AI scanning, and reporting. A secondary goal is a UI that wouldn't be out of place in a Willian Gibson world, or Cyberpunk 2077, with similar terminology.
The key components are:
- The identity server, where users are registered. Registration requires an admin to generate an invite code; there are not automated signups and every user on the identity server should be known to the admin.
- A user identity is an Ed25519 key, or potentially a PQC signature algorithm key. A user can be referenced as handle@server, which internally is mapped to a public key.
- A user may have multiple devices, each of which has an encryption key.
A mockup for the identity type (in an unspecified language):
struct Identity { PublicKey ident; String handle; String server; }
Ideally there is an Android, Linux CLI (using ncurses or something similar), and a Linux GUI (using imgui or equivalent) clients, and a Linux identity server.
Questions:
- How does Alice encrypt to Bob with multiple devices?
- How does message sync work across devices?
Source tree:
apk/ - Android app cli/ - Linux app