https://github.com/ayuei/rustencrypter

An encryption tool for directories and files written purely in Rust

https://github.com/ayuei/rustencrypter

Science Score: 26.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.0%) to scientific vocabulary
Last synced: 10 months ago · JSON representation

Repository

An encryption tool for directories and files written purely in Rust

Basic Info
  • Host: GitHub
  • Owner: Ayuei
  • Language: Rust
  • Default Branch: master
  • Size: 1.84 MB
Statistics
  • Stars: 2
  • Watchers: 1
  • Forks: 0
  • Open Issues: 0
  • Releases: 0
Created about 6 years ago · Last pushed 11 months ago
Metadata Files
Readme

README.md

rustencrypter-cli

An encryption cli tool for directories and files written purely in Rust. Uses AES-GCM with 128 or 256 bit encryption.

Example of the encryption algorithm

Installation

bash git clone https://github.com/Ayuei/rustencrypter.git cargo install --path rustencrypter

Usage

bash ./rustencrypter [encrypt/decrypt] <input file> --[k]ey <key file> --[r]epeat [number of times]

Note encryption and decryption will (atomically) overwrite the source file

Features

  • [x] Encrypt a file
  • [x] Encrypt all files in a given directory
  • [x] Automatic key generation (creates "key" in os-sensible directory) or requested directory/file
  • [x] User can specify specific key file (16 or 32 bit)
  • [x] Fresh nonce every encryption
  • [x] Encryption/decryption chaining
  • [x] Atomic replacement of files (interrupted encryption/decryption will not destroy the file)

Neat things

You can chain multiple encryptions and decryptions symmetrically. There's no practical reason for this, but it's cool.

bash ./rustencrypter encrypt <input file> --repeat 5 ./rustencrypter decrypt <input file> --repeat 5

TODOs

  • [ ] Release compiled binaries for all platforms
  • [ ] Add an optional flag for an output file
  • [x] Add authentication for tamper detection (HMAC)
  • [x] Refactor for speed using callbacks
  • [x] Fix some race conditions in the test cases
  • [x] Multi-threads or Async for directory encryption/decryption
  • [ ] Add python bindings (personal project)

Feel to do any pull requests or let me know about any issues.

Owner

  • Login: Ayuei
  • Kind: user
  • Location: Australia
  • Company: Australian National University

GitHub Events

Total
  • Push event: 6
Last Year
  • Push event: 6