packages feed

skein-1.0.3: skein.cabal

Cabal-version:       >= 1.8
Name:                skein
Version:             1.0.3
Synopsis:            Skein, a family of cryptographic hash functions.  Includes Skein-MAC as well.
License:             BSD3
License-file:        LICENSE
Author:              Felipe Lessa <felipe.lessa@gmail.com>, Doug Whiting
Maintainer:          Felipe Lessa <felipe.lessa@gmail.com>
Category:            Cryptography
Build-type:          Simple
Homepage:            https://github.com/meteficha/skein

Description:
    Skein (<http://www.skein-hash.info/>) is a family of fast
    secure cryptographic hash functions designed by Niels
    Ferguson, Stefan Lucks, Bruce Schneier, Doug Whiting, Mihir
    Bellare, Tadayoshi Kohno, Jon Callas and Jesse Walker.
    .
    This package uses bindings to the optimized C implementation
    of Skein.  We provide a high-level interface (see module
    "Crypto.Skein") to some of the Skein use cases.  We also
    provide a low-level interface (see module
    "Crypto.Skein.Internal") should you need to use Skein in a
    different way.
    .
    Currently we have support for Skein as cryptographic hash
    function as Skein as a message authentication code
    (Skein-MAC).  For examples of how to use this package, see
    "Crypto.Skein" module documentation.
    .
    This package includes Skein v1.3. Versions of this package
    before 1.0.0 implemented Skein v1.1.

Extra-source-files:
    c_impl/optimized/skein.c
    c_impl/optimized/skein.h
    c_impl/optimized/skein_block.c
    c_impl/optimized/skein_debug.c
    c_impl/optimized/skein_debug.h
    c_impl/optimized/skein_iv.h
    c_impl/optimized/skein_port.h
    c_impl/reference/skein.c
    c_impl/reference/skein.h
    c_impl/reference/skein_block.c
    c_impl/reference/skein_debug.c
    c_impl/reference/skein_debug.h
    c_impl/reference/skein_port.h
    tests/runtests.hs

Data-files:
    tests/skein_golden_kat.txt

Source-repository head
  Type:     git
  Location: git://github.com/meteficha/skein.git

Flag reference
    Description: Use the reference implementation instead of the optimized one.
    Default: False

Flag force-endianness
    Description: Use a manually selected endian when compiling (see flag 'big-endian').
    Default: False

Flag big-endian
    Description: When manually selecting the endianness, use big-endian (default is little-endian).
    Default: False

Library
    Hs-Source-Dirs: src

    Exposed-modules:
        Crypto.Skein
        Crypto.Skein.Internal

    Build-depends:
        base         >= 3   && < 5,
        bytestring   >= 0.9,
        cereal       >= 0.3 && < 0.4,
        tagged       >= 0.2 && < 0.7,
        crypto-api   >= 0.6 && < 0.13

    Build-tools: hsc2hs
    GHC-options: -Wall

    Extensions:
        BangPatterns
        CPP
        ForeignFunctionInterface
        MultiParamTypeClasses

    Includes:
        skein.h

    if flag(force-endianness)
        if flag(big-endian)
            CC-options: "-DSKEIN_NEED_SWAP=1"
        else
            CC-options: "-DSKEIN_NEED_SWAP=0"
    else
        if arch(i386) || arch(x86_64)
            CC-options: "-DSKEIN_NEED_SWAP=0"
        if arch(ppc) || arch(sparc) || arch(s390) || arch(hppa)
            CC-options: "-DSKEIN_NEED_SWAP=1"

    if flag(reference)
        Include-Dirs:
            c_impl/reference
        C-sources:
            c_impl/reference/skein.c
            c_impl/reference/skein_block.c
         -- c_impl/reference/skein_debug.c -- not used
    else
        Include-Dirs:
            c_impl/optimized
        C-sources:
            c_impl/optimized/skein.c
            c_impl/optimized/skein_block.c
         -- c_impl/optimized/skein_debug.c -- not used


Test-suite runtests
    Type: exitcode-stdio-1.0
    Build-depends:
        base         >= 3   && < 5,
        bytestring   >= 0.9,
        cereal       >= 0.3 && < 0.4,
        tagged       >= 0.2 && < 0.7,
        crypto-api   >= 0.6 && < 0.13,

        filepath     == 1.*,
        hspec        >= 1.3,

        -- finally, our own package
        skein
    GHC-options:     -Wall
    Hs-source-dirs:  tests
    Main-is:         runtests.hs
    Other-modules:   Paths_skein