Hexagon is a Command Line Tool written in Rust for managing cryptographic tasks.
The hexagon toolkit provides convenient wrappers around sodiumoxide and openssl for managing the creation of public/private key-pairs as well as symmetric and asymmetric encryption and decryption.
Symmetric encryption is implemented using XSalsa20Poly1305 while asymmetric encryption is achieved using RSA.
Alternative cryptographic strategies can be added in the future by providing different implementations of the trait exported by the crypto
module.
This project explores cryptographic systems and the Rust programming language and as such it should not necessarily be seen as a secure cryptographic tool.
In progress
- XSalsa20Poly1305 based symmetric encryption and decryption
- RSA encryption and decryption implementation
- RSA key public/private key generation
- Elliptic-curve key public/private key generation
- Elliptic-curve encryption and decryption implementation
- command-line interface
- Output encryption/decryption to file
- Rust v 1.36 or greater.
- OpenSSL libraries and headers
Build the project from the root directory with cargo to generate an executable in the /target/release' folder.
cargo build --release
Once compiled the executable exposes the following command-line tools
./target/release/hexagon -h
USAGE:
hexagon <SUBCOMMAND>
FLAGS:
-h, --help Prints help information
-V, --version Prints version information
SUBCOMMANDS:
decrypt decrypt ciphertext
encrypt encrypt plaintext
help Prints this message or the help of the given subcommand(s)
keygen generates public/private key pair