Metadata-Version: 2.0
Name: Whirlpool
Version: 1.0.0
Summary: Whirlpool: Bindings for whirlpool hash reference implementation.
Home-page: https://github.com/oohlaf/python-whirlpool
Author: Olaf Conradi
Author-email: olaf@conradi.org
License: Public Domain
Download-URL: https://github.com/oohlaf/python-whirlpool/archive/1.0.0.zip
Description-Content-Type: text/x-rst
Keywords: digest hashlib whirlpool
Platform: any
Classifier: Development Status :: 5 - Production/Stable
Classifier: Intended Audience :: Developers
Classifier: License :: Public Domain
Classifier: Programming Language :: C
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Programming Language :: Python :: 3.6
Classifier: Programming Language :: Python :: Implementation :: CPython
Classifier: Programming Language :: Python :: Implementation :: PyPy
Classifier: Topic :: Security :: Cryptography
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.*

python-whirlpool
================

|Travis CI Build Status| |AppVeyor Build Status| |License: Unlicense|

The
`Whirlpool <https://en.wikipedia.org/wiki/Whirlpool_(cryptography)>`__
algorithm is designed by Vincent Rijmen and Paulo S.L.M. Barreto. It is
a secure and modern digest function that has been recommended by the
`NESSIE <https://www.cosic.esat.kuleuven.be/nessie/>`__ project and
adopted in the ISO/IEC 10118-3 international standard.

Digest functions, also known as hash functions, produce fixed-length
output (a digest or hash) from a variable-length message. They are
designed to be a one-way function.

This library is a Python wrapper around the Whirlpool C reference
implementation. The Whirlpool reference implementations are public
domain, as is this code.

The first version of the wrapper was written by James Cleveland with
help from #python on irc.freenode.net.

Later on the wrapper was rewritten by Olaf Conradi to use the hashlib
interface and he made the library compatible with Python 3.

Installation
------------

This library is available on
`PyPI <https://pypi.python.org/pypi/Whirlpool>`__.

::

    pip install whirlpool

Usage
-----

This is the same interface as provided by the other digest algorithms in
Python’s hashlib.

::

    import whirlpool

    wp = whirlpool.new("My String")
    hashed_string = wp.hexdigest()

    wp.update("My Salt")
    hashed_string = wp.hexdigest()

Starting with Python 3 text strings (as shown above) are stored as
unicode. You need to specify the encoding of these strings before
hashing.

::

    wp = whirlpool.new(data.encoding('utf-8'))

Strings that are marked as binary do not need encoding.

Development
-----------

The source code is available on
`GitHub <https://github.com/oohlaf/python-whirlpool>`__.

::

    git clone https://github.com/oohlaf/python-whirlpool.git
    cd python-whirlpool

Install in development mode using:

::

    python setup.py develop

Or install in editable mode using pip:

::

    pip install -e .

Testing
-------

This module is tested using Python 2.7, PyPy, and Python 3.3 and up.

You can run the test suite using

::

    python setup.py test

Whirlpool Changelog
===================

All notable changes to this project will be documented in this file. The
format is based on `Keep a
Changelog <http://keepachangelog.com/en/1.0.0/>`__ and this project
adheres to `Semantic
Versioning <https://semver.org/spec/v2.0.0.html>`__.

`1.0.0 <https://github.com/oohlaf/python-whirlpool/compare/v0.3...v1.0.0>`__ (2018-02-19)
-----------------------------------------------------------------------------------------

Added
~~~~~

-  Port to Python 3.
-  Added PyPy support. PyPy3 does not work due to functions that have
   not yet been ported (like missing ``PyUnicode_New``).
-  Added Continuous Integration using Travis CI and AppVeyor.
-  Added automatic upload to PyPI for successful build tags. Proper
   vX.Y.Z style tags upload to production PyPI, any other build
   (including .devX appended) upload to Test PyPI.

Fixed
~~~~~

-  Fix struct function declaration prototype warnings.
-  Fix pointer warnings.

Changed
~~~~~~~

-  Package ownership transferred to Olaf Conradi.
-  Started using `Semantic
   Versioning <https://semver.org/spec/v2.0.0.html>`__ together with
   `Keep a Changelog <http://keepachangelog.com/en/1.0.0/>`__.
-  Restructured the package setup and revamped build scripts.

Deprecated
~~~~~~~~~~

-  Removed the old deprecated ``hash()`` interface.

.. _section-1:

`0.3 <https://github.com/oohlaf/python-whirlpool/compare/v0.1...v0.3>`__ (2013-01-23)
-------------------------------------------------------------------------------------

.. _added-1:

Added
~~~~~

-  Added the same interface as other Python digest algorithms have (like
   the default ``hashlib`` module).

.. _changed-1:

Changed
~~~~~~~

-  Created proper unit tests.

.. _deprecated-1:

Deprecated
~~~~~~~~~~

-  The ``hash()`` function is deprecated. Please transition to the
   hashlib interface and use ``new()`` and ``hexdigest()``.

0.2 (unreleased)
----------------

-  This release was skipped.

.. _section-2:

0.1 (2011-05-18)
----------------

.. _added-2:

Added
~~~~~

-  Initial commit by James Cleveland.

.. |Travis CI Build Status| image:: https://travis-ci.org/oohlaf/python-whirlpool.svg?branch=master
   :target: https://travis-ci.org/oohlaf/python-whirlpool
.. |AppVeyor Build Status| image:: https://ci.appveyor.com/api/projects/status/pw35grm8ald8lg22/branch/master?svg=true
   :target: https://ci.appveyor.com/project/oohlaf/python-whirlpool/branch/master
.. |License: Unlicense| image:: https://img.shields.io/badge/license-Unlicense-blue.svg
   :target: http://unlicense.org/


