scripts | ||
src | ||
test | ||
.editorconfig | ||
.gitignore | ||
.gitlab-ci.yml | ||
CMakeLists.txt | ||
CMakeLists.txt.in | ||
README.md |
The Horcrux project
This tool allows you to securely store your data by encrypting the content and splitting it into several files.
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. :(
EDIT: I finished the optimization, this is the final version. I just wanted to finish what I had in mind.
Pre deadline version is tagged pre-deadline
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.