{"id":38861739,"url":"https://github.com/declan94/cfcryptfs","last_synced_at":"2026-01-17T14:22:31.076Z","repository":{"id":57552959,"uuid":"96587778","full_name":"declan94/cfcryptfs","owner":"declan94","description":"An extensible encrypted filesystem implemented on FUSE (Filesystem in User Space)","archived":false,"fork":false,"pushed_at":"2021-02-21T02:21:39.000Z","size":127,"stargazers_count":10,"open_issues_count":0,"forks_count":1,"subscribers_count":4,"default_branch":"master","last_synced_at":"2024-06-20T02:03:17.632Z","etag":null,"topics":["encrypt","encrypted","encryption","filesystem","fuse","fuse-filesystem","golang"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/declan94.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-07-08T01:19:24.000Z","updated_at":"2023-09-08T17:27:14.000Z","dependencies_parsed_at":"2022-09-26T18:51:42.030Z","dependency_job_id":null,"html_url":"https://github.com/declan94/cfcryptfs","commit_stats":null,"previous_names":[],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/declan94/cfcryptfs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/declan94%2Fcfcryptfs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/declan94%2Fcfcryptfs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/declan94%2Fcfcryptfs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/declan94%2Fcfcryptfs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/declan94","download_url":"https://codeload.github.com/declan94/cfcryptfs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/declan94%2Fcfcryptfs/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28509945,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T13:38:16.342Z","status":"ssl_error","status_checked_at":"2026-01-17T13:37:44.060Z","response_time":85,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["encrypt","encrypted","encryption","filesystem","fuse","fuse-filesystem","golang"],"created_at":"2026-01-17T14:22:30.950Z","updated_at":"2026-01-17T14:22:31.071Z","avatar_url":"https://github.com/declan94.png","language":"Go","readme":"# cfcryptfs\n\n\n\n## About\n\nCfcryptfs is an extensible encrypted filesystem implemented on FUSE (Filesystem in User Space) for linux, \ninspired by some excellent ideas from [gocryptfs](https://github.com/rfjakob/gocryptfs), [encfs](https://github.com/vgough/encfs) and [securefs](https://github.com/netheril96/securefs)\n\nAs the value of data becomes more and more important, security of data is getting more and more attention. We want our critical private data to be safe and confidential, which means people without authorization should have no chance to access or tamper your data. \n\nFurther more, many people and companies choose to store their files and data on Internet storage services nowadays, such as Google Drive, AWS S3, Alibaba OSS and Alibaba NAS. Despite the greate convenience these Internet storage services bring to us, they also dramatically increase the risks like leak of confidential data, malicious tampering of data. \n\nUsing cfcryptfs can avoid these risks by encrypting your files and data in a total secure way before uploading them to those internet storage services. Also, the process of encryption and decryption is transparent to users and programs, which makes integration very simple. \n\n## Platform\n\nCfcryptfs now supports Linux and Mac OS X.\n\nOn Mac OS X, you have to install [osxfuse](https://osxfuse.github.io/). \nYou can download [dmg file](https://github.com/osxfuse/osxfuse/releases/download/osxfuse-3.6.3/osxfuse-3.6.3.dmg) for osxfuse, or install via [Homebrew](https://brew.sh/): \n```\n$ brew cask install osxfuse\n```\n\n\n## Install\n\n#### Install pre-built binary\nYou can directly download pre-built binary from [Releases](https://github.com/declan94/cfcryptfs/releases)\n\n#### Install from source code\nYou can also install cfcryptfs from source code. You have to install go tools first, see [here](https://golang.org/doc/install#install)\n\nAfter that, execute commands below:\n```\n$ go get -u github.com/declan94/cfcryptfs\n$ sudo cp `go env GOPATH`/bin/cfcryptfs /usr/local/bin\n```\n\n## Usage\n\n#### Step 1 - initialize a cipher dir\n```\n$ mkdir CIPHERDIR\n$ cfcryptfs -init CIPHERDIR\n```\nYou will have to choose the encryption method, block size and whether to encryption file path.\nAfter that, you need to enter a password, it's very important to remember your password.\n\n#### Step 2 - mount the cipher dir\n```\n$ mkdir PLAINDIR\n$ cfcryptfs CIPHERDIR PLAINDIR\n```\nYou will be asked to enter the password.\n\n#### Step 3 - work in plaintext dir\nNow you can work in the PLAINDIR as usual, while your files will be encrypted and stored in CIPHERDIR automatically.\nAfter unmount the filesystem by ```sudo umount PLAINDIR```, you can see PLAINDIR is actually still an empty directory.\n\nYou can sync your CIPHER dir with any Network Access Storage without worrying leak of your confidential data, and mount to anywhere with cfcryptfs when you want to use or modify your files.\n\n## Features\n\n#### Extensible\nSupport multiple core encryption methods(DES/AES128/AES192/AES256).  You can also create your own encryption methods by implementing ```corecrypter.CoreCrypter``` interface. The 'example' subfolder gives some simple examples. \n\nIn some cases with extremely high security level, you may consider extend cfcryptfs using core encryption provided by some hardware devices.\n\n#### Flexible\nBesides encryption methods, You can also choose different encryption block size, whether encrypt filepath, etc. This is important because different application and work environment often have different demands for the filesystem.\n\n#### Secure\n* Random IV for files and blocks provides random encryption pattern.\n* HMAC signature for file header provides resistence to file mode tamper. \n* HMAC signature with file IV and block id included in the key provides resistance to content tamper and block copying tamper.\n* Generated IV from fullpath for filepath encryption provides resistance to file moving tamper. (in encrypted filepath mode)\n* Provides two types of encryption key protection: 1) Using password to encrypt the key.  2) Using [Shamir's Secret Sharing](https://en.wikipedia.org/wiki/Shamir's_Secret_Sharing) scheme to split key into multiple keyfiles.\n\n\n\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeclan94%2Fcfcryptfs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdeclan94%2Fcfcryptfs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdeclan94%2Fcfcryptfs/lists"}