README.md

# fernet for Erlang #

[![Build Status](https://travis-ci.org/bigkevmcd/erlfernet.svg?branch=master)](https://travis-ci.org/bigkevmcd/erlfernet)

This is an Erlang implementation of the [Fernet specification](https://github.com/fernet/spec) which

 > "takes a user-provided message (an arbitrary sequence of
 > bytes), a key (256 bits), and the current time, and produces a token, which
 > contains the message in a form that can't be read or altered without the key."

## Interface ##

```erlang
1> Key = fernet:generate_encoded_key().
<<"iXOktbuC7QYXM9aF_m49VAqdkZ6jQBMsqjYwEHTm5ps=">>

2> Token = fernet:generate_token("hello", Key).
<<"gAAAAABVguk6wOivag6ZN_76fP2EXltZGJ9yPLLXKg4aBR9ekbhVnYmkJOuqTGl_GlmNlg6Z_KDl2wb1duRV41CNbF931n4LgA==">>

3> fernet:verify_and_decrypt_token(Token, Key, infinity).
{ok,<<"hello">>}

4> TTL = 10. % seconds
10

5> fernet:verify_and_decrypt_token(Token, Key, TTL).
{error, too_old}
```