file_encryptor 0.1.5

A simple libsodium-based file encryption/decryption CLI
Documentation

๐Ÿ” FileEncryptor

A Basic and secure command-line tool to encrypt and decrypt files using libsodium via the sodiumoxide Rust crate.

โœจ Features

  • ๐Ÿ”’ Password-based file encryption using secretbox (XSalsa20 + Poly1305)
  • ๐Ÿง‚ Salted password hashing with pwhash (Argon2)
  • ๐Ÿ” Symmetric encryption & decryption
  • โœ… Ergonomic CLI interface
  • ๐Ÿงช 100% test coverage (including edge cases)

TODO

  • [] Add secure password prompt (rpassword)
  • [] Add optional config file support
  • [] Add file overwrite confirmation
  • [] Add streaming support for large files

๐Ÿš€ Installation

cargo install file_encryptor

๐Ÿ“ฆ Usage

Encrypt a file

file_encryptor -e -i plaintext.txt -o encrypted.bin -p "your_password"

Decrypt a file

file_encryptor -d -i encrypted.bin -o decrypted.txt -p "your_password"

Flags

Usage: file_encryptor [OPTIONS] --input <INPUT> --output <OUTPUT> --password <PASSWORD>

Options:
  -i, --input <INPUT>        Input file path
  -o, --output <OUTPUT>      Output file path
  -p, --password <PASSWORD>  Password for encryption/decryption
  -e, --encrypt              Encrypt the file
  -d, --decrypt              Decrypt the file
  -h, --help                 Print help
  -V, --version              Print version

๐Ÿ” Security

  • Uses pwhash::derive_key (Argon2) with a random salt for each file.
  • Authenticated encryption with secretbox (XSalsa20 + Poly1305).
  • Salt and nonce are prepended to the ciphertext.

Never share your password. If you lose it, your data cannot be recovered.

๐Ÿ“œ License

MIT ยฉ 2025 Milad