Skip to content
/ rencfs Public

An encrypted file system written in Rust that is mounted with FUSE on Linux. It can be used to create encrypted directories

License

Apache-2.0 and 2 other licenses found

Licenses found

Apache-2.0
LICENSE-Apache-2.0
BSD-3-Clause
LICENSE-BSD-3-Clause
MIT
LICENSE-MIT
Notifications You must be signed in to change notification settings

xoriors/rencfs

rencfs

rencfs-bin crates.io docs.rs build-and-tests release codecov Open Source Helpers

Warning

This crate hasn't been audited; it's using ring crate, which is a well-known audited library, so in principle, at least the primitives should offer a similar level of security.
This is still under development. Please do not use it with sensitive data for now; please wait for a stable release.
It's mostly ideal for experimental and learning projects.

An encrypted file system written in Rust mounted with FUSE on Linux. It can be used to create encrypted directories.

You can then safely back up the encrypted directory to an untrusted server without worrying about the data being exposed. You can also store it in a cloud storage service like Google Drive, Dropbox, etc., and sync it across multiple devices.

You can use it as CLI or as a library to build your custom FUSE implementation or other apps that work with encrypted data.

Introduction

Key features

Some of these are still being worked on and marked with [WIP].

Implementation

Documentation

rencfs

Please look into Flows for a detailed sequence flow description.

Usage and Development

Next steps

Considerations

  • Performance Aes256Gcm is slightly faster than ChaCha20Poly1305 by an average factor of 1.28. This is because of the hardware acceleration of AES on most CPUs via AES-NI. However, where hardware acceleration is unavailable, ChaCha20Poly1305 is faster. Also, ChaChaPoly1305 is better at SIMD.
  • ⚠️ Security
  • Cipher comparison
  • Others

Contribute

If you find any issues or vulnerabilities or you'd like a feature, please follow these steps:

Feel free to fork, change, and use it however you want. We always appreciate it if you build something interesting and feel like sharing pull requests.

Follow us

  • Blog and tutorial There is a series of articles about the evolution of this project, trying to keep it like a tutorial. This is the first one.

Get in touch