This project holds the encrypted-box library as well as the encrypted-box cli. The main functionality is the encryption of an unknown amount of fields.
use
cargo build [--release]
use
cargo test
use
path-to-encrypted-box-bin/encrypted-box --help
for instructions on how to use the cli, or
cargo run -- [parameters for cli]
for another method of running.
The project is divided into a few modules:
Holds definition of EncryptionScheme trait which is needed to be implemented by any encryption scheme encapsulated in encrypted-box.
Holds the main struct EncryptedBox which is initialized by EncryptedBoxBuilder. Generic type T must implement EncryptionScheme trait.
The module is a builder for the encrypted-box object. It was built according to this using the non-consuming template. It is also generic with type T which must implement EncryptionScheme trait.
A very (very) basic functionality for deriving keys using SHA512. (this should be replaced by a more serious one, or even added to EncryptionScheme trait so that each scheme can derive its own keys however it wants/needs them)
A command line tool for encrypted-box. Tests for cli are in tests/cli.rs.
A wrapper for the openssl AES Rust library. Actual Wrapper is openssl_aes/wrapper.rs, definitions in openssl_aes/defs.rs and errors in openssl_aes.rs.
This repository has a .travis.yml
file. It is a configuration for Travis CI/CD tool which is very easy and recommended.