Fast and Portable Cryptography Extension Library for Pyrofork
Project description
TgCrypto
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:
AES-256-IGE
- used in MTProto v2.0.AES-256-CTR
- used for CDN encrypted files.AES-256-CBC
- used for encrypted passport credentials.
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
- Clone this repository:
git clone https://github.com/pyrogram/tgcrypto
. - Enter the directory:
cd tgcrypto
. - Install
tox
:pip3 install tox
- Run tests:
tox
.
License
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
tgcrypto_pyrofork-1.2.6.tar.gz
(37.3 kB
view hashes)
Built Distributions
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp310-pypy310_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90fec9d35b6822c35118a8f342bb90eb18dc5c14e7674b40e1fa6435a08141c8 |
|
MD5 | 04f83e6e250245de8392f55dc264d5d5 |
|
BLAKE2b-256 | 7b5825391d251f305180a6653e3909cf26df04cba3c934f4ec55aeec7dbb8304 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17360ce41d1af4aab617a3e6df304361ca1638e879b70eaaa93b1d9a5af2ed71 |
|
MD5 | a51d5884f0233adc881a29f7e75d00cf |
|
BLAKE2b-256 | a8a0ca2954308f93d90533a4c54fb097084ec32a54177e7f75524cd348c0f941 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f621aad0c3f7cee7c5de03ca88f2eb684982eee11d0a2ebe24f051c01d15fdf7 |
|
MD5 | 93ce8518a69ac6dd6e1046c0d91d2512 |
|
BLAKE2b-256 | 7b01d1e283dadaad3752009a8e96de6a9d1ba30e3a40962138968d6f26736f12 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9e67a014aa09f155ce3f5cd7ea56c81395ddd5cf455c9a4489b8a74a60d4a29d |
|
MD5 | f5d7a279c7ef007f9872d1ee3d458310 |
|
BLAKE2b-256 | df394eb2013ea77316a61563e9c9e3d3279e5c9b12ae2b6d8c96d223ec8b94b9 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ee8a942c121c2716b0a8b78230bb4cb1a4645641a4a1d0562dcfaf0ef8e93bff |
|
MD5 | c8f37ac47471ed8cc9184e892ecccfeb |
|
BLAKE2b-256 | 17aec6be2cb3ddbaae55c5ff3bd6438c59cb78e8972236e964b9b9bdcb358167 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0a1ab7e4bb62c51d17f0eff0d6358d32c837e1e85476b1e59dff5cc59534d004 |
|
MD5 | 263caabdb3e21fe04dad4a0b74d70bd4 |
|
BLAKE2b-256 | 145ebaa46214ef8498b35d8e671710d67548be597fb43ffa54384af5e80a4dff |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6a099f22cc342ee5818268f1de0f2fd5dfe3fa04527d01db9e48f6b38a236423 |
|
MD5 | 69ca771d6a1feba84aaf733289991e19 |
|
BLAKE2b-256 | ec0e9e5f5e2a6199a174ce3cf9ce858791239c4782494b8aab253568c8e1b311 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | db596ccb8739540102038e550f6a460063a188f7049240b91968f11617740911 |
|
MD5 | 10e31be9dbc48d38e81eb17107eefe3e |
|
BLAKE2b-256 | 49dd5d7dc497fc7a8bf67a7db201cd2e47b4d5e358a14971ab832138f19f07d8 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64176a1014c4693e0bcd4601cff3e2b6ce8b89db1caa21b8520ce4d822665f40 |
|
MD5 | d276768c88acd87efc1dd0f718864c70 |
|
BLAKE2b-256 | 66fbd38563afedd89f40f096cbac8fb32a961c15e148714ef666184d5d147d6f |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82f281678609091bb2d2f599cd09ab1ea599a6fd23ed19d929d42f6eeb9f7e05 |
|
MD5 | ceb06240273b9656893ec37057c87c32 |
|
BLAKE2b-256 | 4341d859363808b26fb78467c78240a248645496dd567b81a5266045ce192727 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d98a58dac1c9b665aca3f89d8964d13be0be9d09b064be83ed48be8828e712c9 |
|
MD5 | a6e6412d26a60ec34c5149dc6db05dd5 |
|
BLAKE2b-256 | 8e5c36bc997bdc58c6f8151845816f93be257c759685f65bfe1cb44ab6081bae |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4b1d1e3505cd6deba99df3125f07ad47ac6d996a98463ec14e48bd8e3fc42e15 |
|
MD5 | 72c309e42fab0f4b4a39ca1f45c9dfc8 |
|
BLAKE2b-256 | 0d36198a429e4529188f86cdede03cf88ae6b911c7e1e32f8244cea604836c29 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp38-pypy38_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4172f0af4d9b16fe77593f51e987e341170ff639a5121c7245a868d998107a53 |
|
MD5 | 76dccaba48d07527f2eeae2dad3d7a7f |
|
BLAKE2b-256 | f606fb8fcd46f7b2b3fc68298d8158b2d34feabfa4ec50d82d010160040a1dcb |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9678c4ac969aec333e4c4bca475b182bb4416962dc72804ea90add9d45a02c16 |
|
MD5 | 1a6479da6abd9a003ffaca032c92a530 |
|
BLAKE2b-256 | ce5aebdd82015744aca9eedafff406c86a5f5a8aa091fcefec2e6074f9d8fa3d |
Close
Hashes for TgCrypto_pyrofork-1.2.6-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 14daaad587a5c7c0a4f9a67b8245701f9bb527f42473a22843945b0e695903d9 |
|
MD5 | 7a2c371954935a9961c0bd6683d3f52a |
|
BLAKE2b-256 | cb826fd5cbd80cf1df112ce4427b8d5dc53b8bfddee89581eebee8de9c57481d |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp312-cp312-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8bcd529db8dc76bb48556c38136b2d232b1cf60b3da4f6e8cacf7d41264f370e |
|
MD5 | c78e597be96006676721434157deb59b |
|
BLAKE2b-256 | 02d702707134003085d74e7dd3484466840a2d61d841286a532c58bbd5a5f523 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp312-cp312-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5f35b4d3569a8558b62e4686095cbb69c3bdc9fd075a2cab450e76d091e2c105 |
|
MD5 | 0a8e43fff243132f812c9880b8126781 |
|
BLAKE2b-256 | 52a11e6e7a8d1803ca169a8e77c2d914d03dfd7ed2dfd84aac1d4ccf5f0e9f22 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp312-cp312-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 29aa0f0d0683cacf7eff77fed3a91b388a2d4483e488fd157033108d9d90f1ca |
|
MD5 | 006664653835e61c4f7429036d0d08f8 |
|
BLAKE2b-256 | efa568ecc08044f5ed5092b67afb58b896d66bf79343d19e138d4bbdf9b822c4 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp312-cp312-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6e875f8c5aca85927a9a04eeecfebee6a8e6b44089a9f55797c495228a77a66 |
|
MD5 | d05c61c37de7084a9eedd68874e1c63e |
|
BLAKE2b-256 | c8b75b30785fd0a797ed5f7c0df43e8ae13fda60ecaf8ea60ed37ce3e3b7aa8d |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp312-cp312-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 566a2a2e43eb0164d40cbe0183337b8bd8c4d33dd700b4a820becfbe439e3a2c |
|
MD5 | cbcbed3f5ac42574e73a2cdc630490ef |
|
BLAKE2b-256 | ca0c31628c7fe758f35e8cb92cb264348d9599d578563649e289572b0ceef4f3 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 869f5afaf60714ed469de2941bd68214e34b3353562610af2d46bd9dfa0e15d4 |
|
MD5 | 389e317dc38cc854a0ee8bfebb33ac70 |
|
BLAKE2b-256 | e1ed3ebde65c890a5459b6d65dd0687b361b5e5461099b2d2241593ccb8cb8a0 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 71b0eddf18790f4caf7d732528d54eb20752d691f517a3e30ef1c6dae9c0d3f8 |
|
MD5 | 8856db05d8f5c2fc69991ddd8048c107 |
|
BLAKE2b-256 | 0da69c2026058c4518165b4fa3b92b16a24d64977e87b791a1f25f38ad102d82 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d8b414330a9ff29bbfb91577c23a908f791fef4ff14531a30ff0c9020c9593c |
|
MD5 | 833af4c4286394b03ba5e91c3aed91cc |
|
BLAKE2b-256 | 7664c1792fbc17e0a9fab48df3be94a63233a5708994d318f461e52874cae508 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp312-cp312-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a7bc307d47c9945d27c3aec77f5053e87a48f59562af07da4b74b0bb897df74a |
|
MD5 | d05791336acd5d6a87d73e0c8a511265 |
|
BLAKE2b-256 | 30277a44deed77e8f4e821ae522f3e050ede3530490de32574ed29b137530879 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6f7f83b5bbad015487b17c18ec6cd0a47b4aa277d5f9fb59fa0cdbd48815349a |
|
MD5 | af4caf3994a8784454a88ba060bbdac4 |
|
BLAKE2b-256 | 601ed0989419889305fa5e98ea47b5d7d29ae85481ec6ccd5d207041940b98c6 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp312-cp312-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d9bce7c7bf8d71e04be75927b9fcb1f8b2ef29bd8091c459004c2dab07cfd341 |
|
MD5 | 9ee79d64db8f3ea095b44f0d0bb6236c |
|
BLAKE2b-256 | 236b1110cddd9092ea635479a5928174c9a3f2073df136524d63ebadd0fbc951 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c388d8e9676258c9d9294f8a9b2a38664e1d901ff1b96fc0c65732c80e4389b4 |
|
MD5 | 0729b0171a09e126a3930fb93fc2d19c |
|
BLAKE2b-256 | b375192e02cbe65af19676426b0e4800cbdaf1f023a78cfdd6ad7504f6136544 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 26a16e88b845c3f384cf74152572982d99f5315ae9dd635b923aef38e46c26f0 |
|
MD5 | dacf37bef18c5987c07f964365591a28 |
|
BLAKE2b-256 | ddb47dc270f29fd0b6c1646629fe1a821056167f085e7d29b8431c24f2539f1e |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp311-cp311-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5704b7b2fb461ef2d1f922f6958c4e3224a3d317ae6cb4dde42f16c1d9a1b847 |
|
MD5 | b40e6bb9b7bed80f4ae3a2e639a19a8a |
|
BLAKE2b-256 | 5756cd08864311858076a39b139a28c058ed2e5e56ec650177712922ef9e6e02 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 05f394449315b22299d9b506813c00d69c7069a3522cf98792b6f36f6c9b6a82 |
|
MD5 | ebf8e02102c8f1c575bb4f5503a5e735 |
|
BLAKE2b-256 | 2e66203f75eee27ce378ad52041c2cb45f10ee7d59e4535ceff7afcdd46be3f4 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 82283b8797fd9ff27b4318a606e97e66197726333696bebef7b3ce709d9b3395 |
|
MD5 | 63299b669ee90ba162e6bf8c3f44ca10 |
|
BLAKE2b-256 | e91757411454dd83971336989dcb9059cb4043ada77609b09b578325b634b46d |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7a1339a6e86ebb04092e09f8e6a150d10afc1e4acaeb91e65b01dd85ab7042dd |
|
MD5 | 3eb3daf68cdfc29f26c78d8323315819 |
|
BLAKE2b-256 | df8a7ad900a7e02b5ee912c400f17d5ba36b0a5c86f8ef68833a7d8ad711b53f |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8cf6c0274270a5fce691217035ec1775787ed9473722658eec38f03f0d59ca9 |
|
MD5 | 6b6a5a1439cf4773d62514ab7f1476d9 |
|
BLAKE2b-256 | c02ab22ab02deb0aee585074e48e863a25674f4a47fb13d37343d15b41300aa1 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 489225ea5bc5d9b590888e961928994ddea14da7de20e936bc5c0e3823d63d58 |
|
MD5 | 591a903cfc8e9ba03488554a6bb98081 |
|
BLAKE2b-256 | deb39cec42b9df083e49f165e70c59c7e2e593d20ce243ef72878b81d6fdd7a0 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97b3871e096dafab03448b5dacf624f8407b8e4d2d8347c8293b1611d07f7937 |
|
MD5 | 30daab8d9a50b1bcf3740f5729cf4b26 |
|
BLAKE2b-256 | 7e2078f607b3d8cf1a9f723cd13a2e6cf33648ec6a6e7c8786cb074f5b388b56 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 370f3e5a026476ac9234f15995dad5a3e363503459b4a69a33a8de5ec72e0f67 |
|
MD5 | 00e091fe709895b3cacb73b541dc0016 |
|
BLAKE2b-256 | 5a5329f1d20e0a1da69d18e5b27de2c76d06ddf4309550760774d87580b699e0 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 764cb9cddd568a06ef39e97b8216b3cebd9be46d2aa7b6fbdad060884a591556 |
|
MD5 | 663563c462816be156dc55535e7e0f43 |
|
BLAKE2b-256 | ab1121fadfcf1e776b105a2e25a4880fce49387b9bf0e96dc86a6a81e69fcede |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa9f15908f105cd85dd737938c8fa5c0152b2e21c728781cc8d5e85e516ea4cc |
|
MD5 | 76f5f44959c15aab09da558be00f7f2d |
|
BLAKE2b-256 | 1011b2192bf47e57d91c8743352f6d53dc4bb7504394106845fb206b986e5dea |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cc2d0373e4d586192dc913b814b29bea26b67fc101dfb94b06ae968af1ae3818 |
|
MD5 | b48e6731ce0b96cd6fc387daaaac9cf9 |
|
BLAKE2b-256 | 08eceb14b12effb6951fdc5e9932fe263b57f5d4187b900d6191accb24a0cbf5 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp310-cp310-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a53bddb96c497375ddb038788de1ecd6a2a316cd7459e22e5073428b00d8dee |
|
MD5 | 264a3f7c33bac91415daa9a516c69b60 |
|
BLAKE2b-256 | 48900ae7abec23ab80c2596c1c1ab29d7eeb8e5d63f776e974827c523442f95a |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a5988dfae327466a3a69d700e96265c093a0d28b2bdfb1d023e85f03a051426d |
|
MD5 | 60dcedbf30aaf215057a2d9daa4cd0e8 |
|
BLAKE2b-256 | a4d348d10fac343685ed3126eaaffc7df35f699267313a5305b37cc33adac9a3 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1d48f371cdaa2f5320fa69eaed4b0f386c067c6f62934d728c9484c0477f2e4 |
|
MD5 | 8aba754496a07db01aa8999a33fd44a4 |
|
BLAKE2b-256 | 80f718d42ce84aa4f82be0b20e15f490187646f3130d2cf5e998a76ea5dc3e46 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | be29c15fbc8e81e5b3e70caf51f1fcf6b2ee791fe8eeb195e91a2e52c21d28e9 |
|
MD5 | 0679705123f3fe6dc3b404f81bd18580 |
|
BLAKE2b-256 | be7b8fbeae57bb73b9632e12148552ff7d9887b43037e081dbf2a3d2d97e4060 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa8ff26955018e57c439fee623351fef61a6361719b136a39c8ba926e7a8c91d |
|
MD5 | 98e4eddc195d4b7bbe5d10f90e503378 |
|
BLAKE2b-256 | 779089acf4190bab2d2bb9b25e469a00a0fa59fea09d3b688c93a57c907a04e7 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dc9df6d8c628bf3d2993acaf19940d0675267f93a667c8776af434e0336face1 |
|
MD5 | 52c258913584ce7e27119d1434faec80 |
|
BLAKE2b-256 | 2ee1c310b5760fc324518dc658a2b70cf71e99303055d536e4809f6ec9167cc6 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 386a0d08171b0cacf0115531512abb0fa5b600e46d9c020bca52a37058cc8036 |
|
MD5 | ef5595966de6f47b3f780eceb25e3c28 |
|
BLAKE2b-256 | 273caf8b765ba5d962296265f5caea9c02e635677e7f8f7f80574c0e915bab9b |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5ec9bf058e7701e111ee21cb4476d373413b8f12dd50876e3d2f9dc744d92b3b |
|
MD5 | b8325a4e6dcd72360d34f3f45d09baee |
|
BLAKE2b-256 | 234a5910fe079605c53eba12292529e5a8d3f0d09f69205098cccfeeae6c7e7d |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c30c7afb57fa7a7beab2af12b7468542f388de4eb4a755a5141957e641c2b53f |
|
MD5 | b4c8f2717099d0bd75ab69b8319956fa |
|
BLAKE2b-256 | 85eeffe6794ad0c99fef714a8be12af520c28d79b7d905315536a4b4ba9620c7 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8db1834d33050b405cd0fca31040bfa90e6ebb184b84343c3ae05d785a4cc406 |
|
MD5 | edd4adee687d785ab873586cba682780 |
|
BLAKE2b-256 | 33e08255c656ec30ba7d9e7af7893370c21817299fca5f79d90aabf123b13e32 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f2678af8014934fba97419c6e2488b467ffd9216947dda71b7cb33df9134917 |
|
MD5 | 37773cf70ae0b595d8929cc1d90aca42 |
|
BLAKE2b-256 | e2c382fabe4fedbae165a8a1762fd0789e14ac672942dcd41b48b4d2d3c9c271 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp39-cp39-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 57ac57947fb0594f22643489ea3ae7f8fc1b381ea291d6fc80b8a58301c82076 |
|
MD5 | 224fa4be4caa7553696cbd8a16297309 |
|
BLAKE2b-256 | 536d08f17cd18e8ce63bcf7d3703e4a68ab7921dfb855d3fff8a37cd7b245684 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97bf46f6fc9976dcd35bcff25ca740040f197d048b3756a38d43c793b74ceda9 |
|
MD5 | 24e2a7a0dfe36f36e40136e639f8f6f9 |
|
BLAKE2b-256 | bb15dd4e7725607dd4265777acf3f984b437a3b4ba7e3d694222c37f040c2bf8 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d1fb40de3bb79994cfe31866851e176a4fa3be441aa69ad8d7e6ff5fcd5704c3 |
|
MD5 | c9455c793dac8cb806ee77af0f4159fb |
|
BLAKE2b-256 | fc77ff916e8a3b058f31e29b6509c215c3fa8e5ab9f4c0b9b506aded53e91479 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 32c9210b65735c37b7e27e77e92735a0c346179cf242d1fdf703cbb252cc3113 |
|
MD5 | c83bdf307e6bbde80f9303d0ef6ed28e |
|
BLAKE2b-256 | 225bf78fc601ed241a1269660bfe09fe4d8586844ad66b3eb45c42f0db7d0301 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0272495aaed2be80ff09e26e500faaf894c8d4ae34bc17c53b7fb2d352df937 |
|
MD5 | 794b1df121ea73857ea7774e47cfd18c |
|
BLAKE2b-256 | d7ef5eaf8cbf79aea26cf2afdbc4836edc58bddab751645db89ceb08e2873768 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c370ed8ac3b5c8222fe595406ae62e366d331ff0c4e796420465bfc1a5f33a7c |
|
MD5 | 04d70e3eeed1353c1525a79bbc34d68c |
|
BLAKE2b-256 | c8606d6ca579df68ef4b6349dcafcda142a9af8cb0f861cc99c850231b368870 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2f869110b0f4ec763460c0cf3784d55c629fb8cc5cc7144a394ce765b0660a4 |
|
MD5 | d1de63bc32fd6aad013dabaf5b6c124c |
|
BLAKE2b-256 | ad2945ab4f7054f7b07ab17a8b7e84edf60b8eeed924620895c09a6b4bb86055 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e32477ec43b6c30ef19e96fe7dc282d58d4135fad65bf05fd0c3717ee126fba9 |
|
MD5 | faff468bb9ccf6d96f9538974db4c5b7 |
|
BLAKE2b-256 | c010ad3389fb81417eb19838d6bc67ead3ef7c1efe5817ae1d7670fef568ab5f |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 966346cac896c701e140af8a235ff79456e640e078b7ef7fa6df407ff72fc05a |
|
MD5 | 9a97523b4d48a1c1f7a9517e10244871 |
|
BLAKE2b-256 | 03250a86bd724cd261cb4dfa57091e8fcfd63ec6232c8804f50fd1603a2b18d0 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 772385248ca67dfd5e1c044f1dd5a0df67182c54441b98c06002077822d605f4 |
|
MD5 | 9d8164a5cbde5635c7512e2cafda4ba2 |
|
BLAKE2b-256 | 20313b067583766734eeeab6e9926e7f0b3ce0db7b42411aeb11ddf6db7f1525 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bc27a1865a928a7428b143ae8b291b550e8d9d64b980c142942900bae667729 |
|
MD5 | b7c641679321a11001a435733afa1607 |
|
BLAKE2b-256 | 7966fa2a4b43b1a41614775c3a7a20627f66d916b6b8e58a261d1d75001b0199 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp38-cp38-musllinux_1_2_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c9998f19967e6dc0a4d6f129ea2df266efb82236dd023f94141fd57021e1e18a |
|
MD5 | 1eb01bb1517fa46a7c7668974eb5f140 |
|
BLAKE2b-256 | 55570624bf115bedfe4bb641b2a71dbb7bbcc2f0d97a671fed34d5e150858e35 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6d38f916b61614ffd7dbfca5d29f765f0c6153751430e4476ac4acff8318dce3 |
|
MD5 | f70ba7650b9e978b74d3b178831c932e |
|
BLAKE2b-256 | 367bbac3ae88ccd9a57832032031f4da7d3f11baedcc859111725f3a24d5283c |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e820f51d5aa8aea853b898dcd21a9070b463c86f6db39174b7fdd8b221ffd8f |
|
MD5 | c0f87e17f8a21f8d67bcd3ac7c24093c |
|
BLAKE2b-256 | 9b0214ef3ebfda62c72f284ff42e643c97a196c520fe224de472c2fecf242d9f |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ff2f659953285c7dedc5a745b18f75a6c06ee0cf57a5ea8dbff459a9c7a3c323 |
|
MD5 | 81da63e1343a4d1104604bb5d7b88f1c |
|
BLAKE2b-256 | bfd6b3f86ece93fa6ed1e0eb7c68c83d6e2a26e21d8be44623b578f95af5f815 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8404f187264bd8918b6f918d3df9bd66b0f2b9cd08ba4d66afb9d502ad27af69 |
|
MD5 | 8afe3a7699e255f44cf61a67f1609cbd |
|
BLAKE2b-256 | 3a6d766ad32445a92fa9b1beab7cd19ed7355023978e05e56d96856bb1bf75aa |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 47986614252dcdbcd89aef9f5ee223d0d1af0ab9dc3a3a3d98d60489d1d5d1b1 |
|
MD5 | afb870c825a542b6f6c46da1c4e5a701 |
|
BLAKE2b-256 | 2327fc031034f13169e0b869c72e6c18978f915a2ca0d3a8b5c3626d8816ddf3 |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ace5c42608c93ad482933c33ff9e03a74782cdc1dd1a6854e1dd99980fb275d1 |
|
MD5 | ab7e70578704f81178c853d7bb51b94b |
|
BLAKE2b-256 | 101b520539d5c6001421e6338cd87a8477f63ab0ceba43d39824823d5efe3b3a |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bc29d4ba161b17f94fcd98b2b61b8bc6396d7db3d38cf217a9501e5a2ce97f13 |
|
MD5 | 2366287555df0824c983d885d83cf2d3 |
|
BLAKE2b-256 | 91cebe66432bb74e14233f4a6e6bd6150bea17afd2c5920d0a14f87b0c8b36bb |
Close
Hashes for TgCrypto_pyrofork-1.2.6-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c7dff09a94e58f517d1d52335d9050bc7fdb6d95ec690898f717d85a72e18b84 |
|
MD5 | 499ebdc87996022cef908d731dffc541 |
|
BLAKE2b-256 | 6a5d77f3b922477dce1b29944c014bb9ca773225f912abcc18873587f0231b8e |