2020-12-12 22:29:54 +00:00
|
|
|
# The Horcrux project
|
|
|
|
|
|
|
|
This tool allows you to securely store your data by encrypting the content and splitting it into several files.
|
|
|
|
|
2020-12-14 11:44:48 +00:00
|
|
|
#### Please note
|
|
|
|
I'm aware this implementation is not memory efficient with large files.
|
|
|
|
|
|
|
|
I'm working on the optimization, but I'm not going to make it in time. :(
|
|
|
|
|
2020-12-12 22:29:54 +00:00
|
|
|
## Usage
|
|
|
|
|
|
|
|
To encrypt a file use the following syntax:
|
|
|
|
|
|
|
|
```horcrux create -n <horcrux count> <input path> <output path>```
|
|
|
|
- `-n <horcrux count>`: number of files the encrypted data will be split into.
|
|
|
|
- `<input path>`: file to encrypt.
|
|
|
|
- `<output path>`: folder where to save the encrypted files.
|
|
|
|
|
|
|
|
|
|
|
|
To decrypt a file use the following syntax:
|
|
|
|
|
|
|
|
```horcrux load -k <decryption key> <input files> <output file>```
|
|
|
|
- `-k <decryption key>`: provide the encryption key, base64 encoded.
|
|
|
|
- `<input files>`: horcrux chunks to be reassembled. Order matters :)
|
|
|
|
- `<output file>`: decrypted data.
|
|
|
|
|
|
|
|
|
|
|
|
## Compile
|
|
|
|
|
|
|
|
This tool is compiled using Cmake and it has been tested with gcc-10 on linux.
|
|
|
|
|
|
|
|
Use the following commands to compile the tool:
|
|
|
|
```
|
|
|
|
mkdir build && cd build
|
|
|
|
cmake ..
|
|
|
|
make
|
|
|
|
```
|
|
|
|
### Dependencies
|
|
|
|
|
|
|
|
`horcrux` needs OpenSSL-1.1 or a newer version.
|
|
|
|
|
|
|
|
## Test
|
|
|
|
|
|
|
|
GTest unit tests are available.
|
|
|
|
|
|
|
|
You can run `make test` from the build directory, or use `test/horcrux_test` for a more verbose output.
|
|
|
|
|
|
|
|
## Install
|
|
|
|
|
|
|
|
`make install` will install `horcrux` to `/usr/local/bin` by default.
|