Skip to main content

Fast and Portable Cryptography Extension Library for Pyrogram

Project description

TgCrypto

[!NOTE] The project is no longer maintained or supported. Thanks for appreciating it.

[!NOTE] The implementations of the algorithms presented in this repository are to be considered for educational purposes only.

Fast and Portable Cryptography Extension Library for Pyrogram

TgCrypto is a Cryptography Library written in C as a Python extension. It is designed to be portable, fast, easy to install and use. TgCrypto is intended for Pyrogram and implements the cryptographic algorithms Telegram requires, namely:

Requirements

  • Python 3.7 or higher.

Installation

$ pip3 install -U tgcrypto

API

TgCrypto API consists of these six methods:

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

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, bytes(1))
ctr_decrypted = tgcrypto.ctr256_decrypt(ctr_encrypted, key, dec_iv, bytes(1))

print(data == ctr_decrypted)  # True

CTR Mode (stream)

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 = bytes(1)  # Encryption state, starts from 0
dec_state = bytes(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

Testing

  1. Clone this repository: git clone https://github.com/pyrogram/tgcrypto.
  2. Enter the directory: cd tgcrypto.
  3. Install tox: pip3 install tox
  4. Run tests: tox.

License

LGPLv3+ © 2017-present Dan

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

tgcrypto_devilaiger-1.2.5-cp312-cp312-win_amd64.whl (29.6 kB view details)

Uploaded CPython 3.12Windows x86-64

tgcrypto_devilaiger-1.2.5-cp312-cp312-musllinux_1_1_x86_64.whl (48.4 kB view details)

Uploaded CPython 3.12musllinux: musl 1.1+ x86-64

tgcrypto_devilaiger-1.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.6 kB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64

tgcrypto_devilaiger-1.2.5-cp312-cp312-macosx_11_0_arm64.whl (28.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tgcrypto_devilaiger-1.2.5-cp312-cp312-macosx_10_9_x86_64.whl (27.8 kB view details)

Uploaded CPython 3.12macOS 10.9+ x86-64

tgcrypto_devilaiger-1.2.5-cp312-cp312-macosx_10_9_universal2.whl (43.5 kB view details)

Uploaded CPython 3.12macOS 10.9+ universal2 (ARM64, x86-64)

tgcrypto_devilaiger-1.2.5-cp311-cp311-win_amd64.whl (29.6 kB view details)

Uploaded CPython 3.11Windows x86-64

tgcrypto_devilaiger-1.2.5-cp311-cp311-musllinux_1_1_x86_64.whl (48.7 kB view details)

Uploaded CPython 3.11musllinux: musl 1.1+ x86-64

tgcrypto_devilaiger-1.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (45.0 kB view details)

Uploaded CPython 3.11manylinux: glibc 2.17+ x86-64

tgcrypto_devilaiger-1.2.5-cp311-cp311-macosx_11_0_arm64.whl (28.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tgcrypto_devilaiger-1.2.5-cp311-cp311-macosx_10_9_x86_64.whl (27.8 kB view details)

Uploaded CPython 3.11macOS 10.9+ x86-64

tgcrypto_devilaiger-1.2.5-cp311-cp311-macosx_10_9_universal2.whl (43.5 kB view details)

Uploaded CPython 3.11macOS 10.9+ universal2 (ARM64, x86-64)

tgcrypto_devilaiger-1.2.5-cp310-cp310-win_amd64.whl (29.6 kB view details)

Uploaded CPython 3.10Windows x86-64

tgcrypto_devilaiger-1.2.5-cp310-cp310-musllinux_1_1_x86_64.whl (47.9 kB view details)

Uploaded CPython 3.10musllinux: musl 1.1+ x86-64

tgcrypto_devilaiger-1.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.2 kB view details)

Uploaded CPython 3.10manylinux: glibc 2.17+ x86-64

tgcrypto_devilaiger-1.2.5-cp310-cp310-macosx_11_0_arm64.whl (28.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tgcrypto_devilaiger-1.2.5-cp310-cp310-macosx_10_9_x86_64.whl (27.8 kB view details)

Uploaded CPython 3.10macOS 10.9+ x86-64

tgcrypto_devilaiger-1.2.5-cp310-cp310-macosx_10_9_universal2.whl (43.5 kB view details)

Uploaded CPython 3.10macOS 10.9+ universal2 (ARM64, x86-64)

tgcrypto_devilaiger-1.2.5-cp39-cp39-win_amd64.whl (29.6 kB view details)

Uploaded CPython 3.9Windows x86-64

tgcrypto_devilaiger-1.2.5-cp39-cp39-musllinux_1_1_x86_64.whl (47.7 kB view details)

Uploaded CPython 3.9musllinux: musl 1.1+ x86-64

tgcrypto_devilaiger-1.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.0 kB view details)

Uploaded CPython 3.9manylinux: glibc 2.17+ x86-64

tgcrypto_devilaiger-1.2.5-cp39-cp39-macosx_11_0_arm64.whl (28.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tgcrypto_devilaiger-1.2.5-cp39-cp39-macosx_10_9_x86_64.whl (27.8 kB view details)

Uploaded CPython 3.9macOS 10.9+ x86-64

tgcrypto_devilaiger-1.2.5-cp39-cp39-macosx_10_9_universal2.whl (43.5 kB view details)

Uploaded CPython 3.9macOS 10.9+ universal2 (ARM64, x86-64)

tgcrypto_devilaiger-1.2.5-cp38-cp38-win_amd64.whl (29.6 kB view details)

Uploaded CPython 3.8Windows x86-64

tgcrypto_devilaiger-1.2.5-cp38-cp38-musllinux_1_1_x86_64.whl (47.9 kB view details)

Uploaded CPython 3.8musllinux: musl 1.1+ x86-64

tgcrypto_devilaiger-1.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (44.5 kB view details)

Uploaded CPython 3.8manylinux: glibc 2.17+ x86-64

tgcrypto_devilaiger-1.2.5-cp38-cp38-macosx_11_0_arm64.whl (27.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

tgcrypto_devilaiger-1.2.5-cp38-cp38-macosx_10_9_x86_64.whl (27.8 kB view details)

Uploaded CPython 3.8macOS 10.9+ x86-64

tgcrypto_devilaiger-1.2.5-cp38-cp38-macosx_10_9_universal2.whl (43.5 kB view details)

Uploaded CPython 3.8macOS 10.9+ universal2 (ARM64, x86-64)

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 e214df9978214f375f5d9d522855f3aa0ae8fc2442951089c8862360cfdb5186
MD5 0c7c0fa2138ccb50e7dbbabf63d68e72
BLAKE2b-256 922e8909d6f82437c1aeb3e22f706baa894f0a89c48f2a4cd76858b3a7fbfdba

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp312-cp312-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 0437eca7202521db310b2ca30e291cd557c1283f47a2c4f3ea092cd8ee4721b5
MD5 4ade5d58392bc666217e08036ebab482
BLAKE2b-256 43f4341c6ebf92d167e10f9cee812d1bc6b70c5d5bee3609697d130fc78942cf

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 5420ad05fa7e3350691691f97498fa0ffbf457b0b5d7dc39bf4f5da015a9bcac
MD5 ad84f7402d1989e04cc521f51079f33f
BLAKE2b-256 b0e5d3f545787e0d9f0b11b6c27264ba97f9caa31fd67f0300f87e081ed36a9c

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ef20db2d5d2c723fc9a6db613d10f8826b938978607dc3744163cb57b48bca83
MD5 34d41dd13cfe4edc05f0e488c6adb692
BLAKE2b-256 5d2f39ac01ea1e4493d7b2654810c1e201582022c624d78862a2f240577a102e

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d097ad2052d66e271252cf2f3d6188dd768a0e51cf342866fba4bfffb717fd0a
MD5 a21c2e47bf2858710dee7426c74d8ce2
BLAKE2b-256 d73017e05e91c8702447854c5c41f6c20759051752433df76a4c8658dafa6bbf

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp312-cp312-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 a8f3fda38269d4c3138813e7289b4774f68c840082f037b03132340a20ff53e0
MD5 c8b031aa9cd79a41225f0c298623ec73
BLAKE2b-256 9cbd0dc716e06d230502de1b9d1576429f201d21fe087c5d5d02e858ab8af5b3

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 e2e90ac66cee220e1c2699259220af9caa807314c256705104be737523b3388e
MD5 43f735ee5ec73b0fc05bbd814bc0e529
BLAKE2b-256 df74301e97219cd9c55bdecc3f5fea0ebf47c3024d144c86bff3c15f2a68250f

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp311-cp311-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 1af091f04a7bbcc05f2bc45fb91f56454a1357eb2622ab6d4bd251c6d7224542
MD5 d59e505fe66d493935fefcb8f5a4ac75
BLAKE2b-256 74a09fa5e1718206d77dca5d8dce4f9c96512b60130b0294d9a891b38efc2e08

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 35297f91f3aa0df6dd4ae398881bc91683e53166c2bfd0c7d4635f1464dcafc2
MD5 cd90bbe9ec98e88177e6c02a9ce6444c
BLAKE2b-256 ecbb1647a999bf5e62ebc82029ca02cb6326502d573d464beedde0cfc793c610

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 24b78a7484033c93f532b1d59a667573581fe41d975cdb862e30fcec3a76732f
MD5 994b832c00210137ff3a54aea653c2f4
BLAKE2b-256 1a4cc8b83339cc2d97ab05f79749958ea628fdb0e5cfb92f9fa814853648c9ec

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 6545ee11f42721eb2f615a66268a64de6f3c494ece5fcc2a64309bf6de21b22b
MD5 6bec1ab6accba88338363b43a1c8cc9d
BLAKE2b-256 91821607907ab9378428949c9db43d1e6425ba10b70c590dbd8a6e0fb2111a35

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp311-cp311-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 2bd3db30abd6dddac05f532f7995fd02de20df7092389de881225f0900a4c9c6
MD5 283674af655145bacffb9583662ed468
BLAKE2b-256 66e09a671b364a6082378443c70406320f3b01fe33a1fbc733356d8844f9fd02

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0bcd430a33a931d80079a0719edfebd5ae3f6e5902b38b4e461fd5dc426066cd
MD5 a099bf55902264d6afaa26752c561815
BLAKE2b-256 928867e5a968c5f5d442f623726ca936e4b8f4d409e522739588b5473156543b

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp310-cp310-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 601aaaeaae73dacf4e65d0da0fbb8f3b318847f95a32dc72593945bf23170e70
MD5 8c092081e79c98748917c256c424d5b0
BLAKE2b-256 b5d178292ba5e309f8195e6ebddcca54d7c587edf5a20a34a90badaa25b7abfc

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 170ed2d6e9cabb920984187f2d9a2fa7dbf4205d088329c688ead78d4a823073
MD5 59095625fe52e363794932dbf6897a37
BLAKE2b-256 8d4b7d0db2c9e633c05c528a7545b0f6007ae6da4fbb8fabb3c6448f14109bdc

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a9b6644df98bdde46b5e978292da737b924beb01d997dc5790fd8c9789e40eb1
MD5 3f2137dc36d9ef8f66dfccd00455a46b
BLAKE2b-256 1060ce7bbe82d15497bcf753ed752a02ae6645cffb02cc362766f39ccf68a83a

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 a424121ca141256f4b5b115c4a2cbcc98fdf7521309202fe3cc70c5b6ea2b83c
MD5 1f3467c0afd8290a40ad1cf1aa36729c
BLAKE2b-256 901619119fb8ac3bf7424dc69fcc269e3091244f0471f5f3e34feeae6bc84586

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp310-cp310-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 6312fce6b2eed8bd95eabd1a78913ad4558403e1f544bb31c61ff888e14b899a
MD5 c2c5184df3eb7a73577edbfd5d9bbb9f
BLAKE2b-256 2aa97daed2dddda21b9b5f526ca030c10cf5216426d80d5d37e7ea14b8c3d38a

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 eaef0d331519edb182546f9c3a72b5025b68010919737d915856a0e459bb9cfb
MD5 5def0ef38fe0b7971323e54d193b249e
BLAKE2b-256 c7b3c29fde2a05a484b0bf2a8c1fa9418812aee8e59086401fa4b624206cefe6

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp39-cp39-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 02ac7bee5c73e3508345bb97407b166296a9ccd197274201ea2290777c4d6408
MD5 1893b3b09e6cd5766d5636e7bf1f7ea2
BLAKE2b-256 db3d44a24c17d1d5941234868f91f94118567953c0cef0fd246df0a8715db092

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 bae37024f0d9be8225ee2cfcf0e747354777bdf504f4657a2431e6f6e09623ce
MD5 0492007b92916e168a170536257c9aef
BLAKE2b-256 309b4043986992539aeb6b533ab37b3fc9c78eb88a68dbbb6c705e35dfd004bd

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b7831c095a7f875d47d4be5cf1c81015dd5f62f7589fe1e9e470374fbaa14d24
MD5 b63568aacad481c1be66e8f6cb137ca4
BLAKE2b-256 3f0c66d4f3f1a835a452a3b587298445cc8787c9312913b3c45f1f4cb53f015f

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 b4a00b023ee71699ed73f80ddee0c03161a87cf2a22f1076f87374c54cc1778a
MD5 484bbcf6b15528b3a57c86b235810d0d
BLAKE2b-256 de33fa342d3b90f48a0d27f7868b821f93123ac8deed0d49abf4d69ecd027c81

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp39-cp39-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 9ba43f2479f565b2d197ea7e2b3f6148f45809b12f47a1f43946f8e94ffa5c70
MD5 d31b34775852bea285fffe2d21c5565f
BLAKE2b-256 30f92606e494858bdf7487c9ed775bfb6e2c3eee0a27607db8c18c7bfb6a711b

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp38-cp38-win_amd64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 de03dd19677d94d6af0f6a24db230bf6d22093ecf466ceaf2950b497c35ca07c
MD5 7e18180986c43bf0ab98b733338ca241
BLAKE2b-256 093faaccd570f6481c5ad95e0b7fdeecf5b46e8cee117d24883a0e7341213ca3

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp38-cp38-musllinux_1_1_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 788780d851669b190faaae5d8735d3c45f314cfa34dd754962dd7a6f74b2e1a4
MD5 cada9726baee04af2816feada4717e88
BLAKE2b-256 08f63ac4f4760bdf8a1e988c845c1f7e76161f7d7470727f1ebb17bcd780d3c8

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 df95ff8e8cc957f6b7d679c5d01806ddf3532948f70134ce57a18ededbc1a2fb
MD5 bcd7a525cd6ab83e1d41f39a1d070619
BLAKE2b-256 c40ae9ad5a6fb038fdb5dac05388d3c060049f34cea0d62eb4410cf020991db1

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 ba0248546de7651c37c3f26e683dd535b2a40c946cf457d71bcdeac0965b38e6
MD5 9e06619283835bae478965df06e6dc72
BLAKE2b-256 6bf6110ab50c1dab0232ceb0b0dd7e39a1528e384d83ba6b1b92a8829074ca58

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 ce02e1da52a6399b3dace308f2cadf73666387547701e0e37fd3c903bdae4c43
MD5 cdcea7984ecbd75badf562674eec3344
BLAKE2b-256 31545dae83891b83a8c94d79cead60778a2ea67a6e5f59e8996ee773433b67e5

See more details on using hashes here.

File details

Details for the file tgcrypto_devilaiger-1.2.5-cp38-cp38-macosx_10_9_universal2.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.5-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 8126ccbe5e98b3f2d9f8f670efb5aed7fc69bc3e21d4dd1ff45d6da9d255fe01
MD5 83b4c76048fa6d61ab7d333acc2e5754
BLAKE2b-256 59bc2aa45bdc994eb5afac4e04dcfe90b847ec9f1961cb6b0137261199c4511b

See more details on using hashes here.

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