Skip to main content

Crate hermes_tdata

Crate hermes_tdata 

Source
Expand description

§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

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(())
}

Modules§

crypto
Cryptographic primitives for tdata encryption/decryption Cryptographic operations for tdata
qdatastream
Qt DataStream binary format parser QDataStream parser implementation

Structs§

Account
A Telegram account extracted from tdata
TDesktop
Telegram Desktop client representation

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