| Copyright | Copyright © 2022-2024 Lars Kuhtz <lakuhtz@gmail.com> |
|---|---|
| License | MIT |
| Maintainer | Lars Kuhtz <lakuhtz@gmail.com> |
| Stability | experimental |
| Safe Haskell | Safe-Inferred |
| Language | Haskell2010 |
Test.Hash.Internal
Description
Synopsis
- data MsgFile = MsgFile {
- _msgDescription :: !Text
- _msgL :: !Natural
- _msgVectors :: !(Vector MsgVector)
- data MsgVector = MsgVector {
- _msgLen :: !Natural
- _msgMsg :: !ByteString
- _msgMd :: !ByteString
- readMsgFile :: FilePath -> IO MsgFile
- embedMsgFile :: FilePath -> Code Q MsgFile
- data MonteFile = MonteFile {
- _monteDescription :: !Text
- _monteL :: !Natural
- _monteSeed :: !ByteString
- _monteVectors :: !(Vector MonteVector)
- data MonteVector = MonteVector {
- _monteCount :: !Natural
- _monteMd :: !ByteString
- readMonteFile :: FilePath -> IO MonteFile
- embedMonteFile :: FilePath -> Code Q MonteFile
- data ShakeMsgFile = ShakeMsgFile {}
- data ShakeMsgVector = ShakeMsgVector {}
- readShakeMsgFile :: FilePath -> IO ShakeMsgFile
- embedShakeMsgFile :: FilePath -> Code Q ShakeMsgFile
- data ShakeMonteFile = ShakeMonteFile {}
- data ShakeMonteVector = ShakeMonteVector {}
- readShakeMonteFile :: FilePath -> IO ShakeMonteFile
- embedShakeMonteFile :: FilePath -> Code Q ShakeMonteFile
- data ShakeVarOutFile = ShakeVarOutFile {}
- data ShakeVarOutVector = ShakeVarOutVector {}
- readShakeVarOutFile :: FilePath -> IO ShakeVarOutFile
- embedShakeVarOutFile :: FilePath -> Code Q ShakeVarOutFile
- msgTest :: (ByteString -> ByteString) -> MsgFile -> Bool
- msgAssert :: Monad m => (String -> ByteString -> ByteString -> m ()) -> (ByteString -> ByteString) -> MsgFile -> m ()
- monteTestInternal :: Natural -> (ByteString -> ByteString) -> MonteFile -> Bool
- monteAssertInternal :: Monad m => Natural -> (String -> ByteString -> ByteString -> m ()) -> (ByteString -> ByteString) -> MonteFile -> m ()
- embedIO :: Lift a => IO a -> Code Q a
Validation Tests for SHA1, SHA2, and SHA3 Hash Algorithms
Response Files for Selected Long And Short Messages Test for Byte-Oriented Implementations
Constructors
| MsgFile | |
Fields
| |
Constructors
| MsgVector | |
Fields
| |
Instances
| Show MsgVector Source # | |
| Eq MsgVector Source # | |
| Ord MsgVector Source # | |
| Lift MsgVector Source # | |
Response Files for Pseudorandomly Generated Messages (Monte Carlo) Tests
Constructors
| MonteFile | |
Fields
| |
Instances
| Show MonteFile Source # | |
| Eq MonteFile Source # | |
| Ord MonteFile Source # | |
| Lift MonteFile Source # | |
data MonteVector Source #
Constructors
| MonteVector | |
Fields
| |
Instances
| Show MonteVector Source # | |
Defined in Test.Hash.Internal Methods showsPrec :: Int -> MonteVector -> ShowS # show :: MonteVector -> String # showList :: [MonteVector] -> ShowS # | |
| Eq MonteVector Source # | |
Defined in Test.Hash.Internal | |
| Ord MonteVector Source # | |
Defined in Test.Hash.Internal Methods compare :: MonteVector -> MonteVector -> Ordering # (<) :: MonteVector -> MonteVector -> Bool # (<=) :: MonteVector -> MonteVector -> Bool # (>) :: MonteVector -> MonteVector -> Bool # (>=) :: MonteVector -> MonteVector -> Bool # max :: MonteVector -> MonteVector -> MonteVector # min :: MonteVector -> MonteVector -> MonteVector # | |
| Lift MonteVector Source # | |
Defined in Test.Hash.Internal Methods lift :: Quote m => MonteVector -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => MonteVector -> Code m MonteVector # | |
Validation Tests for SHA3-XOFs (Shake) Hash Algorithms
Response Files for Selected Long And Short Messages Test for Byte-Oriented Implementations
data ShakeMsgFile Source #
Constructors
| ShakeMsgFile | |
Fields
| |
Instances
| Show ShakeMsgFile Source # | |
Defined in Test.Hash.Internal Methods showsPrec :: Int -> ShakeMsgFile -> ShowS # show :: ShakeMsgFile -> String # showList :: [ShakeMsgFile] -> ShowS # | |
| Eq ShakeMsgFile Source # | |
Defined in Test.Hash.Internal | |
| Ord ShakeMsgFile Source # | |
Defined in Test.Hash.Internal Methods compare :: ShakeMsgFile -> ShakeMsgFile -> Ordering # (<) :: ShakeMsgFile -> ShakeMsgFile -> Bool # (<=) :: ShakeMsgFile -> ShakeMsgFile -> Bool # (>) :: ShakeMsgFile -> ShakeMsgFile -> Bool # (>=) :: ShakeMsgFile -> ShakeMsgFile -> Bool # max :: ShakeMsgFile -> ShakeMsgFile -> ShakeMsgFile # min :: ShakeMsgFile -> ShakeMsgFile -> ShakeMsgFile # | |
| Lift ShakeMsgFile Source # | |
Defined in Test.Hash.Internal Methods lift :: Quote m => ShakeMsgFile -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => ShakeMsgFile -> Code m ShakeMsgFile # | |
data ShakeMsgVector Source #
Constructors
| ShakeMsgVector | |
Fields
| |
Instances
| Show ShakeMsgVector Source # | |
Defined in Test.Hash.Internal Methods showsPrec :: Int -> ShakeMsgVector -> ShowS # show :: ShakeMsgVector -> String # showList :: [ShakeMsgVector] -> ShowS # | |
| Eq ShakeMsgVector Source # | |
Defined in Test.Hash.Internal Methods (==) :: ShakeMsgVector -> ShakeMsgVector -> Bool # (/=) :: ShakeMsgVector -> ShakeMsgVector -> Bool # | |
| Ord ShakeMsgVector Source # | |
Defined in Test.Hash.Internal Methods compare :: ShakeMsgVector -> ShakeMsgVector -> Ordering # (<) :: ShakeMsgVector -> ShakeMsgVector -> Bool # (<=) :: ShakeMsgVector -> ShakeMsgVector -> Bool # (>) :: ShakeMsgVector -> ShakeMsgVector -> Bool # (>=) :: ShakeMsgVector -> ShakeMsgVector -> Bool # max :: ShakeMsgVector -> ShakeMsgVector -> ShakeMsgVector # min :: ShakeMsgVector -> ShakeMsgVector -> ShakeMsgVector # | |
| Lift ShakeMsgVector Source # | |
Defined in Test.Hash.Internal Methods lift :: Quote m => ShakeMsgVector -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => ShakeMsgVector -> Code m ShakeMsgVector # | |
Response Files for Pseudorandomly Generated Messages (Monte Carlo) Tests
data ShakeMonteFile Source #
Constructors
| ShakeMonteFile | |
Fields | |
Instances
| Show ShakeMonteFile Source # | |
Defined in Test.Hash.Internal Methods showsPrec :: Int -> ShakeMonteFile -> ShowS # show :: ShakeMonteFile -> String # showList :: [ShakeMonteFile] -> ShowS # | |
| Eq ShakeMonteFile Source # | |
Defined in Test.Hash.Internal Methods (==) :: ShakeMonteFile -> ShakeMonteFile -> Bool # (/=) :: ShakeMonteFile -> ShakeMonteFile -> Bool # | |
| Ord ShakeMonteFile Source # | |
Defined in Test.Hash.Internal Methods compare :: ShakeMonteFile -> ShakeMonteFile -> Ordering # (<) :: ShakeMonteFile -> ShakeMonteFile -> Bool # (<=) :: ShakeMonteFile -> ShakeMonteFile -> Bool # (>) :: ShakeMonteFile -> ShakeMonteFile -> Bool # (>=) :: ShakeMonteFile -> ShakeMonteFile -> Bool # max :: ShakeMonteFile -> ShakeMonteFile -> ShakeMonteFile # min :: ShakeMonteFile -> ShakeMonteFile -> ShakeMonteFile # | |
| Lift ShakeMonteFile Source # | |
Defined in Test.Hash.Internal Methods lift :: Quote m => ShakeMonteFile -> m Exp # liftTyped :: forall (m :: Type -> Type). Quote m => ShakeMonteFile -> Code m ShakeMonteFile # | |
data ShakeMonteVector Source #
Constructors
| ShakeMonteVector | |
Fields | |
Instances
Response Files for Variable Output Tests for Byte-Oriented Implementations
data ShakeVarOutFile Source #
Constructors
| ShakeVarOutFile | |
Instances
data ShakeVarOutVector Source #
Constructors
| ShakeVarOutVector | |
Fields | |
Instances
Test Tools
msgTest :: (ByteString -> ByteString) -> MsgFile -> Bool Source #
Check that all test vectors in a File are satisfied by a given hash implementation.
Arguments
| :: Monad m | |
| => (String -> ByteString -> ByteString -> m ()) | Function to assertion Equality. The first argument is a test label, the second argument is the actual value, and the thrid value is the expected value. |
| -> (ByteString -> ByteString) | Hash function |
| -> MsgFile | |
| -> m () |
For a given hash implementation, assert the correct result for each test
vector in a MsgFile.
The function to assert equality is usually provided by some testing framework.
monteTestInternal :: Natural -> (ByteString -> ByteString) -> MonteFile -> Bool Source #
Arguments
| :: Monad m | |
| => Natural | seed multiplyer |
| -> (String -> ByteString -> ByteString -> m ()) | Function to assertion Equality. The first argument is a test label, the second argument is the actual value, and the thrid value is the expected value. |
| -> (ByteString -> ByteString) | Hash function |
| -> MonteFile | |
| -> m () |