aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-10-23actions/config: ensure config file is created with mode 0644 (#152)ebiggers
If the user has set a restrictive umask, e.g. 0077, then /etc/fscrypt.conf would be created without the world-readable bit set. Fix it by overriding the umask when creating the file. Resolves https://github.com/google/fscrypt/issues/151
2019-10-23Merge pull request #150 from ebiggers/allow-metadata-symlinkJoseph Richey
filesystem: allow .fscrypt to be a symlink
2019-10-23filesystem: Move test-only code to test filesJoe Richey
This makes it easier to understand which code is actually invoked by the command-line tool.
2019-10-01filesystem: allow .fscrypt to be a symlinkEric Biggers
Support the case where the user has a read-only root filesystem (e.g. with OSTree) and had previously created a symlink /.fscrypt pointing to a writable location, so that login protectors can be created there. Resolves https://github.com/google/fscrypt/issues/131
2019-09-24cmd/fscrypt: make 'fscrypt setup' create /.fscrypt (#149)ebiggers
Make the global setup command also create the metadata directory at /.fscrypt, since that's where login protectors are placed, even when the actual encrypted directories are on a different filesystem. Resolves https://github.com/google/fscrypt/issues/129
2019-09-11Prepare v0.2.5 (#147)v0.2.5Joseph Richey
Also add go version attrubute to go.mod
2019-09-09cmd/fscrypt: show encryption options with 'fscrypt status DIR' (#145)ebiggers
Show the encryption options when running 'fscrypt status' on a directory. E.g.: Policy: 490515286453d3f7 Options: padding:32 contents:Adiantum filenames:Adiantum Unlocked: Yes
2019-09-09writeDataAtomic() fixes (#140)ebiggers
* filesystem: ensure data is persisted before returning success Sync the temporary file before renaming it, to ensure that after a crash, the destination file isn't zero-length or otherwise incomplete. Also sync the directory after the rename, to ensure the rename has been persisted before returning success. * filesystem: don't use fixed temporary file name Using a fixed temporary file name in a world-writable sticky directory is problematic since another user can create the file first. Use ioutil.TempFile() to do it properly. It uses O_EXCL under the hood to ensure the file is newly created.
2019-09-08Fix various typos and grammatical errors (#141)ebiggers
These were found by a combination of manual review and a custom script that checks for common errors. Also removed an outdated sentence from the comment for setupBefore().
2019-09-08.gitignore: add tags file (#144)ebiggers
Add the tags file to .gitignore, for developers using https://github.com/jstemmer/gotags.
2019-08-29Merge pull request #142 from ebiggers/goimportsJoseph Richey
Fix 'make format'-related CI failure
2019-08-28Run 'make format' with latest version of goimportsEric Biggers
This fixes a CI failure, caused by goimports changing how it formats the imports.
2019-08-28Makefile: exclude generated files from 'make format'Eric Biggers
Due to a goimports update, 'make format' is now changing metadata.pb.go. But this fix can't be committed because this file is generated by 'make gen'. Fix this by not formatting generated files.
2019-07-27README.md: improve documentation for moving files into encrypted dirs (#138)ebiggers
Resolves https://github.com/google/fscrypt/issues/124
2019-07-27README.md: improve documentation for kernel and filesystem support (#137)ebiggers
Resolves https://github.com/google/fscrypt/issues/117 Resolves https://github.com/google/fscrypt/issues/127
2019-07-27README.md: improve documentation of GRUB limitation (#136)ebiggers
Resolves https://github.com/google/fscrypt/issues/58
2019-07-27cmd/fscrypt: give newly encrypted directories mode 0700 (#134)ebiggers
Resolves https://github.com/google/fscrypt/issues/132
2019-07-26Update Travis to use Ubuntu 18.04 and Go 1.12 (#135)Joseph Richey
Fixes CI issues
2019-01-19Merge pull request #122 from google/pamJoseph Richey
Install pam modules/configs to the right location
2019-01-19Update the README with correct install informationJoe Richey
2019-01-19Install pam modules/configs to the right locationJoe Richey
Per the FHS, manually installed programs should go under /usr/local. This change also makes it easier to change the global installation prefix. For example, package managers should set PREFIX=/usr
2019-01-17Merge pull request #119 from ebiggers/adiantumJoseph Richey
Add support for the Adiantum encryption mode
2019-01-17Merge pull request #120 from google/toolsJoseph Richey
Makefile: migrate from megacheck to staticcheck
2019-01-17Makefile: migrate from megacheck to staticcheckJoe Richey joerichey@google.com
This fixes travis issues as well as moving us off of deprecated tooling
2019-01-14Add support for the Adiantum encryption modeEric Biggers
Add Adiantum support to the fscrypt userspace tool. Supported in the kernel since v5.0-rc1, Adiantum is a length-preserving encryption mode based primarily on XChaCha12. It is fast even on CPUs without AES instructions. Unlike XTS it is also a wide-block encryption mode. Adiantum is supported for both contents and filenames encryption. For Adiantum encryption policies, also make the fscrypt tool provide the new DIRECT_KEY flag, which further improves performance by requesting that all files be encrypted directly with the policy key. This takes advantage of Adiantum's support for long tweaks. See the kernel commit "fscrypt: add Adiantum support" (https://git.kernel.org/torvalds/c/8094c3ceb21ad938) for more details.
2018-12-04Merge pull request #114 from ebiggers/fix-make-genJoseph Richey
Makefile: use a specific protoc-gen-go version
2018-12-04Makefile: use a specific protoc-gen-go versionEric Biggers
'make gen' no longer works because it uses the git version of protoc-gen-go, which is no longer compatible with the latest released version of github.com/golang/protobuf/proto, which we're using. Freeze the protoc-gen-go version so that it keeps working.
2018-11-20Merge pull request #110 from wjt/patch-1Joseph Richey
README: fix "Debain" typo
2018-11-05README: fix "Debain" typoWill Thompson
2018-09-05Merge pull request #106 from fristonio/spell-checkJoseph Richey
feat(spell-check): add make command for spell check.
2018-09-02feat(spell-check): add make command for spell check.Deepesh Pathak
* Remove spelling mistakes in the repository * Add travis script to check for typos. * Add command to Makefile to check for typos. * Fixes #71
2018-08-30Merge pull request #107 from google/modJoseph Richey
Use Go Modules and support Go 1.11 building
2018-08-30Update Travis to use go 1.10 and go 1.11Joe Richey joerichey@google.com
2018-08-30Bump Travis VersionJoe Richey joerichey@google.com
2018-08-30Fix golint to not need a special forkJoe Richey joerichey@google.com
2018-08-30Go 1.11 gofmt updataeJoe Richey joerichey@google.com
2018-08-30Use proto.Equal instead of reflect.DeepEqualsJoe Richey joerichey@google.com
2018-08-30Update Protoc Compiler to 3.6.1Joe Richey joerichey@google.com
2018-08-30Update dependancies to lastest versionJoe Richey joerichey@google.com
2018-08-30Don't vendor helper toolingJoe Richey joerichey@google.com
2018-08-30Remove dep from documentation and travis buildJoe Richey joerichey@google.com
2018-08-30Transition from dep to golang's module systemJoe Richey joerichey@google.com
2018-08-23Merge pull request #105 from google/releasev0.2.4Joseph Richey
Release: v0.2.4
2018-08-23Release: v0.2.4Joe Richey joerichey@google.com
2018-08-23Merge pull request #103 from google/pamJoseph Richey
Cleanup privilege dropping/raising in pam_fscrypt
2018-08-23Improve debug and error output for pam_fscryptJoe Richey joerichey@google.com
2018-08-23Ensure keyring privilege changes are reversibleJoe Richey joerichey@google.com
This change makes sure that, when we set the ruid and euid in order to get the user keyring linked into the current process keyring, we will always be able to reverse these changes (using a suid of 0). This fixes an issue where "su <user>" would result in a system error when called by an unprivileged user. It also explains exactly how and why we are making these privilege changes.
2018-08-23Ensure setting user privileges is reversibleJoe Richey joerichey@google.com
This change makes sure after dropping then elevating privileges for a process, the euid, guid, and groups are all the same as they were originally. This significantly simplifies the privilege logic. This fixes CVE-2018-6558, which allowed an unprivleged user to gain membership in the root group (gid 0) due to the groups not being properly reset in the process.
2018-08-23Merge pull request #104 from google/travisJoseph Richey
Fix Travis to only use Go 1.10
2018-08-23Update docs to indicate v1.10 is requiredJoe Richey joerichey@google.com