Go to file
2016-09-10 15:30:44 +02:00
docs Keep (c) in docs constant 2016-09-08 14:53:11 +02:00
extras Update bindings to 20160821 2016-09-05 08:39:13 +02:00
src/argon2 Prepare 16.2.0 2016-09-10 15:30:44 +02:00
tests Modules should be plural 2016-04-19 12:39:01 +02:00
.coveragerc Initial work 2015-12-07 17:14:57 +01:00
.gitignore Add documentation 2015-12-16 15:50:36 +01:00
.gitmodules Move libargon2 into extras dir too 2015-12-11 14:06:04 +01:00
.travis.yml Make tests pass on Argon 1.3 2016-03-16 09:54:26 +01:00
appveyor.yml Drop Python 2.6 and 3.3 2016-02-17 11:42:29 +01:00
AUTHORS.rst Drop Python 2.6 and 3.3 2016-02-17 11:42:29 +01:00
CHANGELOG.rst Prepare 16.2.0 2016-09-10 15:30:44 +02:00
CODE_OF_CONDUCT.rst 1.4 2016-02-01 09:33:55 +01:00
CONTRIBUTING.rst Add instructions on how to install a dev version 2016-02-01 09:09:20 +01:00
dev-requirements.txt Refactor low-level functions 2015-12-23 16:23:37 +01:00
FAQ.rst Add VerifyMismatchError 2016-04-18 09:14:50 +02:00
LICENSE Initial work 2015-12-07 17:14:57 +01:00
MANIFEST.in Add documentation 2015-12-16 15:50:36 +01:00
README.rst Fix codecov badge 2016-09-05 08:42:40 +02:00
setup.cfg Update bindings to 20160821 2016-09-05 08:39:13 +02:00
setup.py Prepare for release automation 2016-09-10 12:16:18 +02:00
tox.ini Drop Python 2.6 and 3.3 2016-02-17 11:42:29 +01:00

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=====================================
CFFI-based Argon2 Bindings for Python
=====================================

.. image:: https://readthedocs.org/projects/argon2-cffi/badge/?version=stable
  :target: http://argon2-cffi.readthedocs.io/en/latest/?badge=stable
  :alt: Documentation Status

.. image:: https://travis-ci.org/hynek/argon2_cffi.svg?branch=master
  :target: https://travis-ci.org/hynek/argon2_cffi

.. image:: https://codecov.io/github/hynek/argon2_cffi/branch/master/graph/badge.svg
  :target: https://codecov.io/github/hynek/argon2_cffi

.. image:: https://ci.appveyor.com/api/projects/status/3faufu7qgwc8nv2v/branch/master?svg=true
  :target: https://ci.appveyor.com/project/hynek/argon2-cffi

.. image:: https://www.irccloud.com/invite-svg?channel=%23cryptography-dev&hostname=irc.freenode.net&port=6697&ssl=1
  :target: https://www.irccloud.com/invite?channel=%23cryptography-dev&hostname=irc.freenode.net&port=6697&ssl=1

.. teaser-begin

`Argon2 <https://github.com/p-h-c/phc-winner-argon2>`_ won the `Password Hashing Competition <https://password-hashing.net/>`_ and ``argon2_cffi`` is the simplest way to use it in Python and PyPy:

.. code-block:: pycon

  >>> from argon2 import PasswordHasher
  >>> ph = PasswordHasher()
  >>> hash = ph.hash("s3kr3tp4ssw0rd")
  >>> hash  # doctest: +SKIP
  '$argon2i$v=19$m=512,t=2,p=2$5VtWOO3cGWYQHEMaYGbsfQ$AcmqasQgW/wI6wAHAMk4aQ'
  >>> ph.verify(hash, "s3kr3tp4ssw0rd")
  True
  >>> ph.verify(hash, "t0t411ywr0ng")
  Traceback (most recent call last):
    ...
  argon2.exceptions.VerifyMismatchError: The password does not match the supplied hash


``argon2_cffi``\ s documentation lives at `Read the Docs <https://argon2-cffi.readthedocs.io/>`_, the code on `GitHub <https://github.com/hynek/argon2_cffi>`_.
Its rigorously tested on Python 2.7, 3.4+, and PyPy.