Newer
Older
# encrypted_filesystem_storage
* [ ] Store the metadata encrypted as well
* [ ] Store files in a folder
* [ ] Store minimal metadata
## Storage Layout
* `/encfsstorage.superblock` unencrypted messagepack: Vec<StoredKey>
* `/metadata.index` encrypted messagepack: Vec<FileEntry>
* `/blocks/${uuid}` encrypted messagepack: Block
## Important structs
* StoredKey
* Stores the main key encrypted with one decryption key
* FileEntry
* pathname: String <- can contain `/`
* file size: usize
* start block: uuid/u128
* Block
* data: raw unencrypted data
* Option<next>: uuid/u128
* Option<padding>: 4KB - data.len()
## Minimum Rust Version
Rust 1.57 or higher from argon2
## Running tests locally
```bash
sudo docker run --rm -it -v $(pwd):/source registry.gitlab.com/dns2utf8/junitify:1.63.0
```