fernet

Crates.iofernet
lib.rsfernet
version0.2.2
sourcesrc
created_at2018-05-04 19:30:42.529657
updated_at2024-05-16 16:38:41.80418
descriptionAn implementation of fernet in Rust.
homepagehttps://github.com/mozilla-services/fernet-rs/
repositoryhttps://github.com/mozilla-services/fernet-rs/
max_upload_size
id63773
size48,053
Philip Jenvey (pjenvey)

documentation

README

fernet-rs

dependency status

An implementation of fernet in Rust.

What is Fernet?

Fernet is a small library to help you encrypt parcels of data with optional expiry times. It's great for tokens or exchanging small strings or blobs of data. Fernet is designed to be easy to use, combining cryptographic primitives in a way that is hard to get wrong, prevents tampering and gives you confidence that the token is legitimate. You should consider this if you need:

  • Time limited authentication tokens in URLs or authorisation headers
  • To send small blobs of encrypted data between two points with a static key
  • Simple encryption of secrets to store to disk that can be read later
  • Many more ...

Great! How do I start?

Add fernet to your Cargo.toml:

[dependencies]
fernet = "0.1"

And then have a look at our [API documentation] online, or run "cargo doc --open" in your project.

Testing Token Expiry

By default fernet wraps operations in an attempt to be safe - you should never be able to "hold it incorrectly". But we understand that sometimes you need to be able to do some more complicated operations.

The major example of this is having your application test how it handles tokens that have expired past their ttl.

To support this, we allow you to pass in timestamps to the encrypt_at_time and decrypt_at_time functions, but these are behind a feature gate. To activate these api's you need to add the following to Cargo.toml

[dependencies]
fernet = { version = "0.1", features = ["fernet_danger_timestamps"] }
Commit count: 108

cargo fmt