Metadata-Version: 2.1
Name: passthesalt
Version: 3.1.0
Summary: Deterministic password generation and password storage.
Home-page: https://github.com/rossmacarthur/passthesalt
Author: Ross MacArthur
Author-email: ross@macarthur.io
License: MIT
Download-URL: https://github.com/rossmacarthur/passthesalt/archive/3.1.0.tar.gz
Project-URL: Issue Tracker, https://github.com/rossmacarthur/passthesalt/issues
Keywords: password manager pbkdf2
Platform: UNKNOWN
Classifier: Environment :: Console
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: 3.7
Classifier: Programming Language :: Python :: Implementation :: CPython
Requires-Python: >=3.6
Requires-Dist: click (<8.0,>=7.0)
Requires-Dist: cryptography (<3.0.0,>=2.0.0)
Requires-Dist: pyperclip (<2.0.0,>=1.0.0)
Requires-Dist: requests (<3.0.0,>=2.0.0)
Requires-Dist: serde[ext,toml] (<0.6.0,>=0.5.1)
Requires-Dist: tabulate (<0.9.0,>=0.8.0)
Provides-Extra: dev.lint
Requires-Dist: flake8 (>=3.7.0) ; extra == 'dev.lint'
Requires-Dist: flake8-docstrings ; extra == 'dev.lint'
Requires-Dist: flake8-isort ; extra == 'dev.lint'
Requires-Dist: flake8-quotes ; extra == 'dev.lint'
Requires-Dist: pep8-naming ; extra == 'dev.lint'
Provides-Extra: dev.test
Requires-Dist: pytest (>=3.6.0) ; extra == 'dev.test'
Requires-Dist: pytest-cov ; extra == 'dev.test'

PassTheSalt
=============

.. image:: https://img.shields.io/pypi/v/passthesalt.svg?style=flat-square
    :target: https://pypi.org/project/passthesalt/
    :alt: PyPI Version

.. image:: https://img.shields.io/travis/rossmacarthur/passthesalt/master.svg?style=flat-square
    :target: https://travis-ci.org/rossmacarthur/passthesalt
    :alt: Build Status

.. image:: https://img.shields.io/codecov/c/github/rossmacarthur/passthesalt/master.svg?style=flat-square
    :target: https://codecov.io/gh/rossmacarthur/passthesalt
    :alt: Code Coverage

A command line application for deterministic password generation and password
storage.

Getting started
---------------

Install it using

::

    pip install passthesalt

and start storing secrets with

::

    pts add

How does it work?
-----------------

Secrets are generated on the fly using the same secure algorithm each time which
uses a *master password* and a *description* of the password. Only the
description of the secret is stored. This means the secrets are not stored
anywhere.

The generation algorithm is PBKDF2 using 2048 iterations of HMAC-SHA-256,
applied to (*full name* + *master password*) as the key and the *description* as
the salt.

Since sometimes you cannot choose your passwords the application also has
provision to securely encrypt secrets with the master password.

Usage
-----

The command line interface has the following commands

::

    add      Add a secret.
    diff     Compare two stores.
    edit     Edit a secret.
    encrypt  Encrypt a secret.
    get      Retrieve a secret.
    ls       List the secrets.
    mv       Relabel a secret.
    pull     Retrieve a remote store.
    push     Update the remote store.
    rm       Remove a secret.

All commands and options are documented in the cli. You can use the ``--help``
option with any command.

Migrating from version 2.3.0
----------------------------

The storage format changed between version 2.x.x and 3.x.x. To migrate to the
latest version of PassTheSalt you should first dump your 2.x.x store

::

    pts dump -o passthesalt-v2-dump.json

Then upgrade your PassTheSalt

::

    pip install --upgrade passthesalt

Finally, migrate the secrets

::

    pts migrate -i passthesalt-v2-dump.json

Be sure to first verify that your passwords still work! If so then delete the
``passthesalt-v2-dump.json`` file.

License
-------

This project is licensed under the MIT License. See the `LICENSE`_ file.

.. _LICENSE: LICENSE


