Skip to main content

Rust-powered drop-in replacement for TgCrypto

Project description

TgCryptoRust

[!NOTE] This project is provided for educational and experimental purposes. The implementation follows public AES specifications and is tested against known vectors, but it has not received a formal third-party security audit. Do not treat it as a certified cryptographic module.

Rust-powered, AES-NI accelerated cryptography for Telegram clients.

CI License Python Rust

TgCryptoRust is a drop-in replacement for TgCrypto, implemented in Rust and packaged for Python through PyO3 and Maturin. It implements the cryptographic algorithms Telegram requires, namely:

Requirements

  • Python 3.9 through 3.14
  • Rust 1.83+ (only when building from source)

Prebuilt wheels are available for common desktop and server platforms. Rust is only required when a wheel is not available for your platform.

Installation

pip install TgCryptoRust

Or with uv:

uv add TgCryptoRust
uv sync

API

def ige256_encrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...
def ige256_decrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...

def ctr256_encrypt(data: bytes, key: bytes, iv: bytes, state: bytes) -> bytes: ...
def ctr256_decrypt(data: bytes, key: bytes, iv: bytes, state: bytes) -> bytes: ...

def cbc256_encrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...
def cbc256_decrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...

Usage

IGE Mode

Note: Data must be padded to a multiple of the block size (16 bytes).

import os
import tgcrypto

data = os.urandom(1024)
key = os.urandom(32)
iv = os.urandom(32)

encrypted = tgcrypto.ige256_encrypt(data, key, iv)
decrypted = tgcrypto.ige256_decrypt(encrypted, key, iv)

assert decrypted == data

CTR Mode

CTR accepts arbitrary-length data. The state argument is a one-byte offset inside the current keystream block, kept for TgCrypto compatibility.

import os
import tgcryptors

data = os.urandom(1000)
key = os.urandom(32)
iv = os.urandom(16)
state = b"\x00"

encrypted = tgcryptors.ctr256_encrypt(data, key, iv, state)
decrypted = tgcryptors.ctr256_decrypt(encrypted, key, iv, state)

assert decrypted == data

CBC Mode

Note: Data must be padded to a multiple of the block size (16 bytes).

import os
import tgcrypto

data = os.urandom(1024)
key = os.urandom(32)
iv = os.urandom(16)

encrypted = tgcrypto.cbc256_encrypt(data, key, iv)
decrypted = tgcrypto.cbc256_decrypt(encrypted, key, iv)

assert decrypted == data

Streaming API

Use the streaming classes when processing one logical stream in chunks. The key schedule is expanded once and reused.

import os
import tgcryptors

key = os.urandom(32)
iv = os.urandom(16)
data = os.urandom(1024)

stream = tgcryptors.Ctr256(key, iv)
encrypted = stream.update(data[:300]) + stream.update(data[300:])

IGE streaming is also available for block-aligned chunks:

import os
import tgcrypto

key = os.urandom(32)
iv = os.urandom(32)
data = os.urandom(1024)

stream = tgcrypto.Ige256(key, iv)
encrypted = stream.encrypt(data[:512]) + stream.encrypt(data[512:])

Runtime Metadata

import tgcryptors

print(tgcryptors.__version__)
print(tgcryptors.runtime_info())

Imports

Existing TgCrypto users can keep importing tgcrypto:

import tgcrypto

New code can import the branded module directly:

import tgcryptors

Both modules expose the same API.

Compatibility

TgCryptoRust is a full drop-in replacement. All function names, argument orders, return types, and validation behavior match the original TgCrypto:

Function Arguments
ige256_encrypt (data, key, iv)
ige256_decrypt (data, key, iv)
ctr256_encrypt (data, key, iv, state)
ctr256_decrypt (data, key, iv, state)
cbc256_encrypt (data, key, iv)
cbc256_decrypt (data, key, iv)

Architecture

  • tgcryptors-core — Rust AES primitive and Telegram block modes (IGE, CTR, CBC).
  • tgcryptors-python — PyO3 extension module exposing the native API.
  • python/tgcrypto — Compatibility shim re-exporting tgcryptors for existing imports.
  • tests/ — Python unit tests covering the public API.

On x86 and x86_64, AES-NI is detected at runtime when the crate is built with the default aesni feature. Other targets use a software fallback (T-table based, not guaranteed constant-time on every CPU).

Migrating From TgrCrypto

TgrCrypto is deprecated in favor of TgCryptoRust.

pip uninstall TgrCrypto
pip install TgCryptoRust

Existing code that imports tgcrypto can remain unchanged.

Development

# Set up environment
uv sync --python 3.14

# Build and install the native module
uv run maturin develop --release

# Run Python tests
.venv/bin/python -m unittest discover -s tests -v

Run the Rust checks:

cargo fmt --all -- --check
cargo clippy --all-targets --all-features -- -D warnings
cargo test --release

Build a wheel:

uv build --wheel

License

LGPLv3+ — GNU Lesser General Public License v3 or later.

© 2025-Present Joy. See COPYING and COPYING.lesser.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tgcryptorust-1.2.0.tar.gz (50.9 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

tgcryptorust-1.2.0-cp314-cp314-win_amd64.whl (202.2 kB view details)

Uploaded CPython 3.14Windows x86-64

tgcryptorust-1.2.0-cp314-cp314-manylinux_2_34_x86_64.whl (296.7 kB view details)

Uploaded CPython 3.14manylinux: glibc 2.34+ x86-64

tgcryptorust-1.2.0-cp314-cp314-macosx_11_0_arm64.whl (263.1 kB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

tgcryptorust-1.2.0-cp313-cp313-win_amd64.whl (202.0 kB view details)

Uploaded CPython 3.13Windows x86-64

tgcryptorust-1.2.0-cp313-cp313-manylinux_2_34_x86_64.whl (296.6 kB view details)

Uploaded CPython 3.13manylinux: glibc 2.34+ x86-64

tgcryptorust-1.2.0-cp313-cp313-macosx_11_0_arm64.whl (262.9 kB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

tgcryptorust-1.2.0-cp312-cp312-win_amd64.whl (201.7 kB view details)

Uploaded CPython 3.12Windows x86-64

tgcryptorust-1.2.0-cp312-cp312-manylinux_2_34_x86_64.whl (296.2 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.34+ x86-64

tgcryptorust-1.2.0-cp312-cp312-macosx_11_0_arm64.whl (262.6 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tgcryptorust-1.2.0-cp311-cp311-win_amd64.whl (204.4 kB view details)

Uploaded CPython 3.11Windows x86-64

tgcryptorust-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl (296.7 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.34+ x86-64

tgcryptorust-1.2.0-cp311-cp311-macosx_11_0_arm64.whl (264.3 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tgcryptorust-1.2.0-cp310-cp310-win_amd64.whl (204.6 kB view details)

Uploaded CPython 3.10Windows x86-64

tgcryptorust-1.2.0-cp310-cp310-manylinux_2_34_x86_64.whl (296.9 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.34+ x86-64

tgcryptorust-1.2.0-cp310-cp310-macosx_11_0_arm64.whl (264.4 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tgcryptorust-1.2.0-cp39-cp39-win_amd64.whl (207.3 kB view details)

Uploaded CPython 3.9Windows x86-64

tgcryptorust-1.2.0-cp39-cp39-manylinux_2_34_x86_64.whl (298.7 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.34+ x86-64

tgcryptorust-1.2.0-cp39-cp39-macosx_11_0_arm64.whl (265.7 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

File details

Details for the file tgcryptorust-1.2.0.tar.gz.

File metadata

  • Download URL: tgcryptorust-1.2.0.tar.gz
  • Upload date:
  • Size: 50.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tgcryptorust-1.2.0.tar.gz
Algorithm Hash digest
SHA256 ce0c264c4ef1f2cea01196940a9a7a366fa555941a3f8e2423363dd424b30f50
MD5 970dcf3a85f5505488938afa75e294d9
BLAKE2b-256 c260748b4a8a3bdce15f05e8adf91a3350da9bdc4852137fb69bf21be2d312fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0.tar.gz:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 68611311bc6794c455b84e36cb62da45cf85b4c92f11660f4f24585ad76a7213
MD5 0c9fde8647c90b29d9de412cb6cae21b
BLAKE2b-256 70413ac7aea08dde85d49b9ff08be0d9f88b3ebaaa65deda1f8d5592b9d5b2e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp314-cp314-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp314-cp314-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp314-cp314-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6a5e3411a7ad752fc5b9d8f07e777d567b7e83d8b50027a5549511008b10f025
MD5 1970f38a0596de1f976e5d8878aa7119
BLAKE2b-256 e266a7eb9e379b461601f25da3c9f3f54f16c4cbd8b0af35446935b74ba54625

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp314-cp314-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8b9301b9c07b1085706e44706bb230a2085605b294de674ad3be82afdbbfae47
MD5 8d7eca40f17f52e46469416ae1c67f1d
BLAKE2b-256 48a7a2642a4153a6f493ffc7068f4571bcd6716cac0409019c9a0135665529f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp314-cp314-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 60d50991f3a7daf9ee13e495fc1ced558c8c335bc993150e649f1093ca1273a7
MD5 7f7e3c7d89fee9d861c453df57b64690
BLAKE2b-256 e9b5ce991455588071ee7f7b3870a2aa2014bb5b7b38dc906bb17e0c6055382a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp313-cp313-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp313-cp313-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp313-cp313-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 689544560a756413ebc9880ba294e11e8c36f409d9336632be2230ebb06e9df4
MD5 2ea2cf7c31104b50650b1873358e399d
BLAKE2b-256 efee73f4ba5f3f80566032bb909b98e82162b9d7f89048188b67c675070487d1

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp313-cp313-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2ead4e99165a3dfb1a9c164e977277212803b446577cb13c12830d3fccaed7a0
MD5 b17a23216c30ee7965190d21d889521d
BLAKE2b-256 c552ee0a3acb13ce9a390a54dfa38d583e333579c730828f2c624a57d2a5a676

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp313-cp313-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 849e07693a2096a247b6dff7d7663cddee902027d84be98153eed6fd784f0c42
MD5 2c70b971b511ce010679ea3d9de9a433
BLAKE2b-256 321b4335c95811f524ab094ad5171a82a8399af708857ef1ec419bfc4af14fd6

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp312-cp312-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp312-cp312-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp312-cp312-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 a26b54ed38c159022801fa174efce10d5d16c7dd5210a5cca25a303a8773c515
MD5 36437eb598f464e3d4ec41606f2842b5
BLAKE2b-256 904dac7c57d8025836e6fd88568e9fa6a495b19a7dba9e324df1c797eead7bb8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp312-cp312-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b0ddd882d96e40bc7da4c1a256ff232c609bd1499dc1259c98a513cd99549d9d
MD5 7d7a642385675fbd308c6c8fe07f3336
BLAKE2b-256 8bba4ae7ff976a24c4c1c25897fb3bc1c916895767fd27b29dc69da34dbcc54a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp312-cp312-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 2235636c02c186276ea3e1ae7ac59b459d11cd87b6c99c5711718de0f6c16998
MD5 ad260d54600113124023088670763067
BLAKE2b-256 8b5fe7bff9028b9631e3710d5e37ee41be9a86eee42eff6e55659be857df23a4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp311-cp311-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 3f6afb3564556a1e258172279e10e8ac78676caf89f39d96f6e04245aaf4cd2c
MD5 811706bb6730bcbaa65bd7a8c803328b
BLAKE2b-256 3e87d8b4de94c211f2179effaeebcae159a01db0bfe6da7feb328a5c45ad65a8

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp311-cp311-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ee465d104dde13492f170698b4b2172ad2251381a4d17b0d6e5d9c9c17457246
MD5 73639468130377ed05789f05a3eba8c2
BLAKE2b-256 afc748689b52e938cc4ad1d92047c2d24bc39f80dcfa21676afbe05082dd2802

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp311-cp311-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 d378bb14cc4723082f4b4ecde4fde332ba28046a86682a07661dbfdef48354a5
MD5 1c0d20f1dbde6cd81f885c8f2cc95e42
BLAKE2b-256 16e68d2dc433041f88c6d4bebd93d5a0237520261b5e1a059ea6da6d06b53e2a

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp310-cp310-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp310-cp310-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp310-cp310-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 deaab5bdaeefa18e2ecc2a77a0c989be3d6ac2fc87269426293b53ba404ad908
MD5 0f818eff07164c95be0680f980b56576
BLAKE2b-256 8b7fed7809a095485599548a723e79f377a86a2fc2188b89a5c8023bec4fceb3

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp310-cp310-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d196419195cc6e275705ada8be73e246cde6c2d8ffbd6fd13b62574ca486628e
MD5 ffaeb09a51e5674ebda83ffaa86c313e
BLAKE2b-256 e530c88bcd7aa71b9bdabf56ec5e34caaf0af7cccead9563551cadf418ab3a45

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp310-cp310-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp39-cp39-win_amd64.whl.

File metadata

  • Download URL: tgcryptorust-1.2.0-cp39-cp39-win_amd64.whl
  • Upload date:
  • Size: 207.3 kB
  • Tags: CPython 3.9, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for tgcryptorust-1.2.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1ba27fef176a4732288cfc520c9a152c46b2cfe784f89ad8d8446cb30d3329f9
MD5 a4ee3e95e5a33c5eee8445de6471bdba
BLAKE2b-256 ebfe97f8c221594ece76b5abd7f1bfa286a32f1ef6db4ef0e3b9720836d25345

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp39-cp39-win_amd64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp39-cp39-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp39-cp39-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 13a8b9ee761fe789a88d06434e90fcbb397553213aeda10dd87b9e49e3e57115
MD5 1fed8a0c1db5a6162f4157e6e1920c2e
BLAKE2b-256 919e0558bf5afa5d81a862c280e15faade9a6cc74c588da84dbf2c40a6df6c15

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp39-cp39-manylinux_2_34_x86_64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tgcryptorust-1.2.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgcryptorust-1.2.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1f1af2cd8add5ee3d24de41ba5736e8e851270c074cff982535136d5169d7e30
MD5 f70a1a9ed8fd433298c839b93079e041
BLAKE2b-256 2da9946541d0cca22fe5432e8813538e30dc54464cf480ef74c92d824fd54697

See more details on using hashes here.

Provenance

The following attestation bundles were made for tgcryptorust-1.2.0-cp39-cp39-macosx_11_0_arm64.whl:

Publisher: pypi.yml on joyccn/TgCryptoRust

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page