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.3.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 , Chris Peikert maintainer: Eric Crockett copyright: Eric Crockett, Chris Peikert category: Crypto stability: experimental build-type: Simple extra-source-files: README, CHANGES.md, benchmarks/CycBenches.hs, benchmarks/TensorBenches.hs, benchmarks/UCycBenches.hs, benchmarks/ZqBenches.hs, tests/CycTests.hs, tests/TensorTests.hs, tests/ZqTests.hs, utils/Apply.hs, utils/Apply/Cyc.hs, utils/Apply/Zq.hs, utils/Benchmarks.hs, utils/GenArgs.hs, utils/GenArgs/Zq.hs, utils/Tests.hs, utils/TestTypes.hs, utils/Utils.hs, Crypto/Lol/Cyclotomic/Tensor/CTensor/*.h, Crypto/Lol/Cyclotomic/Tensor/CTensor/*.cpp 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 . For example cryptographic applications, see . 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 cc-options: -std=c++11 Include-dirs: Crypto/Lol/Cyclotomic/Tensor/CTensor -- Due to #12152, the file containing the definition of `Zq::q` must be linked first, -- otherwise dynamic linking (`cabal repl` or `stack ghci`) results in the error: -- "Loading temp shared object failed: /tmp/ghc54651_0/libghc_1.so: undefined symbol _ZN2Zq1qE" -- For `cabal repl`, we can simply reorder the list so that the file that should be linked -- first comes first in the list. However `stack ghci` always links alphabetically, -- so we really just have to define `Zq::q` in the first file alphabetically. C-sources: Crypto/Lol/Cyclotomic/Tensor/CTensor/common.cpp, Crypto/Lol/Cyclotomic/Tensor/CTensor/crt.cpp, Crypto/Lol/Cyclotomic/Tensor/CTensor/g.cpp, Crypto/Lol/Cyclotomic/Tensor/CTensor/l.cpp, Crypto/Lol/Cyclotomic/Tensor/CTensor/mul.cpp, Crypto/Lol/Cyclotomic/Tensor/CTensor/norm.cpp, Crypto/Lol/Cyclotomic/Tensor/CTensor/random.cpp, Crypto/Lol/Cyclotomic/Tensor/CTensor/zq.cpp if flag(llvm) ghc-options: -fllvm -optlo-O3 -- ghc optimizations if flag(opt) ghc-options: -O3 -Odph -funbox-strict-fields -fno-liberate-case -funfolding-use-threshold1000 -funfolding-keeness-factor1000 exposed-modules: Crypto.Lol Crypto.Lol.PosBin 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.Cyclotomic.Tensor.CTensor Crypto.Lol.Cyclotomic.Tensor.RepaTensor Crypto.Lol.Types.Random Crypto.Lol.Types.FiniteField Crypto.Lol.Types.IrreducibleChar2 Crypto.Lol.Types.Proto Crypto.Lol.Types.RRq Crypto.Lol.Types.ZPP Crypto.Lol.Types.ZqBasic Crypto.Proto.RLWE Crypto.Proto.RLWE.Rq Crypto.Proto.RLWE.Kq Crypto.Proto.RLWE.SampleCont Crypto.Proto.RLWE.SampleDisc Crypto.Proto.RLWE.SampleRLWR other-modules: Crypto.Lol.FactoredDefs Crypto.Lol.PosBinDefs Crypto.Lol.GaussRandom Crypto.Lol.Types.ZmStar Crypto.Lol.Types.Complex Crypto.Lol.Types.Numeric Crypto.Lol.Types.IZipVector Crypto.Lol.Cyclotomic.CRTSentinel Crypto.Lol.Cyclotomic.Tensor.RepaTensor.CRT Crypto.Lol.Cyclotomic.Tensor.RepaTensor.Extension Crypto.Lol.Cyclotomic.Tensor.RepaTensor.Dec Crypto.Lol.Cyclotomic.Tensor.RepaTensor.GL Crypto.Lol.Cyclotomic.Tensor.RepaTensor.RTCommon Crypto.Lol.Cyclotomic.Tensor.CTensor.Extension Crypto.Lol.Cyclotomic.Tensor.CTensor.Backend build-depends: arithmoi >= 0.4.1.3 && <0.5, base==4.8.*, binary, bytestring, constraints, containers >= 0.5.6.2 && < 0.6, crypto-api, data-default >= 0.3.0 && < 0.8, deepseq >= 1.4.1.1 && <1.5, monadcryptorandom, MonadRandom >= 0.2 && < 0.5, mtl >= 2.2.1 && < 2.3, numeric-prelude >= 0.4.2 && < 0.5, QuickCheck >= 2.8 && < 2.9, protocol-buffers, protocol-buffers-descriptor, random >= 1.1 && < 1.2, reflection >= 1.5.1 && < 2.2, repa==3.4.*, singletons >= 1.1.2.1 && < 2.2, storable-record >= 0.0.3 && < 0.1, th-desugar >= 1.5.4 && < 1.7, tagged-transformer >= 0.7 && < 0.9, template-haskell >= 2.2.0.0, transformers >= 0.4.2.0 && < 0.6, vector==0.11.*, vector-th-unbox >= 0.2.1.0 && < 0.3 other-extensions: TemplateHaskell test-suite test-lol type: exitcode-stdio-1.0 hs-source-dirs: tests,utils default-language: Haskell2010 main-is: Main.hs ghc-options: -threaded -rtsopts build-depends: base, constraints, deepseq, DRBG, lol, MonadRandom, mtl, QuickCheck >= 2.8 && < 2.9, random, repa, singletons, test-framework >= 0.8 && < 0.9, test-framework-quickcheck2 >= 0.3 && < 0.4, vector Benchmark bench-lol type: exitcode-stdio-1.0 hs-source-dirs: benchmarks,utils default-language: Haskell2010 main-is: Main.hs if flag(llvm) ghc-options: -fllvm -optlo-O3 -- ghc-options: -threaded -rtsopts ghc-options: -O3 -Odph -funbox-strict-fields -fno-liberate-case -funfolding-use-threshold1000 -funfolding-keeness-factor1000 -- ghc-options: -O2 -Odph -funbox-strict-fields -fwarn-dodgy-imports -rtsopts -- ghc-options: -fno-liberate-case -funfolding-use-threshold1000 -funfolding-keeness-factor1000 build-depends: base, criterion, deepseq, DRBG, lol, MonadRandom, mtl, singletons, transformers, vector, repa