fastpbkdf2: Haskell bindings to the fastpbkdf2 C library

[ bsd3, cryptography, library ] [ Propose Tags ]

Please see README.md


[Skip to Readme]

Modules

[Index]

Downloads

Maintainer's Corner

Package maintainers

For package maintainers and hackage trustees

Candidates

  • No Candidates
Versions [RSS] 0.1.0.0
Dependencies base (>=4.6 && <5), bytestring (>=0.10.4.0) [details]
License BSD-3-Clause
Copyright 2016 Alfredo Di Napoli
Author Alfredo Di Napoli
Maintainer alfredo.dinapoli@gmail.com
Category Cryptography
Home page https://github.com/adinapoli/fastpbkdf2-hs#readme
Source repo head: git clone https://github.com/adinapoli/fastpbkdf2-hs
Uploaded by AlfredoDiNapoli at 2016-12-27T17:59:03Z
Distributions
Reverse Dependencies 1 direct, 2 indirect [details]
Downloads 1228 total (8 in the last 30 days)
Rating (no votes yet) [estimated by Bayesian average]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-12-27 [all 1 reports]

Readme for fastpbkdf2-0.1.0.0

[back to package description]

Build Status Build status Coverage Status

fastpbkdf2-hs

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)

Installation

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!