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.4.tar.gz
(37.3 kB
view hashes)
Built Distributions
Close
Hashes for TgCrypto-1.2.4-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 546110da8da0d7ef7032f2c12585b468971eecf04878ba041131b1605cd77dfe |
|
MD5 | e1de86576f92e7cb1fdc72a68149b316 |
|
BLAKE2b-256 | 022c84238d6816904dd6cf95554e6b5030775ca601569a3624785cbea061e420 |
Close
Hashes for TgCrypto-1.2.4-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2baf36f2a8845b960a888c9e2f6fc0fa0c63e780754bc310740b33bc215560bc |
|
MD5 | 3400370e0ce3c645ed148cc40a581c40 |
|
BLAKE2b-256 | 029d1e8ddce0d2684217d80dadce535e95977e51b1299d5792d875dcdcc47bc3 |
Close
Hashes for TgCrypto-1.2.4-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0f0f570aefd1f73b63a44b0267938ea52b6e6be56e3a0b49fed3eb62d35ab6dd |
|
MD5 | 0e68c0bfe59523258ce03f51db5823c5 |
|
BLAKE2b-256 | fd292b3f218c04a30d06e4087d34bbc4925b5b19bda76f0977cbfe0c9d2d9f95 |
Close
Hashes for TgCrypto-1.2.4-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 39255a348d0790c89783e7b303b10478bf77cf063c3f25edb25cc4771d359770 |
|
MD5 | ea39f0db9f0c5c20137044302dd602b4 |
|
BLAKE2b-256 | 8b5d22c19fc963eaec2a15d9a4b1af84c89aff61bc95eca1c0770e9fa99c3987 |
Close
Hashes for TgCrypto-1.2.4-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c2f8c34a9d926f52278578b6b585808936c57a08de12b56aee2f55f80d92f2ee |
|
MD5 | cbf800d11a80b12c87812eea6e616180 |
|
BLAKE2b-256 | 03fbe48e90c8a6651b9e0d03b2874cc15f17382d332e99250692ffabe7ec83d6 |
Close
Hashes for TgCrypto-1.2.4-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a1cd33f07085978614c6fcf077625d8091647baba2a098aacdf7d26e8ef2fa2 |
|
MD5 | 5e65fbcc8f46065656f8f98c57804abc |
|
BLAKE2b-256 | 198898a1e6389b9f7fbe68c82f13ad21c3aa4bf0f54c13af7f5b7047f726fcb3 |
Close
Hashes for TgCrypto-1.2.4-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c5e33353ab083dbf41cff69a434774aeadf956b865b56448847ef6f7a06b5167 |
|
MD5 | accf38d55b0b0dafc8de798add3473f7 |
|
BLAKE2b-256 | a69d65ca33f9d7a3ef853a46d90731a0567482b5e2f5bbb6108ff2e7a2172cb5 |
Close
Hashes for TgCrypto-1.2.4-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1ee778b215381b09685d74e57c34221f44a1b41e43842dfa33b973353515b4bd |
|
MD5 | 7d8c2d4beeb228a07f893673259b71f4 |
|
BLAKE2b-256 | 33358a4310ff92d307e2e00014a06dde5f85299f3fbfc1db5f2ac5464d7792ef |
Close
Hashes for TgCrypto-1.2.4-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 20803e6fe1b91adb79abb54580dfce19d11f2105488712f7931e07f7b76bd25e |
|
MD5 | 91ce89070451580c3a4d41908a97bc7b |
|
BLAKE2b-256 | a989f7b97d187b48aaf58e4f938a7e10e36147c18d209364be47bf7a56d61464 |
Close
Hashes for TgCrypto-1.2.4-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76603e99b770bfc65af3d0eaf8ddc01f9e065b1da886b90bb7918c0a236661bf |
|
MD5 | 03b146ec55d2c622a4fab678a40d54fa |
|
BLAKE2b-256 | 203f745c56a060c3a4d8218af89cdf3d1773ac22e5dac2b551db3c7d1fc8052a |
Close
Hashes for TgCrypto-1.2.4-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fa4b7e843e7b57ece7d8c08529dc91dd4e95c5532c5c4ad10bc05a1f9ee9add2 |
|
MD5 | d4bfb3e150e82830ef45c1e0228b4aa0 |
|
BLAKE2b-256 | e762758386534f95a3056a79e1f87a65ed790e77d350bbd357a2e4e2b0ae5a9b |
Close
Hashes for TgCrypto-1.2.4-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74e433db3cce264bd77984bb08e5958da1164ed5a1c55d6fe410b92e5d02275d |
|
MD5 | fb18f6e6cb6d1cbddfba5e2e30c9c5d8 |
|
BLAKE2b-256 | ee4f249dac5066129612f5a099565ff13eb27e0e716cf47f8e28611190265c6d |
Close
Hashes for TgCrypto-1.2.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6da10f3258d5fb8d0d6ec94755c3f51eb0912c3c61259cd2637f508066b80936 |
|
MD5 | dd3a4074e51292130e79ebde97d519fc |
|
BLAKE2b-256 | 0956ca39b3874291101fac9933be793ff4bf9d9321b4b3401906279cc8876a79 |
Close
Hashes for TgCrypto-1.2.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 45dfa43f6b90e1cf8cac597344317a65ad206f87184e845c81805510465f943a |
|
MD5 | a6bd2d41e5bdde7ad94a4119ea8ccd7d |
|
BLAKE2b-256 | f633012e172f9524b6eb1c73765fc1a6043e59017a0aa0cd87f88d9dde3e1270 |
Close
Hashes for TgCrypto-1.2.4-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 74e606fb584d6e64402952dfafb2a31d37f0873ccb3c4da2df4ebac45c989cd1 |
|
MD5 | c0617d3b3a0724424f219b3501044fd2 |
|
BLAKE2b-256 | 60f7f69cac2a8d1cf74505db23c8eb2179c7ab8e99c8f62671fa492f3913be40 |
Close
Hashes for TgCrypto-1.2.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e8e7d5aeaff1a8b1694d0647a60ba539b9e3b5360b115d7df4f526b85a04f3f0 |
|
MD5 | 6665a4d11ee59e512e08ecf05a358731 |
|
BLAKE2b-256 | 67fd4eb3eb385d3617d8ab329a1551de0439b758dc25bbad7800b304e86ac05c |
Close
Hashes for TgCrypto-1.2.4-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b51c00f85d0ef762e1b5fa11e7d26ad84fa3dcd4d92e7a3e3e2f104ac5cbd59d |
|
MD5 | ec1de33f525ac4358adc7d969ad09e9a |
|
BLAKE2b-256 | 88065271acee56f064013fe95157e74596321aefc89f387b20ffc86f5a75dc6a |
Close
Hashes for TgCrypto-1.2.4-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a4dee2fa70c05628850dbd9e9cdfb58d9f4d479b08d4b0ed40e45178cd25c64 |
|
MD5 | b136e1dd3d8cc4606a448448903541b6 |
|
BLAKE2b-256 | 42e7e1acfef2ab885cdb76403840a59b581c70000b80d2c66b79643a1796b696 |
Close
Hashes for TgCrypto-1.2.4-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f82c7998ab5918f4419e864902ef0b88573c724ef91faed5b5c165fdfe59030a |
|
MD5 | 12143006272628930c336d01f2a8405c |
|
BLAKE2b-256 | ec8b96c724d695b4fc9db616034cfb375449acc16244befcb132dc3bad5dff21 |
Close
Hashes for TgCrypto-1.2.4-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 503980719bdfa27a9311172a14608e2e37ca2e9b2e73677742c40e52fac59282 |
|
MD5 | 29177b745b21400ca054e3568b9a8d96 |
|
BLAKE2b-256 | 9e511a544f42e344a5b2db92511ee68762035cb84edd3c369b320619b0a1ae69 |
Close
Hashes for TgCrypto-1.2.4-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 22661ff34406403edaa6661b8a62f8fca104504339d2548410375c687fc7b5cb |
|
MD5 | d84bd622fad755a4af163ee9717dd9ad |
|
BLAKE2b-256 | 229fcf6b5019ea32876dcb09741c5aaf06c82e33e1a5b0b9f187db024a3a048c |
Close
Hashes for TgCrypto-1.2.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 89b4a01f835c39c6cb4bfab816a4497cca1d9cc894bd284d147b17bc5c728c08 |
|
MD5 | 7899a9bb20952b119df2f1afdf0c9009 |
|
BLAKE2b-256 | d33beb7d15deb542313791a47ad0d43b64edcef44c0ce05c7fadbbd9691d153a |
Close
Hashes for TgCrypto-1.2.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4376734493a9445a1889d9e39210741f2d62773763e4c741696922586225e8c6 |
|
MD5 | b2154a30c5410a9f2eba77aada443cd6 |
|
BLAKE2b-256 | 77313c05d8b82787b3e13b351173fad0de64708d827f3a4000a375969e074806 |
Close
Hashes for TgCrypto-1.2.4-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 36bae1e336cf34b9c055b4fb8dc595cbbb0b22cd51ce441fec1f6876dea372e1 |
|
MD5 | f92741dca7649861ca79691e5f265baf |
|
BLAKE2b-256 | 97c749f7e33951beab9c1ef1c3e756101cdbff05a4032b2ac752da345522a56a |
Close
Hashes for TgCrypto-1.2.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8ab33040be330626ac0e387d7790895677a75ecd2159bdf1d68d42ba04435106 |
|
MD5 | 8607df1bc1b13d42c5c63e29f485b239 |
|
BLAKE2b-256 | 2359fd27f554dabe9ba1be832bff6be09e28ef2f727c564a9abb78759558fcdf |
Close
Hashes for TgCrypto-1.2.4-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6a25b284b95c35ceeb42d4e68c5e192fc502577a22d0e227db60b0194fb5485 |
|
MD5 | 1d9e3c7c31d86c8d107474957282c388 |
|
BLAKE2b-256 | 6230ba3681844e3a0f48e0eff8c7f24527245461ffe78b73c8825c597995ced2 |
Close
Hashes for TgCrypto-1.2.4-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 772a6577db06404063449f69c0d0425aa21a787624cb60ecf5015b66fb2da47e |
|
MD5 | da91611bed87e7cec0ad15d752f527de |
|
BLAKE2b-256 | 6fddf8cd83bd5d0c5ef86fc7d22f16f97923959245d08ff85fe18e3bdbdd5310 |
Close
Hashes for TgCrypto-1.2.4-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8eee5dc99daf7e156d69c40f728f6e1727562bc0559a8d39bc6779d498c455e0 |
|
MD5 | 5e306478f30a102b5197f608506548aa |
|
BLAKE2b-256 | 014bfef09f843154ce26035f6cd91c237e716be37d2e25245a80386032383c49 |
Close
Hashes for TgCrypto-1.2.4-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 78463b1b32e7c91d26fd408dc76b74ca2306299471a4856c86974bb5a429943d |
|
MD5 | 689db2b05126995695bffae423438cc6 |
|
BLAKE2b-256 | 49fc6d54394cea7f9a23024e386c23ccf170a6dc9feb710b1e569478a84dc8bf |
Close
Hashes for TgCrypto-1.2.4-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | a08d80e9579b0de80d84d13897c436d9b0001fd2be7fa0aab210a0f9108b2236 |
|
MD5 | 7e9b8af7059a679dff3c5e83692ad51b |
|
BLAKE2b-256 | 4979f407eb3c803aba716b3ae628465cc0a8c85e68095df5eb960893461b648e |
Close
Hashes for TgCrypto-1.2.4-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 759970e92ad38845ea9987300ca7d94e5b20310b54d067506b87a6b3d4e4114a |
|
MD5 | 93999ea23fc5ae5701b761accb3d3140 |
|
BLAKE2b-256 | af398a5532e1db17b47515dd2c4a50ced4afc53877dc83d48af3ea7b4c9a3050 |
Close
Hashes for TgCrypto-1.2.4-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 804b1b29dcf3ea993a07ba81072157638efb63914ae6a56d1251860f054035b5 |
|
MD5 | 7565d3e5a704538ded22ea2ed02c7318 |
|
BLAKE2b-256 | 95d5e1b8d264664801a3edc741df4d1e4080bd4897c97b0ee3f23906efc848bc |
Close
Hashes for TgCrypto-1.2.4-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65f0aed63f95c86db6b6e0440a48c83c619c906be8813cf4edee58512374d05f |
|
MD5 | 1f297cba1774721b6925a19db1791a65 |
|
BLAKE2b-256 | 6300d6c7c51573db512214122d6f53d0b3f2facb2338ef64c6ec477522861d22 |
Close
Hashes for TgCrypto-1.2.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b0f2a9b04e18ce826346865322e83c2836e4113f988768293b89b10599bc487c |
|
MD5 | b75bfc3f10f3e42847759ae3fd31cc4e |
|
BLAKE2b-256 | 32bd508aa17189c9baf258ab9e22eecd3883cf8526a6533325b9c66874c8797a |
Close
Hashes for TgCrypto-1.2.4-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d3bf98c4f7e4ab4053939c84036752c2fb4d2ea34406c5f475d91652a639ea7 |
|
MD5 | 663d7ff8c5e42043d6b591e00853d632 |
|
BLAKE2b-256 | 23893618dfc5d830199e748fc2efa87a18b42e7abd56dca9e815fde585ea0cf4 |
Close
Hashes for TgCrypto-1.2.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af238201ec2ce691553667efd9892e7b696692d375907985af9f076bd0140bf7 |
|
MD5 | bc48a9b67d944e979751de9fcdafc3a8 |
|
BLAKE2b-256 | 7f43643cec2c47cc9455f1a4caa982d574adcddacf3e5fa6b6ad8fef7a65fdef |
Close
Hashes for TgCrypto-1.2.4-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 983f34b6fb527cf04ea7dfc99fb92ed13bc0d6a50f4bd7c22dece9e41ab003b4 |
|
MD5 | 41d0c4b4df6f0042033c522140a45a91 |
|
BLAKE2b-256 | 3f93c335959d7fb48580474b41c5222e2de2b4c29a830c3cabd993a9b481db9b |
Close
Hashes for TgCrypto-1.2.4-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 070d4f59e239bebdedc61951163cc4d6c0966606009a4cae87348d48de0c9c67 |
|
MD5 | d796825e5344835a370f6c77c57fc71e |
|
BLAKE2b-256 | 0533ede4e14ee20ec5c473d40aafb32e9b95d75c527107e538744a6ed407dcb3 |
Close
Hashes for TgCrypto-1.2.4-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c532f71fb2d1778fda3f87ca1ed44634fb4ca856cc11d620c9534d440eecf6f6 |
|
MD5 | ee030c4b3aebc3f62f8d5e3b575205b3 |
|
BLAKE2b-256 | b97ca85eaf2d4cb258157eb97cf659df2a882e9558a61e1505ffa261f9b2d79c |
Close
Hashes for TgCrypto-1.2.4-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 24e2fe86941d538265ca73c2b740125dc2f711d98bd3a24d9887e07ef15b1ad6 |
|
MD5 | 5be1d8b3e2c3928d6535ddde936aed6d |
|
BLAKE2b-256 | 77ac8c86c37874f579d725f3b5b481c776e8f46f2fb619acf65ab56744a6dc2f |
Close
Hashes for TgCrypto-1.2.4-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dd2e07718dee174891ea428e83b77a473d98ac13794d32a64202d30befe9885b |
|
MD5 | 454644a87cf0e01c3177e08dad67a8b6 |
|
BLAKE2b-256 | 511e33b23cf2ba524a6e80b569c836781856385dc5c2e9051d0cc5a0ec50ea7e |
Close
Hashes for TgCrypto-1.2.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 00a80574076fd74c3a6c1d1b15ea946a3ff65de36accce3f79945a051268d2f0 |
|
MD5 | 623ad134af89009d01560f643a6b0274 |
|
BLAKE2b-256 | 723741d8deb469592639e05cdcd3f45891ba7c6fd2853403ed4adb13a8973f6d |