#cli #encryption-decryption #encryption

bin+lib fencryption

A program to encrypt and decrypt files and full directories

2 releases

Uses new Rust 2021

0.1.10 Nov 14, 2022
0.1.8 Nov 13, 2022
0.1.7 Nov 13, 2022
0.1.6 Nov 12, 2022

#457 in Cryptography

Download history 39/week @ 2022-11-07 51/week @ 2022-11-14 5/week @ 2022-11-21

95 downloads per month

MIT license

69KB
1.5K SLoC

test status license license license

Report Bug
Changelog

Fencryption (Rust)

This is the new version of Fencryption (typescript) but in Rust (Why did I switch language along the way ? Because typescript was not the most suitable language for this kind of project and also because I wanted to try Rust and low-level programming).

Fencryption is program to encrypt and decrypt files and full directories. Note that this project is at an early stage of development.

THERE IS ABSOLUTELY NO WARRANTY THAT THIS PROGRAM DOES NOT CONTAIN VULNERABILITIES. USE IT AT YOUR OWN RISK. This is not supposed to be used in "real conditions" anyway

Usage

fencryption --help
A program to encrypt/decrypt files and full directories

Usage: fencryption [OPTIONS] <COMMAND>

Commands:
  encrypt  Encrypt specified file/directory using the passed key
  decrypt  Encrypt specified file/directory using the passed key
  pack     Pack a directory
  unpack   Open a pack
  help     Print this message or the help of the given subcommand(s)

Options:
  -D, --debug    Enable debug log
  -h, --help     Print help information
  -V, --version  Print version information

Limitations

  • Pack files can get pretty huge therefore, it is possible that they exceed the maximum file size of some file systems (for example the maximum file size of fat32 is 4GB).

Todo

  • Provide better help about commands
  • Add default file encryption features
  • Add stream enc-/decryption features
  • Setup directory recursive mapping
  • Improve log, error handling and cli
  • Implement multithreading
  • Edit encryption process so the output file is smaller
  • Add packing feature: makes a file with all the files packed inside (a pack) that is then encrypted
    • Command pack creates a pack from the specified directory
    • Command unpack creates a directory where decrypted files (from the encrypted "pack") appear, you can then choose to update the pack with the changes made in the directory or to discard them

Dependencies

~9.5MB
~239K SLoC