File ed25519.cabal of Package ghc-ed25519

name:                ed25519
version:             0.0.5.0
x-revision: 2
category:            Cryptography
license:             MIT
synopsis:            Ed25519 cryptographic signatures
homepage:            http://thoughtpolice.github.com/hs-ed25519
bug-reports:         http://github.com/thoughtpolice/hs-ed25519/issues
license-file:        LICENSE.txt
copyright:           Copyright (c) Austin Seipp 2013-2015
author:              Austin Seipp
maintainer:          Austin Seipp <aseipp@pobox.com>
build-type:          Simple
cabal-version:       >=1.10
tested-with:         GHC == 7.0.1, GHC == 7.0.2, GHC == 7.0.3, GHC == 7.0.4,
                     GHC == 7.2.1, GHC == 7.2.2, GHC == 7.4.1, GHC == 7.4.2,
                     GHC == 7.6.1, GHC == 7.6.2, GHC == 7.6.3,
                     GHC == 7.8.2, GHC == 7.8.3, GHC == 7.8.4,
                     GHC == 7.10.1, GHC == 7.10.2

description:
  This package provides a simple, fast, self-contained copy of the
  Ed25519 public-key signature system with a clean interface. It also
  includes support for detached signatures, and thorough documentation
  on the design and implementation, including usage guidelines.

extra-source-files:
  .travis.yml
  AUTHORS.txt
  README.md
  CONTRIBUTING.md
  CHANGELOG.md
  src/cbits/ref10/*.c
  src/cbits/ref10/include/*.h

source-repository head
  type: git
  location: https://github.com/thoughtpolice/hs-ed25519.git

-------------------------------------------------------------------------------
-- Flags

flag test-properties
  default: True
  manual: True

flag test-hlint
  default: True
  manual: True

flag test-doctests
  default: True
  manual: True

flag no-donna
  default: True
  manual: True

-------------------------------------------------------------------------------
-- Build pt 1: main project

library
  build-depends:
    ghc-prim    >= 0.1 && < 0.6,
    base        >= 4   && < 5,
    bytestring  >= 0.9 && < 0.11

  exposed-modules:
    Crypto.Sign.Ed25519

  ghc-options:        -Wall -fwarn-tabs
  default-language:   Haskell2010
  hs-source-dirs:     src

  -- Choose the underlying C implementation
  if flag(no-donna)
    -- ref10 implementation from SUPERCOP, about 2x slower than the AMD64
    -- SUPERCOP implementations, 15x faster than ronald3072 for signing.
    c-sources:          src/cbits/ref10/ed25519.c
    include-dirs:       src/cbits/ref10 src/cbits/ref10/include
  else
    -- TODO(aseipp): ed25519-donna import
    buildable: False

-------------------------------------------------------------------------------
-- Build pt 2: Tests

test-suite properties
  type: exitcode-stdio-1.0
  main-is: properties.hs
  ghc-options: -w
  hs-source-dirs: tests
  default-language:   Haskell2010

  if !flag(test-properties)
    buildable: False
  else
    build-depends:
      base        >= 4   && < 5,
      bytestring  >= 0.9 && < 0.11,
      QuickCheck  >= 2.4 && < 2.9,
      ed25519

--
-- Style/doc tests below
--

test-suite hlint
  type:             exitcode-stdio-1.0
  main-is:          hlint.hs
  hs-source-dirs:   tests
  default-language: Haskell2010

  if !flag(test-hlint)
    buildable: False
  else
    build-depends:
      base  >= 4   && < 5,
      hlint >= 1.7 && < 1.10

test-suite doctests
  type:             exitcode-stdio-1.0
  main-is:          doctests.hs
  hs-source-dirs:   tests
  default-language: Haskell2010

  if !flag(test-doctests)
    buildable: False
  else
    build-depends:
      base      >= 4    && < 5,
      filepath  >= 1.0  && < 1.5,
      directory >= 1.0  && < 1.3,
      doctest   >= 0.10 && < 0.12

-------------------------------------------------------------------------------
-- Build pt 3: benchmarks

benchmark bench
  type:               exitcode-stdio-1.0
  build-depends:
      base        >= 4   && < 5,
      bytestring  >= 0.9 && < 0.11,
      criterion   >= 0.8 && < 1.2,
      deepseq     >= 1.3 && < 1.5,
      ed25519

  default-language:   Haskell2010
  hs-source-dirs:     benchmarks
  main-is:            bench.hs