rusty_paseto

A type-driven, ergonomic implementation of the PASETO protocol for secure stateless tokens.

PASETO: Platform-Agnostic Security Tokens

Paseto is everything you love about JOSE (JWT, JWE, JWS) without any of the many design deficits that plague the JOSE standards.

unit tests GitHub

Roadmap and Current Feature Status

| APIs, Tests & Documentation | v1.
local| v1.
public | v2.
local | v2.
public |v3.
local | v3.
public | v4.
local | v4.
public | | ------------: | :-----------: | :----------: |:-----------: |:-----------: |:-----------: |:-----------: |:-----------: |:-----------: | | PASETO Token Builder | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :blackcircle: | :greencircle: | :greencircle: | | PASETO Token Parser | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :blackcircle: | :greencircle: | :greencircle: | | Flexible Claim Validation | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :blackcircle: | :greencircle: | :greencircle: | | Generic Token Builder | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :blackcircle: | :greencircle: | :greencircle: | | Generic Token Parser | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :blackcircle: | :greencircle: | :greencircle: | | Encryption/Signing | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :blackcircle: | :greencircle: | :greencircle: | | Decryption/Verification | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :blackcircle: | :greencircle: | :greencircle: | | PASETO Test vectors | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :greencircle: | :blackcircle: | :greencircle: | :greencircle: | | Documentation | :blackcircle: | :blackcircle: | :orangecircle: | :blackcircle: | :blackcircle: | :blackcircle: | :blackcircle: | :blackcircle: |

| Feature | Status | | ------------: | :-----------: |
| Feature gates | :blackcircle: | | PASERK support | :blackcircle: |

# Usage

rust // at the top of your source file use rusty_paseto::prelude::*; # Examples: Building and parsing tokens

Here's a basic, default token: ```rust use rusty_paseto::prelude::*;

// create a key specifying the PASETO version and purpose let key = PasetoSymmetricKey::::from(Key::from(b"wubbalubbadubdubwubbalubbadubdub")); // use a default token builder with the same PASETO version and purpose let token = PasetoBuilder::::default().build(&key)?; // token is a String in the form: "v4.local.encoded-payload"

```

## A default token

Questions?

File an issue or hit me up on Twitter!