Skip to main content

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;