aboutsummaryrefslogtreecommitdiffhomepage
path: root/hmacaroons.cabal
blob: 5590af61f440292797d79cec60e19de301f59309 (plain) (blame)
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
name:                hmacaroons
version:             0.1.0.0
synopsis:            Haskell implementation of macaroons
description:
  = Macaroons: Pure haskell implementation of macaroons
  #macaroons-pure-haskell-implementation-of-macaroons#

  Macaroons is a pure haskell implementation of macaroons. It aims to
  provide compatibility at a serialized level with the
  <https://github.com/rescrv/libmacaroons reference implementation> and
  the <https://github.com/ecordell/pymacaroons python implementation>

  __WARNING: This library has not been audited by security experts.__
  __There is no error handling at the moment, everyhting is silently
  accepted__

  It is developed in the purpose of exploration purposes, and would need
  much more attention if it were to be used in production.

  = References
  #references#

  == Papers and articles
  #papers-and-articles#

  -   <http://research.google.com/pubs/pub41892.html Google paper on macaroons>
  -   <https://air.mozilla.org/macaroons-cookies-with-contextual-caveats-for-decentralized-authorization-in-the-cloud/ Macaroons at Mozilla>
  -   <http://hackingdistributed.com/2014/11/23/macaroons-in-hyperdex/ Time for better security in NoSQL>

  == Implementations
  #implementations#

  -   <https://github.com/rescrv/libmacaroons C>
  -   <https://github.com/nitram509/jmacaroons Java>
  -   <https://github.com/nitram509/macaroons.js Node.js>
  -   <https://github.com/ecordell/pymacaroons Python>
  -   <https://github.com/cryptosphere/rust-macaroons.git Rust>

  = TODO
  #todo#

  -   Third party caveats
  -   Verify Macaroons
  -   Discharge Macaroons
  -   JSON serialization
  -   Quickcheck tests
  -   Error handling
  -   FFI\'s for testing and benchmarking purposes
license:             BSD3
license-file:        LICENSE
author:              Julien Tanguy
maintainer:          julien.tanguy@jhome.fr
homepage:            https://github.com/jtanguy/hmacaroons
bug-reports:         https://github.com/jtanguy/hmacaroons/issues
category:            Data
build-type:          Simple
extra-source-files:  README.md
                     CONTRIBUTING.md
cabal-version:       >=1.10

source-repository head
    type:       git
    branch:     master
    location:   https://github.com/jtanguy/hmacaroons

library
  exposed-modules:     Crypto.Macaroon,
                       Crypto.Macaroon.Binder
                       Crypto.Macaroon.Serializer.Base64
  other-modules:       Crypto.Macaroon.Internal
  build-depends:  base >=4 && < 5,
                  attoparsec >=0.12,
                  bytestring >=0.10,
                  base64-bytestring >= 1.0,
                  byteable >= 0.1 && <0.2,
                  cereal >= 0.4,
                  cryptohash >=0.11 && <0.12,
                  cipher-aes >=0.2 && <0.3,
                  deepseq >= 1.1,
                  hex >= 0.1
  hs-source-dirs:      src
  default-language:    Haskell2010
 
benchmark bench
  default-language: Haskell2010
  type:             exitcode-stdio-1.0
  hs-source-dirs:   src, bench
  main-is:          bench.hs
  ghc-options:      -O2
  build-depends:  base >= 4 && <5,
                  attoparsec >=0.12,
                  bytestring >=0.10,
                  base64-bytestring >= 1.0,
                  byteable >= 0.1 && <0.2,
                  cereal >= 0.4,
                  cryptohash >=0.11 && <0.12,
--                  cipher-aes >=0.2 && <0.3,
                  hex >= 0.1,
                  deepseq >= 1.1,
                  criterion >= 1.1

test-suite test
  default-language: Haskell2010
  type: exitcode-stdio-1.0
  hs-source-dirs: test
  main-is: main.hs
  build-depends:  base >= 4 && <5,
                  attoparsec >=0.12,
                  bytestring >=0.10,
                  base64-bytestring >= 1.0,
                  byteable >= 0.1 && <0.2,
                  cereal >= 0.4,
                  cryptohash >=0.11 && <0.12,
                  hex >= 0.1,
                  tasty >= 0.10,
                  tasty-hunit >= 0.9,
                  tasty-quickcheck >= 0.8,
                  hmacaroons