|
Packit |
141393 |
{-# LANGUAGE OverloadedStrings #-}
|
|
Packit |
141393 |
{-# LANGUAGE ExistentialQuantification #-}
|
|
Packit |
141393 |
module KAT_AFIS (tests) where
|
|
Packit |
141393 |
|
|
Packit |
141393 |
import Imports
|
|
Packit |
141393 |
|
|
Packit |
141393 |
import Crypto.Hash
|
|
Packit |
141393 |
import Crypto.Random
|
|
Packit |
141393 |
import qualified Crypto.Data.AFIS as AFIS
|
|
Packit |
141393 |
import qualified Data.ByteString as B
|
|
Packit |
141393 |
|
|
Packit |
141393 |
mergeVec :: [ (Int, SHA1, B.ByteString, B.ByteString) ]
|
|
Packit |
141393 |
mergeVec =
|
|
Packit |
141393 |
[ (3
|
|
Packit |
141393 |
, SHA1
|
|
Packit |
141393 |
, "\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02\x02"
|
|
Packit |
141393 |
, "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\xd4\x76\xc8\x58\xbd\xf0\x15\xbe\x9f\x40\xe3\x65\x20\x1c\x9c\xb8\xd8\x1c\x16\x64"
|
|
Packit |
141393 |
)
|
|
Packit |
141393 |
, (3
|
|
Packit |
141393 |
, SHA1
|
|
Packit |
141393 |
, "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17"
|
|
Packit |
141393 |
, "\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\xd6\x75\xc8\x59\xbb\xf7\x11\xbb\x95\x4b\xeb\x6c\x2e\x13\x90\xb5\xca\x0f\x06\x75\x17\x70\x39\x28"
|
|
Packit |
141393 |
)
|
|
Packit |
141393 |
]
|
|
Packit |
141393 |
|
|
Packit |
141393 |
mergeKATs = map toProp $ zip mergeVec [(0 :: Int)..]
|
|
Packit |
141393 |
where toProp ((nbExpands, hashAlg, expected, dat), i) =
|
|
Packit |
141393 |
testCase ("merge " ++ show i) (expected @=? AFIS.merge hashAlg nbExpands dat)
|
|
Packit |
141393 |
|
|
Packit |
141393 |
data AFISParams = AFISParams B.ByteString Int SHA1 ChaChaDRG
|
|
Packit |
141393 |
|
|
Packit |
141393 |
instance Show AFISParams where
|
|
Packit |
141393 |
show (AFISParams dat expand _ _) = "data: " ++ show dat ++ " expanded: " ++ show expand
|
|
Packit |
141393 |
|
|
Packit |
141393 |
instance Arbitrary AFISParams where
|
|
Packit |
141393 |
arbitrary = AFISParams <$> arbitraryBSof 3 46 <*> choose (2,2) <*> elements [SHA1] <*> arbitrary
|
|
Packit |
141393 |
|
|
Packit |
141393 |
instance Arbitrary ChaChaDRG where
|
|
Packit |
141393 |
arbitrary = drgNewTest <$> arbitrary
|
|
Packit |
141393 |
|
|
Packit |
141393 |
tests = testGroup "AFIS"
|
|
Packit |
141393 |
[ testGroup "KAT merge" mergeKATs
|
|
Packit |
141393 |
, testProperty "merge.split == id" $ \(AFISParams bs e hf rng) -> bs == (AFIS.merge hf e $ fst (AFIS.split hf rng e bs))
|
|
Packit |
141393 |
]
|