password-2.0.0.0: test/tasty/Argon2.hs
module Argon2 where
import Test.Tasty
import Test.QuickCheck.Instances.Text ()
import Data.Password.Argon2
import Internal
testArgon2 :: TestTree
testArgon2 = testGroup "Argon2"
[ testCorrectPassword "Argon2 (hashPassword)" hashFast checkPassword
, testIncorrectPassword "Argon2 (hashPassword) fail" hashFast checkPassword
, testWithSalt "Argon2 (hashPasswordWithSalt)"
(hashPasswordWithSalt fastParams)
checkPassword
, testWithParams "Argon2 (Argon2i)" $ fastParams{ argon2Variant = Argon2i }
, testWithParams "Argon2 (Argon2d)" $ fastParams{ argon2Variant = Argon2d }
]
where
testWithParams s params =
testWithSalt s (hashPasswordWithSalt params) checkPassword
hashFast = hashPasswordWithParams fastParams
fastParams =
defaultParams{
argon2MemoryCost = 2 ^ (8 :: Int),
argon2TimeCost = 1
}