add some PBKDF2 benchmarks

This commit is contained in:
Vincent Hanquez 2015-05-01 09:23:42 +01:00
parent f23d1c4867
commit 836bc7cd95

View File

@ -1,4 +1,5 @@
{-# LANGUAGE PackageImports #-} {-# LANGUAGE PackageImports #-}
{-# LANGUAGE OverloadedStrings #-}
module Main where module Main where
import Criterion.Main import Criterion.Main
@ -11,6 +12,9 @@ import "cryptonite" Crypto.Cipher.AES
import "cryptonite" Crypto.Cipher.Blowfish import "cryptonite" Crypto.Cipher.Blowfish
import "cryptonite" Crypto.Cipher.Types import "cryptonite" Crypto.Cipher.Types
import "cryptonite" Crypto.Hash (SHA512(..))
import qualified "cryptonite" Crypto.KDF.PBKDF2 as PBKDF2
import Crypto.Internal.ByteArray (ByteArray) import Crypto.Internal.ByteArray (ByteArray)
import qualified Data.ByteString as B 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 = benchBlockCipher =
[ bgroup "ECB" benchECB [ bgroup "ECB" benchECB
, bgroup "CBC" benchCBC , bgroup "CBC" benchCBC
@ -60,4 +81,5 @@ benchBlockCipher =
main = defaultMain main = defaultMain
[ bgroup "hash" benchHash [ bgroup "hash" benchHash
, bgroup "block-cipher" benchBlockCipher , bgroup "block-cipher" benchBlockCipher
, bgroup "pbkdf2" benchPBKDF2
] ]