aboutsummaryrefslogtreecommitdiffhomepage
path: root/README.md
blob: 97fc53e98d5109c2155a4d43eaed28acf382f2f2 (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
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 [reference implementation](https://github.com/rescrv/libmacaroons)
and the [python implementation](https://github.com/ecordell/pymacaroons)

**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
==========

Papers and articles
-------------------

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

Implementations
---------------

- [C](https://github.com/rescrv/libmacaroons)
- [Java](https://github.com/nitram509/jmacaroons)
- [Node.js](https://github.com/nitram509/macaroons.js)
- [Python](https://github.com/ecordell/pymacaroons)
- [Rust](https://github.com/cryptosphere/rust-macaroons.git)

TODO
====

- Verify Macaroons
- Discharge Macaroons
- JSON serialization
- Quickcheck tests
- Error handling
- FFI's for testing and benchmarking purposes