Code Monkey home page Code Monkey logo

pwm's Introduction

pwm

A simple password manager for Linux.

Inspired conceptually (although the implementation is completely independent) by pass and gopass.

Installing

Installation requires a working Rust installation. Rust is most easily installed with rustup:

curl https://sh.rustup.rs -sSf | sh

From HEAD

git clone https://github.com/CmdrMoozy/pwm.git
cd pwm
cargo install

Basic Usage

# Set a default repository path to avoid having to retype it, and initialize the repository:
pwm config -k default_repository -s $HOME/pwm_repository
pwm init

# Store a password:
pwm set personal/email

# List stored passwords:
pwm ls

# Retrieve a stored password:
pwm get personal/email

pwm's People

Contributors

cmdrmoozy avatar

Stargazers

Adam Cromer avatar

Watchers

James Cloos avatar  avatar

pwm's Issues

Allow retrieval of pure binary keys

Currently, the user can store a purely binary file in pwm with "pwm pw -s -k $FILE foobar", but then if the user tries to retrieve it with "pwm pw foobar" an error will be returned stating that the file is not a UTF-8 encoded string.

Add Yubikey support

Retyping the repository key many times for consecutive commands is tedious. Add support for YubiKeys to mitigate this.

Probably this needs to be done either by storing a secret on the Yubikey via the personalization GUI (code), or by using the PGP type of scheme.

Implement password generation

pwm should have the ability to generate passwords randomly. For some examples of other implementations, see pwgen, pass, and gopass

One key thing that would be useful is to be able to use a generated password as part of a multiline secret (e.g., to add both the username and password to the repository)

Store usernames as well, or other arbitrary information

A couple of use cases are not well supported yet:

  • Storing usernames in addition to passwords. Currently this is supported by entering both as the "password" when storing using the interactive prompt.
  • Storing other arbitrary notes or information. Currently this is supported by using the "-k" flag to store an arbitrary input file.

No easy mechanism to bulk import data

For users who are already storing account information using some other system, importing large amounts of data is difficult (requires running many commands, and retyping the master password [which is ostensibly very long] many times).

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.