]> git.immae.eu Git - github/fretlink/hmacaroons.git/blob - bench/bench.hs
Initial commit
[github/fretlink/hmacaroons.git] / bench / bench.hs
1 {-#LANGUAGE OverloadedStrings #-}
2
3 import Data.ByteString (ByteString)
4 import Criterion.Main
5
6 import Crypto.Macaroon
7 import Crypto.Macaroon.Internal
8
9
10 loc :: ByteString
11 loc = "http://mybank/"
12
13 ident :: ByteString
14 ident = "we used our secret key"
15
16 key :: ByteString
17 key = "this is our super secret key; only we should know it"
18
19 cav :: ByteString
20 cav = "test = caveat"
21
22
23 {-#INLINE benchCreate#-}
24 benchCreate :: (Key, Key, Location) -> Macaroon
25 benchCreate (secret, ident, loc) = create secret ident loc
26
27 {-#INLINE benchMint #-}
28 benchMint :: ((Key, Key, Location), ByteString) -> Macaroon
29 benchMint (ms,c) = addFirstPartyCaveat c (benchCreate ms)
30
31 main = defaultMain [
32 bgroup "Crypto.Macaroon" [ bench "create" $ nf benchCreate (key,ident,loc)
33 , bench "mint" $ nf benchMint ((key,ident,loc),cav)
34 ]
35 ]