blob: 452b90a16bf117184838555e47c07bb435230f1b (
plain) (
tree)
|
|
Macaroons: Pure haskell implementation of macaroons [![Build Status](https://travis-ci.org/jtanguy/hmacaroons.svg?branch=master)](https://travis-ci.org/jtanguy/hmacaroons)
===================================================
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
====
- Third party caveats
- Verify Macaroons
- Discharge Macaroons
- JSON serialization
- Quickcheck tests
- Error handling
- FFI's for testing and benchmarking purposes
|