nettle-0.1.0: src/Tests/Hash.hs
{-# LANGUAGe OverloadedStrings #-}
import TestUtils
import qualified Data.ByteString as B
import VectorsHash
import Crypto.Nettle.Hash
assertHash :: HashAlgorithm a => (B.ByteString, String) -> Tagged a Assertion
assertHash (src, h) = do
h' <- hash src
return $ assertEqualHex "" (hs h) h'
testHash :: HashAlgorithm a => Tagged a Test
testHash = do
name <- hashName
vectors <- findHashTestVectors name
results <- mapM assertHash vectors
return $ testCases ("testing HashAlgorithm " ++ name) results
-- return $ debugTestCases ("testing HashAlgorithm " ++ name) results
main = defaultMain
[ testHash `witness` (undefined :: GOSTHASH94)
, testHash `witness` (undefined :: MD2)
, testHash `witness` (undefined :: MD4)
, testHash `witness` (undefined :: MD5)
, testHash `witness` (undefined :: RIPEMD160)
, testHash `witness` (undefined :: SHA1)
, testHash `witness` (undefined :: SHA224)
, testHash `witness` (undefined :: SHA256)
, testHash `witness` (undefined :: SHA384)
, testHash `witness` (undefined :: SHA512)
, testHash `witness` (undefined :: SHA3_224)
, testHash `witness` (undefined :: SHA3_256)
, testHash `witness` (undefined :: SHA3_384)
, testHash `witness` (undefined :: SHA3_512)
]