packages feed

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