GithubHelp home page GithubHelp logo

pwm's Introduction

pwm

pwm is a password manager using GnuPG to encrypt and Git to store your passwords.

Usage

usage: pwm [<opts>] <cmd> [<args>]

options:
  -d <path>       database directory
  -h              show this help
  -k <key>        gpg key id
  -v              show version

commands:
  del             delete a password
  gen             generate a password
  get             retrieve a password
  list            list all passwords
  log             print the log
  note            get, set or del a password note
  set             set a password

pwm creates a bare git repository at ~/.pwm. You can change that behaviour by using the -d option or setting the environment variable PWM_HOME

export PWM_HOME="${HOME}/path/to/my/pwm/db"

pwm uses the first secret GPG key that can be found, do determine the GPG encryption recipient. You can give pwm a hint by using the -k option or setting the environment variable PWM_KEY

export PWM_KEY='5G532AB7'

Install

To install pwm make sure you have installed the dependencies:

When building from the git repo you need autoconf in addition.

If you want to run unit tests you need the Check Unit Testing Framework.

Get the Source

Download a release tarball or clone the repo:

git clone https://github.com/ushis/pwm.git

Build and Install

Building pwm is as easy as:

autoconf -o configure configure.ac
./configure --prefix=/usr --with-pwmexecdir=/usr/lib/pwm
make
make install

When building from the git repo, run autoconf to generate the configure script:

autoconf -o configure configure.ac

Hacking pwm

If you want to hack on pwm, check out the API documentation.

LICENSE (GPL)

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/.

pwm's People

Contributors

ushis avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

pwm's Issues

error occurs when make

On my Fedora 20 box, I get these error during build period:

lib/git.c: In function ‘pwm_git_clean’:
lib/git.c:142:3: error: unknown type name ‘git_checkout_options’

The full output:

➜  pwm git:(master) make
cc -std=c99 -Wall -O2 -Ilib -D_POSIX_C_SOURCE=200112L -o pwm pwm.c
cc -std=c99 -Wall -O2 -Ilib -D_POSIX_C_SOURCE=200112L -c -o builtin/pwm-note-get.o builtin/pwm-note-get.c
cc -std=c99 -Wall -O2 -Ilib -D_POSIX_C_SOURCE=200112L -c -o lib/read.o lib/read.c
cc -std=c99 -Wall -O2 -Ilib -D_POSIX_C_SOURCE=200112L -c -o lib/db.o lib/db.c
cc -std=c99 -Wall -O2 -Ilib -D_POSIX_C_SOURCE=200112L -c -o lib/init.o lib/init.c
cc -std=c99 -Wall -O2 -Ilib -D_POSIX_C_SOURCE=200112L -c -o lib/hex.o lib/hex.c
cc -std=c99 -Wall -O2 -Ilib -D_POSIX_C_SOURCE=200112L -c -o lib/clip.o lib/clip.c
cc -std=c99 -Wall -O2 -Ilib -D_POSIX_C_SOURCE=200112L -c -o lib/gpg.o lib/gpg.c
cc -std=c99 -Wall -O2 -Ilib -D_POSIX_C_SOURCE=200112L -c -o lib/gen.o lib/gen.c
cc -std=c99 -Wall -O2 -Ilib -D_POSIX_C_SOURCE=200112L -c -o lib/str.o lib/str.c
cc -std=c99 -Wall -O2 -Ilib -D_POSIX_C_SOURCE=200112L -c -o lib/git.o lib/git.c
lib/git.c: In function ‘pwm_git_clean’:
lib/git.c:142:3: error: unknown type name ‘git_checkout_options’
   git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT;
   ^
lib/git.c:142:31: error: ‘GIT_CHECKOUT_OPTIONS_INIT’ undeclared (first use in this function)
   git_checkout_options opts = GIT_CHECKOUT_OPTIONS_INIT;
                               ^
lib/git.c:142:31: note: each undeclared identifier is reported only once for each function it appears in
lib/git.c:156:3: error: too many arguments to function ‘git_reset’
   if ((err = git_reset(git->repo, obj, reset_type, git->sig, NULL))  < 0) {
   ^
In file included from /usr/local/include/git2.h:45:0,
                 from lib/git.h:5,
                 from lib/git.c:1:
/usr/local/include/git2/reset.h:53:17: note: declared here
 GIT_EXTERN(int) git_reset(
                 ^
lib/git.c:161:9: error: request for member ‘checkout_strategy’ in something not a structure or union
     opts.checkout_strategy = GIT_CHECKOUT_REMOVE_UNTRACKED;
         ^
lib/git.c:162:5: warning: passing argument 2 of ‘git_checkout_head’ from incompatible pointer type [enabled by default]
     err = git_checkout_head(git->repo, &opts);
     ^
In file included from /usr/local/include/git2.h:16:0,
                 from lib/git.h:5,
                 from lib/git.c:1:
/usr/local/include/git2/checkout.h:259:17: note: expected ‘const struct git_checkout_opts *’ but argument is of type ‘int *’
 GIT_EXTERN(int) git_checkout_head(
                 ^
make: *** [lib/git.o] Error 1
➜  pwm git:(master) uname -a
Linux fedora 3.14.7-200.fc20.x86_64 #1 SMP Wed Jun 11 22:38:05 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.