All Projects → oohlaf → python-whirlpool

oohlaf / python-whirlpool

Licence: Unlicense license
Python wrapper extension for C Whirlpool digest reference implementation.

Programming Languages

c
50402 projects - #5 most used programming language
python
139335 projects - #7 most used programming language
Batchfile
5799 projects

Projects that are alternatives of or similar to python-whirlpool

tls-ca-manage
Multi-level Certificate Authority Management tool, front-end tool to OpenSSL, written in bash shell.
Stars: ✭ 19 (+5.56%)
Mutual labels:  digest
Redmine digest
Send daily/weekly/monthly digest
Stars: ✭ 23 (+27.78%)
Mutual labels:  digest
Digest Crc
A Cyclic Redundancy Check (CRC) library for Ruby.
Stars: ✭ 73 (+305.56%)
Mutual labels:  digest
http-auth
Node.js package for HTTP basic and digest access authentication.
Stars: ✭ 364 (+1922.22%)
Mutual labels:  digest
Http Auth
Node.js package for HTTP basic and digest access authentication.
Stars: ✭ 355 (+1872.22%)
Mutual labels:  digest
D3 Digest
SlackBot that watch channels looking for links and reactions, and generates digests based on those reactions
Stars: ✭ 15 (-16.67%)
Mutual labels:  digest
rust-sthash
Very fast cryptographic hashing for large messages.
Stars: ✭ 61 (+238.89%)
Mutual labels:  digest
Tlsh Js
JavaScript port of TLSH (Trend Micro Locality Sensitive Hash)
Stars: ✭ 143 (+694.44%)
Mutual labels:  digest
Hashes
Collection of cryptographic hash functions written in pure Rust
Stars: ✭ 649 (+3505.56%)
Mutual labels:  digest
Cryptoswift
CryptoSwift is a growing collection of standard and secure cryptographic algorithms implemented in Swift
Stars: ✭ 8,846 (+49044.44%)
Mutual labels:  digest
Checksum
Checksum calculation extensions for Swift
Stars: ✭ 28 (+55.56%)
Mutual labels:  digest
Rhash
Great utility for computing hash sums
Stars: ✭ 352 (+1855.56%)
Mutual labels:  digest
Aplay
A Better(Maybe) iOS Audio Stream、Cache、Play Framework
Stars: ✭ 44 (+144.44%)
Mutual labels:  digest
password-dart
A set of high-level APIs over PointyCastle and CryptoUtils to hash and verify passwords securely.
Stars: ✭ 40 (+122.22%)
Mutual labels:  digest
Bruteforce Http Auth
Bruteforce HTTP Authentication
Stars: ✭ 107 (+494.44%)
Mutual labels:  digest
ApigilityConsumer
🍃 Zend Framework/Laminas and Expressive/Mezzio Apigility/Laminas API Tools Client Module to consume API Services
Stars: ✭ 15 (-16.67%)
Mutual labels:  digest
Java Crypto Utils
Java Cryptographic, Encoding and Hash Utilities
Stars: ✭ 15 (-16.67%)
Mutual labels:  digest
Sureness
A simple and efficient open-source security framework that focus on protection of restful api.
Stars: ✭ 254 (+1311.11%)
Mutual labels:  digest
Octavo
Highly modular & configurable hash & crypto library
Stars: ✭ 131 (+627.78%)
Mutual labels:  digest
Phobos
The standard library of the D programming language
Stars: ✭ 1,038 (+5666.67%)
Mutual labels:  digest

python-whirlpool

Travis CI Build Status AppVeyor Build Status License: Unlicense

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].