Haskell bindings to the fastpbkdf2 C library

Latest on Hackage:

This package is not currently in any snapshots. If you're interested in using it, we recommend adding it to Stackage Nightly. Doing so will make builds more reliable, and allow to host generated Haddocks.

BSD3 licensed by Alfredo Di Napoli

Build Status Build status Coverage Status


Haskell bindings to the fastpbkdf2 library. This is currently (Dec 2016) the fastest Haskell library for computing the pbkdf2, outperforming competitors by several order of magnitude (unsuprisingly, as it hooks into some C code!):

benchmarking sha1/fastpbkdf2
time                 4.948 ms   (4.850 ms .. 5.040 ms)
                     0.998 R²   (0.997 R² .. 0.999 R²)
mean                 4.767 ms   (4.707 ms .. 4.825 ms)
std dev              186.5 μs   (152.3 μs .. 244.2 μs)
variance introduced by outliers: 20% (moderately inflated)

benchmarking sha1/cryptonite
time                 29.61 ms   (29.04 ms .. 30.03 ms)
                     0.999 R²   (0.997 R² .. 1.000 R²)
mean                 29.82 ms   (29.47 ms .. 30.40 ms)
std dev              916.0 μs   (527.1 μs .. 1.579 ms)

benchmarking sha1/pbkdf2
time                 8.032 s    (7.899 s .. 8.248 s)
                     1.000 R²   (1.000 R² .. 1.000 R²)
mean                 7.941 s    (7.911 s .. 7.995 s)
std dev              47.08 ms   (0.0 s .. 48.71 ms)
variance introduced by outliers: 19% (moderately inflated)


This library depends from OpenSSL. I have tried to make this self-contained, but the crypto layer of OpenSSL (or BoringSSL) requires some fine-tuned ASM code generated during the build process. Porting everything over in a customised Build.hs would have been too much pain, but PR are super welcome!

Depends on:
Used by 1 package:
comments powered byDisqus