File: skein.cabal

package info (click to toggle)
haskell-skein 0.1.0.7-2
  • links: PTS, VCS
  • area: main
  • in suites: wheezy
  • size: 708 kB
  • sloc: ansic: 2,591; haskell: 408; makefile: 8
file content (137 lines) | stat: -rw-r--r-- 4,107 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
Cabal-version:       >= 1.8
Name:                skein
Version:             0.1.0.7
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.

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 && < 0.10,
        cereal       >= 0.3 && < 0.4,
        tagged       >= 0.2 && < 0.5,
        crypto-api   >= 0.6 && < 0.11

    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 && < 0.10,
        cereal       >= 0.3 && < 0.4,
        tagged       >= 0.2 && < 0.3,
        crypto-api   >= 0.6 && < 0.10,

        filepath     == 1.*,
        transformers,
        hspec        == 0.9.*,

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