Skip to content

srhea/passwords

master
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
 
 
 
 
 
 
passwords - an embarrassingly simple password safe

Highlights:

  - Functional: stores all your passwords in a single, encrypted file
  - Secure: 256-bit AES encryption
  - Verifiable: less than 300 lines of Scala code
  - Durable: backup ~/.passwords with Dropbox, or email, or whatever
  - Free: MIT license

The goal of this program is to be moderately more user friendly than storing
passwords in a plain text file encrypted with GnuPG, while at the same time
being short and simple enough that any competent programmer can convince
themselves of its correctness in under 30 minutes.

Example usage:

  $ passwords
  > help
  Commands:
    generate [length]
    add <url> <username>
    remove <url> <username>
    list
    search <search string>
    merge <other file>

  > generate
  g9mYO:=[

  > add https://www.mint.com/ johndoe
  No existing passwords database.
  Enter a master password:
  Confirm master password:
  Password: <copy/paste "g9mYO:=[" from above>

  > search mint
  https://www.mint.com/ johndoe g9mYO:=[

  > remove https://www.mint.com/ johndoe
  Really remove this entry? (Y/N): y

  > quit

Installation instructions for MacPorts/Debian/Ubuntu:

  1. Download and install git and sbt:

     apt-get install git sbt   # Debian/Ubuntu
     port install git sbt      # MacPorts

  2. Download and install this program:

     mkdir -p ~/src
     cd ~/src
     git clone git://github.com/srhea/passwords.git
     cd passwords
     sbt compile
     export PATH=$PATH:$HOME/src/passwords/bin

Notes:

I wrote passwords in Scala because of the languages I know well, Scala
produces shorter, more readable code than C++, and I trust Scala's
cryptographic primitives more than those in Ruby.

If you're using Java 7 and getting mysterious errors, you may need to download
the "Java Cryptography Extension (JCE) Unlimited Strength Jurisdiction Policy
Files". You can find those files and instructions on how to install them here:

  http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

On Mac OSX, JAVA_HOME is a little wierd.  To install the unlimited strength
cryptography extensions on OSX, unzip the file downloaded from the link above,
cd into the unzipped directory, and then run this command

  sudo mv *.jar `/usr/libexec/java_home`/jre/lib/security/

Enjoy!

About

an embarrasingly simple password safe

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published