Expand description
Pure Rust parser for Telegram Desktop tdata folders.
Converts tdata to grammers sessions.
Low-level binary parser requiring direct byte indexing, arithmetic for offsets, and integer type conversions.
§Features
- Parse
tdatafolders 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
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 = account.to_grammers_session()?;
println!("DC ID: {}", account.dc_id());
}
Ok(())
}Re-exports§
pub use crypto::AuthKey;pub use crypto::LOCAL_ENCRYPT_SALT_SIZE;pub use qdatastream::QDataStream;pub use qdatastream::QT_VERSION_5_1;
Modules§
- crypto
- Cryptographic operations for tdata (PBKDF2, AES-IGE, checksums) Cryptographic operations for tdata
- qdatastream
- QDataStream parser for Qt binary serialization format QDataStream parser implementation
Structs§
- Account
- A Telegram account extracted from tdata
- TDesktop
- Telegram Desktop client representation
- TDesktop
Builder - Builder for
TDesktopwith more control over loading
Enums§
- Error
- Errors that can occur during tdata parsing
Constants§
- AUTH_
KEY_ SIZE - Auth key size in bytes (256 bytes = 2048 bits)
- DEFAULT_
KEY_ FILE - Default key file name
- MAX_
ACCOUNTS - Maximum number of accounts supported by Telegram Desktop
Type Aliases§
- Result
- Result type alias for hermes-tdata operations