pdk_jwt_lib/lib.rs
1// Copyright (c) 2026, Salesforce, Inc.,
2// All rights reserved.
3// For full license text, see the LICENSE.txt file
4
5//! PDK JWT Library
6//!
7//! Library for JWT token validation. It provides JWT handling including
8//! signature validation, claims parsing and token extraction from HTTP headers.
9//!
10//! This library provides JWT functionality with support for:
11//!
12//! - Signature validation with multiple algorithms (HMAC, RSA, ES)
13//! - JWT claims parsing and validation
14//! - Token extraction from Authorization headers
15//! - Support for standard JWT claims and custom claims
16//! - JWT token generation
17//!
18//! ## Primary types
19//!
20//! - [`api::SignatureValidator`]: validates JWT signatures using various algorithms
21//! - [`api::JwtGenerator`]: Generator for JWT tokens
22//! - [`api::JWTClaimsParser`]: parses JWT tokens and extracts claims
23//! - [`api::TokenProvider`]: extracts JWT tokens from HTTP request headers
24//! - [`api::model::JWTClaims`]: struct representing JWT claims
25//! - [`api::model::SigningAlgorithm`]: enum representing JWT signing algorithms
26//! - [`api::error::JWTError`]: error type for JWT operations
27//!
28
29mod error;
30#[cfg(not(fips))]
31mod generator;
32mod model;
33mod parser;
34mod provider;
35mod validator;
36
37/// # JWT API
38///
39/// This module contains the public API for the JWT library including
40/// parsers, providers, and validators.
41///
42/// ## Primary types
43///
44/// - [`api::JWTClaimsParser`]: parser for JWT claims
45/// - [`api::TokenProvider`]: provider for JWT tokens
46/// - [`api::SignatureValidator`]: validator for JWT signatures
47/// - [`api::JwtGenerator`]: Generator for JWT tokens
48/// - [`api::error::JWTError`]: error type for JWT operations
49/// - [`api::model::JWTClaims`]: struct representing JWT claims
50/// - [`api::model::SigningAlgorithm`]: enum representing JWT signing algorithms
51pub mod api {
52 pub use crate::parser::jwt_claims_parser::JWTClaimsParser;
53 pub use crate::provider::token_provider::TokenProvider;
54 pub use crate::validator::signature_validator::SignatureValidator;
55
56 #[cfg(not(fips))]
57 pub use crate::generator::{GeneratorError, JwtGenerator};
58
59 /// # JWT Error Types
60 ///
61 /// This module contains error types used throughout the JWT library for handling
62 /// various failure scenarios during JWT validation and processing.
63 pub mod error {
64 pub use crate::error::jwt_error::JWTError;
65 }
66
67 /// # JWT Data Models
68 ///
69 /// This module contains data structures and types used for JWT processing
70 /// including claims, signing algorithms, and validation components.
71 ///
72 /// ## Primary types
73 ///
74 /// - [`JWTClaims`](model::JWTClaims): struct representing JWT claims
75 /// - [`SigningAlgorithm`](model::SigningAlgorithm): enum representing JWT signing algorithms
76 /// - [`SigningKeyLength`](model::SigningKeyLength): enum representing JWT signing key length
77 pub mod model {
78 pub use crate::model::claims::{claim_names, JWTClaims, ValueRetrieval};
79 pub use crate::model::signing_algorithm::SigningAlgorithm;
80 pub use crate::model::signing_algorithm::SigningKeyLength;
81 }
82}