# Dependencies
## aes
Needed for its AES-256 cipher, which is used to build the AES-IGE mode used by Telegram.
## getrandom
Used to generate secure padding when encrypting outgoing messages.
## num-bigint
Used for hand-rolled RSA encryption, which is used during the generation of an authorization key.
This *may* make the second part of the authorization key vulnerable to a certain type of timing
attack, although I'm not sure how dangerous it is in practice.
If this concerns you, please propose a fix and send a pull request.
## sha1
Used in certain functions that require a certain AES key.
## sha2
Used for calculating the AES key given an authorization key, and also for 2FA.
## pbkdf2
Used for methods relied on by the 2-factor offered by Telegram.
## hmac
Used for methods relied on by the 2-factor offered by Telegram.
## glass_pumpkin
Used for methods relied on by the 2-factor offered by Telegram.
## bencher
Used for benchmarking the encryption and decryption methods.
## num-traits
Used for methods relied on by the 2-factor offered by Telegram.
## toml
Used to test that this file lists all dependencies from `Cargo.toml`.
## ctr
Used for the AES-CTR mode needed for the obfuscated MTProto transport.