# python-whirlpool
[![Travis CI Build Status](https://travis-ci.org/oohlaf/python-whirlpool.svg?branch=master)](https://travis-ci.org/oohlaf/python-whirlpool)
[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/pw35grm8ald8lg22/branch/master?svg=true)](https://ci.appveyor.com/project/oohlaf/python-whirlpool/branch/master)
[![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](http://unlicense.org/)
The [Whirlpool] 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] 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].
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].
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]: https://en.wikipedia.org/wiki/Whirlpool_(cryptography)
[NESSIE]: https://www.cosic.esat.kuleuven.be/nessie/
[PyPI]: https://pypi.python.org/pypi/Whirlpool
[GitHub]: https://github.com/oohlaf/python-whirlpool
# Whirlpool Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog][keepachangelog] and this
project adheres to [Semantic Versioning][semver].
## [Unreleased]
## [1.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][semver] together with
[Keep a Changelog][keepachangelog].
- Restructured the package setup and revamped build scripts.
### Deprecated
- Removed the old deprecated `hash()` interface.
## [0.3] (2013-01-23)
### Added
- Added the same interface as other Python digest algorithms have
(like the default `hashlib` module).
### Changed
- Created proper unit tests.
### Deprecated
- The `hash()` function is deprecated. Please transition to the hashlib
interface and use `new()` and `hexdigest()`.
## 0.2 (unreleased)
- This release was skipped.
## 0.1 (2011-05-18)
### Added
- Initial commit by James Cleveland.
[Unreleased]: https://github.com/oohlaf/python-whirlpool/compare/v1.0.0...HEAD
[1.0.0]: https://github.com/oohlaf/python-whirlpool/compare/v0.3...v1.0.0
[0.3]: https://github.com/oohlaf/python-whirlpool/compare/v0.1...v0.3
[semver]: https://semver.org/spec/v2.0.0.html
[keepachangelog]: http://keepachangelog.com/en/1.0.0/
Raw data
{
"_id": null,
"home_page": "https://github.com/oohlaf/python-whirlpool",
"name": "whirlpool-py311",
"maintainer": "str1hex",
"docs_url": null,
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*",
"maintainer_email": "str2hex@mail.ru",
"keywords": "digest hashlib whirlpool",
"author": "",
"author_email": "",
"download_url": "https://files.pythonhosted.org/packages/0f/ef/7c5bdb00b0e7b0b0842998a9a1c20ed421c1ee2dc13f94cfcfe8580466a9/whirlpool-py311-1.tar.gz",
"platform": "any",
"description": "\r\n# python-whirlpool\r\n\r\n[![Travis CI Build Status](https://travis-ci.org/oohlaf/python-whirlpool.svg?branch=master)](https://travis-ci.org/oohlaf/python-whirlpool)\r\n[![AppVeyor Build Status](https://ci.appveyor.com/api/projects/status/pw35grm8ald8lg22/branch/master?svg=true)](https://ci.appveyor.com/project/oohlaf/python-whirlpool/branch/master)\r\n[![License: Unlicense](https://img.shields.io/badge/license-Unlicense-blue.svg)](http://unlicense.org/)\r\n\r\nThe [Whirlpool] algorithm is designed by Vincent Rijmen and Paulo S.L.M. Barreto.\r\nIt is a secure and modern digest function that has been recommended by the\r\n[NESSIE] project and adopted in the ISO/IEC 10118-3 international standard.\r\n\r\nDigest functions, also known as hash functions, produce fixed-length output (a\r\ndigest or hash) from a variable-length message. They are designed to be a\r\none-way function.\r\n\r\nThis library is a Python wrapper around the Whirlpool C reference implementation.\r\nThe Whirlpool reference implementations are public domain, as is this code.\r\n\r\nThe first version of the wrapper was written by James Cleveland with help\r\nfrom #python on irc.freenode.net.\r\n\r\nLater on the wrapper was rewritten by Olaf Conradi to use the hashlib interface\r\nand he made the library compatible with Python 3.\r\n\r\n## Installation\r\n\r\nThis library is available on [PyPI].\r\n\r\n pip install whirlpool\r\n\r\n## Usage\r\n\r\nThis is the same interface as provided by the other digest algorithms in\r\nPython's hashlib.\r\n \r\n import whirlpool\r\n\r\n wp = whirlpool.new(\"My String\")\r\n hashed_string = wp.hexdigest()\r\n\r\n wp.update(\"My Salt\")\r\n hashed_string = wp.hexdigest()\r\n\r\nStarting with Python 3 text strings (as shown above) are stored as unicode.\r\nYou need to specify the encoding of these strings before hashing.\r\n\r\n wp = whirlpool.new(data.encoding('utf-8'))\r\n\r\nStrings that are marked as binary do not need encoding.\r\n\r\n## Development\r\n\r\nThe source code is available on [GitHub].\r\n\r\n git clone https://github.com/oohlaf/python-whirlpool.git\r\n cd python-whirlpool\r\n\r\nInstall in development mode using:\r\n\r\n python setup.py develop\r\n\r\nOr install in editable mode using pip:\r\n\r\n pip install -e .\r\n\r\n## Testing\r\n\r\nThis module is tested using Python 2.7, PyPy, and Python 3.3 and up.\r\n\r\nYou can run the test suite using\r\n\r\n python setup.py test\r\n\r\n[Whirlpool]: https://en.wikipedia.org/wiki/Whirlpool_(cryptography)\r\n[NESSIE]: https://www.cosic.esat.kuleuven.be/nessie/\r\n[PyPI]: https://pypi.python.org/pypi/Whirlpool\r\n[GitHub]: https://github.com/oohlaf/python-whirlpool\r\n\r\n\r\n# Whirlpool Changelog\r\n\r\nAll notable changes to this project will be documented in this file.\r\nThe format is based on [Keep a Changelog][keepachangelog] and this\r\nproject adheres to [Semantic Versioning][semver].\r\n\r\n## [Unreleased]\r\n\r\n## [1.0.0] (2018-02-19)\r\n\r\n### Added\r\n\r\n- Port to Python 3.\r\n- Added PyPy support. PyPy3 does not work due to functions\r\n that have not yet been ported (like missing `PyUnicode_New`).\r\n- Added Continuous Integration using Travis CI and AppVeyor.\r\n- Added automatic upload to PyPI for successful build tags. Proper\r\n vX.Y.Z style tags upload to production PyPI, any other build\r\n (including .devX appended) upload to Test PyPI.\r\n\r\n### Fixed\r\n\r\n- Fix struct function declaration prototype warnings.\r\n- Fix pointer warnings.\r\n\r\n### Changed\r\n\r\n- Package ownership transferred to Olaf Conradi.\r\n- Started using [Semantic Versioning][semver] together with\r\n [Keep a Changelog][keepachangelog].\r\n- Restructured the package setup and revamped build scripts.\r\n\r\n### Deprecated\r\n\r\n- Removed the old deprecated `hash()` interface.\r\n\r\n## [0.3] (2013-01-23)\r\n\r\n### Added\r\n\r\n- Added the same interface as other Python digest algorithms have\r\n (like the default `hashlib` module).\r\n\r\n### Changed\r\n\r\n- Created proper unit tests.\r\n\r\n### Deprecated\r\n\r\n- The `hash()` function is deprecated. Please transition to the hashlib\r\n interface and use `new()` and `hexdigest()`.\r\n\r\n## 0.2 (unreleased)\r\n\r\n- This release was skipped.\r\n\r\n## 0.1 (2011-05-18)\r\n\r\n### Added\r\n\r\n- Initial commit by James Cleveland.\r\n\r\n[Unreleased]: https://github.com/oohlaf/python-whirlpool/compare/v1.0.0...HEAD\r\n[1.0.0]: https://github.com/oohlaf/python-whirlpool/compare/v0.3...v1.0.0\r\n[0.3]: https://github.com/oohlaf/python-whirlpool/compare/v0.1...v0.3\r\n[semver]: https://semver.org/spec/v2.0.0.html\r\n[keepachangelog]: http://keepachangelog.com/en/1.0.0/\r\n",
"bugtrack_url": null,
"license": "Public Domain",
"summary": "Whirlpool: Bindings for whirlpool hash reference implementation.",
"version": "1",
"project_urls": {
"Download": "https://github.com/oohlaf/python-whirlpool/archive/1.zip",
"Homepage": "https://github.com/oohlaf/python-whirlpool"
},
"split_keywords": [
"digest",
"hashlib",
"whirlpool"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "0fef7c5bdb00b0e7b0b0842998a9a1c20ed421c1ee2dc13f94cfcfe8580466a9",
"md5": "56ed472ac994ef8a3979be1451d01709",
"sha256": "a00503968ed9f14bf20151c7f0e465934bdcb04b61bfc8d6db4d35906948439e"
},
"downloads": -1,
"filename": "whirlpool-py311-1.tar.gz",
"has_sig": false,
"md5_digest": "56ed472ac994ef8a3979be1451d01709",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=2.7,!=3.0.*,!=3.1.*,!=3.2.*",
"size": 42005,
"upload_time": "2023-10-27T20:07:35",
"upload_time_iso_8601": "2023-10-27T20:07:35.011325Z",
"url": "https://files.pythonhosted.org/packages/0f/ef/7c5bdb00b0e7b0b0842998a9a1c20ed421c1ee2dc13f94cfcfe8580466a9/whirlpool-py311-1.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-10-27 20:07:35",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "oohlaf",
"github_project": "python-whirlpool",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"appveyor": true,
"lcname": "whirlpool-py311"
}