File: argon2.cabal

package info (click to toggle)
haskell-argon2 1.3.0.1-8
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 324 kB
  • sloc: ansic: 2,698; haskell: 319; makefile: 7
file content (119 lines) | stat: -rw-r--r-- 4,614 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
cabal-version:       1.22
name:                argon2
version:             1.3.0.1
x-revision: 3

synopsis:            Memory-hard password hash and proof-of-work function
description:
    Argon2 is the key derivation function (KDF) selected as the winner of the [Password Hashing Competition](https://en.wikipedia.org/wiki/Password_Hashing_Competition). The API exposed by this bindings provide access to the 3 specified variants
    .
    * @Argon2d@ (maximize resistance to GPU cracking attacks),
    * @Argon2i@ (optimized to resist side-channel attacks), and
    * @Argon2id@ (hybrid version combining @Argon2d@ and @Argon2i@)
    .
    and allows to control various parameters (time cost, memory cost, parallelism) of the Argon2 function. Moreover, it is also supported to generate and verify the deprecated version 1.0 hashes, as well as the current version 1.3 hashes.
    .
    The Haskell API supports both raw binary hashes as well as the ASCII-based [PHC string format](https://github.com/P-H-C/phc-string-format/blob/master/phc-sf-spec.md).
    .
    This version provides bindings to the \"@20171227@\" release of the [Argon2 reference implementation (libargon2)](https://github.com/P-H-C/phc-winner-argon2) of the Argon2 password-hashing function.
    .
    Please refer to the [Argon2 specification](https://github.com/P-H-C/phc-winner-argon2/blob/master/argon2-specs.pdf) for more information.


license:             BSD3
license-files:       LICENSE
                     phc-winner-argon2/LICENSE

author:              Ollie Charles, Herbert Valerio Riedel
maintainer:          Herbert Valerio Riedel <hvr@gnu.org>
bug-reports:         https://github.com/hvr/argon2/issues
category:            Cryptography
build-type:          Simple
extra-source-files:  Changelog.md

                     phc-winner-argon2/include/argon2.h
                     phc-winner-argon2/include/hs_argon2_mangling.h
                     phc-winner-argon2/src/blake2/blake2-impl.h
                     phc-winner-argon2/src/blake2/blake2.h
                     phc-winner-argon2/src/blake2/blamka-round-ref.h
                     phc-winner-argon2/src/blake2/blamka-round-opt.h
                     phc-winner-argon2/src/core.h
                     phc-winner-argon2/src/encoding.h
                     phc-winner-argon2/src/thread.h

source-repository head
  type:     git
  location: https://github.com/hvr/argon2.git

flag use-system-library
  description: Link against system @libargon2@ library rather than using embedded copy of @libargon2@. See also @pkg-config@ flag.
  default: False
  manual: True

flag pkg-config
  description: Use @pkg-config(1)@ to discover system-library location & flags.
               .
               __NOTE__: This has an effect only when the @use-system-library@ flag is also enabled.
  default: True
  manual: True

flag non-optimised-c
  description: Force use of non-optimised C routines on @x86_64@. Ineffective when @use-system-library@ flag is active.
  default: False
  manual: True

library
  default-language:    Haskell2010
  exposed-modules:     Crypto.Argon2.FFI
                       Crypto.Argon2

  build-depends:       base         >= 4.8      && < 4.17
                     , bytestring   >= 0.10.0.0 && < 0.12.0.0
                     , deepseq      == 1.4.*
                     , text-short   >= 0.1.2    && < 0.2

  hs-source-dirs:      src

  ghc-options: -Wall
  if impl(ghc >= 8.0)
    ghc-options: -Wno-missing-pattern-synonym-signatures

  if flag(use-system-library)
    cpp-options: -DUSE_SYSTEM_ARGON2=1
    if flag(pkg-config)
      pkgconfig-depends: libargon2 >= 20161029
    else
      extra-libraries: argon2
  else
    cpp-options: -DUSE_SYSTEM_ARGON2=0
    c-sources: phc-winner-argon2/src/argon2.c
               phc-winner-argon2/src/core.c
               phc-winner-argon2/src/blake2/blake2b.c
               phc-winner-argon2/src/thread.c
               phc-winner-argon2/src/encoding.c

    if arch(x86_64) && !flag(non-optimised-c)
      c-sources: phc-winner-argon2/src/opt.c
    else
      c-sources: phc-winner-argon2/src/ref.c

    include-dirs: phc-winner-argon2/src
                  phc-winner-argon2/include

    cc-options: -O3

test-suite tests
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  hs-source-dirs: src-tests
  main-is: Tests.hs
  build-depends: argon2
               , base
               , bytestring

               , QuickCheck       == 2.11.*
               , tasty-quickcheck == 0.10.*
               , tasty-hunit      == 0.10.*
               , tasty            == 1.0.*

  ghc-options: -threaded