{"id":21083,"library":"cryptg","title":"Cryptg","description":"Cryptographic utilities for Telegram, implementing MTProto encryption primitives (AES-IGE, AES-CTR, IGE mode, key generation). Version 0.6.0, supports Python >=3.11, actively maintained.","status":"active","version":"0.6.0","language":"python","source_language":"en","source_url":"https://github.com/cher-nov/cryptg","tags":["telegram","mtproto","cryptography","encryption","ige","aes"],"install":[{"cmd":"pip install cryptg","lang":"bash","label":"Install from PyPI"}],"dependencies":[],"imports":[{"note":"MTProto IGE encryption","symbol":"encrypt_ige","correct":"from cryptg import encrypt_ige"},{"note":"MTProto IGE decryption","symbol":"decrypt_ige","correct":"from cryptg import decrypt_ige"},{"note":"AES-CTR encryption","symbol":"encrypt_aes_ctr","correct":"from cryptg import encrypt_aes_ctr"},{"note":"AES-CTR decryption","symbol":"decrypt_aes_ctr","correct":"from cryptg import decrypt_aes_ctr"},{"note":"Generate AES key","symbol":"generate_key","correct":"from cryptg import generate_key"},{"note":"Correct name includes aes_ prefix","wrong":"from cryptg import ige_encrypt","symbol":"aes_ige_encrypt","correct":"from cryptg import aes_ige_encrypt"},{"note":"Correct name includes aes_ prefix","wrong":"from cryptg import ige_decrypt","symbol":"aes_ige_decrypt","correct":"from cryptg import aes_ige_decrypt"}],"quickstart":{"code":"from cryptg import encrypt_ige, decrypt_ige, generate_key\nkey = generate_key()  # 32 bytes for AES-256\niv = bytes(32)\nplaintext = b'Hello Telegram'\nencrypted = encrypt_ige(plaintext, key, iv)\ndecrypted = decrypt_ige(encrypted, key, iv)\nprint(decrypted)","lang":"python","description":"Basic IGE encryption/decryption with random key"},"warnings":[{"fix":"Use libraries like cryptography or PyCryptodome for general encryption.","message":"cryptg is low-level; do NOT use for general encryption. Designed specifically for Telegram MTProto protocol. Using it for other purposes may lead to security issues.","severity":"gotcha","affected_versions":"all"},{"fix":"Upgrade Python to 3.11+ or pin cryptg<0.6.0.","message":"In version 0.6.0, Python version requirement changed to >=3.11. Older Python versions are no longer supported.","severity":"breaking","affected_versions":"0.6.0"},{"fix":"Replace with `aes_ige_encrypt` and `aes_ige_decrypt`.","message":"Legacy function names like `ige_encrypt` and `ige_decrypt` are deprecated; use `aes_ige_encrypt`/`aes_ige_decrypt` instead.","severity":"deprecated","affected_versions":"0.5.x - 0.6.0"},{"fix":"Use `generate_key()` to get a properly sized key, and ensure IV is 32 bytes.","message":"Key and IV sizes are fixed: 32 bytes for AES-256, 32 bytes for IV in IGE. Using wrong sizes will raise an error.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-04-27T00:00:00.000Z","next_check":"2026-07-26T00:00:00.000Z","problems":[{"fix":"Use `from cryptg import aes_ige_encrypt`","cause":"The function was renamed to `aes_ige_encrypt` in newer versions.","error":"ImportError: cannot import name 'ige_encrypt' from 'cryptg'"},{"fix":"Use `generate_key()` or provide exactly 32 bytes.","cause":"Supplied key size is not 32 bytes (AES-256 requirement).","error":"ValueError: key must be 32 bytes long"},{"fix":"Upgrade to Python 3.11+ or install cryptg<0.6.0 (e.g., pip install cryptg==0.5.4).","cause":"Trying to install cryptg 0.6.0 on an older Python version.","error":"cryptg requires Python >=3.11"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}