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.
- Rust:
1.75+is recommended. - A working native credential store (e.g.,
libsecreton Linux, native Keychain on macOS).
# 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.
Enkryptit! can be run by two ways :
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) |
Enkryptit! can also be run as a TUI. It offers a more "friendly" interface. To open the TUI, run :
eckor
eck uiYou 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]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.txtThen, to decrypt the encrypted file as secrets.txt.encky, you run barely the same command :
eck /home/user/secrets/secrets.txt.enckyTo 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.enckyEnkryptit! 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.
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
Next steps would be :
- parallelization
- benchmarks
- Doc + Dev Doc
- Make the interface more ergonomic (add a
Browse Files & Folders, modify how metadata works...)
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.
- Developer: Olruix (VRAM-RAM)