Skip to content

Repository files navigation

RustCrypto: JOSE Project Chatdependency status

Pure Rust implementation of Javascript Object Signing and Encryption (JOSE)

Crates

Namecrates.ioDocsDescription
jose-b64crates.ioDocumentationBase64 utilities for use in JOSE crates
jose-jwacrates.ioDocumentationJSON Web Algorithms (JWA)
jose-jwecrates.ioDocumentationJSON Web Encryption (JWE)
jose-jwkcrates.ioDocumentationJSON Web Keys (JWK)
jose-jwscrates.ioDocumentationJSON Web Signatures (JWS)
jose-jwtcrates.ioDocumentationJSON Web Tokens (JWT)

Crate Overview

This project provides multiple crates that implement different components of the JOSE family. An overview of each and information on their relationships is listed below.

jose-b64

This crate provides relevant utilities for working with Base64. It won't often be used on its own, but provides helper types for working with json-as-b64 and cyptographically secure base64, both of which are common cases with JOSE.

jose-jwa

This crate provides representations of different algorithm types as specified in RFC7518. Again, it is not likely that this crate is used on its own; it will be reexported when required by the other crates.

jose-jwk

This crate provides ways to interact with JWKs, JSON representations of cryptographic keys specified in RFC7517. Typically JWKs hold public keys.

jose-jws

This crate provides a way to interact with JWSs, data sent via JSON that has a way to validate data authenticity. These are specified in RFC7515 and provide authenticity (a way to prove that data comes from the corrct sender) and integrity (proof that it was not altered along the way), but not confidentiality; that is, anybody can read the data contents. Typically, JWSs are seen in the forms of JWTs.

jose-jwe

This crate provides ways to interact with JWEs, JSON representations of encrypted data specified in RFC7516. JWEs provide authenticity, integrity and confidentiality (unlike JWS), and are typically four or five Base64-encoded fields separated by a .. Each field representing a piece of information an intended recipient needs to decode an encrypted payload.

jose-jwt

This crate interacts with JWTs, which is a specific JSON schema for representing web tokens specified in RFC7519. The JWT specification just defines a set of specific fields ("claims", iss, exp and similar) that are usually represented as a JWT (the usual Base64 abc123.321DEF.g_hi10 format) but can also be encrypted as a JWE.

License

All crates licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.

About

Pure Rust implementation of Javascript Object Signing and Encryption (JOSE)

Resources

Stars

74 stars

Watchers

5 watching

Forks

Releases

Packages

Used by

Contributors

Languages