libjwt-typed-0.1: bench/Benchmarks.hs
module Main
( main
)
where
import Algorithms
import Benchmarks.Jose as Jose
import Benchmarks.Libjwt as My
import Criterion hiding ( benchmark )
import Criterion.Main ( defaultMain )
main :: IO ()
main = defaultMain
[ bgroup
"signing"
[ bgroup
"HMAC512"
[ my $ mySigning <*> pure hs512
, jose $ joseSigning <*> pure jwkHS512
]
, bgroup
"RSA512"
[ my $ mySigning <*> pure rs512
, jose $ joseSigning <*> pure jwkRS512
]
, bgroup
"ECDSA256"
[ my $ mySigning <*> pure es256
, jose $ joseSigning <*> pure jwkES256
]
, bgroup
"ECDSA512"
[ my $ mySigning <*> pure es512
, jose $ joseSigning <*> pure jwkES512
]
]
, bgroup
"decoding"
[ bgroup
"HMAC512"
[ my $ myDecoding <*> pure hs512
, jose $ joseDecoding <*> pure jwkHS512
]
, bgroup
"RSA512"
[ my $ myDecoding <*> pure rs512
, jose $ joseDecoding <*> pure jwkRS512
]
, bgroup
"ECDSA256"
[ my $ myDecoding <*> pure es256
, jose $ joseDecoding <*> pure jwkES256
]
, bgroup
"ECDSA512"
[ my $ myDecoding <*> pure es512
, jose $ joseDecoding <*> pure jwkES512
]
]
]
where
jose = bgroup "jose"
joseSigning =
[ Jose.signSimple
, Jose.signCustomClaims
, Jose.signCustomClaimsWithNs
, Jose.signComplexClaims
]
joseDecoding =
[ Jose.decodeSimple
, Jose.decodeCustomClaims
, Jose.decodeCustomClaimsWithNs
, Jose.decodeComplexClaims
]
my = bgroup "libjwt"
mySigning =
[ My.signSimple
, My.signCustomClaims
, My.signWithNs
, My.signComplexCustomClaims
]
myDecoding =
[ My.decodeSimple
, My.decodeCustomClaims
, My.decodeWithNs
, My.decodeComplexCustomClaims
]