| Crates.io | rencfs |
| lib.rs | rencfs |
| version | 0.14.11 |
| created_at | 2024-04-24 13:54:21.977798+00 |
| updated_at | 2025-02-03 21:16:47.156572+00 |
| description | WARNING! UNDER ACTIVE DEVELOPMENT. An encrypted file system that is mounted with FUSE on Linux. It can be used to create encrypted directories. |
| homepage | https://xoriors.github.io/rencfs |
| repository | https://github.com/xoriors/rencfs |
| max_upload_size | |
| id | 1218791 |
| size | 938,943 |
[!WARNING]
This crate hasn't been audited; it's usingringcrate, 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.
simple, performant, modular and ergonomic yet very secure encrypted filesystem to protect
your privacy, which is also open source and is correctly and safely using well-known audited crates
as cryptographic primitives.Some of these are still being worked on and marked with [WIP].
Security using well-known audited AEAD cryptography primitives;[WIP] Data integrity, data is written with WAL to ensure integrity even on crash or power loss[WIP] Hide all info for enhanced privacy; all metadata, content, file name, file size, *time fields, files count, and directory structure is encryptedSafely manage credentials in memory with mlock(2), mprotect, zeroize, and expiry to mitigate cold boot
attacks;Memory safety, performance, and optimized for concurrency with Rust;keyring;Change password without re-encrypting all data;[WIP] Generate unique nonce in offline mode[WIP] Add file inode and chunk index to AAD This prevents blocks
from being copied between or within files by an attacker;Fast seek on both reads and writes;Writes in parallel;FUSE;concurrent for all operations;[WIP] Handle long file names[WIP] Abstraction layer for Rust File and fs API to use it as lib to switch to using encrypted files by just changing the use statements[WIP] Abstraction layer to access the storage with implementations for desktop, Wasm, Android, and iOS and the ability to write your own implementationPlease look into Flows for a detailed sequence flow description.
1.75.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.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.
How to contribute: