Z-Botan-0.1.1.0: test/Z/Crypto/PwdHashSpec.hs
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE PatternSynonyms #-}
module Z.Crypto.PwdHashSpec where
import Control.Monad (forM_)
import Test.HUnit
import Test.Hspec (Spec, describe, it)
import Utils (parsePasswdHashTestVector)
import Z.Crypto.PwdHash
import Z.Crypto.RNG (RNGType (SystemRNG), newRNG)
spec :: Spec
spec = describe "Crypto.PwdHash" $ do
it "Bcrypt" $ do
tvMap <- parsePasswdHashTestVector "./third_party/botan/src/tests/data/passhash/bcrypt.vec"
forM_ tvMap $ \ (passwd, passhash) -> do
rng <- newRNG SystemRNG
ret <- genBcrypt passwd rng 8
b <- validBcrypt passwd passhash
b @?= True