The cryptohash package

[Tags: bsd3, library]

A collection of crypto hashes, with a practical incremental and one-pass, pure APIs, with performance close to the fastest implementations available in others languages.

The implementations are made in C with a haskell FFI wrapper that hide the C implementation.

[Skip to ReadMe]


Versions0.4, 0.4.1, 0.5, 0.5.1, 0.5.2, 0.5.3, 0.6, 0.6.1, 0.6.2, 0.6.3, 0.7.0, 0.7.1, 0.7.2, 0.7.3, 0.7.4, 0.7.5, 0.7.6, 0.7.7, 0.7.8, 0.7.9, 0.7.10, 0.8.0, 0.8.1, 0.8.2, 0.8.3, 0.8.4, 0.9.0, 0.9.1, 0.10.0, 0.11.0, 0.11.1, 0.11.2, 0.11.3, 0.11.4, 0.11.5, 0.11.6
Change logNone available
Dependenciesbase (>=4 && <6), bytestring, cereal (>=0.2), crypto-api (>=0.5), HUnit, tagged (>=0.1) [details]
CopyrightVincent Hanquez <>
AuthorVincent Hanquez <>
MaintainerVincent Hanquez <>
CategoryData, Cryptography
Home page
Source repositoryhead: git clone git://
UploadedSun Oct 23 20:38:34 UTC 2011 by VincentHanquez
DistributionsDebian:0.11.6, Fedora:0.9.0, FreeBSD:0.11.6, LTSHaskell:0.11.6, NixOS:0.11.6, Stackage:0.11.6
Downloads120610 total (411 in last 30 days)
1 []
StatusDocs uploaded by user
Build status unknown [no reports yet]




testBuild unit testDisabledAutomatic
cryptoapiDefines crypto-api instancesEnabledAutomatic

Use -f <flag> to enable a flag, or -f -<flag> to disable that flag. More info


Maintainers' corner

For package maintainers and hackage trustees

Readme for cryptohash-0.7.4


hs-cryptohash provides lots of different secure digest algorithms, also called cryptohashes. It exposes every common hashes, but also some more exotic hashes, provides an extensive list of hashes available with a consistant API.

The general performance are comparable to the most optimised hashes available.

The complete list of supported hashes:

You can easily import any hash with the following:

import qualified Crypto.Hash.<HASH> as <Hash>

suggestion: it's easier to import qualified since there's a collision with the init symbol, but for only importing the hash or hashlazy function there's no such need.

Every hashes, exposes a very similar API.

Incremental API

it's based on 3 different functions, similar to the lowlevel operations of a typical hash:

all those operations are completely pure, and instead of changing the context as usual in others language, it create a new context each time.

One Pass API

The one pass API use the incremental API under the hood, but expose common operations to create digests out of a bytestring and lazy bytestring.

Integration with crypto-api

cryptohash is fully integrated with crypto-api and you can use the related function in crypto-api to use any cryptohash modules.


Cryptohash uses C implementations to provides maximum performance. see the cbits directory for more information