Primary Maintainer: Brian Smith (brian.smith@maidsafe.net)
Secondary Maintainer: Qi Ma (qi.ma@maidsafe.net)
Self encrypting files (convergent encryption plus obfuscation)
|Crate|Linux|Windows|OSX|Coverage|
|:------:|:-------:|:-------:|:-------:|:-------:|
||
|
|
|
|
| API Documentation | SAFENetwork System Documention | MaidSafe website | Safe Community site |
A version of convergent encryption with an additional obfuscation step. This pattern allows secured data that can also be de-duplicated. This library presents an API that can be utilised in any application that provides a POSIX like filesystem interface, dealing very effectively with the content part of any data (in tests the parallelised approach can actually be faster than reading/writing data as a single stream). It is important to realise two important aspects of this library:
![image of self encryption] (https://github.com/maidsafe/self_encryption/blob/master/img/self-encryption.png?raw=true)
[self_encryption process and use case video] (https://www.youtube.com/watch?v=Jnvwv4z17b4)
self_encryptor
This library splits a file into encrypted chunks and also produces a data map for the same. This data map with encrypted chunks enables the file to be reconstituted. Instructions to use the 'basic_encryptor' example are as follows:
Install RUST(Nightly build).
curl -s https://static.rust-lang.org/rustup.sh | sudo sh -s -- --channel=nightly
Install gcc.
sudo apt-get install gcc
Clone this repo / Download as zip and extract archive.
git clone http://github.com/maidsafe/self_encryption.git
Browse to repo locally in terminal / command prompt.
cd self_encryption
Encrypt a file:
cargo run --example basic_encryptor -- -e <full_path_to_any_file>
You should now have the example binary in ../self_encryption/target/debug/examples/
. The data_map
for the given file and it's encrypted chunks will be written to the current directory.
Decrypt a file:
cargo run --example basic_encryptor -- -d <full_path_to_data_map> <full_destination_path_including_filename>
This will restore the original file to the given destination path.