uselesskey_jwk/lib.rs
1#![forbid(unsafe_code)]
2
3//! Compatibility facade for typed JWK/JWKS helpers.
4//!
5//! The canonical implementation lives in `uselesskey-core-jwk`.
6//! This crate preserves the stable public crate name used by fixture crates
7//! and external consumers.
8//!
9//! # Examples
10//!
11//! Build a JWKS from individual JWK values:
12//!
13//! ```
14//! use uselesskey_jwk::{JwksBuilder, RsaPublicJwk, PublicJwk};
15//!
16//! let jwk = PublicJwk::Rsa(RsaPublicJwk {
17//! kty: "RSA",
18//! use_: "sig",
19//! alg: "RS256",
20//! kid: "key-1".to_string(),
21//! n: "modulus".to_string(),
22//! e: "AQAB".to_string(),
23//! });
24//!
25//! let jwks = JwksBuilder::new().add_public(jwk).build();
26//! assert_eq!(jwks.keys.len(), 1);
27//! assert_eq!(jwks.keys[0].kid(), "key-1");
28//! ```
29//!
30//! Serialize a JWK to JSON:
31//!
32//! ```
33//! use uselesskey_jwk::RsaPublicJwk;
34//!
35//! let jwk = RsaPublicJwk {
36//! kty: "RSA",
37//! use_: "sig",
38//! alg: "RS256",
39//! kid: "key-1".to_string(),
40//! n: "modulus".to_string(),
41//! e: "AQAB".to_string(),
42//! };
43//! assert_eq!(jwk.kid(), "key-1");
44//! ```
45
46pub use uselesskey_core_jwk::*;
47pub use uselesskey_core_jwk_builder::JwksBuilder;