hashes: Hash functions

[ data, library, mit ] [ Propose Tags ]

Efficient implementations of hash functions

[Skip to Readme]


Manual Flags


Include cryptograph hash functions from openssl. Requires that openssl is installed in the system at a location where cabal can find it.


Include implementations from the cryptonite package in benchmarks


Test compatibility with implementations of hash functions in cryptonite


Use pkg-config to find OpenSSL (macOS and linux only).


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


Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees


  • No Candidates
Versions [RSS],,,,,,, 0.2.3
Change log CHANGELOG.md
Dependencies base (>=4.11 && <5), bytestring (>=0.10) [details]
License MIT
Copyright Copyright (c) 2019-2021 Lars Kuhtz <lakuhtz@gmail.com>
Author Lars Kuhtz
Maintainer lakuhtz@gmail.com
Category Data
Home page https://github.com/larskuhtz/hs-hashes
Bug tracker https://github.com/larskuhtz/hs-hashes/issues
Source repo head: git clone https://github.com/larskuhtz/hs-hashes.git
Uploaded by larsk at 2022-11-22T08:14:17Z
Distributions NixOS:0.2.3
Reverse Dependencies 1 direct, 0 indirect [details]
Downloads 1528 total (30 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs uploaded by user
Build status unknown [no reports yet]

Readme for hashes-0.2.3

[back to package description]

Haskell implementation of various hash functions.

Available Hash functions

Native Haskell Implementations

  • SipHash
    • SipHash-2-4
    • SipHash-1-3
    • SipHash-4-8
    • SipHash-c-d (c rounds per block and d finalization rounds)
  • FNV1 (64 bit, 32 bit, and host word size)
  • FNV1a (64 bit, 32 bit, and host word size)

Linked from OpenSSL

The following hash functions are available with the package is build with -f+with-openssl, which is the default.

A version of OpenSSL of at least version 1.1 must be available on the system at a location for Cabal/GHC can find it.

  • SHA2
    • SHA2-224
    • SHA2-256
    • SHA2-384
    • SHA2-512
    • SHA2-512_224 (SHA512 truncated to 224 bits)
    • SHA2-512_256 (SHA512 truncated to 256 bits)
  • SHA3
    • SHA3_224
    • SHA3_256
    • SHA3_384
    • SHA3_512
    • SHAKE-128
    • SHAKE-256
  • BLAKE2
    • BLAKE2s256
    • BLAKE2b512
    • KECCAK-256
    • KECCAK-512 See comment in Data.Hash.Keccak before using these Keccak implementations.