Go to file
2020-12-14 17:19:53 +01:00
scripts Initial commit 2020-12-11 12:38:02 +01:00
src Code formatting 2020-12-14 17:09:54 +01:00
test Optimize memory usage and clean interface 2020-12-14 16:50:56 +01:00
.editorconfig Fix format 2020-12-13 00:56:18 +01:00
.gitignore Initial commit 2020-12-11 12:38:02 +01:00
.gitlab-ci.yml Fix CI 2020-12-13 18:49:14 +01:00
CMakeLists.txt Cmake version 2020-12-13 18:20:41 +01:00
CMakeLists.txt.in Fix format 2020-12-13 00:56:18 +01:00
README.md Edit node 2020-12-14 17:19:53 +01:00

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.