Skip to content
README.md 828 B
Newer Older
Stefan Schindler's avatar
Stefan Schindler committed
# 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
```