Skip to content

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

Notifications You must be signed in to change notification settings

RustCrypto/JOSE

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

54 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RustCrypto: JOSE Project Chat dependency status

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

Crates

Name crates.io Docs Description
jose-b64 crates.io Documentation Base64 utilities for use in JOSE crates
jose-jwa crates.io Documentation JSON Web Algorithms (JWA)
jose-jwe crates.io Documentation JSON Web Encryption (JWE)
jose-jwk crates.io Documentation JSON Web Keys (JWK)
jose-jws crates.io Documentation JSON Web Signatures (JWS)
jose-jwt crates.io Documentation JSON 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

Watchers

Forks

Packages

No packages published

Languages