pdk-jwt-lib 1.9.0

PDK JWT Library
Documentation
// Copyright (c) 2026, Salesforce, Inc.,
// All rights reserved.
// For full license text, see the LICENSE.txt file

//! PDK JWT Library
//!
//! Library for JWT token validation. It provides JWT handling including
//! signature validation, claims parsing and token extraction from HTTP headers.
//!
//! This library provides JWT functionality with support for:
//!
//! - Signature validation with multiple algorithms (HMAC, RSA, ES)
//! - JWT claims parsing and validation
//! - Token extraction from Authorization headers
//! - Support for standard JWT claims and custom claims
//! - JWT token generation
//!
//! ## Primary types
//!
//! - [`api::SignatureValidator`]: validates JWT signatures using various algorithms
//! - [`api::JwtGenerator`]: Generator for JWT tokens
//! - [`api::JWTClaimsParser`]: parses JWT tokens and extracts claims
//! - [`api::TokenProvider`]: extracts JWT tokens from HTTP request headers
//! - [`api::model::JWTClaims`]: struct representing JWT claims
//! - [`api::model::SigningAlgorithm`]: enum representing JWT signing algorithms
//! - [`api::error::JWTError`]: error type for JWT operations
//!

mod error;
mod generator;
mod model;
mod parser;
mod provider;
mod validator;

/// # JWT API
///
/// This module contains the public API for the JWT library including
/// parsers, providers, and validators.
///
/// ## Primary types
///
/// - [`api::JWTClaimsParser`]: parser for JWT claims
/// - [`api::TokenProvider`]: provider for JWT tokens
/// - [`api::SignatureValidator`]: validator for JWT signatures
/// - [`api::JwtGenerator`]: Generator for JWT tokens
/// - [`api::error::JWTError`]: error type for JWT operations
/// - [`api::model::JWTClaims`]: struct representing JWT claims
/// - [`api::model::SigningAlgorithm`]: enum representing JWT signing algorithms
pub mod api {
    pub use crate::parser::jwt_claims_parser::JWTClaimsParser;
    pub use crate::provider::token_provider::TokenProvider;
    pub use crate::validator::signature_validator::SignatureValidator;

    pub use crate::generator::{GeneratorError, JwtGenerator};

    /// # JWT Error Types
    ///
    /// This module contains error types used throughout the JWT library for handling
    /// various failure scenarios during JWT validation and processing.
    pub mod error {
        pub use crate::error::jwt_error::JWTError;
    }

    /// # JWT Data Models
    ///
    /// This module contains data structures and types used for JWT processing
    /// including claims, signing algorithms, and validation components.
    ///
    /// ## Primary types
    ///
    /// - [`JWTClaims`](model::JWTClaims): struct representing JWT claims
    /// - [`SigningAlgorithm`](model::SigningAlgorithm): enum representing JWT signing algorithms
    /// - [`SigningKeyLength`](model::SigningKeyLength): enum representing JWT signing key length
    pub mod model {
        pub use crate::model::claims::{claim_names, JWTClaims, ValueRetrieval};
        pub use crate::model::signing_algorithm::SigningAlgorithm;
        pub use crate::model::signing_algorithm::SigningKeyLength;
    }
}