Fast and Portable Cryptography Extension Library for Pyrogram
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-1.2.5.tar.gz
(37.3 kB
view hashes)
Built Distributions
Close
Hashes for TgCrypto-1.2.5-pp39-pypy39_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d6b0c2dc84e632ce7b3d0b767cfe20967e557ad7d71ea5dbd7df2dd544323181 |
|
MD5 | 58dcc8b9f5689f4787cc4a0e86a231c4 |
|
BLAKE2b-256 | 9a85bbecf5e7794ba23cd44efdc27c4c3fcb0399591fae139e613ff52524fa30 |
Close
Hashes for TgCrypto-1.2.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f245895c7d518342089d15b5dca3cee9ffa5a0f3534db9d5a930f6a27dff4adf |
|
MD5 | 77283d651f9b2f98c02f4571de52c1ec |
|
BLAKE2b-256 | ff54a311f3ae06adbe153f9216e40314ee0ae4f9f9cc33b48a198bc6dd25b2a6 |
Close
Hashes for TgCrypto-1.2.5-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7dbf607d645c39a577a0f8571039d11ddd2dcdf9656465be75f9e0f540472444 |
|
MD5 | a82eaa93991e3932dc2c0f1c8d2508d2 |
|
BLAKE2b-256 | 517cb21327db01900b1e03688797d247c89a1d0923f9412ee35119ccb5ab3a0a |
Close
Hashes for TgCrypto-1.2.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9b0a088ff2e05b6bbe891da936f62b99bd85202b2b9f4f57f71a408490dd518c |
|
MD5 | 1fdb2099a212b1fe694b591931e502b0 |
|
BLAKE2b-256 | 63cd9a34246dc7b864c72703f46ae8c1c469c28abcfba2a8c3bcde14415deab2 |
Close
Hashes for TgCrypto-1.2.5-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5d27d6c414eb4775022b05fdd571090bfd92854115e86184ac1832060fbaa510 |
|
MD5 | 903fc908a69cd6fcd1f87652941cd0f2 |
|
BLAKE2b-256 | b49a93a61016c2d6d5a1a902ada7e187d511e2c463ed137c1f48efc9d3c21f40 |
Close
Hashes for TgCrypto-1.2.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 80e2414f1a95087d7e46fb54cb387df66424c4ec156fb1a8d8e1d4aa38eb65cf |
|
MD5 | 80d2cce51b72455f687952cccf18f746 |
|
BLAKE2b-256 | b7e4c49a43262d41a1183d24525303c3bc61677038182a8c7481493267c15841 |
Close
Hashes for TgCrypto-1.2.5-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 66c5b5bf701b5efc3e4c5d83439d767a3dd48f17a1d840eda6b4d1918844a8f9 |
|
MD5 | 4127716d9e6016c330764ee6aca6def8 |
|
BLAKE2b-256 | 6ae3baa0e1c8d1a8ef1f71b5b75a7d370f813901d9173c9d7a977a35454d50fd |
Close
Hashes for TgCrypto-1.2.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba9e067fd9751b3bbd7c979210431000e44f70001d921237e9c4672bf30f07bc |
|
MD5 | b574e9f4a6c568f3fa93836475a942c3 |
|
BLAKE2b-256 | a1a5449adb190df16a41b4a17a2cb8fdfccc79cc2a167b4fc7ec077c74b5468a |
Close
Hashes for TgCrypto-1.2.5-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36a570ecd12a428222b10ea8b5a8e0d83ea8750e4de1d5ea53d068b84341b450 |
|
MD5 | 3bcb971d2a7e536df68d02ef11e681cb |
|
BLAKE2b-256 | b4fd6485df95e6ba492b5615ea4688a16239651c90258589b5de742a022ac5c5 |
Close
Hashes for TgCrypto-1.2.5-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7b7fe81fad7c64479c83f31fc10e79fb20a114bca414e5e17f5e0c8b363153f8 |
|
MD5 | faa303ffa585178ab32b2ce7b471d91a |
|
BLAKE2b-256 | a44d8528df0666c26195142da9f51e4aaa1a841e5020c488a430b7a1f73958b7 |
Close
Hashes for TgCrypto-1.2.5-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ace308f5842a0d6c04fc1ae92cb4320b4b13bfc711031c1c18d9124697685ba0 |
|
MD5 | 400b4c03c0ddfbb95a34ffd518cfbf96 |
|
BLAKE2b-256 | 6ed5410e63cd1d3a14c0e8bb83a7a94f518ef4a1b41429b7e498eb6c39243450 |
Close
Hashes for TgCrypto-1.2.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d93686e6254eb0a32a0a60e849b41a867a2770b27b48f978fd391dce2b83aeb |
|
MD5 | 2556b2c278528214c839a98ff037235d |
|
BLAKE2b-256 | 3f79248dd434d8cbefe831d253c58b362f8f90a55ed2ad2439b2e5182efd1092 |
Close
Hashes for TgCrypto-1.2.5-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1beec47d6af8b509af7cf266e30f7703208076076594714005b42d2c25225b3 |
|
MD5 | 2899d159ae0a6bc79487d0f41b684ec3 |
|
BLAKE2b-256 | c1fcb918235b19b70a45f4a596c773fad2c379d941d2ac5005293e2ee18bdc63 |
Close
Hashes for TgCrypto-1.2.5-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 10dd3870aecb1a783c6eafd3b164b2149dbc93a9ee13feb7e6f5c58f87c24cd0 |
|
MD5 | 2e08c8bf3e41b7bbb05790a25c796434 |
|
BLAKE2b-256 | eb87fe894eb7c4cce4b6f710223c24e0ca22f4107fe46f3f56091ceabd482de7 |
Close
Hashes for TgCrypto-1.2.5-cp311-cp311-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9d9f13586065a6d86d05c16409054033a84be208acee29b49f6f194e27b08642 |
|
MD5 | 086833930f4d4296d24598170c271d01 |
|
BLAKE2b-256 | 763e8f059edce82de8ebbc1e513076c0f65a86fac95887fae21ae087440ef23a |
Close
Hashes for TgCrypto-1.2.5-cp311-cp311-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b49e982e5b156be821a5235bd9102c00dc506a58607e2c8bd50ac872724a951f |
|
MD5 | 6aefab6c947eee2df907b02d300caa6f |
|
BLAKE2b-256 | f3557f5f5a024b71ef81b07c3fe15e79d03b634eb349b04bc79a62c8c3ed3376 |
Close
Hashes for TgCrypto-1.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cfa17a20206532c6d2442c9d7a7f6434120bd75896ad9a3e9b9277477afa084f |
|
MD5 | 5271efd329772147f5bac7eefc91f3d5 |
|
BLAKE2b-256 | 0dced60e249ac4d31d591f4c8ca76e7bd537f4c54f1947b400a14ac3a1678b09 |
Close
Hashes for TgCrypto-1.2.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 48da3674474839e5619e7430ff1f98aed9f55369f3cfaef7f65511852869572e |
|
MD5 | aaffdf5dadafe8c6973e894e444f5d10 |
|
BLAKE2b-256 | 275550f81b1a557bd8f9b73f7fcda2381f8826665858750968394ceec0b01282 |
Close
Hashes for TgCrypto-1.2.5-cp311-cp311-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1735437df0023a40e5fdd95e6b09ce806ec8f2cd2f8879023818840dfae60cab |
|
MD5 | ec442067f64a3e9e72e531fb7d90efef |
|
BLAKE2b-256 | 390ee861a9987c6d9d3ae04d156732311e018558f862490c466c369d73094807 |
Close
Hashes for TgCrypto-1.2.5-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1283337ae75b02406dd700377b8b783e70033b548492517df6e6c4156b0ed69c |
|
MD5 | c0d84b73e3a7d65254170794d67a2d60 |
|
BLAKE2b-256 | c1fea418223ff6079184f50f5ad8c2dac37ec40adbb42b886c3ee44fdba2a540 |
Close
Hashes for TgCrypto-1.2.5-cp311-cp311-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 59597cdb1c87eb1184088563d20b42a8f2e431e9334fed64926079044ad2a4af |
|
MD5 | 34ea6b5fc788e10d4080164ecbdce395 |
|
BLAKE2b-256 | 48e607dc413e57f3677e0b887975b174d9cbc8170e92651dd35a784da9571d5f |
Close
Hashes for TgCrypto-1.2.5-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39145103614c5e38fe938549742d355920f4a0778fa8259eb69c0c85ba4b1d28 |
|
MD5 | 81ef68c242fd8c9179cd77dd0c7e4106 |
|
BLAKE2b-256 | 29e0c81f525860e00d0ec188a2114cebcce2912048d3a82bfdd125b295aa6e92 |
Close
Hashes for TgCrypto-1.2.5-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aa4bc1d11d4a90811c162abd45a5981f171679d1b5bd0322cd7ccd16447366a2 |
|
MD5 | 04b1f37a89819962285c973a747bd597 |
|
BLAKE2b-256 | a2f7e336feec07fe8b1716498158d7b876354fb68d8ddd17ad81354adf7f7112 |
Close
Hashes for TgCrypto-1.2.5-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89d9c143a1fcdb2562a4aa887152abbe9253e1979d7bebef2b489148e0bbe086 |
|
MD5 | 6a22359f1223ce75564a85047b0289bd |
|
BLAKE2b-256 | 9d121a47a04a22953fb5d48c6b6c70ffc37b84e9a9553e606863a4e5c56478f4 |
Close
Hashes for TgCrypto-1.2.5-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1c8d974b8b2d7132364b6f0f6712b92bfe47ab9c5dcee25c70327ff68d22d95 |
|
MD5 | 9b1e47a9daf979a6f55b2671c4389c1b |
|
BLAKE2b-256 | 3e95aa3f59e01cd7f9feae058c9b3d0379315e3102f23ac5fd9a8050bb5d7a07 |
Close
Hashes for TgCrypto-1.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f594e2680daf20dbac6bf56862f567ddc3cc8d6a19757ed07faa8320ff7acee4 |
|
MD5 | 65f65063dc8213c1e57c811cb33b37d0 |
|
BLAKE2b-256 | 9902b48d2e2ef16cad958138e2c48a11f6fce802bb9b42a66b28509cd530fe12 |
Close
Hashes for TgCrypto-1.2.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8723a16076e229ffdf537fdb5e638227d10f44ca43e6939db1eab524de6eaed7 |
|
MD5 | ef02d65d2027b7cd4bca8053f87cbe87 |
|
BLAKE2b-256 | f04da29fb5a8bcad988f01662445f42231afd9c7518141dc8f745b4358a9c5e9 |
Close
Hashes for TgCrypto-1.2.5-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c035bf8ef89846f67e77e82ea85c089b6ea30631b32e8ac1a6511b9be52ab065 |
|
MD5 | 486eb35bc70ab35afe758d5f6cc8c059 |
|
BLAKE2b-256 | 76c1057ff6b2a022e82bf958b9b936647cca452f155ad27f5d3ceb0a6c04520c |
Close
Hashes for TgCrypto-1.2.5-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38fe25c0d79b41d7a89caba2a78dea0358e17ca73b033cefd16abed680685829 |
|
MD5 | 1de21394bd48d888eeaa8bf2d74f57e2 |
|
BLAKE2b-256 | 748290b8eedd225e66f96ce87936505ea56e289944e022476976601923b74c4b |
Close
Hashes for TgCrypto-1.2.5-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4507102377002966f35f2481830b7529e00c9bbff8c7d1e09634f984af801675 |
|
MD5 | c062bc011c6bf87800e345112e6aab54 |
|
BLAKE2b-256 | bc1e6e33a82e6f8bbb261c762ab18da67396b05920e4cf0232ca9a8afc933a67 |
Close
Hashes for TgCrypto-1.2.5-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e96b3a478fae977228c5750194c20a18cde402bbbea6593de424f84d4a8893b |
|
MD5 | dbf35f3dca5fc5d89f84bb9d999583c9 |
|
BLAKE2b-256 | f459fd84e8d904f2dd294980543c6f046d64ad9d44bb9f7e83670bb903298abb |
Close
Hashes for TgCrypto-1.2.5-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 37c4b9be82716fbc6d2b123caef448eee28683888803db075d842327766f7624 |
|
MD5 | 1ac3ff7f20058083f10aae95c44a178b |
|
BLAKE2b-256 | 47584d42aadaca4422e7ca69cd2ec24033165dc67be08267a5b3f425f5728d1d |
Close
Hashes for TgCrypto-1.2.5-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90b6337d3ae4348ed14f89dd2ebf7011fa63d67a48c8a98d955a1e392176c60a |
|
MD5 | b665980f6b3c5f1764882152b1d21dd9 |
|
BLAKE2b-256 | fa2481f3062d5f1989210e5bdf03f5725fdc92551e73f7136b9f6f2ddbc2d2d5 |
Close
Hashes for TgCrypto-1.2.5-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d70d5517d64ca952896b726d22c8a66594e6f6259ee2cb4fa134c02d0e8c3e0 |
|
MD5 | 21aeb58912f4356df334076a592eab03 |
|
BLAKE2b-256 | 67768478b9a4d243d93bd1e25649229e8e891d3dd86b6753f36d442cd5fd8549 |
Close
Hashes for TgCrypto-1.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 457c657dd10ffb4bbbb007132a0f6a7bee5080176a98c51f285fedf636b624cb |
|
MD5 | 46853437a0eae38b7d7615a201f070fd |
|
BLAKE2b-256 | a07e48a6a93da084727d2929ed0b162bdf5cf42f746b511523fae111f6f24edd |
Close
Hashes for TgCrypto-1.2.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 539bdc6b9239fb6a6b134591a998dc7f50d4dcc4fed861f80540682acc0c3802 |
|
MD5 | 3e44221653e822ce9dc64e647d860ed9 |
|
BLAKE2b-256 | b5b1458f6ea8be37beb46600adc568c297edab09e87c1bd881cc5aa1a316074c |
Close
Hashes for TgCrypto-1.2.5-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 940974e19044dc65bcf7b9c5255173b896dff010142f3833047dc55d59cde21c |
|
MD5 | 97c1ca150423f2ab29785e57aebdd52e |
|
BLAKE2b-256 | c26ab5311038ff1ddacb1f40d35f8b69b1d8c7c5ec9bf874655ae8e6dd8b2214 |
Close
Hashes for TgCrypto-1.2.5-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0d28aa317364a5c27317fe97a48267aa1c65c9aaf589909e97489ebe82a714e3 |
|
MD5 | a4ea1e524f74de5300b1801040d746aa |
|
BLAKE2b-256 | a5491306f6c1fdc51769fd29706f13b2aab71f8b616bf24799bc50009e7276af |
Close
Hashes for TgCrypto-1.2.5-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7885a75db09ce8bdba42d2c332085bfe314f232541a729808c7507ffa261ff9a |
|
MD5 | 437cdef629e79e380e74dc6559bdbaf5 |
|
BLAKE2b-256 | e98e0a0b14d40af57dd2c9a18af56714d7afc53d64e072de5474ea62e5b6fdb9 |
Close
Hashes for TgCrypto-1.2.5-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 362ab28fc75e6b066e5bb15fb5296f75f4238d6c1cbcaaa1e5756cd5c168b74b |
|
MD5 | cecce522ebe3eb6f8858ba6d24692907 |
|
BLAKE2b-256 | eed94a1f1d4ab605d4d84146cef739f01699056603d7fe88df9d6d396121c0af |
Close
Hashes for TgCrypto-1.2.5-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f7ec9f0a571fcc38fbee224943ed9918123f752ac19bae5c195d8322f5b20fab |
|
MD5 | 4146ab589673a55eced0139058a492d9 |
|
BLAKE2b-256 | a49b44af0083d713d11ad0fcbface305cedb3a71058cdbd256d990f0374f883a |
Close
Hashes for TgCrypto-1.2.5-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ed53d0c4a5e6f75d4b1cab17535afe210cd3120fb88f44a8c4562d43c2a3bb16 |
|
MD5 | 4abb4b4e2331b0a000da9e3c78540e95 |
|
BLAKE2b-256 | 2d96ca7ba309769f3543f68df0b3e25d3e390d9a864ab25678898559fa9da866 |
Close
Hashes for TgCrypto-1.2.5-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7070c6e063befb6d04eab46e8b1ffbee47a497971be11496d23837fc007e7685 |
|
MD5 | 222b533ee6963af265cfa7c21db7cbf1 |
|
BLAKE2b-256 | af2767c885a639257bc15f0e450c059f9ac7a84d77683ca5a3839eb7c95e82c8 |
Close
Hashes for TgCrypto-1.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0133936eac63cc9529b497d759b7d0ca21e491bb42481b40b603ee63bb8c10b7 |
|
MD5 | 34eff5c38099b32a26d5fb6c707b6342 |
|
BLAKE2b-256 | 51b53b8fd7c78024491fefc0afdbad375cc82e3b641ba18f05c9fcf81cc162ce |
Close
Hashes for TgCrypto-1.2.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76fe0a3ad838dcf300ac88233cbffc2ad63478eb0ae9fa671694e184d88ec1cd |
|
MD5 | b1208ab1cbebb02d82bff357f5c2485c |
|
BLAKE2b-256 | ba779f80bebad95ed096411289033fb44f3d5cd0ad9a74fafdcd8dfae341997d |
Close
Hashes for TgCrypto-1.2.5-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bb82e53f20ce5653573832f3c05fa525cc1769bdd685408b19f26d82d5e9001b |
|
MD5 | e64cbc221f3753abb9cc5e62014dc4d7 |
|
BLAKE2b-256 | 57110cbcc61c9072971d8d9ec33526b12b1889c2d7f041d480e26c26851c4b1d |
Close
Hashes for TgCrypto-1.2.5-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ca8814d6cc412775a43a021fce2d23e83a5336e9e9f38d0998d821cdf55c1d50 |
|
MD5 | eeb6dcf80f59bc1a32c3f959fe0510ba |
|
BLAKE2b-256 | 8866a3de35fafc5f8b230aea5403d2882ad96bdebee9a90344854f5aec0e9261 |
Close
Hashes for TgCrypto-1.2.5-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56e1ec34e75fa2e3dcf7f74f1017d8e16c1eb8a8e031eaaa06c57f836e0d3bcc |
|
MD5 | f3050fc1c27093b59ced61137881768e |
|
BLAKE2b-256 | 10e1b981c353773c156c475e23dfc4140d22623ae150b3f0e5bf8825c5661782 |
Close
Hashes for TgCrypto-1.2.5-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b7e8402fe4023dc9666c0bc1b30fcf0d98a294e48d35f311a3eadfe105af04d4 |
|
MD5 | fc0449b4c4f69e4fa8687385f39f6bab |
|
BLAKE2b-256 | 5b6f33e8609eecefdd8509a58d6b230fa87c85596cfc078b3f5b09c96e12f5f4 |
Close
Hashes for TgCrypto-1.2.5-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1445217d22101946d38ee7d628cdb3de92db4eb130183a22030c07d7888f21b0 |
|
MD5 | 63336d88d2a9a01704bb583d65dc357a |
|
BLAKE2b-256 | 3c75d9305e9782c14c75bc11d79eff01b163e60c336f0d6325582e48d0957a99 |
Close
Hashes for TgCrypto-1.2.5-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | eafad246fd9aa63ff709a6e8c905c24fd7520ef96e33a2c3e1ccdb4fb2b2f331 |
|
MD5 | c7c194bbec2b0437620296e834b911f5 |
|
BLAKE2b-256 | 2a194e1400fe4de1f1143c19dd35e39e91409b36822274a6f77a37eca7e144d9 |
Close
Hashes for TgCrypto-1.2.5-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45683659ec6475ee8ff60e12167ec19aacfd7527decafe446434fa1a7e6760a7 |
|
MD5 | e7ef8bdae93df50c7af105205055d72a |
|
BLAKE2b-256 | 91383c8df336d1e01d3df84833005c20ae41abc4ac083659aed4a721d65246c6 |
Close
Hashes for TgCrypto-1.2.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f6537f6af3d80be67bd2625a0990ee88c6ae58d33bdb88d99591bd6e97ee7a0 |
|
MD5 | 65602c53a71822da1db4794a37a1765d |
|
BLAKE2b-256 | 057e3bc4f0570e1763b82c1d4026ee2a16fc0b1ff309aa82576c304180277de8 |
Close
Hashes for TgCrypto-1.2.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bdebbd9cffd10c42a2f60886dcab0272ddd38330d0cf7ccf026230b826573f59 |
|
MD5 | e8d1631fa05d7f33fe8c0fb42eebf19c |
|
BLAKE2b-256 | 2c554446d6597af3547fe913e13a9a58eb644a2ea491c55d8deb10781ac850da |
Close
Hashes for TgCrypto-1.2.5-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c133ddc95ae9c6cd6ad742c4b8c30191214db8dc724268bee59a339e22b2028b |
|
MD5 | fd08965c5c113563610a8118ddbf0cc6 |
|
BLAKE2b-256 | 0eb1ffa36252c151c90d1f4598b3136c367e3d7a262853decaf6b742a0b4316a |