Skip to content

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

License

Notifications You must be signed in to change notification settings

hardworking-toptal-dev/rencfs

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Rust 97.2%
  • Other 2.8%