packages feed

raaz-0.3.11: tests/comparative/Encrypt.hs

module Encrypt( encryptSpec
              , decryptSpec
              , module Compare
              ) where
import Compare

encryptSpec :: ( Eq a
               , Show k, Show n
               , Arbitrary k , Arbitrary n
               )
            => [(String, k -> n -> ByteString -> a)]
            -> Spec

encryptSpec fs = prop mesg $ \ k n bs -> checkSame $ map (encryptIt k n bs) fs
  where encryptIt k n bs (nm,f) = (nm, f k n bs)
        mesg = message $ map fst fs


decryptSpec :: ( Eq a
               , Show k, Show n
               , Arbitrary k , Arbitrary n
               )
            => [(String, k -> n -> ByteString -> a)]
            -> Spec

decryptSpec fs = prop mesg $ \ k n bs -> checkSame $ map (decryptIt k n bs) fs
  where decryptIt k n bs (nm,f) = (nm, f k n bs)
        mesg = message $ map fst fs