Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/adinapoli/fastpbkdf2-hs
Haskell bindings to the fastpbkdf2 library
https://github.com/adinapoli/fastpbkdf2-hs
Last synced: 23 days ago
JSON representation
Haskell bindings to the fastpbkdf2 library
- Host: GitHub
- URL: https://github.com/adinapoli/fastpbkdf2-hs
- Owner: adinapoli
- License: bsd-3-clause
- Created: 2016-12-26T20:44:04.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2016-12-27T17:40:11.000Z (almost 8 years ago)
- Last Synced: 2024-08-08T20:20:46.259Z (3 months ago)
- Language: C
- Homepage: https://github.com/ctz/fastpbkdf2
- Size: 371 KB
- Stars: 2
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
[![Build Status](https://travis-ci.org/adinapoli/fastpbkdf2-hs.svg?branch=master)](https://travis-ci.org/adinapoli/fastpbkdf2-hs)
[![Build status](https://ci.appveyor.com/api/projects/status/3bkcrxd1m4xngerc?svg=true)](https://ci.appveyor.com/project/adinapoli/fastpbkdf2-hs)
[![Coverage Status](https://coveralls.io/repos/github/adinapoli/fastpbkdf2-hs/badge.svg?branch=master)](https://coveralls.io/github/adinapoli/fastpbkdf2-hs?branch=master)## fastpbkdf2-hs
Haskell bindings to the [fastpbkdf2](https://github.com/ctz/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!