packages feed

cipher-aes128-0.4.1: Benchmark/bench.hs

import Crypto.Cipher.AES128
import Crypto.Cipher.AES
import Crypto.Classes
import Crypto.Modes (zeroIV)
import Criterion
import Criterion.Main
import System.Entropy
import Data.Serialize
import qualified Data.ByteString as B

main = do
    let iv = zeroIV
        ivV = IV (B.replicate 16 0)
    pt <- getEntropy (2^12)
    k  <- buildKeyIO :: IO AESKey
    let kV = initKey (B.pack [0..15])
    defaultMain
        [ bench "aes-ctr cipher-aes128" $ nf (fst . ctr k iv) pt
        , bench "aes-ctr cipher-aes" $ nf (encryptCTR kV ivV) pt
        , bench "aes-gcm cipher-aes" $ nf (encryptGCM kV ivV B.empty) pt]