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]

Properties

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), criterion, crypto-api (>=0.5), HUnit, tagged (>=0.1) [details]
LicenseBSD3
CopyrightVincent Hanquez <vincent@snarc.org>
AuthorVincent Hanquez <vincent@snarc.org>
MaintainerVincent Hanquez <vincent@snarc.org>
CategoryData, Cryptography
Home pagehttp://github.com/vincenthz/hs-cryptohash
Source repositoryhead: git clone git://github.com/vincenthz/hs-cryptohash
ExecutablesBench, Tests
UploadedSun Apr 22 16:38:10 UTC 2012 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
Downloads119378 total (733 in last 30 days)
Votes
0 []
StatusDocs uploaded by user
Build status unknown [no reports yet]

Modules

[Index]

Flags

NameDescriptionDefault
testBuild unit testDisabled
benchmarkBuild benchmark testDisabled
cryptoapiDefines crypto-api instancesEnabled

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

Downloads

Maintainers' corner

For package maintainers and hackage trustees

Readme for cryptohash-0.7.5

CryptoHash

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.

Performance

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