botan-low-0.1.0.0: test/Test/Botan/Low/Bcrypt.hs
{-# LANGUAGE OverloadedStrings #-}
module Test.Botan.Low.Bcrypt (tests) where
import Botan.Low.Bcrypt
import Botan.Low.RNG
import Data.ByteString
import Test.Hspec
import Test.Tasty
import Test.Tasty.Hspec
import Test.Util.Hspec
tests :: IO TestTree
tests = do
specs <- testSpec "spec_bcrypt" spec_bcrypt
pure $ testGroup "Test.Botan.Low.Bcrypt" [
specs
]
password :: ByteString
password = "Fee fi fo fum!"
factor :: BcryptWorkFactor
factor = 12
spec_bcrypt :: Spec
spec_bcrypt = do
describe "bcryptGenerate" $ do
it "generates a bcrypt hash" $ do
rng <- rngInit "user-threadsafe"
_ <- bcryptGenerate password rng factor
pass
describe "bcryptIsValid" $ do
it "validates a bcrypt hash" $ do
rng <- rngInit "user-threadsafe"
h <- bcryptGenerate password rng factor
valid <- bcryptIsValid password h
valid `shouldBe` True