https://github.com/bigbuildbench/maidsafe_self_encryption
Science Score: 13.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
○.zenodo.json file
-
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (11.5%) to scientific vocabulary
Repository
Basic Info
- Host: GitHub
- Owner: BigBuildBench
- License: other
- Language: Rust
- Default Branch: master
- Size: 1.23 MB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Metadata Files
README.md
self_encryption
Self encrypting files (convergent encryption plus obfuscation)
|Crate|Documentation|
|:---:|:-----------:|
||
|
| MaidSafe website | SAFE Dev Forum | SAFE Network Forum | |:----------------------------------------:|:-------------------------------------------:|:----------------------------------------------:|
Overview
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 takes a set of bytes and returns a secret key derived from those bytes, and a set of encrypted chunks. A reverse function is provided, where the pair returned from encryption (secret key and encrypted chunks) is passed in, returning the original bytes. There is also the possibility to seek the original bytes in the contents of the encrypted chunks, by calling the seek helper function to produce information used to locate the relevant chunks, and then call the decrypt_range api with the chunks, the secret key and seek information from the previous step.
There is an important aspect to note:
This library provides very secure encryption of the data, and the returned encrypted chunks can be considered as safe as if encrypted by any other modern encryption algorithm. However the returned secret key requires the same secure handling as would be necessary for any secret key.

Video of the process
self_encryption process and use case video
Whitepaper
Self Encrypting Data, David Irvine, First published September 2010, Revised June 2015.
Examples
Using self_encryptor
This library splits a set of bytes into encrypted chunks and also produces a secret key for the same. This secret key allows the file to be reconstituted. Instructions to use the 'basic_encryptor' example are as follows:
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 secret_key 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_secret_key> <full_destination_path_including_filename>
This will restore the original file to the given destination path.
License
Licensed under the General Public License (GPL), version 3 (LICENSE http://www.gnu.org/licenses/gpl-3.0.en.html).
Linking exception
selfencryption is licensed under GPLv3 with linking exception. This means you can link to and use the library from any program, proprietary or open source; paid or gratis. However, if you modify selfencryption, you must distribute the source to your modified version under the terms of the GPLv3.
See the LICENSE file for more details.
Contributing
Want to contribute? Great :tada:
There are many ways to give back to the project, whether it be writing new code, fixing bugs, or just reporting errors. All forms of contributions are encouraged!
For instructions on how to contribute, see our Guide to contributing.
Owner
- Name: BigBuildBench
- Login: BigBuildBench
- Kind: organization
- Repositories: 1
- Profile: https://github.com/BigBuildBench
abbr. B3, benchmarking the repo-level understanding capability of your LLMs by reconstructing project build-file.
GitHub Events
Total
- Create event: 5
Last Year
- Create event: 5
Dependencies
- actions-rs/toolchain v1 composite
- actions/cache v2.1.4 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- maidsafe/rust-version-bump-branch-creator v2 composite
- actions/checkout v2 composite
- wagoid/commitlint-github-action f114310111fdbd07e99f47f9ca13d62b3ec98372 composite
- actions/checkout v2 composite
- softprops/action-gh-release 91409e712cf565ce9eff10c87a8d1b11b81757ae composite
- actions-rs/toolchain v1 composite
- actions/cache v2.1.4 composite
- actions/checkout v2 composite
- EmbarkStudios/cargo-deny-action v1 composite
- actions-rs/toolchain v1 composite
- actions/cache v2.1.4 composite
- actions/checkout v2 composite
- aig787/cargo-udeps-action v1 composite
- coverallsapp/github-action master composite
- maidsafe/pr_size_checker v2 composite
- taiki-e/install-action cargo-llvm-cov composite
- actions-rs/audit-check v1 composite
- actions/checkout v2 composite
- actions/checkout v2 composite
- criterion ~0.3 development
- docopt ~0.9.0 development
- tokio 1.34.0 development