cppcryptfs is a C++ implementation of gocryptfs for creating encrypted overlay filesystems on Windows.
cppcryptfs is an implementation of the gocryptfs encrypted overlay filesystem in C++ for Windows. It provides on-the-fly, at-rest, and in-the-cloud encryption of files and file names in a virtual filesystem, using the Dokany driver to create a user-mode virtual drive. It solves the problem of securing sensitive data locally and in cloud storage by encrypting files individually, allowing dynamic growth without pre-allocated container sizes.
Windows users who need to encrypt files for local security or cloud synchronization, such as individuals backing up sensitive data to services like Dropbox or developers requiring encrypted workspaces on Windows systems.
Developers choose cppcryptfs for its compatibility with gocryptfs, enabling cross-platform use with Linux systems, and its per-file encryption approach that allows efficient cloud syncing and dynamic storage without container limits. Its use of the Dokany driver ensures user-mode operation without kernel-mode drivers, enhancing stability and ease of use on Windows.
cppcryptfs is an implementation of the gocryptfs encrypted overlay filesystem in C++ for Windows.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Compatible with gocryptfs, allowing encrypted filesystems to be mounted on both Windows and Linux, facilitating cross-platform data security and synchronization.
Uses per-file encryption, meaning only changed files are uploaded to cloud services like Dropbox, optimizing sync speed and reducing bandwidth usage.
Encrypts files individually without container limits, allowing the filesystem to grow dynamically with available disk space, as highlighted in the README.
Supports reverse mode to encrypt existing unencrypted directories on-the-fly, enabling deterministic encryption for efficient delta-syncing with tools like rsync.
Benchmarks in the README show significant slowdowns compared to native NTFS, especially for operations involving many small files or when using features like flush after write.
Building from source requires Microsoft Visual Studio, Perl, NASM, and static builds of OpenSSL and RapidJSON, making installation and compilation challenging for non-developers.
Reverse mode has undergone only limited testing, and features like 'Encrypt Keys in Memory' are brand new with potential data loss risks, as admitted in the README.