//! `YubiKey` OTP Verification Library
//!
//! This crate provides functionality for handling `YubiKey` One-Time Passwords,
//! including parsing, decryption, validation, and simple storage offline without contacting the YubiCloud service.
//!
//! # Features
//!
//! This crate provides optional features that can be individually enabled or disabled:
//!
//! - `decryption` (default): Enables OTP decryption and core validation functionality, including the [`otp`] and [`store`] modules
//! - `modhex` (default): Enables modhex encoding/decoding support for `YubiKey` OTP format via the [`modhex`] module
//! - `simple_store`: Enables a simple example key-value store implementation for persisting OTP data and preventing replay attacks (requires `decryption` and `modhex`)
//!
//! Both `decryption` and `modhex` are enabled by default. You can disable all defaults and opt-in to specific features as needed.
//!
//! # Core Modules
//!
//! - [`otp`]: Contains the main OTP decryption and validation logic
//! - [`modhex`]: Handles modhex encoding and decoding for `YubiKey` OTP format
//! - [`simple_store`]: Provides a simple (example) key-value store for persisting OTP data and preventing replay attacks
//!
//! For more information about the `YubiKey` OTP protocol, see: <https://developers.yubico.com/OTP/OTPs_Explained.html>