lol-0.6.0.0: lol.cabal
name: lol
-- The package version. See the Haskell package versioning policy (PVP)
-- for standards guiding when and how versions should be incremented.
-- http://www.haskell.org/haskellwiki/Package_versioning_policy
-- PVP summary: +-+------- breaking API changes
-- | | +----- non-breaking API additions
-- | | | +--- code changes with no API change
version: 0.6.0.0
synopsis: A library for lattice cryptography.
homepage: https://github.com/cpeikert/Lol
Bug-Reports: https://github.com/cpeikert/Lol/issues
license: GPL-2
license-file: LICENSE
author: Eric Crockett <ecrockett0@gmail.com>, Chris Peikert <cpeikert@alum.mit.edu>
maintainer: Eric Crockett <ecrockett0@gmail.com>
copyright: Eric Crockett, Chris Peikert
category: Crypto
stability: experimental
build-type: Simple
extra-source-files: README, CHANGES.md, Lol.proto, RLWE.proto
cabal-version: >= 1.10
description:
Λ ∘ λ (Lol) is a general-purpose library for ring-based lattice cryptography.
For a detailed description of interfaces and functionality, see
<https://eprint.iacr.org/2015/1134 Λ ∘ λ: Functional Lattice Cryptography>.
Backends for the library include <https://hackage.haskell.org/package/lol-cpp lol-cpp>
and <https://hackage.haskell.org/package/lol-repa lol-repa>.
For example cryptographic applications, see <https://hackage.haskell.org/package/lol-apps lol-apps>.
source-repository head
type: git
location: https://github.com/cpeikert/Lol
-- For information on compiling C with cabal: http://blog.ezyang.com/2010/06/setting-up-cabal-the-ffi-and-c2hs/
Flag llvm
Description: Compile via LLVM. This produces much better object code,
but you need to have the LLVM compiler installed.
-- If you enable this and get errors like "Error: can't resolve `.rodata' {.rodata section}"
-- then GHC doesn't like your version of LLVM!
Default: False
Flag opt
Description: Turn on library optimizations
Default: True
library
default-language: Haskell2010
ghc-options: -fwarn-dodgy-imports
if flag(llvm)
ghc-options: -fllvm -optlo-O3
-- ghc optimizations
if flag(opt)
-- makes lift much faster!
ghc-options: -funfolding-use-threshold1000
exposed-modules:
Crypto.Lol
Crypto.Lol.Types
Crypto.Lol.Factored
Crypto.Lol.Reflects
Crypto.Lol.CRTrans
Crypto.Lol.Gadget
Crypto.Lol.Prelude
Crypto.Lol.Cyclotomic.Cyc
Crypto.Lol.Cyclotomic.UCyc
Crypto.Lol.Cyclotomic.RescaleCyc
Crypto.Lol.Cyclotomic.Linear
Crypto.Lol.RLWE.Continuous
Crypto.Lol.RLWE.Discrete
Crypto.Lol.RLWE.RLWR
Crypto.Lol.Cyclotomic.Tensor
Crypto.Lol.GaussRandom
Crypto.Lol.Types.Unsafe.Complex
Crypto.Lol.Types.FiniteField
Crypto.Lol.Types.IrreducibleChar2
Crypto.Lol.Types.IZipVector
Crypto.Lol.Types.Proto
Crypto.Lol.Types.Random
Crypto.Lol.Types.Unsafe.RRq
Crypto.Lol.Types.ZmStar
Crypto.Lol.Types.ZPP
Crypto.Lol.Types.Unsafe.ZqBasic
Crypto.Proto.Lol
Crypto.Proto.Lol.LinearRq
Crypto.Proto.Lol.R
Crypto.Proto.Lol.Rq1
Crypto.Proto.Lol.RqProduct
Crypto.Proto.Lol.Kq1
Crypto.Proto.Lol.KqProduct
Crypto.Proto.Lol.TypeRep
Crypto.Proto.RLWE
Crypto.Proto.RLWE.SampleCont
Crypto.Proto.RLWE.SampleDisc
Crypto.Proto.RLWE.SampleRLWR
Crypto.Proto.RLWE.SampleCont1
Crypto.Proto.RLWE.SampleDisc1
Crypto.Proto.RLWE.SampleRLWR1
Crypto.Lol.Utils.GenArgs
Crypto.Lol.Utils.ShowType
other-modules:
Crypto.Lol.Cyclotomic.CRTSentinel
Crypto.Lol.FactoredDefs
Crypto.Lol.Types.Numeric
Crypto.Lol.PosBin
Crypto.Lol.PosBinDefs
build-depends:
arithmoi >= 0.4.1.3,
base >= 4.9 && < 5,
bytestring,
constraints,
containers >= 0.5.6.2,
crypto-api,
data-default >= 0.3.0,
deepseq >= 1.4.1.1,
directory,
monadcryptorandom,
MonadRandom >= 0.2,
mtl >= 2.2.1,
numeric-prelude >= 0.4.2,
protocol-buffers,
protocol-buffers-descriptor,
random >= 1.1,
reflection >= 1.5.1,
singletons >= 1.1.2.1,
tagged-transformer >= 0.7,
template-haskell >= 2.2.0.0,
vector >=0.11,
vector-th-unbox >= 0.2.1.0