Enigma
A Simple, Reliable and Efficient Encryption Tool
Install / Use
/learn @baderouaich/EnigmaREADME
Enigma
<!--LOGO--> <!--  --> <!-- <img src="res/branding/EnigmaLogoWolf_860x869.png" width="330"/> --> <img src="res/branding/Logo.png" width="250" /> <!--DESCRIOTION-->A Simple, Reliable and Efficient Encryption Tool <small>(for personal use)</small><br>
<!-- Built to solve 3 problems i had: - huge personnel files take too much space in storage clouds <strong>(Solved by Compression)</strong> - if someone accessed my storage's account, you know. <strong>(Solved by Encryption)</strong> - just can't trust other programs to do the above two for me plus Enigma is a cool name to waste (in memory of Alan Turing) -->CI Status
| Operating system | Build status |
|---------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Ubuntu GCC (x64) | |
| Ubuntu GCC Tests (x64) |
|
| Ubuntu Clang (x64) |
|
| Ubuntu Clang Tests (x64) |
|
| Windows MinGW (x64) |
|
| Windows MinGW Tests (x64) |
|
| Windows MSVC (x64) |
|
| Windows MSVC Tests (x64) |
|
Supported Encryption Algorithms
<small>Asymmetric</small>
- :white_check_mark: <strong>RSA-OAEP-SHA256</strong>
<small>Symmetric Authenticated Encryption</small>
- :white_check_mark: <strong>AES-GCM</strong>
- :white_check_mark: <strong>ChaCha20Poly1305</strong>
- :white_check_mark: <strong>Camellia-GCM</strong>
- :white_check_mark: <strong>Serpent-GCM</strong>
- :white_check_mark: <strong>Twofish-GCM</strong>
- :white_check_mark: <strong>IDEA-EAX</strong>
- :white_check_mark: <strong>Blowfish-EAX</strong>
- :white_check_mark: <strong>TripleDES-EAX</strong>
Extra Tools
- Strong Password Generator
- Hashing Algorithms (
MD2,MD4,MD5,SHA1,SHA224,SHA256,SHA384,SHA512,SHAKE128,SHAKE256,KECCAK224,KECCAK256,KECCAK384,KECCAK512,RIPEMD128,RIPEMD160,RIPEMD256,RIPEMD320,TIGER,WHIRLPOOL,SM3) - XOR Encryption <small>for nerds</small>
- System & Hardware Information (
CPU,RAM,GPU,OS,Kernel...)
UI
- Main Menu
- Straight forward
- Supports the strongest encryption algorithms
- Save Encryptions to a local database (an SQLite3 database which you can export/import)
- Extra Utilities
Compiling & Installing
Linux
git clone https://github.com/baderouaich/Enigma
cd Enigma
# on Linux, run install_sys_deps.sh to install system libraries (X11, wayland..)
bash install_sys_deps.sh
mkdir build && cd build
cmake .. -G"Unix Makefiles" -DCMAKE_BUILD_TYPE=Release
make install -j$(nproc)
Windows
git clone https://github.com/baderouaich/Enigma
cd Enigma
mkdir build && cd build
cmake .. -G"Visual Studio 17 2022" -A x64 -DCMAKE_BUILD_TYPE=Release
msbuild Enigma.sln -property:Configuration=Release,MultiProcessorCompilation=true -maxCpuCount -verbosity:minimal -noLogo
[!TIP] Export a backup of your encryptions database occasionally from menu File -> Export and save it somewhere (e.g, clouds like Google Drive).
<!--- No `sudo` or `Administrator` privileges are needed for installation.--> <!--- All Enigma files will be installed to `/home/$(whoami)/Enigma/` (**Linux**) | `C:\Program Files\Enigma\` (**Windows**) - To uninstall simply remove the installed `Enigma/` directory. Please make sure you export your encryptions from menu `File -> Export`before removing the directory. --> <!-- ## Compiling - <i>Clone Repository</i> : `$ git clone https://github.com/baderouaich/Enigma.git`<br> ### Windows Visual Studio 19 2022 - Extract premake5 binary in `./Premake/Windows/premake-5.0.0-beta1-windows.zip`<br> - Run `./Scripts/Gen-Windows-vs2019.bat` to generate Visual Studio 16 2019 project solution files - Open Enigma.sln and Change configuration to Release or Dist - Build & Run Solution ### Linux GNU Makefile > Bellow steps are equivelent to running script `sudo bash ./Scripts/Linux-Build-Release.sh` - Install latest c++ compiler (gcc or clang)<br> `$ sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa`<br> `$ sudo apt update`<br> gcc: `$ sudo apt install gcc-12 g++-12` or clang: `$ sudo apt install clang-14 clang++-14`<br> - Install necessary libs (opengl, x11, ...)<br> `$ sudo apt install libgl1-mesa-dev libxi-dev libx11-dev libxcursor-dev libxrandr-dev libxcomposite-dev libxinerama-dev libtbb-dev` - Extract premake5 binary<br> `$ tar xvzf ./Premake/Linux/premake-5.0.0-beta1-linux.tar.gz -C ./Premake/Linux/` - Run `$ sudo bash ./Scripts/Gen-Linux-Makefile.sh` to generate project Makefiles - Compile with gcc: `$ make config=release CC=gcc-12 CPP=g++-12 -j$(nproc)` or clang: `$ make config=release CC=clang-14 CPP=clang++-14 -j$(nproc)` <br> - Run Enigma Binary `$ ./Bin/Release-linux-x86_64/Enigma/Enigma` ### MacOS TODO (when i figure out a way to test macos on vm) - Run `$ sudo bash ./Scripts/Gen-MacOS-XCode.sh` to generate XCode project files<br> -->[!NOTE] Backed-up databases do not store any passwords, all data (text & files) are stored as encrypted ciphers (you can see that using tools like sqlite3 browser), which means, even if your backup is compromised, no one can decrypt your data without the encryption password.
License
Features and bugs
If you face any problems feel free to open an issue at the issue tracker. If you feel the program is missing a feature, please raise a ticket on Github. Pull requests are also welcome.
