asap 0.2.3

An implementation of ASAP for rust.
Documentation

ASAP for Rust

crates.io

This is a rust library for generating and validating ASAP tokens. It provides options for doing so that are compliant with the ASAP specification.

Why should you use this library?

  • Do you want super-fast ASAP token generation (1 token/millisecond)?
  • Do you want ultra-fast ASAP token validation (1 token/nanosecond)?
  • Do you want to bring your own token Claims in whatever format you'd like?
  • Do you want to use ASAP with one of the greatest languages ever?

Basically, yes. Yes, you should use this library if you want ASAP and use Rust.

Usage

Installation

To install, add the following lines to your Cargo.toml:

asap = "0.2"
# These crates are required for defining your own `Claims` struct which needs
# to be serialised into the token (and deserialised out of it).
serde_derive = "1"
serde = "1"

Documentation

And see the documentation and API which should be straightforward enough for anything you'd need.

Requirements

This crate currently depends on a valid installation of openssl. See the openssl crate's repo for more installation details relating to openssl. It depends on openssl in order to convert a PEM-encoded private key to DER when instantiating from environment variables (see Generator::from_env()).

Other than that, this crate simply provides an ASAP Generator and an ASAP Validator, which generate and validate ASAP tokens according to the specification.

Development/Testing

Currently, running the tests has some limitations:

  • The tests need a local keyserver running at http://localhost:8000
  • The tests need to be run serially
    • Since they also test that requests were made to the keyserver, etc.

To run the tests, perform the following:

# Runs a simple keyserver.
cargo run -p keyserver

# In a different shell, run the tests with the following command:
./support/test.sh

References

License

MIT