Skip to content

baderouaich/Enigma

Repository files navigation

Enigma

MIT License Build Status Static Analysis Status Docs

A Simple, Reliable and Efficient UI + CLI Encryption Tool

Supported Algorithms

All Authenticated Encryption

  • AES-GCM (Recommended)
  • Twofish-GCM
  • TripleDES-EAX
  • Blowfish-EAX
  • IDEA-EAX
  • ChaCha20Poly1305

Available Tools

  • Password Generator
  • Hashing Algorithms (MD2, MD4, MD5, SHA1, SHA224, SHA256, SHA384, SHA512, SHAKE128, SHAKE256, KECCAK224, KECCAK256, KECCAK384, KECCAK512, TIGER, WHIRLPOOL)
  • XOR Encryption
  • System & Hardware Information

Enigma CLI

Usage:
  Enigma [OPTION...]

  -e, --encrypt                 Encrypt operation
  -d, --decrypt                 Decrypt operation
  -a, --algorithm [AES, Twofish, TripleDES, Blowfish, IDEA, ChaCha20] Encryption/Decryption algorithm (default: AES)
  -p, --password arg            Encryption password
  -t, --text arg                Text to Encrypt or Decrypt (base64)
  -i, --infile arg              Input File to Encrypt/Decrypt
  -o, --outfile arg             Output File to Encrypt/Decrypt
  -s, --save                    Save encryption record to database
  -l, --list                    List saved encryption records from database
  -h, --help                    Displays help message
  -v, --version                 Displays Enigma's version
      --check-for-updates       Check for new version releases
  • Example encypting a text with AES-GCM:
$ ./Enigma --encrypt --algorithm=aes --password="My@pa$$W0rd" --text="my important data securly encrypted!"
output: AaxsjxUSbOmTIjmT90WrYlqg7I7dFY7e+OqPaX20DusVnBLpkg4LW0f/fWpKES8gzFb1SrglpVt0goGfijzVHx+ULjuT
  • Example decrypting a text with AES-GCM:
$ ./Enigma -d -p "My@pa$$W0rd" -t "AaxsjxUSbOmTIjmT90WrYlqg7I7dFY7e+OqPaX20DusVnBLpkg4LW0f/fWpKES8gzFb1SrglpVt0goGfijzVHx+ULjuT"
output: my important data securly encrypted!
  • Example encypting a file with AES-GCM:
$ ./Enigma -e -a AES --password "My@pa$$W0rd" --infile="/home/user/Desktop/Data.txt" --outfile="/home/user/Desktop/Data_encrypted.txt.enigma"
  • Example decypting a file with AES-GCM:
$ ./Enigma --decrypt --password="My@pa$$W0rd" --infile="/home/user/Desktop/Data_encrypted.txt.enigma" --outfile="/home/user/Desktop/Data_decrypted.txt"


Enigma UI

Compiling

  • Clone Repository : $ git clone https://github.com/baderouaich/Enigma.git

Windows Visual Studio 19 2022

Bellow steps are equivelent to running script ./Scripts/Windows-Build-Release.bat

  • Extract premake5 binary in ./Premake/Windows/premake-5.0.0-beta1-windows.zip
  • 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)
    $ sudo add-apt-repository ppa:ubuntu-toolchain-r/ppa
    $ sudo apt update
    gcc: $ sudo apt install gcc-12 g++-12 or clang: $ sudo apt install clang-14 clang++-14
  • Install necessary libs (opengl, x11, ...)
    $ sudo apt install libgl1-mesa-dev libxi-dev libx11-dev libxcursor-dev libxrandr-dev libxcomposite-dev libxinerama-dev libtbb-dev
  • Extract premake5 binary
    $ 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)
  • 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

License

MIT 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.