Skip to main content

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}