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.6 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.3.tar.gz
(37.3 kB
view hashes)
Built Distributions
Close
Hashes for TgCrypto-1.2.3-pp38-pypy38_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8515d2f54d02937f40bb169ad733a9b7e9ba360d1fdef0c3d396af433c1ce474 |
|
MD5 | f04208f5679ef838d2ff1e8cd692ce28 |
|
BLAKE2b-256 | 598ec7b77ecb7cc9f8d3c680058234efa7b234697b551a476bd56bc794caaaa0 |
Close
Hashes for TgCrypto-1.2.3-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5857bdd18359fda4680f2557b12e32e911ae08a1651e241c76d37130bf7e8bef |
|
MD5 | d48ae4d1d81075f1fb858062b78603f9 |
|
BLAKE2b-256 | a19c75bd1d2b32fff812f328fd5b6571f4c80e9ad310a19101ec50acf9851971 |
Close
Hashes for TgCrypto-1.2.3-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8adabe5b55e78882a81d2a1aa8248ecb2767dc7305dde5f241e5e80208c8328c |
|
MD5 | a1d46d93f1204eb4e50986460dd6384d |
|
BLAKE2b-256 | 4d862bab61cf35a799bb0dbe16330cf2a2f621cb75c6258d3bf2df499596a27f |
Close
Hashes for TgCrypto-1.2.3-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dde446012dd5395efdce266a4c25267217586f0296981385e79774dd60c69df1 |
|
MD5 | ff654e5d2a8df30fd71bec1111cfc42b |
|
BLAKE2b-256 | a659c2c12bb1abae341ecd6ded3dcc457bcf9adf28ba8265449f8d251c426aef |
Close
Hashes for TgCrypto-1.2.3-pp37-pypy37_pp73-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 76d038ae370bef184d7ece6505573857f1229cb8ef54b93def820734d4baa3d8 |
|
MD5 | ac6fd9aa67cee58dffd8781934f17572 |
|
BLAKE2b-256 | 0fc12188fc6969e7c763b94c80dfe755bf40eb8ba4f5912891753fd2182ed414 |
Close
Hashes for TgCrypto-1.2.3-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6bd38f118732c5ebc43fab7cd20ea4f53d0e2367a86169d22af98c2bca9bf8aa |
|
MD5 | b23627311cc9e21c767af6031c24ef3e |
|
BLAKE2b-256 | 8d67badef25d5192559b68a0680e0f22ad3ce8af61376eebff9bcfc4feb300e5 |
Close
Hashes for TgCrypto-1.2.3-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 064caf3b1fdb7b923271130416fe6b2ab1ba695db83375011f39f49df3af202c |
|
MD5 | 03134cbac0d3be1573c9a58caa905861 |
|
BLAKE2b-256 | 2e86cb040b140d8dbeb8aa9d6ebc65a20ef80c1c31d3ad9a08fc4b721026f7dd |
Close
Hashes for TgCrypto-1.2.3-pp37-pypy37_pp73-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d2ccda26a5f3377242f926a88b65d46c4b5b7d515304ceaefc39543b3ee5fdc8 |
|
MD5 | dbab1b3762e2574fba40117234c7922a |
|
BLAKE2b-256 | 7ae73538727d71a30d73184529f03616e73d1d3c7c9beea40ac5aedc0c1d0045 |
Close
Hashes for TgCrypto-1.2.3-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8e29b62061bc97f1de5176f2c91891b0c614b0de6b1999a0a477faaa61159748 |
|
MD5 | 9e4f534014c0262f579144a22df6f3f8 |
|
BLAKE2b-256 | 26ebd0a05619d88fa082e1f7348e93b34ff07333d02a7e8c5ed8f72e01d528f0 |
Close
Hashes for TgCrypto-1.2.3-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d58bd811d1a533cbe0e10677152c75edee01b9c893edea6e455678dbf271313f |
|
MD5 | f0da5ba8f1fdba68213ace183c88b7e9 |
|
BLAKE2b-256 | 8e0cb2eab31df24ff815c67a9cae99f491cae9a688dab56d5f03f5767b875941 |
Close
Hashes for TgCrypto-1.2.3-cp310-cp310-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9f0a07a7112fcdc1c5c84a3b72de4c2d96ef45edc51e542bd7f998b2305b74c8 |
|
MD5 | e75d6a5ccdeaacf4515370fe81b4b064 |
|
BLAKE2b-256 | 78f1c1c015f4cf22a6e835361e03d13be859269068dd9c975cfd4cafb1721181 |
Close
Hashes for TgCrypto-1.2.3-cp310-cp310-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | af738c072d721eb8a0d39b0d6140193c0e848f6cb34071ff573b4dd5c094b499 |
|
MD5 | 7de2189d9c4d021073e4f89cd468e9b9 |
|
BLAKE2b-256 | 167da506f025321ccb17a0fe0a42d18578b9fb158fe53e4574392d2334f2290c |
Close
Hashes for TgCrypto-1.2.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 51f0b1f75533b01c4109ee332e48d9f6734fb286cebe8385c8b1393ba183b693 |
|
MD5 | 7700258025e1581bb07622845800156d |
|
BLAKE2b-256 | d2213b584a2d4ca39f790ef808ed600976a2b175e8e097a6fceaa23a5f297b8b |
Close
Hashes for TgCrypto-1.2.3-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6fd9f9ba1ec042430539a895377f18260dd9833a8eacb52121457756bb26419d |
|
MD5 | e81b65cce9a1cf850c674390d61f2019 |
|
BLAKE2b-256 | 0c0c878e6976abe949b38c9f2c35cf5ac1696d0afb28f8f19f671ca633f9268a |
Close
Hashes for TgCrypto-1.2.3-cp310-cp310-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8f69a8a73c37f99bc265df5e071f0506e2815d001362f117c6f7db13c9a1859e |
|
MD5 | a41a011db8a90820b9fe15bd1f794ae5 |
|
BLAKE2b-256 | 5998d2c5b34709b257021e148f3918c155cae175e045c2e25c0c0b9af65c4900 |
Close
Hashes for TgCrypto-1.2.3-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ab3f759180b17d252dd57f018dff9190dc0e96e5ff3aeb90b598e2ab2f81f57e |
|
MD5 | bc4739f9f24a360e88fd64e9b0a2cfa9 |
|
BLAKE2b-256 | 5acff49c99133f0a931888dee2563dedcf3e8ef3729b511eb182b6969ab8a7ca |
Close
Hashes for TgCrypto-1.2.3-cp310-cp310-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 266cfc47dde87e23421b2ee50cbb066ec4b8c294553f79742e3d694af5c0d118 |
|
MD5 | c5532aff74040582100f1c71840bf9b9 |
|
BLAKE2b-256 | 9bcaa68876008555e7a5c255d01c460b2530d85f1f23d7679f6f0fe1488afa36 |
Close
Hashes for TgCrypto-1.2.3-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | fdba12358104453fef2b9f46ae7e364eadd8f857cd39ab6ab94a94bd4b246efc |
|
MD5 | fd93d8f18afb76d9c9082d58ba609d59 |
|
BLAKE2b-256 | e9c955fac4a2fb1a24f1fca4e4aacf909ea374c7e9f3509263dd23806e3a2c5b |
Close
Hashes for TgCrypto-1.2.3-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3199d2666f00bffd6c373190bc0f8153a7de1bf00da2cc585c877bb43a57b8d9 |
|
MD5 | 8a39acb29c3d1266b9f75add905f5032 |
|
BLAKE2b-256 | dccf684f416708fe1eb41bd8d86c77a37256ace66a50fb6fccacdc2566d1a0eb |
Close
Hashes for TgCrypto-1.2.3-cp39-cp39-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8d44117d9e57fc15425517fb363bd8757c2340b1fce464b1bef3dd69d828ed60 |
|
MD5 | a50641deb68f2fb4e3dc82689b2a8ba3 |
|
BLAKE2b-256 | 237b75014b706f7f8f99a696530b9402f7af2c71aab5c9969de87e9a28f5bfc8 |
Close
Hashes for TgCrypto-1.2.3-cp39-cp39-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 42caf6e96742e8bce1a66bf7c6d48832ea1617f0a165e1c767ccde9d1889ba0f |
|
MD5 | 302abc4f76bb15711abe3e0994106e47 |
|
BLAKE2b-256 | 59a22c18b75c8c8c8e479120b3762bd9a68eafd323c550f3dce3a0affb86e46b |
Close
Hashes for TgCrypto-1.2.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e0106d780ca971f00376e28ccc3f4d45a29665f3cbe2b7b118141ecd85fe4c2d |
|
MD5 | fe87232f493b9e2e2b5a69c7a314053f |
|
BLAKE2b-256 | 749150a1480f9969030d114fec9524daab0347c91270b1c1708db51ea3791dac |
Close
Hashes for TgCrypto-1.2.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 148fc9c40fdbd059655062c1eec612f8ace2d6d2a9158016472771ef04b06599 |
|
MD5 | bf6092a403fb580605cf671783fedc03 |
|
BLAKE2b-256 | 1e07415aaed7fd00829b8785f2f6771eaa0a302c2fc48e1a8fbf81482a7b1919 |
Close
Hashes for TgCrypto-1.2.3-cp39-cp39-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 268ad4b8a8e5b5e6b13435d0d57b91ccb4a2af9e1c893b014ea42f1b43b1966c |
|
MD5 | 8574663aa43b7530899664b4861855aa |
|
BLAKE2b-256 | 3df9c0a04d5b2f322507c386a6b562d13cc9ee12c9cc2fe37008801bb86277ce |
Close
Hashes for TgCrypto-1.2.3-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8536befb9bf952bf986e83d02fbebd65f6465b574d8ed3f3456c3e97ccd9122a |
|
MD5 | 0ad768cca3b758a020525153c0454315 |
|
BLAKE2b-256 | 8b387b4cc26ecda4c03005f7b4fa3e2033d5f15adb69d170106bc0d2cbe1b78c |
Close
Hashes for TgCrypto-1.2.3-cp39-cp39-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 17bd13f6c99a784f43fbcd410a80c18f078dadea71d049718caf255f6510895f |
|
MD5 | cc72af28a738548ae449d03ec65c7e4a |
|
BLAKE2b-256 | bdb41206604e51d4e3356c4937bf12e2db8dfa514cccdac74e41a86aef08cc13 |
Close
Hashes for TgCrypto-1.2.3-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 056845a5e368d6e4e94b2b773ab0529dd5d5d65b04dc1fa051f63be7ff7e7a3a |
|
MD5 | ad91147688389edfe4fdfc60ec49ad38 |
|
BLAKE2b-256 | 2aff10db081989a650b64bc9bc8a0b065898268e2e01995f17eed4a57ea4cd41 |
Close
Hashes for TgCrypto-1.2.3-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a6ae87e32f5e94494eb37af29fd4e9d9560752f701922614b03fc6b2e6b9011 |
|
MD5 | d249a3252fe12c51be78bf5c9ecbcf00 |
|
BLAKE2b-256 | e5c377ba8514712c467885a41ec9abbbe534fe0289d35735a04dcc526348752f |
Close
Hashes for TgCrypto-1.2.3-cp38-cp38-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8aef7d1d88fe051dae5a9a331e78e27f031a7290bed5d5f4f07a440e9d836bbb |
|
MD5 | 8e02c554cd88b620ba7c49b50646297f |
|
BLAKE2b-256 | 88ca11385531ccf9b2109e236d2a64317b722e7ab886bdccd4592a7b00e7d786 |
Close
Hashes for TgCrypto-1.2.3-cp38-cp38-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | f549f1164de67548327593362ae4f94435510b6d1c194e5579d3f0379f91bb71 |
|
MD5 | b66eb02b273a1e0aeddb9f057389c0f7 |
|
BLAKE2b-256 | fbe5a21ae2e0437de7456789ac34257042f0fc3477dd0c9d55e7b8ea180c78ac |
Close
Hashes for TgCrypto-1.2.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a036ad285536723540f4071a3f23d312104dc728906dfafd9bba0ca5c8ebfb6 |
|
MD5 | 1dae3dc8d685882c3bd66e03ef5a720e |
|
BLAKE2b-256 | fba135e0fa7aa7f59bf8e5beb7e1aea6279e90f663dab0ab7776e5bfae509fad |
Close
Hashes for TgCrypto-1.2.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4d5f139da89e4bfaca3b7667fe889fb1c14c818f85e3ef3f029d16575ac10b83 |
|
MD5 | cb29ec4a5f296102c5e79864fd104bff |
|
BLAKE2b-256 | 45672c2db5247be1d9191cc338131ddc0324c1e5616df819ac61eb1b0a31a23e |
Close
Hashes for TgCrypto-1.2.3-cp38-cp38-macosx_11_0_arm64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 5c0b5d6d1e6133e4ce283228df22c83ff5f760a169075eac1c493194462038c7 |
|
MD5 | 5afd74b75d7e4f996a5ef05d75edb676 |
|
BLAKE2b-256 | ec6258d1643fcda99ee838068a78a6205ea37deaf3b693a73f0f4fff807e3e3c |
Close
Hashes for TgCrypto-1.2.3-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 6e0ec261992ddb50081fbf2094ce6eaf97d880717b0e100caf74783cca317799 |
|
MD5 | 8a38de63505ea81cac9fac221024a5ca |
|
BLAKE2b-256 | 50afbcfaa0e5bdbbc3f27c3bc861eb3a57fe8c1a99b98b580b9e27f110b38627 |
Close
Hashes for TgCrypto-1.2.3-cp38-cp38-macosx_10_9_universal2.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c0efdf3d38320ddaafa145da1b2fce2abbdb9fc32d94538e2782e41da57ffe53 |
|
MD5 | 9c14bc8413efb2913025f3977ebed380 |
|
BLAKE2b-256 | 301a77d4a53351bd73e8b535dc0169f42f7b1fb3bb34a5e9a917ef98c7514f34 |
Close
Hashes for TgCrypto-1.2.3-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | bf553cc9088c7b6c502cbaa495d7c0b8ae035c56ff77e6c932efd2415ee13532 |
|
MD5 | a9a9423be78b02f7f5e352039cff37ff |
|
BLAKE2b-256 | 52409ff6ce26cd9ddedbf0617937c11096ed536e94e2b23adcdae1ff10dc6208 |
Close
Hashes for TgCrypto-1.2.3-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ba1976374a7b72c12f51eb3efcf291c56cc316eebfaea9c5db0c98c5fc149c33 |
|
MD5 | eb062d27082279d92851d75020af01d6 |
|
BLAKE2b-256 | 7cb8fd9116aa46555b61917740983ad853a4f9ee15059f6814dc4b729344d679 |
Close
Hashes for TgCrypto-1.2.3-cp37-cp37m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90cf802e42fa187fbb3fb4de23b5c8b0a7bff946c2a6be31ff6b37254b00f254 |
|
MD5 | e7a3f2db9dc5e90b44b07e5be83c5b85 |
|
BLAKE2b-256 | a28a093099bda98214956e25b2ad8a9bf87ecff9de229e6efb72322c8890ebeb |
Close
Hashes for TgCrypto-1.2.3-cp37-cp37m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3b0628dea2e06f59315ec373902f7b1b6562abba0e82c60d6843648bf1311e4b |
|
MD5 | e22589eb80b758ac11b31ddda800b34f |
|
BLAKE2b-256 | 15757cf62b1cce8342ec9b3340a75c17c6a3c094d5c89371a71b0aff0a4c5e01 |
Close
Hashes for TgCrypto-1.2.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 97ced03b6fc66fd6074e07e90411ad2fb85d18f6110f5947ce29d5390f325b3e |
|
MD5 | 61eb51a8869a1855c5505966f0878661 |
|
BLAKE2b-256 | ba259c4f20daa0dd34b04d1ab0e5eb68f1d2fad6efd816a41da4fe3867171664 |
Close
Hashes for TgCrypto-1.2.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c2dcd16acd9a25ab9e6f83eb93fdeb8c3d892c76cd8157a75a045a343f5c98d |
|
MD5 | 6ce9560c58c2535a3e6ce3fcbbb7a75d |
|
BLAKE2b-256 | 27a26d6362c2c304e6a5964f5e1f80a4a85cbdafff7895005c22aa1df3487640 |
Close
Hashes for TgCrypto-1.2.3-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84932e93b6582a4abc8c64dd4b94a3b903d946f1d4ea4cbb7fe6bc1d49e7620a |
|
MD5 | 740d15e358d5ea13bbe4f89cd77e3be5 |
|
BLAKE2b-256 | 93b3f2c09e78e7e917708924dc48bdbd68e08f3464db16c03c591e4de5960797 |
Close
Hashes for TgCrypto-1.2.3-cp36-cp36m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | c385a651f83f710fba150f8fba8774cfd0b2c234123de747c486cf46f8d182f6 |
|
MD5 | 7e0c2a341f8ddff3a55b9ed2a485b476 |
|
BLAKE2b-256 | fd0fe5bbdb5972efeaa0fe0af0366b63860be50e1817f9690f4107e1bfbb57b3 |
Close
Hashes for TgCrypto-1.2.3-cp36-cp36m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 438316dc58ef75bb5f7f2e4521e942c3e797966b7262d0b5880bf84c59c2ba48 |
|
MD5 | 74c74beda86fd1c9c63e374075ca2cf9 |
|
BLAKE2b-256 | 09b5b50fc6f41ec7dae6e8cd16291fed911109f50cee9fb9b7849c158cb45619 |
Close
Hashes for TgCrypto-1.2.3-cp36-cp36m-musllinux_1_1_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 281672bfb51b3e30be1a0f29717007d0e815c323afe5c802f07e551099934e62 |
|
MD5 | 09815f9797f8c5e8a41267cd25f2991c |
|
BLAKE2b-256 | b9c4b6afec9b92a36ed8b83e0940992443ad43bc76efc70e10e96358ba0e70db |
Close
Hashes for TgCrypto-1.2.3-cp36-cp36m-musllinux_1_1_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 307035717383ea256d1c629675610f007d127d67ef786e0055a127b53f6fa589 |
|
MD5 | 15b8087c449f68b3741ea89eb4633b0c |
|
BLAKE2b-256 | 846f3138aee1aaebc88be0a1814fb09952f646b4e61974f63fd8d4ecd6f712b4 |
Close
Hashes for TgCrypto-1.2.3-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 4a2d5cfdf06eabfdc3027257cc28ce3d42922644f33f523308e69644af5843c4 |
|
MD5 | 7721581c4bc8095654c61a721a30c061 |
|
BLAKE2b-256 | 8d4e4b0b955725c0a7858a14c74daeb52a9d8ec404b68adae6b021eb92a99abe |
Close
Hashes for TgCrypto-1.2.3-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | adcc983f85812892f77fed9c96a9751b4c18e63cd5b8ea76836f778304d7a9db |
|
MD5 | 642086f12d5b4837e81acbad9fc65979 |
|
BLAKE2b-256 | 9366ec728a130f6cebf6999c05dcab6088f14f21c73cfdf32bec59b12f5d4c4a |
Close
Hashes for TgCrypto-1.2.3-cp36-cp36m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7ccb42db80af53d109753be139bb7f6b9cf9e6281e847619860964a8a7edf019 |
|
MD5 | 8a9c7bc1d4b29b9721340a34b9d19b7e |
|
BLAKE2b-256 | 252330b9a9a859d542965f55771aa1778b0af64244c8e1346d68925ba18feac8 |