hermes-tdata 0.2.1

Pure Rust parser for Telegram Desktop tdata storage with grammers session conversion
Documentation
//! # hermes-tdata
//!
//! A pure Rust library for parsing Telegram Desktop `tdata` folders and converting
//! them to grammers sessions.
//!
//! ## Features
//!
//! - Parse `tdata` folders from Telegram Desktop
//! - Extract authorization keys (auth_key) and datacenter IDs
//! - Convert to grammers session format
//! - Support for password-protected tdata (Local Passcode)
//! - Zero Python dependencies
//!
//! ## Example
//!
//! ```rust,no_run
//! use hermes_tdata::TDesktop;
//!
//! fn main() -> Result<(), hermes_tdata::Error> {
//!     // Load tdata from default location
//!     let tdesktop = TDesktop::from_path("/path/to/tdata")?;
//!     
//!     // Get the main account's session
//!     if let Some(account) = tdesktop.main_account() {
//!         let session_data = account.to_grammers_session_data();
//!         println!("SessionData prepared for DC {}", session_data.home_dc);
//!     }
//!     
//!     Ok(())
//! }
//! ```

mod account;
mod error;
mod storage;
mod tdesktop;

/// Cryptographic primitives for tdata encryption/decryption
pub mod crypto;

/// Qt DataStream binary format parser
pub mod qdatastream;

pub use account::Account;
pub use error::{Error, Result};
pub use tdesktop::TDesktop;

/// Auth key size in bytes (256 bytes = 2048 bits)
pub const AUTH_KEY_SIZE: usize = 256;

/// Default key file name
pub const DEFAULT_KEY_FILE: &str = "data";

/// Maximum number of accounts supported by Telegram Desktop
pub const MAX_ACCOUNTS: usize = 3;