Metadata-Version: 2.3
Name: passacre
Version: 1.0.1rc2
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: ISC License (ISCL)
Classifier: Operating System :: OS Independent
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Libraries
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Programming Language :: Rust
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Requires-Dist: pyyaml ; extra == 'yaml'
Requires-Dist: xerox ; extra == 'clipboard'
Requires-Dist: ykpers-cffi ; extra == 'yubikey'
Requires-Dist: pyyaml ; extra == 'all'
Requires-Dist: xerox ; extra == 'all'
Requires-Dist: ykpers-cffi ; extra == 'all'
Provides-Extra: yaml
Provides-Extra: clipboard
Provides-Extra: keccak
Provides-Extra: skein
Provides-Extra: yubikey
Provides-Extra: all
License-File: COPYING
Summary: better repeatable password generation
Author-email: hab <_@habnab.it>
Requires-Python: >=3.7
Description-Content-Type: text/x-rst; charset=UTF-8
Project-URL: Homepage, https://github.com/habnabit/passacre
Project-URL: Repository, https://github.com/habnabit/passacre

.. image:: https://img.shields.io/travis/habnabit/passacre/master.svg?style=flat-square

.. image:: https://img.shields.io/coveralls/habnabit/passacre/master.svg?style=flat-square

.. image:: https://img.shields.io/coverity/scan/4886.svg?style=flat-square

.. image:: https://img.shields.io/pypi/v/passacre.svg?style=flat-square

.. image:: https://img.shields.io/pypi/l/passacre.svg?style=flat-square


========
passacre
========

passacre = password massacre
(i.e. what happens when you use the same password on every site)

Passacre is a method of repeatably deriving a different secure password for every site you use.

The way this works is that passacre takes the site's name, your username, and your master password
and runs them through a cryptographically secure hash function
(either the Keccak sponge function from SHA-3 or Skein/Threefish)
to produce a password unique to that site.
Given the same inputs
(site name, username, and master password),
this process will always produce the same password.
This means that your site passwords never need to be persisted,
and since they're always ephemeral,
you don't have a file containing your passwords that's vulnerable to theft.

Minimal documentation is available `on readthedocs <https://passacre.readthedocs.org/en/latest/>`_.

Here's how to use it for now::

  # for both keccak and skein generation:
  pip install 'passacre'
  # to be able to copy passwords, add the 'clipboard' extra:
  pip install 'passacre[clipboard]'
  # for YubiKey two-factor authentication, add the 'yubikey' extra:
  pip install 'passacre[yubikey]'
  # then set it up:
  mkdir -p ~/.config/passacre
  passacre init ~/.config/passacre/passacre.sqlite
  # then finally:
  passacre generate somesite.com

