#![cfg_attr(docsrs, feature(doc_cfg))]
#![cfg_attr(all(feature = "rsa", feature = "fmt"), doc = include_str!("../README.md"))]
#![cfg_attr(
not(all(feature = "rsa", feature = "fmt")),
doc = "# JAWS: JSON Web tokens
JSON Web Tokens are used to send signed, authenticated and/or encrypted data using
a JavaScript Object Notation (JSON) object. This crate provides a strongly typed
interface for creating and validating [JWTs][JWT], built on top of the [RustCrypto][]
ecosystem.
[RustCrypto]: https://github.com/RustCrypto
[JWT]: https://tools.ietf.org/html/rfc7519
"
)]
#![deny(unsafe_code)]
#![deny(missing_docs)]
#![deny(clippy::self_named_module_files)]
#![deny(clippy::dbg_macro)]
pub mod algorithms;
pub mod base64data;
pub mod claims;
#[cfg(feature = "fmt")]
pub mod fmt;
pub mod jose;
pub mod key;
mod numeric_date;
pub mod token;
pub use algorithms::{SignatureBytes, TokenSigner, TokenVerifier};
pub use claims::{Claims, RegisteredClaims};
#[cfg(feature = "fmt")]
pub use fmt::JWTFormat;
pub use token::Token;
pub use token::{Compact, Flat, FlatUnprotected};
pub mod crypto {
pub use digest;
#[cfg(feature = "ecdsa")]
pub use ecdsa;
#[cfg(feature = "p256")]
pub use p256;
#[cfg(feature = "p384")]
pub use p384;
#[cfg(feature = "p521")]
pub use p521;
pub use pkcs8;
#[cfg(feature = "rand")]
pub use rand_core;
#[cfg(feature = "rsa")]
pub use rsa;
pub use sha2;
pub use signature;
}