-
Notifications
You must be signed in to change notification settings - Fork 20
/
skein.cabal
138 lines (120 loc) · 4.1 KB
/
skein.cabal
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
138
Cabal-version: >= 1.8
Name: skein
Version: 1.0.9.4
Synopsis: Skein, a family of cryptographic hash functions. Includes Skein-MAC as well.
License: BSD3
License-file: LICENSE
Author: Felipe Lessa <[email protected]>, Doug Whiting
Maintainer: Felipe Lessa <[email protected]>
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/brg_endian.h
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
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.6,
tagged >= 0.2 && < 0.9,
crypto-api >= 0.6 && < 0.14
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.6,
tagged >= 0.2 && < 0.9,
crypto-api >= 0.6 && < 0.14,
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