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 () |