intel-aes-0.1.2: intel-aes.cabal
Name: intel-aes
Version: 0.1.2
License: BSD3
License-file: LICENSE
Stability: Beta
Maintainer: Ryan Newton <rrnewton@gmail.com>
Author: Ryan Newton <rrnewton@gmail.com>, Svein Ove Aas <svein.ove@aas.no>, 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:
<http://people.csail.mit.edu/newton/intel-aes-doc/>
-- 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,
DRBG, 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"