A peer-to-peer end-to-end encrypted messaging app. Implements the secure signal protocol for the end-to-end encryption of messages and PGP for identity verification and authentication. This approach not only protects against man-in-the-middle attacks but removes the need for in-person verification like with other E2E encryption apps (WhatsApp, Signal,...) where identity keypairs are generated on a per-device basis and each has to be verified manually in-person.
Learn more at https://habibrehman.com/work/ciphora
- End-to-end encrypted messaging
- Peer-to-peer messaging
- Sending images
- Sending files
- Dark Mode
- Offline messaging
- Local encryption
You are welcome to open pull requests to help implement the features still to do!
macOS 10.10+, Linux, and Windows 7+ are supported (64-bit only).
macOS
Download the .dmg
file.
Linux
Download the .AppImage
or .deb
file.
The AppImage needs to be made executable after download.
Windows
Download the .exe
file.
Needs the Ciphora Server as well (https://github.com/HR/ciphora-server/)
Clone the repos
$ git clone --recurse-submodules https://github.com/HR/ciphora.git
$ git clone https://github.com/HR/ciphora-server.git
Install deps for both repos
$ yarn
For faster dev, run the bundler (webpack)
$ yarn run bundler
In a new tty, run the app
$ gulp
To test the app locally with another app, just run a second instance in a new tty
$ gulp
N.B. on macOS, you may be prompted to allow incoming connections everytime you run it. Unfortunately the only way to make that go away currently is to disable your firewall temporarily.
$ npm run release
After Travis finishes building your app, open the release draft it created and click "Publish".