1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
//! # 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(())
//! }
//! ```
/// Cryptographic primitives for tdata encryption/decryption
/// Qt DataStream binary format parser
pub use Account;
pub use ;
pub use 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;