_______________________________________________________________________________________
______ __ _______ __
| |.----.--.--.-----.| |_.-----.----. | __|.-----.----.--.--.|__|.----.-----.
| ---|| _| | | _ || _| _ | _| |__ || -__| _| | || || __| -__|
|______||__| |___ | __||____|_____|__| |_______||_____|__| \___/ |__||____|_____|
|_____|__|
_______________________________________________________________________________________
The Cryptor Web App and service enable encryption and decryption of sensitive private messages. The service is designed to run on a local, private network although it is safe to run in a public hosted environment.
Encrypted files or passwords are not saved by the backend service, and always stay safely in the browser. Encrypted
messages are saved in your downloads folder on the device running the application. It is also important to note
that the passphrase never leaves the browser, so it cannot be hacked by man-in-the-middle attacks.
Hosting the service on your private network also reduces the risk of phishing attacks.
You can preview the hosted web app here.
NOTE: this app is changing rapidly and won't be stable until we come out of beta.
The easiest way to run Cryptor service without having to compile is by running the pre-compiled Docker image.
It requires running Docker on your local machine, but this is easy on mac or windows.
See the Docker folder for shell scripts to run the container: ./run.sh
then point your browser to the app.
It's also possible to attach to the container, run the post-install script and modify the html or server source (NOTE: you need github access for this).
- Intel: macOS Sonoma Version 14.6
- Silicon: macOS Sequoia Version 15.1
- brew
- cmake
- clang++ Apple clang version 16.0.0 (clang-1600.0.26.4)
- spdlog
- openssl@3
- cpp-httplib
- clang-format (optional)
- google test framework gtest
- g++ version 11 or 12.
- cmake
- spdlog (compiled with make install)
- openssl@3
- cpp-httplib
- clang-format (optional)
- google test framework gtest
Here is an install script that should work on Debian 12 or Umbutu 22:
sudo apt-get update && apt-get upgrade -y \
&& apt-get install -y libspdlog-dev libcxxopts-dev libcpp-httplib-dev openssl spdlog cxxopts
The server requires cert.pem and key.pem files to enable TLS. You can create them using openssl.
Easiest way to build the application is to run the mk
shell script like this:
./mk init build
After a successful build, you can run the application like this:
'./build/cryptor --base $root/html
Or, like this: ./mk run
After a successful build, you can run the unit and integration tests like this:
'''bash ./build/unit ./build/integration '''
Or, like this: ./mk test
A list of issues is available in the crypto repo. Feel free to add any issues you find, or any suggestions for enhancements.
Most of the logic for this app was based on a library under the MIT license called portable-secret written by Marco Primi.
The portable-secret library has a Copyright (c) 2022 Marco Primi. Thanks for your great work Marco!