MCPcopy Index your code
hub / github.com/RustCrypto/JOSE

github.com/RustCrypto/JOSE @jose-b64-v0.1.2

Chat with this repo
repository ↗ · DeepWiki ↗ · release jose-b64-v0.1.2 ↗ · + Follow
134 symbols 197 edges 34 files 17 documented · 13% updated 10mo ago★ 7313 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

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.

Extension points exported contracts — how you extend this code

Update (Interface)
A type that can be updated with bytes. This type is similar to `std::io::Write` or `digest::Update`. [7 implementers]
jose-b64/src/stream/update.rs
KeyInfo (Interface)
Information about a cryptographic key. [19 implementers]
jose-jwk/src/crypto/keyinfo.rs
VerifyingKey (Interface)
A signature verification key [4 implementers]
jose-jws/src/crypto/mod.rs
Zeroize (Interface)
(no doc) [1 implementers]
jose-b64/src/zero.rs
Verifier (Interface)
Signature verification state [1 implementers]
jose-jws/src/crypto/mod.rs
Signer (Interface)
Signature creation state
jose-jws/src/crypto/mod.rs
SigningKey (Interface)
A signature creation key
jose-jws/src/crypto/mod.rs
CoreSigner (Interface)
(no doc)
jose-jws/src/crypto/core.rs

Core symbols most depended-on inside this repo

as_ref
called by 9
jose-b64/src/zero.rs
as_ref
called by 6
jose-b64/src/serde/json.rs
deref
called by 4
jose-b64/src/zero.rs
cast
called by 3
jose-b64/src/stream/mod.rs
strength
called by 3
jose-jwk/src/crypto/keyinfo.rs
as_ref
called by 2
jose-b64/src/serde/secret.rs
strength
called by 2
jose-jwk/src/crypto/rsa.rs
as_mut
called by 1
jose-b64/src/zero.rs

Shape

Method 80
Class 22
Enum 13
Interface 11
Function 8

Languages

Rust100%

Modules by API surface

jose-b64/src/serde/bytes.rs11 symbols
jose-b64/src/serde/secret.rs9 symbols
jose-b64/src/zero.rs7 symbols
jose-b64/src/serde/json.rs7 symbols
jose-jws/src/crypto/mod.rs6 symbols
jose-b64/src/stream/enc.rs6 symbols
jose-b64/src/stream/dec.rs6 symbols
jose-jws/src/lib.rs5 symbols
jose-jws/src/head.rs5 symbols
jose-jwk/tests/jwk.rs5 symbols
jose-jwk/src/prm.rs5 symbols
jose-jwk/src/key/rsa.rs5 symbols

For agents

$ claude mcp add JOSE \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page