aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-07-18Makefile: typoJoe Richey joerichey@google.com
2017-07-18Update documentation about new build systemJoe Richey joerichey@google.com
2017-07-18metadata: Remove "go generate" and regenerateJoe Richey joerichey@google.com
2017-07-18tests: Unit tests and Integration tests workJoe Richey joerichey@google.com
Now the testing functions will skip the integration tests if a testing filesystem is not specified.
2017-07-18Travis.yml and Makefile now run integration tests.Joe Richey joerichey@google.com
2017-07-18Merge pull request #22 from google/fixJoseph Richey
Fixing fscrypt build system
2017-07-17actions: Fixed flaky hashing testJoe Richey joerichey@google.com
2017-07-17Better output for input_fail.pyJoe Richey joerichey@google.com
2017-07-17cmd/fscrypt: more nits to fix "make lint"Joe Richey joerichey@google.com
2017-07-17Small fixes so "make lint" doesn't complain.Joe Richey joerichey@google.com
2017-07-17pam: Added missing documentation (fix "make lint")Joe Richey joerichey@google.com
2017-07-17Changes from "make format"Joe Richey joerichey@google.com
2017-07-17Makefile: Rewrite for presubmit checksJoe Richey joerichey@google.com
The commit reorganizes the Makefile, so that "make check" can run on each PR to detect any errors.
2017-07-17Merge pull request #21 from google/fixJoseph Richey
Add PAM package
2017-07-17cmd/fscrypt: username and login token fixJoe Richey joerichey@google.com
The commit changes how we get the username representation, and uses the new pam API for checking the proposed login token.
2017-07-17pam: IsUserLoginToken now uses PAM libraryJoe Richey joerichey@google.com
2017-07-17pam: Add Go wrappers around PAM functionsJoe Richey joerichey@google.com
This commit provides a Go interface to the PAM functions.
2017-07-17pam: C implementation for conversation and cleanupJoe Richey joerichey@google.com
This commit adds in a C implementation for the pam_conv we will use in login.go as well as adding three CleanupFuncs that will be used with pam_set_data(). It also adds copyInfoSecret() which should be paired with freeSecret().
2017-07-17crypto: Conversion to/from C stringsJoe Richey joerichey@google.com
2017-07-17pam: Add PAM Items and FlagsJoe Richey joerichey@google.com
Code pulled from github.com/msteinert/pam
2017-07-17util: Add conversions for byte/pointer arraysJoe Richey joerichey@google.com
2017-07-17Merge pull request #20 from google/fixJoseph Richey
Refactor ReadLine functions
2017-07-17cmd/fscrypt: prompts now use command functionsJoe Richey joerichey@google.com
2017-07-17util: Move line reading into common packageJoe Richey joerichey@google.com
2017-07-17Merge pull request #19 from google/fixJoseph Richey
Separate encryption support from metadata support
2017-07-17cmd/fscrypt: Improve "fscrypt status"Joe Richey joerichey@google.com
Now that we can distinguish between lacking encryption support and lacking fscrypt metadata, "fscrypt status" can now display this additional information.
2017-07-17cmd/fscrypt: Check support before encryptingJoe Richey joerichey@google.com
Almost all actions only need to to check that the fscrypt metadata exists (this is handled by the Mount methods). Only "fscrypt encrypt" need to be sure the filesystem also supports encryption, so this check is added.
2017-07-17filesystem: Distinguish support and setup for fsJoe Richey joerichey@google.com
This commit splits two pieces of functionality. Detecting if the fscrypt metadata exists is now in CheckSetup() and checking if the filesystem supports encryption is now in CheckSupport().
2017-07-17Merge pull request #18 from google/fixJoseph Richey
Polices can now be directly unlocked with Protectors
2017-07-17actions: Add tests for policy unlockingJoe Richey joerichey@google.com
2017-07-17actions: Protectors can directly unlock PoliciesJoe Richey joerichey@google.com
In addition to using callbacks, unlocked Protectors can now directly unlock a policy. The error codes are updated to make more sense.
2017-07-14Merge pull request #16 from google/fixJoseph Richey
Use Description when placing keys in the keyring
2017-07-14actions: Policies now have Description methodJoe Richey joerichey@google.com
2017-07-14crypto: Use single description parameterJoe Richey joerichey@google.com
Instead of using the service+descriptor parameters (which are always combined in the same way), use a single description parameter.
2017-07-14Merge pull request #15 from google/fixJoseph Richey
Bug fixing for "fscrypt encrypt"
2017-07-14cmd/fscrypt: fix protector and policy cleanupJoe Richey joerichey@google.com
Protectors are only reverted if they were created, and Policies are only depovisioned on failure.
2017-07-14vendor: Fixed package list so "make all" will workJoe Richey joerichey@google.com
During an earlier commit the vendor directory was self-referencing various "fscrypt/<pkg>" packages. This no longer occurs.
2017-07-13Merge pull request #14 from google/docsJoseph Richey
Version now uses git tags and releases
2017-07-13Makefile: version and data now pulled in directlyJoe Richey joerichey@google.com
2017-07-13README: Fixed version badge to pull from Git tagsJoseph Richey
2017-07-13Merge pull request #12 from google/docsJoseph Richey
Cleanup README.md
2017-07-13README: Add badges for protect, docs, report cardJoseph Richey
2017-07-13README: fix typos and formattingJoseph Richey
Some of the documentation was misspelled or incorrectly formatted.
2017-06-28Finalize import paths and documentationv0.1.00.1.0Joe Richey joerichey@google.com
This commit changes all the internal import paths from `fscrypt/foo` to `github.com/google/fscrypt/foo` so that it can be built once we release externaly. The documentation in README.md is updated accordingly. Also, the README has a note noting that we do not make any guarantees about project stability before 1.0 (when it ships with Ubuntu). Change-Id: I6ba86e442c74057c8a06ba32a42e17f94833e280
2017-06-28Update Makefile and READMEJoe Richey joerichey@google.com
This commit updates the README and Makefile to get them ready for external release. This includes adding some common pitfalls, including example usage, and allowing for tarball creation. Change-Id: I442338c7aff613a14bae449dbf091bfcaf73ed9d
2017-06-28cmd/fscrypt: commands to add/remove protectorsJoe Richey joerichey@google.com
This commit adds in the "fscrypt metadata add-protector-to-policy" and the "fscrypt metadata remove-protector-from-policy" subcommands. These commands allow for the creating of policies protected by multiple protectors. Change-Id: Id7e6c057448d15757c838a82d487a1b9806f585d
2017-06-28cmd/fscrypt: add metadata commandJoe Richey joerichey@google.com
This command adds in the "fscrypt metadata" command. This command allows advanced users to manipulate the metadata directly instead of just creating a policy or protector as an option when encrypting a directory. As some of these methods will require certain flags, error handling for this case is also added. As the change passphrase method must indicate when a old vs new password is necessary, additional KeyFuncs are added which add this indicator. Change-Id: Ibc92872088fae078df3c0eebd4f0cfcb7252d781
2017-06-28cmd/fscrypt: add in status and purge commandsJoe Richey joerichey@google.com
This commit adds in the status command, which has 2 functions, allowing the user to query the state of the entire system or a specific filesystem. This commit also adds in the purge command to remove all policy keys corresponding to a filesystem. This (along with getting the unlock status for the status commands) uses additional keyctl functionality in the crypto and actions packages. Change-Id: Ic8e097b335c044c0b91973eff19753f363f4525d
2017-06-28cmd/fscrypt: setup, encrypt, unlock commandsJoe Richey joerichey@google.com
This commit adds in the framework for adding commands and subcommands to the fscrypt tool. This commit adds in the "setup", "encrypt", and "unlock" commands. Additional information can be found by running: fscrypt <command> --help. This commit defines how flags are parsed and errors are handled. It also creates an extensible framework for prompting the user for information. Change-Id: I159d7f44ee2b2bbc5e072f0802850e082d9a13ce
2017-06-28actions: error handling and API changedJoe Richey joerichey@google.com
This commit changes the error handling for the actions package to use the error handling library github.com/pkg/errors. This means replacing "errors" with "github.com/pkg/errors", reworking some of the error values, and wrapping some errors with additional context. This commit also changes the Protector/Policy API, moving most of the package functionality into Protector or Policy methods. These types are now "locked" when they are queried from the filesystem, and Unlock() must be used to get their corresponding keys. Note that only certain operations will require unlocking the keys. Certain unnecessary functions and methods are also removed. This CL also fixes two bugs reported by Tyler Hicks in CreateConfigFile. CPU time is used instead of wall time, and kiB is used instead of kB. Change-Id: I88f45659e9fe4938d148843e3289e7b6d5b698d8