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.6-cp312-cp312-win_amd64.whl (29.6 kB view details)

Uploaded CPython 3.12Windows x86-64

tgcrypto_devilaiger-1.2.6-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.6-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.6-cp312-cp312-macosx_11_0_arm64.whl (28.0 kB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

tgcrypto_devilaiger-1.2.6-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.6-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.6-cp311-cp311-win_amd64.whl (29.6 kB view details)

Uploaded CPython 3.11Windows x86-64

tgcrypto_devilaiger-1.2.6-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.6-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.6-cp311-cp311-macosx_11_0_arm64.whl (28.0 kB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

tgcrypto_devilaiger-1.2.6-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.6-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.6-cp310-cp310-win_amd64.whl (29.6 kB view details)

Uploaded CPython 3.10Windows x86-64

tgcrypto_devilaiger-1.2.6-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.6-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.6-cp310-cp310-macosx_11_0_arm64.whl (28.0 kB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

tgcrypto_devilaiger-1.2.6-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.6-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.6-cp39-cp39-win_amd64.whl (29.6 kB view details)

Uploaded CPython 3.9Windows x86-64

tgcrypto_devilaiger-1.2.6-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.6-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.6-cp39-cp39-macosx_11_0_arm64.whl (28.0 kB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

tgcrypto_devilaiger-1.2.6-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.6-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.6-cp38-cp38-win_amd64.whl (29.6 kB view details)

Uploaded CPython 3.8Windows x86-64

tgcrypto_devilaiger-1.2.6-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.6-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.6-cp38-cp38-macosx_11_0_arm64.whl (27.9 kB view details)

Uploaded CPython 3.8macOS 11.0+ ARM64

tgcrypto_devilaiger-1.2.6-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.6-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.6-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 0c1539519e3db312362dc2d9ae9fa65396db4328673c9dfe8247da016461f30b
MD5 89f58f1d97991cd0af583e22ff5c8573
BLAKE2b-256 d990f6fd30d92473ba58d2b07c96116e5ee8a396f6a4580bcfd50e396e2f0702

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 c2d3703aa72b6eea84e53b04c2d183018f7d1b4c1a1ab0e3b5abb53e59d6da7d
MD5 f2c0dcffddee17e10ad450b6eb414803
BLAKE2b-256 766449e20fa15b1fdc05fee0bf326a008aa20887bfadb285a3db172cd702b297

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 37aa295967aa2f0fff5c079a8231d5373e5826b11c4167cee4ccf582d1adc719
MD5 592edee0a6aa530a7fce5fc9248deee3
BLAKE2b-256 0846748f471a7f027724337829a0c27f1259dd96d91d7bed2c23a532d3f334cd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d793fe5207bb8bee217dd9f5a1f860782ebee4488a905880fba81348fb401abd
MD5 eaaa3ebbce273cabceceb2d3b5aa760d
BLAKE2b-256 d1ce51200a0fc77061c433211f5a300943b4b6b9ec818d1fa5e57e56da7f1ca1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 2fac0ac2d83492f698609a720eb3920503fa7d731c972617a09f7e4295e7a1df
MD5 22799800d2f2c161a3723157a648e7f5
BLAKE2b-256 224c82e93750b64a8dc268f5c5ed5eb7a5efd4f698e7b07a9c3355e08817df5b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp312-cp312-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b377299fb203dd4c35b553f6573bb0e52f167597275fdfac80d25e4d66a77baa
MD5 8a564bff49680d1a4c41eb742ca0aee7
BLAKE2b-256 e31940d7a77095b13ffbd5896e2f56a960b1fe444e86943e85b2d4d51b445555

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 198cb3331f5c25ce055c09f55193024d126cd5d98d786ee097aa0ec16e779fb3
MD5 17bd8b7630c803a09fb5ccf8d6606fe4
BLAKE2b-256 df456d3f3cee251d8f85365b7437b92f10247f0bbf61d8cfbe15e49fe27375a5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 935b60525cdf9cd05b697d0cae2da69d6d93bb75e4f629f0ce825ab0852d1fec
MD5 8450983b061e367de3ce092fec18b8ed
BLAKE2b-256 522aee4a42126c5cdebb18a6fafc4b51faebdd001705e703e9baec66fe252708

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cfe3d73351fd87514a639c6c0e922513467d865d2fceaf9bbf6daf0c6cbeec38
MD5 a5bb94a60f4225f22eadcecfc145292a
BLAKE2b-256 4e183b09857d4892631b74652949df8aa0266ace075f9f215ba3f67ba583c277

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 01a4f75f0947f14a451ee8a3f77320fb970c0690e4e2e1c5aab1a1bc1e972bb6
MD5 7fbcce966c9610c1c061e1ad9ae54545
BLAKE2b-256 a318714ed7f300865ad966f400696991e158fb4f51e8ed422ffa5db62b3b0dba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 56aecc3de03625e1dc982956f5a0c953f1dafddbbc954d2719d14de1c041d349
MD5 9bdfaff94bc6e960b0548d0a44364d1c
BLAKE2b-256 3e4aa813a8e0481a37517a2f9a6d3dff75a0973de5127f6d352e1f473cd72c98

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp311-cp311-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 5e7b91ca4b25e80b8aa931e32de7e63fcb7d1bf7f9e2de9230cc76b374a5548b
MD5 df8f90d8bfdf5afdcb0cfdea4c845214
BLAKE2b-256 5db8594ce0685783a23a06c093c0af7bd0207916bd80b2d68340d4b78125989e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a5f69e02fa083d74d43a3e9e7c7b913b7e16bb66274e8e5df5128309b93053ab
MD5 ef8747f108537305610bc40ad70a1fac
BLAKE2b-256 52410b872fcd035ecfd76c5807670df63c3070158a4165f0d337f50be5ae62da

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 3592d387536bb411e6c1c339e47425ee3b9632dd7b3c88a43a776841ca858d0f
MD5 aca250843bd702af54694110eb14e9b6
BLAKE2b-256 85a229ce26be1559a581d68edbf8bab52291d7beb71849d61061bf9900bf3e69

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 66f4c949da2cb4516801770fad41942937f6f74d724629c0591a5001458a3bd0
MD5 5829cdedb6f9af1b5e534ec824677db3
BLAKE2b-256 70aaf602092bfcc345b4adc85d33a806d8da0f93766f43c598982a7ac8410ce9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 04d3b1e452262cb0238066b1a8c0af8ac9fb6f30d7cb0929320091a8ef076d71
MD5 0523a99e6807cf8616c254eb983562af
BLAKE2b-256 22fb86a70bf2b0500472370ee76823f63cd67dbe3d1b8b9baf1ca01f120f9ee8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 e5dbf994628b5c65ee2b87b17d9d6ce4a87e30283f971616c107888947a1df79
MD5 d549bd23f071807bd58a5ca85a3f0f9c
BLAKE2b-256 bb9cde0b054a9c3c85a39f3cc820aa6fbe39cc3d2c401aa854a2f2cfc149ba0b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp310-cp310-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 7e0b30c257292c1a3b784fbeb99c814713ef47051c1b007ea7a8348f16ab1471
MD5 d15e7ae4ecddd634348e8b681423cab3
BLAKE2b-256 c2eb7e2cdaf504131534ab294830f85e5a62b8c8be17d153ceea05eb1d72f57e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 69100d21921db9520a0ba75dc2602469a76118e1298ae4fa234a34a8c6e7ef2a
MD5 24b99bc4dbb9899304726ef41e632bb8
BLAKE2b-256 4871118ddc632a5ad5bd74ac8f8fba65983cd0376d8e1ba38ba5bf1c76baa581

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 580c5583a8cc9a5d6123413be6b1c18cf98c3e8e07110cdd575a66876ff47969
MD5 c45a237a2c4d397d47c023ed57197d39
BLAKE2b-256 a2ee9ac8c3252f249ac884905df9cb8308f0a74c6a3a6b59bc8a55cedada2218

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cd9993792ea2fbd6b87d3f21083841c14be8b1f3b77e2cb7c498bf351e7fdb4a
MD5 88a23be5e4fc02c14b340ff2b6237d6f
BLAKE2b-256 8fb724ec2e0a7bee21687bc2fed712dc3a2312bc23056acaf8830f7b31993791

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b7f26d9a61876d38f772692e42d2780e57d512dbc4c64eb026bb96c7b8bcd8d0
MD5 190fbdcc4d89a75c9fb3a37b95729b4d
BLAKE2b-256 9f898e76de9d5721cdf287b8a81d3113180dd41406fcf49f0054ab8a921911f7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 64207295563fa6c0b7144a4adc5271cbc6bbb888d31d6a4540d8f4f9b0ed38f5
MD5 ccf13fa136d0473778e26b12db215c9a
BLAKE2b-256 a07b486f4cfc02fad9c6167166c7368a93b1aebfa2c8e4decb07d865ec1d1e76

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp39-cp39-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 b2a81cf923441352d333d68db0f7446a780722af1ec614bbf736d2995a6ea579
MD5 6c880e93d6afedb600ed00d8ae957a9b
BLAKE2b-256 cf6a1fab6cd47173fcedb700c88d7e5ceb3cc7696f53be1106d01b609139c073

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp38-cp38-win_amd64.whl
Algorithm Hash digest
SHA256 77a0c989ea0fd2777de21451048f2f0d316c307a3a37029ca5c4855fbb58de5f
MD5 7f3367a25b6a0c0eb2e3c822f17a4c96
BLAKE2b-256 f6931075bad5b971a0c56c83b668fe2590d25ad77ce40928ee8be03f197a530a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm Hash digest
SHA256 d7df9f70a5ad413d3882016b9616564049544726263c0a9997579b999432827e
MD5 cbdae70a63171cea34240efff089e2a0
BLAKE2b-256 fda9dfbd37aa4b952df98d3f3301b35fc3842fdfbfa252d35700936ffb3eae09

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f147aa7d7d877bfa5ee64330f38b262554bee42bcb6588386ab6e97c808b787a
MD5 c4a3abad45c752cd07584746b8760e69
BLAKE2b-256 d6f10e944b397789e2784bcb1c7c1b88b4cd15521823ce458fd28f8feda49037

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c77de1bd762fc3cc4fbdca040794a8ead2129f33c7f576b4edc15aec4f8efe84
MD5 ef1500390200eb06f26a1381f2a60859
BLAKE2b-256 15f533f4a94b3d13b4311b449473c17cc15dcc549c35f7c6c6aa65dec076f003

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 79efb0c9cd54ca74da9b2251911489eef624d51050642db8969e2f583bc5f4e4
MD5 ddce5b5758402dc163681faaa80f8f87
BLAKE2b-256 cdc361e46a5a863b79b7d3d251e6ebbb00acd471f107fb87ae3d02a20d6cb874

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for tgcrypto_devilaiger-1.2.6-cp38-cp38-macosx_10_9_universal2.whl
Algorithm Hash digest
SHA256 9cc7e48e476e98fb88f431fa38a0aad3a9a780493604395176e67e95eeeffbd7
MD5 822bb17ce28be89e753e52fe0417c0f8
BLAKE2b-256 661fa40a01a69f6d2db0796d7f0f30c9a4659cfbdef1bf3920aad3ce30f3e9ab

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