Name: intel-aes Version: 0.1.2.1 License: BSD3 License-file: LICENSE Stability: Beta Maintainer: Ryan Newton Author: Ryan Newton , Svein Ove Aas , Thomas M. DuBuisson Copyright: Copyright (c) 2011 Intel Corporation Synopsis: Hardware accelerated AES encryption and RNG. HomePage: https://github.com/rrnewton/intel-aes/wiki Description: AES encryption with optional hardware acceleration. Plus, statistically sound, splittable random number generation based on AES. This package is nothing more than a wrapper around the Intel-provided AESNI sample library which also includes a portable software implementation of AES by Brian Gladman. It contains C, assembly, and Haskell sources. And it includes prebuilt dynamic libraries to make the build process less fragile. (Rebuilding requires the @yasm@ assembler.) But prebuilt shared libraries are not included for all platforms yet. (Volunteers needed!) -- Regarding portability, see: -- https://github.com/rrnewton/intel-aes/issues/#issue/1 Finally, note that this package is currently triggering some haddock problems. A manually built copy of the documentation can be found at: -- Here are some example results from an Intel X5680 processor. -- How many random numbers can we generate in a second on one thread? -- First, timing with System.Random interface: -- 14,482,725 random ints generated [System.Random stdGen] -- 16,061 random ints generated [PureHaskell/reference] -- 32,309 random ints generated [PureHaskell] -- 2,401,893 random ints generated [Gladman inefficient] -- 15,980,625 random ints generated [Gladman] -- 2,329,500 random ints generated [IntelAES inefficient] -- 32,383,799 random ints generated [IntelAES] -- Comparison to C's rand(): -- 71,347,778 random ints generated [rand in Haskell loop] Category: Cryptography Cabal-Version: >=1.8 Tested-With: GHC == 7.0.1 -- Portability: Untested on Windows. build-type: Custom extra-source-files: cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/Makefile , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/asm/x64/do_rdtsc.s , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/asm/x64/iaesx64.s , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/asm/x86/do_rdtsc.s , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/asm/x86/iaesx86.s , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/include/iaes_asm_interface.h , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/include/iaesni.h , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/mk_lnx_lib.sh , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/mk_win_lib.bat , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/src/aessample.c , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/src/aessampletiming.cpp , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/src/intel_aes.c , cbits/Intel_AESNI_Sample_Library_v1.0/intel_aes_lib/where_files_come_from_and_license.txt , cbits/Makefile , cbits/c_test.c -- Including the gladman implementation for now as well: , cbits/gladman/aes.h, cbits/gladman/aesopt.h, cbits/gladman/aestab.h , cbits/gladman/brg_endian.h, cbits/gladman/brg_types.h, cbits/gladman/aes.txt , cbits/gladman/aes_via_ace.h, cbits/gladman/ctr_inc.h source-repository head type: git location: git://github.com/rrnewton/intel-aes.git ---------------------------------------------------------------------------------------------------- library build-depends: base >= 4 && < 5, random, DRBG, split, process, haskell98, time, crypto-api, bytestring, cereal, tagged exposed-modules: Codec.Encryption.BurtonRNGSlow , Codec.Crypto.IntelAES , Codec.Crypto.IntelAES.AESNI , Codec.Crypto.ConvertRNG -- , Codec.Crypto.IntelAES.GladmanAES , Codec.Crypto.GladmanAES other-modules: Data.LargeWord , Benchmark.BinSearch , Codec.Encryption.AES , Codec.Encryption.AESAux , Codec.Utils GHC-Options: -O2 extra-libraries: intel_aes -- The gladman sources are straightforward and can be built by Cabal (unlike the intel C/asm) C-sources: cbits/gladman/aescrypt.c, cbits/gladman/aeskey.c, cbits/gladman/aestab.c, cbits/gladman/aes_modes.c, cbits/gladman/ctr_inc.c Include-Dirs: cbits -- ---------------------------------------------------------------------------------------------------- Executable benchmark-intel-aes-rng Main-is: SimpleRNGBench.hs Build-Depends: base >= 4 && < 5, split, rdtsc, unix, random, crypto-api, DRBG , tagged, cereal, bytestring, process, haskell98, time -- , AES , intel-aes GHC-Options: -O2 -threaded -rtsopts C-sources: cbits/c_test.c Include-dirs: cbits -- cabal haddock --hoogle --executables --hyperlink-source --haddock-options="--html"