Skip to content

Repository files navigation

Enkryptit!


🔵 Human-written

Enkryptit Version License

Enkryptit! is a Rust-written cli-tool / interactive manager for file and folder encryption.

Warning

This project is currently a work in progress. It is not audited for production security.

Quick Start

Prerequisites

  • Rust: 1.75+ is recommended.
  • A working native credential store (e.g., libsecret on Linux, native Keychain on macOS).

Build and Launch

# Clone the repository
git clone https://github.com/VRAM-RAM/Enkryptit
cd Enkryptit

#Build :
cargo build --release

#Install in your current path :
cargo install --path .

Note

The compilation time may be long, since I activated an agressive release profile.

Usage & Commands

Enkryptit! can be run by two ways :

CLI Tool

First, Enkryptit! can be run as a CLI tool. This are available commands :

Command Syntax Description
Help eck help Displays the available commands menu.
Encrypt / Decrypt eck /path/to/file Toggles encryption or decryption for the specified file.
Encrypt / Decrypt with a password eck /path/to/file -p mypassword Toggles encryption or decryption for the specified file, with a password.
Open TUI eck ui or eck Opens the TUI
Show current params eck parameters or eck params Shows current params 
Change compression eck params (or parameters) -c (or --compression) compressiontype Changes compression algorithm. Available : zstd, lz4 and xz
Change key type eck params (or parameters) -kt (or --keytype) keytype Changes key type. Available : os, file and pwd (or password)

TUI

Enkryptit! can also be run as a TUI. It offers a more "friendly" interface. To open the TUI, run :

eck

or

eck ui

You will see a menu, in which one you will be able to navigate :

Enkryptit
   Fast & Secure File Encryption Manager v1
? What do you want to do?  
> Encrypt/Decrypt file
  Parameters
  Help
  Exit
[↑↓ to move, enter to select, type to filter]

Examples

For example, if you want to encrypt a file named secrets.txt in /home/user/secrets/, you just have to run :

eck /home/user/secrets/secrets.txt

Then, to decrypt the encrypted file as secrets.txt.encky, you run barely the same command :

eck /home/user/secrets/secrets.txt.encky

To encrypt a folder, you need to use the same eck command, but to specify a folder path :

eck /home/user/secrets/

This will encrypt your folder and the files it contains inside a file named secrets.encky. To decrypt it, simply run :

eck /home/user/secrets.encky

Cryptographic Stack

Enkryptit! relies on those primitives for its architecture:

  • Encryption: XChaCha20-Poly1305 — Symmetric authenticated encryption (AEAD) with a 192-bit nonce.
  • Key Derivation: Argon2id — The industry-standard password hashing algorithm, built to resist GPU/ASIC brute-force attacks.
  • Key Storage: Keyring — Securely delegates key management to your operating system's native credential store (Keychain, Secret Service, etc.).
  • Data Serialization: Postcard — A lightweight, efficient binary serialization format optimized for Rust.

Change parameters

You have the ability to choose your compression, key type, encryption algorithm, Argon2id parameters with Enkryptit!. By default, the choosen parameters are :

  • Keytype : Password
  • Compression : Zstd

RoadMap

Next steps would be :

  • parallelization
  • benchmarks
  • Doc + Dev Doc
  • Make the interface more ergonomic (add a Browse Files & Folders, modify how metadata works...)

License

This project is dual-licensed under:

  • CeCILL-B License (French law compliant, fully compatible with GNU GPL/Apache)
  • Apache License, Version 2.0

Choose the one that best fits your needs.

Contact

About

A Rust-written cli-tool / interactive manager for file and folder encryption.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages