This repo is now archived due to me no longer using pass. GPG is a pain to deal with, so I shall deal with it no longer. Feel free to fork and continue working on it, if you so choose.
passrs
is a reimplementation of pass
in Rust.
While gopass
inspired passrs
, it does
not accomplish the same goals, nor does it try to. For example, you will not
find the ability to specify recipients on a per-secret basis (this is only done
on a store or substore basis, utilizing the keys stored in the .gpg-id
file),
it does not expose an API for use in browser extensions, and it does not support
any cryptography protocol aside from OpenPGP.
I should probably add a big, red, flashy warning about this: I do not yet have any knowledge in the way of developing programs with security in mind, and therefore cannot guarantee the security of this implementation. I take no responsibility for any damage caused to the integrity of your password store and related files. That said, however, I will do my best to resolve any problems that may arise in order to improve this project.
In another vein: there is only one instance of unsafe
code, and that is in
util::set_permissions_recursive
-- a call to libc::getuid()
to facilitate
checking if the user owns the path about be to operated on.
Before you get started with installing and running the passrs
binary, you will
need the gpgme
, gpg-error
, and libgit2
libraries (and, obviously, a Rust
toolchain).
With that out of the way, let's get to the fun stuff. At the moment, passrs
only supports Linux systems; however, more targets might come down the line, as
I become more competent in Rust.
To install the passrs
binary, run:
$ cargo install --git https://github.com/cole-h/passrs
passrs find
does not display a tree of the found entries, unlikepass find
- lack of support for deinitializing store
- lack of support for the following env vars:
PASSWORD_STORE_ENABLE_EXTENSIONS
PASSWORD_STORE_EXTENSIONS_DIR
PASSWORD_STORE_GPG_OPTS
GREPOPTIONS
Thanks to the wonderful people over at Cachix, a cache serving pre-built
passrs
binaries is usable by adding --extra-substituters 'https://passrs.cachix.org' --trusted-public-keys 'passrs.cachix.org-1:qEBRtLoyRFMZC8obhs0JjUW95PVaPYAUvixVPt6Qsa0='
to your Nix
command (whether it be nix build
or nix-build
). This means you don't
actually have to build passrs
yourself -- the GitHub Actions runner already
did it for you (with the caveat that it only runs on x86_64)!
- This software is licensed under the MIT License
- Portions of this software are derived from tui-rs examples, under the MIT license
- Portions of this software are derived from the treeline library, under the MIT license
- Portions of this software are derived from the copy_dir library, under the MIT license
- Portions of this software are derived from the grep-cli library, under the MIT license
- Portions of this software are derived from the terminal_qrcode library, under the MIT license