| Age | Commit message (Collapse) | Author |
|
Our current build tags set off the linter. We will later add in more
comprehensive build tags that will be properly formatted.
|
|
Move to x/crypto/argon2
|
|
|
|
Now that Argon2 is simply and implementation detail of the `crypto`
package, and no a build dependancy, we don't need it in Travis or in the
documenation for building fscrypt.
|
|
Use the golang library for the hashing function instead of the reference
C implementation. This removes the dependancy on libargon2. As we are no
longer doing our own error checking, we also eliminate those tests.
|
|
Start using Dep
|
|
Add dep instalation, remove govendor from go tools, and add a check for
dependancies.
|
|
This change transitions to dep, sets up Gopkg.toml, and purnes the
maximum allowable number of files.
|
|
Moves from goimports to [goreturns](https://github.com/sqs/goreturns).
This should not effect any code that already compiles as goreturns only
adds zero return values, then runs goimports.
This is mainly to help improve ergonomics when dealing with multiple
return types.
|
|
|
|
Fix typo in README.md
|
|
|
|
Limit the amount of RAM that will be used
|
|
|
|
Fixes #73.
Adds maxMemoryBytes as 128MiB and cleans up the helper
functions/variables to make it more clear which values are a number of
bytes, and which values are a number of KiB.
|
|
Typos
|
|
|
|
Makefile cleanup
|
|
|
|
travis: update go version
|
|
|
|
security: Sync filesystem before dropping caches
|
|
|
|
Update all external dependencies to the latest version
|
|
security: Add check option to UserKeyringID
|
|
|
|
|
|
|
|
|
|
|
|
This changes the vendored sources of github.com/golang/protobuf,
golang.org/x/crypto/ssh, and golang.org/x/sys/unix to be the current
master versions.
|
|
We should always log the descriptor not the entire policy structure.
|
|
Fixed failures in PAM module
|
|
Now the user is persented with help when they try to access a keyring
that isn't theirs or try to use fscrypt without a user keyring linked
into the session keyring.
|
|
Chaning the --user flag to (optionally) check for a proper keyring setup
allows us to fail early in cases where we need a working keyring.
|
|
Now instead of spawning a seperate thread we alternate between changing
the euid and ruid to both find the keyring and link it to the process
keyring. Note that we also ensure that the user keyring is linked into
the root keyring whenever possible.
|
|
This was creating an issue becasuse fully dropping privileges required
spawning a goroutine and using rutime.DropOSThread().
|
|
Now the offending panic will just be logged and the module will fail.
This is important as to not crash the login process.
|
|
Changes to the keyrings interface, corresponding UI changes, and misc changes
|
|
Use `/dev/disk/by-uuid` to get UUID links to other filesystems
|
|
|
|
|
|
|
|
The --user flag can now be used to have the targe user (the one whose
keyring and password will be used in fscrypt) be different than the
calling user. Very usefull for things like
sudo fscrypt purge /media/joerichey/usb --user=joerichey
which will now have privileges to drop caches, but will properly clear
the keys from the user's keyring.
|
|
|
|
This user is used with policies to interface with the keryings and with
protectors to indicate which user's login passphrase should be used to
protectors of type pam_passphrase.
|
|
|
|
The functions are now changed to (Start|Stop)AsPamUser to indicate that
they handle privilege modification and keyring setup.
|
|
The keyring lookup functions no longer read from /proc/keys. Now they
simply spawn a thread, drop privs, and check with GetKeyringID and
KEY_SPEC_USER_KEYRING. See userKeyringID() for more info.
The privileges functions have also been changed. Now the concept of
setting privileges is seperate form the concept of setting up the
keyrings.
|
|
|