Skip to main content

TgCrypto C

TgCrypto

The PyPI distribution is tgcrypto-c; the Python import remains tgcrypto.

Linux only: this release supports Linux x86_64 and ARM64. Windows and macOS wheels are not provided or supported.

Fast and Portable Cryptography Extension Library for Pyrogram

TgCrypto C is a cryptography library written in C as a Python extension. It is designed to be portable, fast, and easy to install and use with Pyrogram and Kurigram. It implements the cryptographic algorithms Telegram requires, namely:

Requirements

  • Python 3.9 or higher.
  • A Linux C compiler (the extension is compiled from source when a wheel is unavailable).

Installation

$ python -m pip install -U tgcrypto-c

The distribution is named tgcrypto-c; existing code continues to use the tgcrypto import:

import tgcrypto

To install directly from source:

$ pip3 install -U git+https://github.com/bisug/tgcrypto-c

Performance

On x86/x86-64 CPUs with AES-NI support, the library automatically uses hardware-accelerated AES instructions, detected once at runtime. On every other platform (or CPU without AES-NI) it falls back to the portable software implementation. Both paths produce bit-for-bit identical output.

Run the local benchmark with:

$ python benchmarks/bench_modes.py

To build without the hardware acceleration path, define TGCRYPTO_NO_AESNI:

$ CFLAGS="-DTGCRYPTO_NO_AESNI" pip3 install git+https://github.com/bisug/tgcrypto-c

For a maximum-speed local build (GCC/Clang only), opt in to heavier optimization — kept out of the default build:

$ CFLAGS="-O3 -flto" pip3 install git+https://github.com/bisug/tgcrypto-c

Note the portable table-based AES implementation is functionally correct but not hardened against cache-timing side channels; the AES-NI path (constant-time instructions, used automatically when available) is preferred.

Per-call overhead matters as much as bulk throughput: MTProto encrypts many small messages (a 16-byte payload is a single AES block), so the fixed cost of every call — argument handling, key schedule and the key-material wipe — dominates at that size. Two further optimizations target that fixed cost:

  • Key-material wipe (expanded key plus loaded round keys, ~500 bytes per call) is cleared with word-wide stores instead of a byte-wise volatile loop, which is ~8x cheaper while giving exactly the same guarantee.
  • Key schedule — on the AES-NI path the 60-word expanded key is generated with aeskeygenassist/aesimc instructions instead of the table-based scalar routine, and the round keys are consumed directly from it. The scalar schedule cost ~445 ns per call (encrypt) and ~630 ns (decrypt) on the reference machine; the instruction-based one is a small fraction of that.
  • No redundant copy — the AES-NI paths read the input buffer directly instead of first copying it into the output buffer, so large payloads are touched once rather than twice.

For repeated CTR chunks with the same key, use CTRContext to expand the key once and retain the counter state between calls. On a Python 3.15 x86-64 build, this reduced 16-byte call time by about 3.4x and 1 KiB call time by about 1.75x in local measurements. Results depend on the CPU and compiler.

Indicative, on a low-power Celeron N4120 with the AES-NI path active (best of 5, one C call, so no Python overhead included):

Operation Before After
AES-256-IGE encrypt, 16 B 1742 ns 984 ns
AES-256-IGE decrypt, 16 B 1407 ns 559 ns
AES-256-CTR encrypt, 16 B 1401 ns 713 ns
AES-256-IGE encrypt, 1 KiB 4692 ns 3510 ns

The gain is per call, so it is largest for small messages (1.8–3x at a single block) and tapers off for large buffers (about 1.3–1.5x at 1 KiB), where AES throughput dominates instead.

Measured throughput of the Python API before/after the key-schedule and copy changes (same machine, alternating runs, best of 2 rounds, MB/s):

Operation Size Before After Change
IGE encrypt 16 B 10 14 +30%
IGE decrypt 16 B 8 13 +60%
CBC decrypt 16 B 6 10 +48%
CBC encrypt 16 B 8 10 +20%
CTR encrypt 16 B 7 8 +21%
CBC decrypt 1 KiB 233 294 +26%
CTR encrypt 1 KiB 228 252 +11%
CBC decrypt 1 MiB 598 736 +23%
CTR encrypt 1 MiB 500 606 +21%
CBC encrypt 1 MiB 338 382 +13%
IGE encrypt/decrypt 64 KiB – 1 MiB 374–379 373–379 ~0%

IGE on large buffers is deliberately unchanged: with a serial feedback chain each block depends on the previous one, so the mode is bound by AES round latency rather than throughput and no amount of key-schedule tuning helps. Because MTProto 2.0 derives a new AES key from the auth key and per-message msg_key, the legacy one-shot functions pay the key schedule cost on every call. For a logical stream with one key, the reusable context APIs avoid that cost.

Comparison with the original

Original (pyrogram/tgcrypto) This fork
Status Unmaintained Actively maintained
Python support 3.7 – 3.11 3.9 – 3.15
Packaging setup.py pyproject.toml (PEP 621)
AES acceleration Portable software implementation only AES-NI hardware acceleration (runtime-detected) with software fallback
Speed on AES-NI CPUs Baseline ~4–6× faster for IGE/CTR on large buffers
Speed without AES-NI / non-x86 — Identical (same software code path, bit-for-bit)
Output compatibility — Cryptographic output is bit-for-bit identical to the original
API Six functions Unchanged — drop-in compatible with Pyrogram and Kurigram
CI — Test matrix 3.9–3.15; Linux wheels built for x86_64 and ARM64
License LGPLv3+ LGPLv3+

Indicative benchmark (AES-NI, 16 MB buffers, best of 5):

Operation Original This fork
AES-256-IGE encrypt 59 MB/s 247 MB/s
AES-256-CTR encrypt 46 MB/s 284 MB/s

Actual gains scale with CPU speed. On CPUs without AES-NI (or when built with TGCRYPTO_NO_AESNI), performance matches the original exactly, since the same software code path is used.

API

The legacy TgCrypto API consists of these six methods. Reusable context APIs are also available for stateful workloads:

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: bytearray, state: bytearray) -> bytes: ...
def ctr256_decrypt(data: bytes, key: bytes, iv: bytearray, state: bytearray) -> bytes: ...

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

class CTRContext:
  def __init__(self, key: bytes, iv: bytes, state: int = 0) -> None: ...
  def update(self, data: bytes) -> bytes: ...

class IGEContext:
  def __init__(self, key: bytes, iv: bytes, decrypt: bool = False) -> None: ...
  def update(self, data: bytes) -> bytes: ...

class CBCContext:
  def __init__(self, key: bytes, iv: bytes, decrypt: bool = False) -> None: ...
  def update(self, data: bytes) -> bytes: ...

Buffer semantics (MTProto streaming): ige256_* copies the 32-byte IV into local state, so read-only bytes are fine. ctr256_* mutates the 16-byte counter iv and the 1-byte state in place, and cbc256_* mutates the 16-byte iv to the last block — so those must be writable (bytearray/memoryview). Immutable bytes there raises BufferError instead of corrupting memory. Don't share one iv/state across threads.

CTRContext.update() is equivalent to repeated ctr256_encrypt() calls and retains the counter internally. It can also decrypt, because CTR encryption and decryption are the same XOR operation. A context is stateful and should not be used concurrently from multiple threads.

IGEContext and CBCContext retain their mode feedback between updates. Their input chunks must be non-empty and aligned to the 16-byte AES block size. Set decrypt=True when constructing a context for decryption.

Usage

IGE Mode

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

import os

import tgcrypto

data = os.urandom(10 * 1024 * 1024 + 7)  # 10 MB of random data + 7 bytes to show padding
key = os.urandom(32)  # Random Key
iv = os.urandom(32)  # Random IV

# Pad with zeroes: -7 % 16 = 9
data += bytes(-len(data) % 16)

ige_encrypted = tgcrypto.ige256_encrypt(data, key, iv)
ige_decrypted = tgcrypto.ige256_decrypt(ige_encrypted, key, iv)

print(data == ige_decrypted)  # True

CTR Mode (single chunk)

Prefer chunk sizes up to ~1 MiB for large inputs: peak transient memory is about 1x the chunk size (the output buffer), and chunking keeps streaming state (iv, state) moving as documented above.

import os

import tgcrypto

data = os.urandom(10 * 1024 * 1024)  # 10 MB of random data

key = os.urandom(32)  # Random Key

enc_iv = bytearray(os.urandom(16))  # Random IV
dec_iv = enc_iv.copy()  # Keep a copy for decryption

ctr_encrypted = tgcrypto.ctr256_encrypt(data, key, enc_iv, bytearray(1))
ctr_decrypted = tgcrypto.ctr256_decrypt(ctr_encrypted, key, dec_iv, bytearray(1))

print(data == ctr_decrypted)  # True

CTR Mode (stream)

For the lowest per-chunk overhead, use a reusable context:

import os
import tgcrypto

key = os.urandom(32)
chunks = [os.urandom(1024), os.urandom(1024)]
context = tgcrypto.CTRContext(key, os.urandom(16))
encrypted_chunks = [context.update(chunk) for chunk in chunks]
import os
from io import BytesIO

import tgcrypto

data = BytesIO(os.urandom(10 * 1024 * 1024))  # 10 MB of random data

key = os.urandom(32)  # Random Key

enc_iv = bytearray(os.urandom(16))  # Random IV
dec_iv = enc_iv.copy()  # Keep a copy for decryption

enc_state = bytearray(1)  # Encryption state, starts from 0
dec_state = bytearray(1)  # Decryption state, starts from 0

encrypted_data = BytesIO()  # Encrypted data buffer
decrypted_data = BytesIO()  # Decrypted data buffer

while True:
    chunk = data.read(1024)

    if not chunk:
        break

    # Write 1K encrypted bytes into the encrypted data buffer
    encrypted_data.write(tgcrypto.ctr256_encrypt(chunk, key, enc_iv, enc_state))

# Reset position. We need to read it now
encrypted_data.seek(0)

while True:
    chunk = encrypted_data.read(1024)

    if not chunk:
        break

    # Write 1K decrypted bytes into the decrypted data buffer
    decrypted_data.write(tgcrypto.ctr256_decrypt(chunk, key, dec_iv, dec_state))

print(data.getvalue() == decrypted_data.getvalue())  # True

CBC Mode

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

import os

import tgcrypto

data = os.urandom(10 * 1024 * 1024 + 7)  # 10 MB of random data + 7 bytes to show padding
key = os.urandom(32)  # Random Key

enc_iv = bytearray(os.urandom(16))  # Random IV
dec_iv = enc_iv.copy()  # Keep a copy for decryption

# Pad with zeroes: -7 % 16 = 9
data += bytes(-len(data) % 16)

cbc_encrypted = tgcrypto.cbc256_encrypt(data, key, enc_iv)
cbc_decrypted = tgcrypto.cbc256_decrypt(cbc_encrypted, key, dec_iv)

print(data == cbc_decrypted)  # True

MTProto 2.0 boundary

tgcrypto implements only the raw AES primitives MTProto 2.0 needs (AES-256-IGE for cloud chats, AES-256-CTR for CDN files, AES-256-CBC for Passport). The surrounding protocol — msg_key derivation (SHA256(authKey[88+x:88+x+32] || plaintext)[8:24], x=0/x=8), KDF into aes_key/aes_iv, padding 12..1024 bytes, msg_id/seqno checks, RSA/DH handshake, SRP 2FA — belongs in the client layer (e.g. Pyrogram or Kurigram), not here. ige256_decrypt does not verify msg_key; callers must.

Testing

  1. Clone this repository: git clone https://github.com/bisug/tgcrypto-c.
  2. Enter the directory: cd tgcrypto-c.
  3. Install the test dependencies: pip3 install pytest pycryptodome cryptography (pycryptodome/cryptography are used as independent reference primitives by the known-answer tests; without them those tests skip silently.)
  4. Run tests: pytest.

License

LGPLv3+ © 2017-present Dan

Modifications in this fork are released under the same license.

Metadata

Release files for tgcrypto-c 1.3.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tgcrypto-c 1.3.0
File Size Uploaded Provenance Actions
tgcrypto_c-1.3.0.tar.gz 52.3 kB With provenance Details for tgcrypto_c-1.3.0.tar.gz

Built distributions (wheels)

Table of built distributions (wheels) for tgcrypto-c 1.3.0
File Actions
tgcrypto_c-1.3.0-cp315-cp315t-musllinux_1_2_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ x86-64 Details for tgcrypto_c-1.3.0-cp315-cp315t-musllinux_1_2_x86_64.whl
tgcrypto_c-1.3.0-cp315-cp315t-musllinux_1_2_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ ARM64 Details for tgcrypto_c-1.3.0-cp315-cp315t-musllinux_1_2_aarch64.whl
tgcrypto_c-1.3.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for tgcrypto_c-1.3.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
tgcrypto_c-1.3.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for tgcrypto_c-1.3.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
tgcrypto_c-1.3.0-cp315-cp315-musllinux_1_2_x86_64.whl CPython 3.15 CPython 3.15 Linux musl 1.2+ x86-64 Details for tgcrypto_c-1.3.0-cp315-cp315-musllinux_1_2_x86_64.whl
tgcrypto_c-1.3.0-cp315-cp315-musllinux_1_2_aarch64.whl CPython 3.15 CPython 3.15 Linux musl 1.2+ ARM64 Details for tgcrypto_c-1.3.0-cp315-cp315-musllinux_1_2_aarch64.whl
tgcrypto_c-1.3.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for tgcrypto_c-1.3.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
tgcrypto_c-1.3.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.15 CPython 3.15 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details for tgcrypto_c-1.3.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
tgcrypto_c-1.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64 Details for tgcrypto_c-1.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl
tgcrypto_c-1.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64 Details for tgcrypto_c-1.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl
tgcrypto_c-1.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for tgcrypto_c-1.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
tgcrypto_c-1.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for tgcrypto_c-1.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
tgcrypto_c-1.3.0-cp314-cp314-musllinux_1_2_x86_64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ x86-64 Details for tgcrypto_c-1.3.0-cp314-cp314-musllinux_1_2_x86_64.whl
tgcrypto_c-1.3.0-cp314-cp314-musllinux_1_2_aarch64.whl CPython 3.14 CPython 3.14 Linux musl 1.2+ ARM64 Details for tgcrypto_c-1.3.0-cp314-cp314-musllinux_1_2_aarch64.whl
tgcrypto_c-1.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.14 CPython 3.14 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for tgcrypto_c-1.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
tgcrypto_c-1.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.14 CPython 3.14 Linux glibc 2.28+ ARM64, Linux glibc 2.17+ ARM64 Details for tgcrypto_c-1.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
tgcrypto_c-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ x86-64 Details for tgcrypto_c-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
tgcrypto_c-1.3.0-cp313-cp313-musllinux_1_2_aarch64.whl CPython 3.13 CPython 3.13 Linux musl 1.2+ ARM64 Details for tgcrypto_c-1.3.0-cp313-cp313-musllinux_1_2_aarch64.whl
tgcrypto_c-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for tgcrypto_c-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
tgcrypto_c-1.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for tgcrypto_c-1.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
tgcrypto_c-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ x86-64 Details for tgcrypto_c-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
tgcrypto_c-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl CPython 3.12 CPython 3.12 Linux musl 1.2+ ARM64 Details for tgcrypto_c-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl
tgcrypto_c-1.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for tgcrypto_c-1.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
tgcrypto_c-1.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for tgcrypto_c-1.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
tgcrypto_c-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ x86-64 Details for tgcrypto_c-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
tgcrypto_c-1.3.0-cp311-cp311-musllinux_1_2_aarch64.whl CPython 3.11 CPython 3.11 Linux musl 1.2+ ARM64 Details for tgcrypto_c-1.3.0-cp311-cp311-musllinux_1_2_aarch64.whl
tgcrypto_c-1.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for tgcrypto_c-1.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
tgcrypto_c-1.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for tgcrypto_c-1.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
tgcrypto_c-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ x86-64 Details for tgcrypto_c-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
tgcrypto_c-1.3.0-cp310-cp310-musllinux_1_2_aarch64.whl CPython 3.10 CPython 3.10 Linux musl 1.2+ ARM64 Details for tgcrypto_c-1.3.0-cp310-cp310-musllinux_1_2_aarch64.whl
tgcrypto_c-1.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64, Linux glibc 2.28+ x86-64 Details for tgcrypto_c-1.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
tgcrypto_c-1.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for tgcrypto_c-1.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
tgcrypto_c-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ x86-64 Details for tgcrypto_c-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl
tgcrypto_c-1.3.0-cp39-cp39-musllinux_1_2_aarch64.whl CPython 3.9 CPython 3.9 Linux musl 1.2+ ARM64 Details for tgcrypto_c-1.3.0-cp39-cp39-musllinux_1_2_aarch64.whl
tgcrypto_c-1.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.28+ x86-64, Linux glibc 2.17+ x86-64 Details for tgcrypto_c-1.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
tgcrypto_c-1.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ ARM64, Linux glibc 2.28+ ARM64 Details for tgcrypto_c-1.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Total release size: 3.4 MB

Release files / tgcrypto_c-1.3.0.tar.gz

Download URL tgcrypto_c-1.3.0.tar.gz
Size 52.3 kB
Tags Source
SHA-256 checksum
How to use checksums
098ab215169f3a8c10f54f1c7a30afa6e06b0defaa938f8eeeab9aa0c0a0c802
BLAKE2b-256 checksum
How to use checksums
63ec9b2a0194a73218ff536e8b2c6b0b3f63a1a23e0b7adbf67e29cf01a4bb35
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp315-cp315t-musllinux_1_2_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp315-cp315t-musllinux_1_2_x86_64.whl
Size 112.2 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
9387bb887f0f37fd9c6f12b490067d6b5e818dcafdfdb96c91793948e5e965aa
BLAKE2b-256 checksum
How to use checksums
37780d5a1a83258e53daadc1d0170f88ef26ba687e9fec6939cdab43f2397924
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp315-cp315t-musllinux_1_2_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp315-cp315t-musllinux_1_2_aarch64.whl
Size 75.5 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
ae252b98b8f80fb36eadf697a47507da1e0148deaa5e6bf6f8a2a705a5a35a15
BLAKE2b-256 checksum
How to use checksums
f6a6c4d4d51e4771db6e25793dae7da9f0d934bd303aef50778d4a141fb04e23
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 115.4 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
be3fdad8e43e50fc469c293dd13511e1de8addbcc21cf9d225434abfa65fd997
BLAKE2b-256 checksum
How to use checksums
70da747e4939da90976d71fc8de107f9892fa9e9439748fcd7f0552419e3cba6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp315-cp315t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 76.5 kB
Tags CPython 3.15 CPython 3.15 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
c7e573714cb73329dc0a208190a9932f41036f7756ecae333cd9f3902a244309
BLAKE2b-256 checksum
How to use checksums
eec80e4c91dc6b3ad41c9bfafd3ab86bfa292b985868e2073ced6cb0ca7e2b62
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp315-cp315-musllinux_1_2_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp315-cp315-musllinux_1_2_x86_64.whl
Size 110.3 kB
Tags CPython 3.15 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
688b86af31833c10db44159fbd4bb4d9966d9f5494f4aa83bdfb5cebf0f13063
BLAKE2b-256 checksum
How to use checksums
c27069d34e2839479c8f91c1a4bd0167c601b36e596a32f5bd4bea3fa90702e8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp315-cp315-musllinux_1_2_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp315-cp315-musllinux_1_2_aarch64.whl
Size 73.5 kB
Tags CPython 3.15 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
aa7190ce50a51735cc57d47774cdeb04fa51235611b55fcd3a0d6767decd6b1c
BLAKE2b-256 checksum
How to use checksums
291f84cca798aed8e5e173110b608c100148814cac1ea87d27e926c20869e779
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 113.5 kB
Tags CPython 3.15 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
1b803a9726ca63bf3b23aec2357f301a3e703611a8885822730895bd7c72a6a7
BLAKE2b-256 checksum
How to use checksums
0b37b4b1a38506cf84c494e63b7d7c983bf0291865867beba1c848eccd124b34
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp315-cp315-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 74.3 kB
Tags CPython 3.15 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9467538c02d523b285c8c49fcaed8475d60dbdcc9b9da55f891341a1a3b3b9bf
BLAKE2b-256 checksum
How to use checksums
fdb94baa28f59cb217ccc74c2d661fd14936331a087fa1d8def288daebe3b2a3
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp314-cp314t-musllinux_1_2_x86_64.whl
Size 110.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
ce6108440e04c0acd973fee917f1eb86523023c3220bacd5d3ef1983fa7e1ec7
BLAKE2b-256 checksum
How to use checksums
b9308b849cfdad450a6ef4279792db4be5698a49f4a020d02300ed7c9b9e4155
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp314-cp314t-musllinux_1_2_aarch64.whl
Size 75.0 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
f6bd91186e21d4d4e954c8d85551331dddeeee585dd0632df742051e0a12c29d
BLAKE2b-256 checksum
How to use checksums
51f4bf7eb9f39ec2f2e8e1b6c9c61b2c1ccc9f8aa2f1b05c563c5fdaa86e58ec
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 113.6 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
004669d939e78d3d5b000826a32832f5d8daa4a9c6cadb79029799d030654d96
BLAKE2b-256 checksum
How to use checksums
836b3d03d4412c6314cd1a88bb2201bfcfb59389db07ced225a0e445493228f2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 75.9 kB
Tags CPython 3.14 CPython 3.14 free-threading Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ae3391bc19b8df72c6fa9ba232451d0640a3ebdcb85622b0fca71ac1276ff3c3
BLAKE2b-256 checksum
How to use checksums
6c6ad38fbca66074cb8f76c357111263c7b597030f773885d39ec842e2a3da06
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp314-cp314-musllinux_1_2_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp314-cp314-musllinux_1_2_x86_64.whl
Size 109.0 kB
Tags CPython 3.14 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
673f6854bae60463d04ddcb518d36ac20b072218ddf8d63e8b6a222ea136e975
BLAKE2b-256 checksum
How to use checksums
2deb6a4159a8a18bd0a60247d72c70d3c3cd8defdefb3ff95b689de823bbbcfc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp314-cp314-musllinux_1_2_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp314-cp314-musllinux_1_2_aarch64.whl
Size 73.0 kB
Tags CPython 3.14 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
9614d28c463655b5030548325839e47a6bef566609891079b38a146030fffe4f
BLAKE2b-256 checksum
How to use checksums
20993cc9db758e6c4861cdc16b8cf6c056ee9a90092df83730d9f9a5144a3113
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 111.8 kB
Tags CPython 3.14 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
e1ea3c380d5fee3489882d16ca87c43237b101c78b45b74ea19075cf39c31ec6
BLAKE2b-256 checksum
How to use checksums
34f7cf2081144179ea2f6dfb20ee1818e2bbbe9615d9d578f2f4b9209bdc10f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 73.8 kB
Tags CPython 3.14 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
40f1c9acce4f55597def198efb35430af77b08ff58b4a6cb13e516b583e3b608
BLAKE2b-256 checksum
How to use checksums
89adca662b97f15d42c6e2656f456fe1ee4502004dd07ff2f7ef559d9ccafc32
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp313-cp313-musllinux_1_2_x86_64.whl
Size 108.9 kB
Tags CPython 3.13 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
739bcaa5613551ddc650ce9aa505fdbd9b118a0c945275942efef6d2a6966705
BLAKE2b-256 checksum
How to use checksums
d247d8be6f1f0c0d60621ff2ed1df566505308eb4dc463c9d555e59fdd97e80e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp313-cp313-musllinux_1_2_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp313-cp313-musllinux_1_2_aarch64.whl
Size 72.9 kB
Tags CPython 3.13 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
c7d249a692a0556372b00bb1a3db5ff46995215ccb185b6a20b8b1974cb13c52
BLAKE2b-256 checksum
How to use checksums
b3cbdf95ab8d43ec29840ca1d5fd92f3b73d93b1924d38a82fe0532a7b59d7ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 111.7 kB
Tags CPython 3.13 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b4f431102e17bdc54de8f59148f4df2c7347a57a56ed35b2a1043ea755798344
BLAKE2b-256 checksum
How to use checksums
b378a4736681b4affd66fe9739cb78e62a6cbe89d996f819ea7f4925636dcddf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 73.7 kB
Tags CPython 3.13 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
8664b99c8b41c79c1e64f75be356f9126b89c91a2f1b184142f851f2ac62182f
BLAKE2b-256 checksum
How to use checksums
5e7956b38e75dad3cb07acebdd8c8182dd5551ab2443219f09d90d8aeabdec5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp312-cp312-musllinux_1_2_x86_64.whl
Size 108.9 kB
Tags CPython 3.12 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
8332be388f038635badd85e6dc189875cfc4768946df2c94960d158ba94b3d39
BLAKE2b-256 checksum
How to use checksums
302e5c6c6c1d63df5716003b7a13db9ed643c767452bbd4f323f9d9b243300ea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp312-cp312-musllinux_1_2_aarch64.whl
Size 72.9 kB
Tags CPython 3.12 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
74a6b512895926603b60d6caf07dc0978b69bd267f7585d4688bffae3f9e25bc
BLAKE2b-256 checksum
How to use checksums
7bc82e8b747a94e233f33c0d5ec3833898be3f31dded3143c40afe52912378e6
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 111.7 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
ba20cbc38763f031441db65d3e3d5a5afe5c582e6358e5830cf8a6a7d17d8692
BLAKE2b-256 checksum
How to use checksums
ae2174c2efa1781c78fde63e2799606680a78264030bc515f429f0cb2a535466
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 73.7 kB
Tags CPython 3.12 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
2362f9bb4c8142a044070549f83362f035ce4a7272ee4df7fd0f1ff97cf76ae9
BLAKE2b-256 checksum
How to use checksums
fb926ab5c2746980e36c23a5e441e3752d5acabfd3dea22a88acaca3d5f84e86
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp311-cp311-musllinux_1_2_x86_64.whl
Size 108.9 kB
Tags CPython 3.11 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
1cc133358812f5ee2fa10a33f8ba6d761ae8c1841fd21f6ccbd85cc59edf8c6e
BLAKE2b-256 checksum
How to use checksums
8a25ee7646a0891400cbe5957f80a096b61e7e716c88ea8e665eb6b462f9b93f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp311-cp311-musllinux_1_2_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp311-cp311-musllinux_1_2_aarch64.whl
Size 73.0 kB
Tags CPython 3.11 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
5b879b927be59f85c0cbe2d932869b5ea677ca7a54de433d2d51f3192e6e95cc
BLAKE2b-256 checksum
How to use checksums
2848f58bdb1ea8b3bfbe690027c6a8b86c4abef930a39a52adca374afd63fd03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 111.7 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d7d4286721949e2f654252a4035e7cec4d812e103f4ccf2d8d2fef5f784cfd77
BLAKE2b-256 checksum
How to use checksums
705be839070d6b4b35f4d760d819b24160852470ecc688bcb5c92b34fa8b2a47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 73.7 kB
Tags CPython 3.11 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
d6e0378923344277f701b1dcd474445f5a9e4a4528354547759f1be1e23fe028
BLAKE2b-256 checksum
How to use checksums
cc432d28d55c55083d45cd2dd776c31fd4708545777c4b1217063399716f9464
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp310-cp310-musllinux_1_2_x86_64.whl
Size 107.6 kB
Tags CPython 3.10 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
d0e8a7a4163f9367aee5272bf64e937c393afafc65bac1dd5fcde5f0e1964d7a
BLAKE2b-256 checksum
How to use checksums
eacfe1ec14c84d7bd0f7a160552d6c515715305a84ba87b236814da052869b19
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp310-cp310-musllinux_1_2_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp310-cp310-musllinux_1_2_aarch64.whl
Size 71.8 kB
Tags CPython 3.10 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
27b090a32d81fa8cdf0425aa52acc36cebfc3154a1fbaa0ebcb851d0101c8b6e
BLAKE2b-256 checksum
How to use checksums
8c4abd92b17a8a326b1e86208a7494c7220643759d367b1a2fb393e9b7e32289
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 110.4 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
b3ff098cf60c5e74f4c851bea36ed085f1cc1ab0d9595cd2b0153f34e2dc00f5
BLAKE2b-256 checksum
How to use checksums
4b5821dece2320d71b06f2c2e43cc7f198cc1ee62511fd974eae51df101a13bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 72.6 kB
Tags CPython 3.10 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
e071bcd1b79565a8fd8fb8aaaf47a82d4517ce0ef0ac792da5c6ba57786cd2e6
BLAKE2b-256 checksum
How to use checksums
4a2942eaef6637f9612fa710a9712588f8bc906e7f18a06746fb9dce31dc734b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp39-cp39-musllinux_1_2_x86_64.whl
Size 107.4 kB
Tags CPython 3.9 Linux musl 1.2+ x86-64
SHA-256 checksum
How to use checksums
330781d10bbe996bc4a7669f517ef92e76c93f6848d8c5c03bf4d21bac07d760
BLAKE2b-256 checksum
How to use checksums
8c608e0ebe1e049830bd5b67b9cbcab0675a5c99f3982868b08c9972f4e92a41
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp39-cp39-musllinux_1_2_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp39-cp39-musllinux_1_2_aarch64.whl
Size 71.6 kB
Tags CPython 3.9 Linux musl 1.2+ ARM64
SHA-256 checksum
How to use checksums
cfe439bbf4cc5d2818c885dabd54673ba2dfff661bf9234a3f57ac0716ba40cb
BLAKE2b-256 checksum
How to use checksums
93eb62c2a0f961ed8d40ff8005745578fcc37a6b8e3005a9b9a2878b3dae5378
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl

Download URL tgcrypto_c-1.3.0-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Size 110.2 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
08429ddd0f1c6c82a80798c335d5abcb60094ba0ea5ee71b46ae04a369ad6ef7
BLAKE2b-256 checksum
How to use checksums
c47eb71748ed37a216df8ab5affd54d9a76ad17191615b92ca77c10085da75a7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Release files / tgcrypto_c-1.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl

Download URL tgcrypto_c-1.3.0-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl
Size 72.4 kB
Tags CPython 3.9 Linux glibc 2.17+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9fa97f9c85272b29c7945ed416cc724695bb72f7455cb6f490e65126ad8ee6ad
BLAKE2b-256 checksum
How to use checksums
ea9d80a68777ab2a91c51e04b164cd94de5de16aab34dd6586fd1f56150788bc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

Security for tgcrypto-c 1.3.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 37 files in this release have been uploaded with provenance metadata.

Select from 37 files

Attestation for tgcrypto_c-1.3.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 29, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

1.3.0 This release

37 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page