Add BCrypt benchmark

This commit is contained in:
Olivier Chéron 2019-03-04 06:39:46 +01:00
parent 717de392cd
commit 0f8dc3588d

View File

@ -15,6 +15,7 @@ import Crypto.Cipher.Types
import Crypto.ECC import Crypto.ECC
import Crypto.Error import Crypto.Error
import Crypto.Hash import Crypto.Hash
import qualified Crypto.KDF.BCrypt as BCrypt
import qualified Crypto.KDF.PBKDF2 as PBKDF2 import qualified Crypto.KDF.PBKDF2 as PBKDF2
import Crypto.Number.Basic (numBits) import Crypto.Number.Basic (numBits)
import Crypto.Number.Generate import Crypto.Number.Generate
@ -104,6 +105,19 @@ benchPBKDF2 =
params n iter = PBKDF2.Parameters iter n params n iter = PBKDF2.Parameters iter n
benchBCrypt =
[ bench "cryptonite-BCrypt-4" $ nf bcrypt 4
, bench "cryptonite-BCrypt-5" $ nf bcrypt 5
, bench "cryptonite-BCrypt-7" $ nf bcrypt 7
, bench "cryptonite-BCrypt-11" $ nf bcrypt 11
]
where
bcrypt :: Int -> B.ByteString
bcrypt cost = BCrypt.bcrypt cost mysalt mypass
mypass, mysalt :: B.ByteString
mypass = "password"
mysalt = "saltsaltsaltsalt"
benchBlockCipher = benchBlockCipher =
[ bgroup "ECB" benchECB [ bgroup "ECB" benchECB
@ -233,6 +247,7 @@ main = defaultMain
, bgroup "block-cipher" benchBlockCipher , bgroup "block-cipher" benchBlockCipher
, bgroup "AE" benchAE , bgroup "AE" benchAE
, bgroup "pbkdf2" benchPBKDF2 , bgroup "pbkdf2" benchPBKDF2
, bgroup "bcrypt" benchBCrypt
, bgroup "ECC" benchECC , bgroup "ECC" benchECC
, bgroup "DH" , bgroup "DH"
[ bgroup "FFDH" benchFFDH [ bgroup "FFDH" benchFFDH