https://github.com/nul-one/fusecry
FUSE based AES-CBC encrypted filesystem and encryption tool
https://github.com/nul-one/fusecry
aes-encryption decryption encfs encrypted-directories encryption file-encryption file-encryption-python filesystem fuse fuse-filesystem linux mac-osx macosx mount python python3 stream-encryption
Last synced: about 2 months ago
JSON representation
FUSE based AES-CBC encrypted filesystem and encryption tool
- Host: GitHub
- URL: https://github.com/nul-one/fusecry
- Owner: nul-one
- License: bsd-3-clause
- Created: 2017-08-09T22:21:39.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-11-12T12:29:50.000Z (over 7 years ago)
- Last Synced: 2025-02-25T09:48:15.933Z (2 months ago)
- Topics: aes-encryption, decryption, encfs, encrypted-directories, encryption, file-encryption, file-encryption-python, filesystem, fuse, fuse-filesystem, linux, mac-osx, macosx, mount, python, python3, stream-encryption
- Language: Python
- Homepage:
- Size: 116 KB
- Stars: 11
- Watchers: 5
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
fusecry
==================================================
[](https://travis-ci.org/nul-one/fusecry)
[](https://gitter.im/fusecry/Lobby)FUSE based AES encrypted filesystem and encryption tool
requirements
-------------------------- Linux (kernel 2.6.14 or above) or OS X (10.11 or above)
- python >= 3.4
- ubuntu/debian: `sudo apt-get install python3 python3-dev`
- rhel/centos: `sudo yum install python3 python3-dev`
- libfuse
- ubuntu/debian: `sudo apt-get install libfuse2 libfuse-dev`
- rhel/centos: `sudo yum install fuse fuse-devel`install
-------------------------### install from pypi
`pip3 install fusecry`### install from github
`pip3 install -U git+https://github.com/nul-one/fusecry.git`### autocompletion
In addition, add the following to your `.bashrc` to enable autocompletion:
`eval "$(register-python-argcomplete fusecry)"`features
-------------------------- mount any subdirectory of encrypted structure
- use password or RSA key
- encrypt single files
- encrypt streams
- real time integrity check
- filesystem check
- detect local FS block size for best overall performance or set manually
- encrypt file and directory names
- encrypted files keep same directory structure
- option to have file and path names encryptedusage
-------------------------### mount/umount
`fusecry mount SOURCE_DIR MOUNT_POINT [--key RSA_KEY_PATH] [-n]`
`fusecry umount MOUNT_POINT` or `fusermount -u MOUNT_POINT`
Data copied to mount point will remain encrypted in source directory.
Use `-n` or `--encrypt-filenames` to also have file and directory names
encrypted. This option is really needed only on the first mount when
fusecry.conf file is being generated.
**Watch out**: if `-n` is used, actual file and directory names on disk will be
60%+ longer than originals and thus some long names won't be valid! Check what
maximum filename and path length values are on your system.### mount subdirectory
`fusecry mount SOURCE_DIR/subdir MOUNT_POINT --conf SOURCE_DIR/fusecry.conf [--key RSA_KEY_PATH]`
### single file encryption
`fusecry encrypt INPUT_FILE OUTPUT_FILE [-c FCRY_CONF_FILE] [--key PUB_OR_PVT_RSA_KEY_PATH]`
`fusecry decrypt INPUT_FILE OUTPUT_FILE [-c FCRY_CONF_FILE] [--key PVT_RSA_KEY_PATH]`
`FCRY_CONF_FILE` is stored in ROOT directory of existing FuseCry filesystem.
If you call the command without existing settings file, it will be created in
case of encryption or default will be used `INPUT_FILE.fcry` in case of
decryption.### stream encryption
`RAM file system option for fast file access Not going to be
implemented. You can create ramfs and put encrypted data in it on your own.
Also, bottleneck seems to be CPU and not disk I/O (at least on SSD).
- password change (bulk re-encryption) Not going to be
implemented. You can mount additional empty FuseCry fs with new password and
move files over. Let's keep it simple.