The fastpbkdf2 package

[ Tags: benchmark, bsd3, cryptography, library ] [ Propose Tags ]

Please see README.md


[Skip to Readme]

Properties

Versions 0.1.0.0
Dependencies base (>=4.6 && <5), bytestring (>=0.10.4.0) [details]
License BSD3
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 repository head: git clone https://github.com/adinapoli/fastpbkdf2-hs
Uploaded Tue Dec 27 17:59:03 UTC 2016 by AlfredoDiNapoli
Distributions NixOS:0.1.0.0
Downloads 115 total (14 in the last 30 days)
Rating (no votes yet) [estimated by rule of succession]
Your Rating
  • λ
  • λ
  • λ
Status Docs available [build log]
Last success reported on 2016-12-27 [all 1 reports]
Hackage Matrix CI

Modules

[Index]

Downloads

Maintainer's Corner

For package maintainers and hackage trustees


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!