Skip to content

passh: a pass fork - stores, retrieves, generates, and synchronizes passwords securely.

License

Notifications You must be signed in to change notification settings

HacKanCuBa/passh

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Passh: a Pass fork

Pass is a simple password store. This fork changes a few things while trying to maintain most of it intact, specially the core idea. I will keep pulling pass commits, and also pushing my modifications to them.

Forked from https://git.zx2c4.com/password-store.

IMPORTANT NOTE: this repo is currently deprecated as I will rewrite pass in Rust (eventually), but I have no plans on continuing with this.

About

This is a very simple password store that encrypts passwords using gpg and places the encrypted password in a directory. It can generate new passwords and keep track of old ones.

Please see the man page for documentation and examples: man passh.

Depends on:

The original project page is: https://www.passwordstore.org/

Installing

Check install guide in latest release. Remember to satisfy dependencies indicated above.

You can use passh along with pass without inconvenient, and have them both installed at the same time. They both use the same password store and extensions, so you can switch from one to the other. Do note, however, that some passh extensions can't be executed by pass, but every pass extension is executable by passh.

Install bleeding-edge

Always prefer downloading releases, since those are signed and verified to work. However, if you want the bleeding-edge version, clone or download this repo and run make install as a privileged user:

wget https://github.com/hackancuba/passh/archive/master.zip
unzip master.zip
cd passh-master
make test && sudo make install

It's a good practice to run make test prior installing, to be sure that passh is working correctly.

If you don't want to sudo make install, you can simply copy src/password-store.sh to /usr/bin/passh. Optionally, check completion helpers in src/completion, man page in man/passh.1 and passhmenu in contrib/dmenu.

Check the contrib directory for other contributions and helpers for passh.

Uninstalling

Go to the same directory from where it was installed, or download the same release, and run sudo make uninstall:

cd passh
sudo make uninstall

Testing

Clone the git repo or download latest release and run make test inside the directory:

cd passh
make test

You can run individual tests like tests/t0001-sanity-checks.sh, and debug them with -v: tests/t0001-sanity-checks.sh -v.

Extensions

A curated list of some extensions I wrote and/or recommend.

Security notes

Check the security notes on Passh.

Navigating this repo

Scripts like menus, importers to import data from other passwords managers and stuff contributed to the pass project.

The man page and a markdown version for online viewing.

Passh source code (password-store.sh) and some helper scripts like completion and platform adapt.

Test files based on Sharness, they are named like tNNNN-description.sh. Simply run them individually like ./tests/tNNNN-description.sh (optionally pass -v to make it verbose), or make test from the main directory as explained above to run them all.

Development

Contributing

Read the Developers section.

Since I pull changes done to pass, you might want to start contributing there. Otherwise, you are very welcome to write an issue here, or fork and then do a pull request.

Changes from pass-master

Rough changes from pass-master, where main pass development is pulled:

  • Rebranded pass to passh.
  • Modified the way commands are interpreted in the script: replaced the switch case selection to a more flexible eval'd one.
  • Changed how extensions are handled: now extensions are loaded first, before interpreting the command as an internal command. This allows extensions to override internal commands. A helper function is provided so that an overridden function can still be called from the extension.
  • Issuing help command now shows help from the extensions if they implement a function named help_{extension name}(). Otherwise, it will list enabled extensions as commands.

License

Pass is made by Jason Donenfeld and licensed under GNU GPL v2.0+. Passh is made by HacKan under GNU GPL v3.0+.

Copyright (C) 2017 HacKan (https://hackan.net)

This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.

You should have received a copy of the GNU General Public License
along with this program.  If not, see <http://www.gnu.org/licenses/>.

About

passh: a pass fork - stores, retrieves, generates, and synchronizes passwords securely.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Shell 52.8%
  • Python 23.1%
  • Ruby 9.8%
  • Emacs Lisp 7.0%
  • Makefile 2.8%
  • AppleScript 2.2%
  • Other 2.3%