packages feed

saltine-0.2.2.0: bench/Main.hs

import Criterion.Main

import Control.Monad
import Control.DeepSeq
import Control.Exception

import AuthBench
import OneTimeAuthBench
import BoxBench
import SecretBoxBench
import ConstantTimeBench
import HashBench
import RandomBench
import ScalarMultBench
import SignBench
import StreamBench
import PasswordBench
import AES256GCMBench
import ChaCha20Poly1305Bench
import ChaCha20Poly1305IETFBench
import XChaCha20Poly1305Bench

main :: IO ()
main = do
  authKeyToEval <- authEnv
  authKey <- evaluate $ force authKeyToEval

  oneTimeAuthKeyToEval <- oneTimeAuthEnv
  oneTimeAuthKey <- evaluate $ force oneTimeAuthKeyToEval

  boxToEval <- boxEnv
  boxKeys <- evaluate $ force boxToEval

  secretboxKeyToEval <- secretboxEnv
  secretboxKey <- evaluate $ force secretboxKeyToEval

  scmlToEval <- scalarMultEnv
  scml <- evaluate $ force scmlToEval

  signToEval <- signEnv
  signKey <- evaluate $ force signToEval

  streamKeyToEval <- streamEnv
  streamKey <- evaluate $ force streamKeyToEval

  passwordSaltToEval <- passwordEnv
  passwordSalt <- evaluate $ force passwordSaltToEval

  hashKeysToEval <- hashEnv
  hashKeys <- evaluate $ force hashKeysToEval

  aes256GCMKeyToEval <- aes256GCMEnv
  aes256GCMKey <- evaluate $ force aes256GCMKeyToEval

  chaCha20Poly1305KeyToEval <- chaCha20Poly1305Env
  chaCha20Poly1305Key <- evaluate $ force chaCha20Poly1305KeyToEval

  chaCha20Poly1305IETFKeyToEval <- chaCha20Poly1305IETFEnv
  chaCha20Poly1305IETFKey <- evaluate $ force chaCha20Poly1305IETFKeyToEval

  xChaCha20Poly1305KeyToEval <- xChaCha20Poly1305Env
  xChaCha20Poly1305Key <- evaluate $ force xChaCha20Poly1305KeyToEval

  defaultMain [
      benchAuth authKey
    , benchOneTimeAuth oneTimeAuthKey
    , benchBox boxKeys
    , benchSecretbox secretboxKey
    , benchHash hashKeys
    , benchScalarMult scml
    , benchSign signKey
    , benchStream streamKey
    , benchPassword passwordSalt
    , benchComparison
    , benchAes256GCM aes256GCMKey
    , benchChaCha20Poly1305 chaCha20Poly1305Key
    , benchChaCha20Poly1305IETF chaCha20Poly1305IETFKey
    , benchXChaCha20Poly1305 xChaCha20Poly1305Key
    ]