From 836bc7cd954ef4a5fe4d52d4d0e509efa233fb21 Mon Sep 17 00:00:00 2001 From: Vincent Hanquez Date: Fri, 1 May 2015 09:23:42 +0100 Subject: [PATCH] add some PBKDF2 benchmarks --- benchs/Bench.hs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/benchs/Bench.hs b/benchs/Bench.hs index ecd33bb..ccdde70 100644 --- a/benchs/Bench.hs +++ b/benchs/Bench.hs @@ -1,4 +1,5 @@ {-# LANGUAGE PackageImports #-} +{-# LANGUAGE OverloadedStrings #-} module Main where import Criterion.Main @@ -11,6 +12,9 @@ import "cryptonite" Crypto.Cipher.AES import "cryptonite" Crypto.Cipher.Blowfish import "cryptonite" Crypto.Cipher.Types +import "cryptonite" Crypto.Hash (SHA512(..)) +import qualified "cryptonite" Crypto.KDF.PBKDF2 as PBKDF2 + import Crypto.Internal.ByteArray (ByteArray) import qualified Data.ByteString as B @@ -19,6 +23,23 @@ benchHash = [ ] +benchPBKDF2 = + [ bgroup "64" + [ bench "cryptonite-PBKDF2-100-64" $ nf (\iter -> PBKDF2.generate (PBKDF2.prfHMAC SHA512) (PBKDF2.Parameters mypass mysalt iter 64)) 100 + , bench "cryptonite-PBKDF2-1000-64" $ nf (\iter -> PBKDF2.generate (PBKDF2.prfHMAC SHA512) (PBKDF2.Parameters mypass mysalt iter 64)) 1000 + , bench "cryptonite-PBKDF2-10000-64" $ nf (\iter -> PBKDF2.generate (PBKDF2.prfHMAC SHA512) (PBKDF2.Parameters mypass mysalt iter 64)) 10000 + ] + , bgroup "128" + [ bench "cryptonite-PBKDF2-100-128" $ nf (\iter -> PBKDF2.generate (PBKDF2.prfHMAC SHA512) (PBKDF2.Parameters mypass mysalt iter 128)) 100 + , bench "cryptonite-PBKDF2-1000-128" $ nf (\iter -> PBKDF2.generate (PBKDF2.prfHMAC SHA512) (PBKDF2.Parameters mypass mysalt iter 128)) 1000 + , bench "cryptonite-PBKDF2-10000-128" $ nf (\iter -> PBKDF2.generate (PBKDF2.prfHMAC SHA512) (PBKDF2.Parameters mypass mysalt iter 128)) 10000 + ] + ] + where + mypass = "password" + mysalt = "salt" + + benchBlockCipher = [ bgroup "ECB" benchECB , bgroup "CBC" benchCBC @@ -60,4 +81,5 @@ benchBlockCipher = main = defaultMain [ bgroup "hash" benchHash , bgroup "block-cipher" benchBlockCipher + , bgroup "pbkdf2" benchPBKDF2 ]