# TgCrypto
> 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](https://github.com/pyrogram/pyrogram) and implements the
cryptographic algorithms Telegram requires, namely:
- **`AES-256-IGE`** - used in [MTProto v2.0](https://core.telegram.org/mtproto).
- **`AES-256-CTR`** - used for [CDN encrypted files](https://core.telegram.org/cdn).
- **`AES-256-CBC`** - used for [encrypted passport credentials](https://core.telegram.org/passport).
## Requirements
- Python 3.9 or higher.
## Installation
``` bash
$ pip3 install -U mtprotocrypt
```
## API
TgCrypto API consists of these six methods:
```python
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).
``` python
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)
``` python
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)
``` python
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).
``` python
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
```
## License
[LGPLv3+](COPYING.lesser) © 2017-present [Dan](https://github.com/delivrance)
Raw data
{
"_id": null,
"home_page": "https://github.com/pyrogram",
"name": "mtprotocrypt",
"maintainer": null,
"docs_url": null,
"requires_python": "~=3.9",
"maintainer_email": null,
"keywords": "pyrogram telegram crypto cryptography encryption mtproto extension library aes",
"author": "Dan",
"author_email": "dan@pyrogram.org",
"download_url": "https://github.com/hazy-kun/tgcrypto/releases/latest",
"platform": null,
"description": "# TgCrypto\n\n> Cryptography Extension Library for Pyrogram\n\n**TgCrypto** is a Cryptography Library written in C as a Python extension. It is designed to be portable, fast,\neasy to install and use. TgCrypto is intended for [Pyrogram](https://github.com/pyrogram/pyrogram) and implements the\ncryptographic algorithms Telegram requires, namely:\n\n- **`AES-256-IGE`** - used in [MTProto v2.0](https://core.telegram.org/mtproto).\n- **`AES-256-CTR`** - used for [CDN encrypted files](https://core.telegram.org/cdn).\n- **`AES-256-CBC`** - used for [encrypted passport credentials](https://core.telegram.org/passport).\n\n## Requirements\n\n- Python 3.9 or higher.\n\n## Installation\n\n``` bash\n$ pip3 install -U mtprotocrypt\n```\n\n## API\n\nTgCrypto API consists of these six methods:\n\n```python\ndef ige256_encrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...\ndef ige256_decrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...\n\ndef ctr256_encrypt(data: bytes, key: bytes, iv: bytes, state: bytes) -> bytes: ...\ndef ctr256_decrypt(data: bytes, key: bytes, iv: bytes, state: bytes) -> bytes: ...\n\ndef cbc256_encrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...\ndef cbc256_decrypt(data: bytes, key: bytes, iv: bytes) -> bytes: ...\n```\n\n## Usage\n\n### IGE Mode\n\n**Note**: Data must be padded to match a multiple of the block size (16 bytes).\n\n``` python\nimport os\n\nimport tgcrypto\n\ndata = os.urandom(10 * 1024 * 1024 + 7) # 10 MB of random data + 7 bytes to show padding\nkey = os.urandom(32) # Random Key\niv = os.urandom(32) # Random IV\n\n# Pad with zeroes: -7 % 16 = 9\ndata += bytes(-len(data) % 16)\n\nige_encrypted = tgcrypto.ige256_encrypt(data, key, iv)\nige_decrypted = tgcrypto.ige256_decrypt(ige_encrypted, key, iv)\n\nprint(data == ige_decrypted) # True\n```\n \n### CTR Mode (single chunk)\n\n``` python\nimport os\n\nimport tgcrypto\n\ndata = os.urandom(10 * 1024 * 1024) # 10 MB of random data\n\nkey = os.urandom(32) # Random Key\n\nenc_iv = bytearray(os.urandom(16)) # Random IV\ndec_iv = enc_iv.copy() # Keep a copy for decryption\n\nctr_encrypted = tgcrypto.ctr256_encrypt(data, key, enc_iv, bytes(1))\nctr_decrypted = tgcrypto.ctr256_decrypt(ctr_encrypted, key, dec_iv, bytes(1))\n\nprint(data == ctr_decrypted) # True\n```\n\n### CTR Mode (stream)\n\n``` python\nimport os\nfrom io import BytesIO\n\nimport tgcrypto\n\ndata = BytesIO(os.urandom(10 * 1024 * 1024)) # 10 MB of random data\n\nkey = os.urandom(32) # Random Key\n\nenc_iv = bytearray(os.urandom(16)) # Random IV\ndec_iv = enc_iv.copy() # Keep a copy for decryption\n\nenc_state = bytes(1) # Encryption state, starts from 0\ndec_state = bytes(1) # Decryption state, starts from 0\n\nencrypted_data = BytesIO() # Encrypted data buffer\ndecrypted_data = BytesIO() # Decrypted data buffer\n\nwhile True:\n chunk = data.read(1024)\n\n if not chunk:\n break\n\n # Write 1K encrypted bytes into the encrypted data buffer\n encrypted_data.write(tgcrypto.ctr256_encrypt(chunk, key, enc_iv, enc_state))\n\n# Reset position. We need to read it now\nencrypted_data.seek(0)\n\nwhile True:\n chunk = encrypted_data.read(1024)\n\n if not chunk:\n break\n\n # Write 1K decrypted bytes into the decrypted data buffer\n decrypted_data.write(tgcrypto.ctr256_decrypt(chunk, key, dec_iv, dec_state))\n\nprint(data.getvalue() == decrypted_data.getvalue()) # True\n```\n\n### CBC Mode\n\n**Note**: Data must be padded to match a multiple of the block size (16 bytes).\n\n``` python\nimport os\n\nimport tgcrypto\n\ndata = os.urandom(10 * 1024 * 1024 + 7) # 10 MB of random data + 7 bytes to show padding\nkey = os.urandom(32) # Random Key\n\nenc_iv = bytearray(os.urandom(16)) # Random IV\ndec_iv = enc_iv.copy() # Keep a copy for decryption\n\n# Pad with zeroes: -7 % 16 = 9\ndata += bytes(-len(data) % 16)\n\ncbc_encrypted = tgcrypto.cbc256_encrypt(data, key, enc_iv)\ncbc_decrypted = tgcrypto.cbc256_decrypt(cbc_encrypted, key, dec_iv)\n\nprint(data == cbc_decrypted) # True\n```\n\n## License\n\n[LGPLv3+](COPYING.lesser) \u00a9 2017-present [Dan](https://github.com/delivrance)\n",
"bugtrack_url": null,
"license": "LGPLv3+",
"summary": "Fast and Portable Cryptography Extension Library for Pyrogram",
"version": "1.2.6.5b0",
"project_urls": {
"Community": "https://t.me/pyrogram",
"Documentation": "https://docs.pyrogram.org",
"Download": "https://github.com/hazy-kun/tgcrypto/releases/latest",
"Homepage": "https://github.com/pyrogram",
"Source": "https://github.com/pyrogram/tgcrypto",
"Tracker": "https://github.com/pyrogram/tgcrypto/issues"
},
"split_keywords": [
"pyrogram",
"telegram",
"crypto",
"cryptography",
"encryption",
"mtproto",
"extension",
"library",
"aes"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "7c3a9e846f420e026f121b3ec6ac7f71f502fb67707d5ba4ac9d2ace8833dc19",
"md5": "2a178be5aec373b3a7b8c66984e3ec0f",
"sha256": "083e80194d8198973cdf3b7e09f591d738c9d3925d1597d5f14e87d944ac20e2"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp310-cp310-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "2a178be5aec373b3a7b8c66984e3ec0f",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.9",
"size": 46618,
"upload_time": "2024-05-05T09:05:58",
"upload_time_iso_8601": "2024-05-05T09:05:58.935913Z",
"url": "https://files.pythonhosted.org/packages/7c/3a/9e846f420e026f121b3ec6ac7f71f502fb67707d5ba4ac9d2ace8833dc19/mtprotocrypt-1.2.6.5b0-cp310-cp310-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "70802a70a598302f086c5b6473833115b9d914b7aa76ea5c1b7a785e5688fc93",
"md5": "7fb25b16471c67e79ef8a5e482b930ac",
"sha256": "ac910fba5f762317558fc23433d1d19428f6076ed37467755288a21722964489"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "7fb25b16471c67e79ef8a5e482b930ac",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.9",
"size": 30932,
"upload_time": "2024-05-05T09:06:01",
"upload_time_iso_8601": "2024-05-05T09:06:01.066639Z",
"url": "https://files.pythonhosted.org/packages/70/80/2a70a598302f086c5b6473833115b9d914b7aa76ea5c1b7a785e5688fc93/mtprotocrypt-1.2.6.5b0-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7988ab461cbbe480743f28d12329b2d1a8dcd8bd331eded96d89a841a31c2901",
"md5": "4e4d15776b913de702f9b37a722d315d",
"sha256": "33dbc85a54c3989e69dc993d148162b9c7df9265804fb630f5cdeb9946397c72"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "4e4d15776b913de702f9b37a722d315d",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.9",
"size": 30722,
"upload_time": "2024-05-05T09:06:02",
"upload_time_iso_8601": "2024-05-05T09:06:02.743537Z",
"url": "https://files.pythonhosted.org/packages/79/88/ab461cbbe480743f28d12329b2d1a8dcd8bd331eded96d89a841a31c2901/mtprotocrypt-1.2.6.5b0-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a665bfc4b5c6ae00b631c49fd42432e4c7dd44777fd0c485ce87ccc304f16c10",
"md5": "0ad74bcc45ad972023a979c5d678357b",
"sha256": "288665b8c380c376c78b912b5b71dcf3af309873a48cddb44f1526fc893cf6f6"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "0ad74bcc45ad972023a979c5d678357b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.9",
"size": 47306,
"upload_time": "2024-05-05T09:06:04",
"upload_time_iso_8601": "2024-05-05T09:06:04.540156Z",
"url": "https://files.pythonhosted.org/packages/a6/65/bfc4b5c6ae00b631c49fd42432e4c7dd44777fd0c485ce87ccc304f16c10/mtprotocrypt-1.2.6.5b0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "73dc591a906643732f5340810ee667f9a4b8d556b084753f2b257bd39771ea6f",
"md5": "0cfdc434a858a9cf623181f4c1ea8b13",
"sha256": "0c9eee0d129ecc412723cccf07ad089631a7094fced06bce7b425ecd2576f601"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "0cfdc434a858a9cf623181f4c1ea8b13",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.9",
"size": 46928,
"upload_time": "2024-05-05T09:06:06",
"upload_time_iso_8601": "2024-05-05T09:06:06.193701Z",
"url": "https://files.pythonhosted.org/packages/73/dc/591a906643732f5340810ee667f9a4b8d556b084753f2b257bd39771ea6f/mtprotocrypt-1.2.6.5b0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9c2298df7bfcc91f0b2fd4902a2b84491080386a1680b09321c3496204ab3fed",
"md5": "c3b09a6b8035327dc8785103cf372855",
"sha256": "666befcb7e2b7b06d5ed4037926b1a87566251d78716e2c5d6f4b67413e292a4"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp310-cp310-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "c3b09a6b8035327dc8785103cf372855",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.9",
"size": 50818,
"upload_time": "2024-05-05T09:06:07",
"upload_time_iso_8601": "2024-05-05T09:06:07.272039Z",
"url": "https://files.pythonhosted.org/packages/9c/22/98df7bfcc91f0b2fd4902a2b84491080386a1680b09321c3496204ab3fed/mtprotocrypt-1.2.6.5b0-cp310-cp310-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9cc640ecdfbf4b568a8278cb6df121d569989a93f90bf18f9fa739bdceb3bcdb",
"md5": "895358027e4d31038f91143676b4f4b3",
"sha256": "adce9a3ad23b1c994bec190f364cc7e2b0709de09dcdbb5bd5ec34ea5a03c018"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp310-cp310-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "895358027e4d31038f91143676b4f4b3",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.9",
"size": 51095,
"upload_time": "2024-05-05T09:06:08",
"upload_time_iso_8601": "2024-05-05T09:06:08.433444Z",
"url": "https://files.pythonhosted.org/packages/9c/c6/40ecdfbf4b568a8278cb6df121d569989a93f90bf18f9fa739bdceb3bcdb/mtprotocrypt-1.2.6.5b0-cp310-cp310-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9da5975383c927e8fa76b8ad979f45089ac658e351eba85d9afd6541d47d5dff",
"md5": "437f61253e0e7ba12824ed397206907b",
"sha256": "6d5576377d17f6df37ba603a2b9d4622b6db21a7cae334e6bed962f00790a849"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "437f61253e0e7ba12824ed397206907b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.9",
"size": 31479,
"upload_time": "2024-05-05T09:06:10",
"upload_time_iso_8601": "2024-05-05T09:06:10.125424Z",
"url": "https://files.pythonhosted.org/packages/9d/a5/975383c927e8fa76b8ad979f45089ac658e351eba85d9afd6541d47d5dff/mtprotocrypt-1.2.6.5b0-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a7cbd3090b5a36653f6c05249fea23590fc58e17608b3342b9eeffa4073054a2",
"md5": "55374ea36a8f0ad226c55d6d85623878",
"sha256": "20eb10d933b37a77c373824840b123ef369405448250b7583ce2ab4381745dc3"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "55374ea36a8f0ad226c55d6d85623878",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.9",
"size": 32323,
"upload_time": "2024-05-05T09:06:11",
"upload_time_iso_8601": "2024-05-05T09:06:11.273829Z",
"url": "https://files.pythonhosted.org/packages/a7/cb/d3090b5a36653f6c05249fea23590fc58e17608b3342b9eeffa4073054a2/mtprotocrypt-1.2.6.5b0-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "31693c44a47d3bbd9c37d84770ab7b81eb0b8c5b26dd9764b3568e77ebad16af",
"md5": "bb72749eb28cabae365dfb2eceb90d0a",
"sha256": "e79614efd8ba6398110e3b5fbbc79fd15a9b9de40f37dde62cdee97779108569"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp311-cp311-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "bb72749eb28cabae365dfb2eceb90d0a",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.9",
"size": 46620,
"upload_time": "2024-05-05T09:06:12",
"upload_time_iso_8601": "2024-05-05T09:06:12.301009Z",
"url": "https://files.pythonhosted.org/packages/31/69/3c44a47d3bbd9c37d84770ab7b81eb0b8c5b26dd9764b3568e77ebad16af/mtprotocrypt-1.2.6.5b0-cp311-cp311-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "446fa1cf387205e9d7820b73f58adc19e052a6e93cbe7dcccb574fdca75607cf",
"md5": "55de296a1371bc92c76ad183ca25b719",
"sha256": "e30929bc3bdda51105b2f5742ae9d1baf1f57e8fbd6f20195585961a72328733"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "55de296a1371bc92c76ad183ca25b719",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.9",
"size": 30933,
"upload_time": "2024-05-05T09:06:13",
"upload_time_iso_8601": "2024-05-05T09:06:13.355819Z",
"url": "https://files.pythonhosted.org/packages/44/6f/a1cf387205e9d7820b73f58adc19e052a6e93cbe7dcccb574fdca75607cf/mtprotocrypt-1.2.6.5b0-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "579d2a880d5d6d311f76ba12a51dcfab821e9f9def6599173ce6fc2490902db7",
"md5": "6dc430d5b4cd7fc6063093c857b40afa",
"sha256": "217c8653983f59bb266c22427bab07762cb5b178218ae1bb0b32428543a537c2"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "6dc430d5b4cd7fc6063093c857b40afa",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.9",
"size": 30723,
"upload_time": "2024-05-05T09:06:15",
"upload_time_iso_8601": "2024-05-05T09:06:15.356034Z",
"url": "https://files.pythonhosted.org/packages/57/9d/2a880d5d6d311f76ba12a51dcfab821e9f9def6599173ce6fc2490902db7/mtprotocrypt-1.2.6.5b0-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6d12ebeb192c5ccfec5e08f0f5938de9e01c21dccd5d27ac07e0b09e812eb6dc",
"md5": "9b39b09572ba14ad503fe915293d5744",
"sha256": "72ecf5665ec15194d895eafcbaa640a4dffda1372f227f46e1123d26a7739fb9"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "9b39b09572ba14ad503fe915293d5744",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.9",
"size": 48121,
"upload_time": "2024-05-05T09:06:16",
"upload_time_iso_8601": "2024-05-05T09:06:16.398602Z",
"url": "https://files.pythonhosted.org/packages/6d/12/ebeb192c5ccfec5e08f0f5938de9e01c21dccd5d27ac07e0b09e812eb6dc/mtprotocrypt-1.2.6.5b0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b758de6a8124fe1fea68aa5936f1a6cbbf040de6eb4b291db37be9426c753c5e",
"md5": "bad0e2e7367d6c1712d3be6430722040",
"sha256": "e3ed2e6bef82bd0e9c0929dd83981f14013cc59748dfa9d02cc30af63234c08f"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "bad0e2e7367d6c1712d3be6430722040",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.9",
"size": 47663,
"upload_time": "2024-05-05T09:06:17",
"upload_time_iso_8601": "2024-05-05T09:06:17.621497Z",
"url": "https://files.pythonhosted.org/packages/b7/58/de6a8124fe1fea68aa5936f1a6cbbf040de6eb4b291db37be9426c753c5e/mtprotocrypt-1.2.6.5b0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8dcc20707a75c04cc4125c4bd9f28771fc2804736fee1f8ac6cddd635fcf1f9c",
"md5": "7c19cd4e6afbe0ace2405618f6d32996",
"sha256": "82c2ce351dfa374001d949ff7e7975997fbea1f51c660837836cb13acd2d8c5e"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp311-cp311-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "7c19cd4e6afbe0ace2405618f6d32996",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.9",
"size": 51640,
"upload_time": "2024-05-05T09:06:18",
"upload_time_iso_8601": "2024-05-05T09:06:18.711207Z",
"url": "https://files.pythonhosted.org/packages/8d/cc/20707a75c04cc4125c4bd9f28771fc2804736fee1f8ac6cddd635fcf1f9c/mtprotocrypt-1.2.6.5b0-cp311-cp311-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "cd0a886a2e547e01478a65a92dc35cd752e4987ab591bc4a60a60cdfa729c2b4",
"md5": "824aa0ee86b8a0b03333a3b95c4d3574",
"sha256": "3ecce3065f4fc440aba6334b43fea3ff35a7939b853d5e94a6bba4726dfd8d62"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp311-cp311-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "824aa0ee86b8a0b03333a3b95c4d3574",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.9",
"size": 51899,
"upload_time": "2024-05-05T09:06:20",
"upload_time_iso_8601": "2024-05-05T09:06:20.480336Z",
"url": "https://files.pythonhosted.org/packages/cd/0a/886a2e547e01478a65a92dc35cd752e4987ab591bc4a60a60cdfa729c2b4/mtprotocrypt-1.2.6.5b0-cp311-cp311-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c8f6e0d49426f2e686273b966ee67eea88420a39a19cb2e3d69c87b581c3e2a2",
"md5": "df17192528bdc103e1c6f03abc2e9f41",
"sha256": "d80c1597ca6f23f194e36cf4a4dcf110529610e0b96c5665ebbac3614a0b84d9"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "df17192528bdc103e1c6f03abc2e9f41",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.9",
"size": 31476,
"upload_time": "2024-05-05T09:06:21",
"upload_time_iso_8601": "2024-05-05T09:06:21.458273Z",
"url": "https://files.pythonhosted.org/packages/c8/f6/e0d49426f2e686273b966ee67eea88420a39a19cb2e3d69c87b581c3e2a2/mtprotocrypt-1.2.6.5b0-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6a59ff66778e33eacc0c5d0a399e39d637e5d01980d9c12220fa919a42992cd7",
"md5": "bc6b875e8d660d1f2431072540545360",
"sha256": "746333d3ea33d5f8d13ee0716e2a7c517d9fd8a66b425c9cdd31d5c57dc8dc4a"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "bc6b875e8d660d1f2431072540545360",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.9",
"size": 32323,
"upload_time": "2024-05-05T09:06:23",
"upload_time_iso_8601": "2024-05-05T09:06:23.078098Z",
"url": "https://files.pythonhosted.org/packages/6a/59/ff66778e33eacc0c5d0a399e39d637e5d01980d9c12220fa919a42992cd7/mtprotocrypt-1.2.6.5b0-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "70cd400ae8b4ad267c69f67a9223bbc006bd82a993bbb7d55708a3f389138a7a",
"md5": "4264ad3413038867c119cc308c4e0756",
"sha256": "8a6eec819f3d438edaac2b3047b74a2dd6865554cce36a0b006e7b63e1504895"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp312-cp312-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "4264ad3413038867c119cc308c4e0756",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "~=3.9",
"size": 46615,
"upload_time": "2024-05-05T09:06:24",
"upload_time_iso_8601": "2024-05-05T09:06:24.279856Z",
"url": "https://files.pythonhosted.org/packages/70/cd/400ae8b4ad267c69f67a9223bbc006bd82a993bbb7d55708a3f389138a7a/mtprotocrypt-1.2.6.5b0-cp312-cp312-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fa87fdd8916e014e12a58e3fff50721e644d3c708f4c4c4c7c7fe5bbbf355182",
"md5": "1ce9507b1695de86f782fe26c61c8262",
"sha256": "acb99d984356e429a4b9385ae6260ed045c613f4a48275a5d4281b1775996d54"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp312-cp312-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "1ce9507b1695de86f782fe26c61c8262",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "~=3.9",
"size": 30931,
"upload_time": "2024-05-05T09:06:25",
"upload_time_iso_8601": "2024-05-05T09:06:25.260866Z",
"url": "https://files.pythonhosted.org/packages/fa/87/fdd8916e014e12a58e3fff50721e644d3c708f4c4c4c7c7fe5bbbf355182/mtprotocrypt-1.2.6.5b0-cp312-cp312-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f259b3d8f79f87ee353f54d6a545ad826d210d4edc598467612d6d0cd408bb55",
"md5": "6b382ce47ba336b08619c7e68aa5cdba",
"sha256": "9abc0731d0b73c2a4e56aa453bb55dd6ff40da75fb6a3a4fa1aaebf7e60b82eb"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp312-cp312-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "6b382ce47ba336b08619c7e68aa5cdba",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "~=3.9",
"size": 30719,
"upload_time": "2024-05-05T09:06:26",
"upload_time_iso_8601": "2024-05-05T09:06:26.452555Z",
"url": "https://files.pythonhosted.org/packages/f2/59/b3d8f79f87ee353f54d6a545ad826d210d4edc598467612d6d0cd408bb55/mtprotocrypt-1.2.6.5b0-cp312-cp312-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "185fab364e334356bfa2b2f652cbe10f84b3902d290ac2448282aafe4d7bd4d3",
"md5": "7cb99af0b4e703ab590f3343a87ba547",
"sha256": "c2c89667f007b1450ac0644a2c30c4743a23509477dd5576f1f7e6dbc7125f50"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "7cb99af0b4e703ab590f3343a87ba547",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "~=3.9",
"size": 47756,
"upload_time": "2024-05-05T09:06:27",
"upload_time_iso_8601": "2024-05-05T09:06:27.864672Z",
"url": "https://files.pythonhosted.org/packages/18/5f/ab364e334356bfa2b2f652cbe10f84b3902d290ac2448282aafe4d7bd4d3/mtprotocrypt-1.2.6.5b0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "d1ed356e681d364dbf3b7bdefc4dd5d0a6c72d930012d14654345c8d3c34aa01",
"md5": "ac48c8f1e8b13b00bc90db4d3e457bce",
"sha256": "8ffbace445b2aeb1900bbcb5dc9e9b0ddaada829d4cc30759b937acbad0a17f7"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "ac48c8f1e8b13b00bc90db4d3e457bce",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "~=3.9",
"size": 47297,
"upload_time": "2024-05-05T09:06:28",
"upload_time_iso_8601": "2024-05-05T09:06:28.974914Z",
"url": "https://files.pythonhosted.org/packages/d1/ed/356e681d364dbf3b7bdefc4dd5d0a6c72d930012d14654345c8d3c34aa01/mtprotocrypt-1.2.6.5b0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3d679737825428c6907ae75e50cdf9a3b187421f73007601d428387b15f678c9",
"md5": "ffa6b3cf5d78c7d2512a62bba4bed48c",
"sha256": "326481f8dbade6776ef4b9548ab5384c46c00e9c67f090b2195dd6ffe066ab8a"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp312-cp312-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "ffa6b3cf5d78c7d2512a62bba4bed48c",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "~=3.9",
"size": 51301,
"upload_time": "2024-05-05T09:06:30",
"upload_time_iso_8601": "2024-05-05T09:06:30.015899Z",
"url": "https://files.pythonhosted.org/packages/3d/67/9737825428c6907ae75e50cdf9a3b187421f73007601d428387b15f678c9/mtprotocrypt-1.2.6.5b0-cp312-cp312-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c5f0cbd07a6f12eb2e29ef3b9fa00453da6643e9cd884ac2a27cc20909071e95",
"md5": "3a60b1d751b83e6dd5cbb355cb83e0c4",
"sha256": "60a6d429d1c86f4f13cb7ae75a8101a3fb0aa1fd4635905cfc8b4b1e747267ef"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp312-cp312-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "3a60b1d751b83e6dd5cbb355cb83e0c4",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "~=3.9",
"size": 51573,
"upload_time": "2024-05-05T09:06:31",
"upload_time_iso_8601": "2024-05-05T09:06:31.107933Z",
"url": "https://files.pythonhosted.org/packages/c5/f0/cbd07a6f12eb2e29ef3b9fa00453da6643e9cd884ac2a27cc20909071e95/mtprotocrypt-1.2.6.5b0-cp312-cp312-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3e857969dfb3e28e0e58f144306a2d86be8740235f3cbde2e35c29f89df7869e",
"md5": "78f66933e405d7022f6e08820a62866b",
"sha256": "897d87faa52436aa8024a52ff294c06ce0aefdf72036307600e30d7024afbbf9"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp312-cp312-win32.whl",
"has_sig": false,
"md5_digest": "78f66933e405d7022f6e08820a62866b",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "~=3.9",
"size": 31476,
"upload_time": "2024-05-05T09:06:32",
"upload_time_iso_8601": "2024-05-05T09:06:32.267466Z",
"url": "https://files.pythonhosted.org/packages/3e/85/7969dfb3e28e0e58f144306a2d86be8740235f3cbde2e35c29f89df7869e/mtprotocrypt-1.2.6.5b0-cp312-cp312-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b05401120d44772957ec126538e68e3c26373ed313503201d75e88b953796c0f",
"md5": "e6066d185669a983d0c1a400c301d2d7",
"sha256": "9768fe1127f63a7ec03a6b93a38dbfa93f56bbb5d04ddba4112dbb58881453ed"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp312-cp312-win_amd64.whl",
"has_sig": false,
"md5_digest": "e6066d185669a983d0c1a400c301d2d7",
"packagetype": "bdist_wheel",
"python_version": "cp312",
"requires_python": "~=3.9",
"size": 32324,
"upload_time": "2024-05-05T09:06:33",
"upload_time_iso_8601": "2024-05-05T09:06:33.311324Z",
"url": "https://files.pythonhosted.org/packages/b0/54/01120d44772957ec126538e68e3c26373ed313503201d75e88b953796c0f/mtprotocrypt-1.2.6.5b0-cp312-cp312-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "598d4d8ed79e393cf8dc7821627ee12461b0a326810dd2f1275ab398c4a1630e",
"md5": "8f93010ba4f83f21b1fc67a44ba38250",
"sha256": "2df139b4121adb10ed84c73a7446293c5ebef00685f8dc82b77abae233a7910f"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp39-cp39-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "8f93010ba4f83f21b1fc67a44ba38250",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.9",
"size": 46618,
"upload_time": "2024-05-05T09:06:34",
"upload_time_iso_8601": "2024-05-05T09:06:34.312248Z",
"url": "https://files.pythonhosted.org/packages/59/8d/4d8ed79e393cf8dc7821627ee12461b0a326810dd2f1275ab398c4a1630e/mtprotocrypt-1.2.6.5b0-cp39-cp39-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "00d37d3fd670353a6e9df464cb99edcce14bbba76c28858c640f11ad41b1cc30",
"md5": "30e1659568ef9dfd7842810e460ef157",
"sha256": "d87019fb24c6672a190451741deba9a723df2f197b79b103a7c7f1efc6d9f988"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "30e1659568ef9dfd7842810e460ef157",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.9",
"size": 30930,
"upload_time": "2024-05-05T09:06:35",
"upload_time_iso_8601": "2024-05-05T09:06:35.543549Z",
"url": "https://files.pythonhosted.org/packages/00/d3/7d3fd670353a6e9df464cb99edcce14bbba76c28858c640f11ad41b1cc30/mtprotocrypt-1.2.6.5b0-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6756c6c60ecd614e82d0525fe5edd54703b9c29404ceaf43857bb1d65e75539c",
"md5": "12f3d27c23f8bb455e073bef9a3e05b4",
"sha256": "b5ee1db048d916c7838df0821ecb9b6bff2b527dab32e1d09aa977f749aafdf0"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "12f3d27c23f8bb455e073bef9a3e05b4",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.9",
"size": 30716,
"upload_time": "2024-05-05T09:06:36",
"upload_time_iso_8601": "2024-05-05T09:06:36.497664Z",
"url": "https://files.pythonhosted.org/packages/67/56/c6c60ecd614e82d0525fe5edd54703b9c29404ceaf43857bb1d65e75539c/mtprotocrypt-1.2.6.5b0-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "1537ec1acd4306f8ed905e526cbb2fc71d781c0e457602bf9f319c91fd697cd0",
"md5": "c9813102e44336750b0ae4af6f6a4f00",
"sha256": "d36be59f6caa5e3a6618251332b74963928a77fb7f324519d3d29a7d841177e2"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "c9813102e44336750b0ae4af6f6a4f00",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.9",
"size": 47103,
"upload_time": "2024-05-05T09:06:37",
"upload_time_iso_8601": "2024-05-05T09:06:37.566695Z",
"url": "https://files.pythonhosted.org/packages/15/37/ec1acd4306f8ed905e526cbb2fc71d781c0e457602bf9f319c91fd697cd0/mtprotocrypt-1.2.6.5b0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "7745ce30aa16ea42aed9b817bfa8b11e97885e06d03e30b6861f5cb064b3b6fa",
"md5": "acb3d39985db62c98ae1a22e5188e438",
"sha256": "b5a205ce66a08d3331c01b04fd0722b71fed9254768e51d55a2038f18b5eb1c0"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "acb3d39985db62c98ae1a22e5188e438",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.9",
"size": 46743,
"upload_time": "2024-05-05T09:06:38",
"upload_time_iso_8601": "2024-05-05T09:06:38.679974Z",
"url": "https://files.pythonhosted.org/packages/77/45/ce30aa16ea42aed9b817bfa8b11e97885e06d03e30b6861f5cb064b3b6fa/mtprotocrypt-1.2.6.5b0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ea00ef010e7d2f8a9a75d006a11428900770952f17525cbe2a5057bef5f75a40",
"md5": "4fc07c124ac4e1220609a328d67256f5",
"sha256": "8723abb5feac9deae5f4c91351d04322c8337ea1761c798974c497baff23520c"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp39-cp39-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "4fc07c124ac4e1220609a328d67256f5",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.9",
"size": 50611,
"upload_time": "2024-05-05T09:06:40",
"upload_time_iso_8601": "2024-05-05T09:06:40.015591Z",
"url": "https://files.pythonhosted.org/packages/ea/00/ef010e7d2f8a9a75d006a11428900770952f17525cbe2a5057bef5f75a40/mtprotocrypt-1.2.6.5b0-cp39-cp39-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "27051013de0fdf67052db3b6d4fe3565165874545969ef758dd6b4d51458a177",
"md5": "8ff65e7402122812089a6c7f565efe24",
"sha256": "bd02bc0eaa1d42bfd5545939ac0020ba8c9d7e3b0d5ac18df4920203d982c7ae"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp39-cp39-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "8ff65e7402122812089a6c7f565efe24",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.9",
"size": 50888,
"upload_time": "2024-05-05T09:06:41",
"upload_time_iso_8601": "2024-05-05T09:06:41.476505Z",
"url": "https://files.pythonhosted.org/packages/27/05/1013de0fdf67052db3b6d4fe3565165874545969ef758dd6b4d51458a177/mtprotocrypt-1.2.6.5b0-cp39-cp39-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c058508dbe92e0672d1a61aac17153530340cf83e09f31f5f305dddbd4739760",
"md5": "ac8f5e3d41b0bc19924ab446d0bd7932",
"sha256": "69af560accf34b3dfee09f4a6732a3efd7f0fe17d5b81dc747aa7f127e0cbeee"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "ac8f5e3d41b0bc19924ab446d0bd7932",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.9",
"size": 31479,
"upload_time": "2024-05-05T09:06:42",
"upload_time_iso_8601": "2024-05-05T09:06:42.709244Z",
"url": "https://files.pythonhosted.org/packages/c0/58/508dbe92e0672d1a61aac17153530340cf83e09f31f5f305dddbd4739760/mtprotocrypt-1.2.6.5b0-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "35283216d734a42038c68534886de40245ad2a8734aa56ca283caf76640c1163",
"md5": "322b78902cdc7a960d1a2a21fd7fe6a6",
"sha256": "4952711a8b59a40b067d55e3eb3148504a15c791767b77044f34d032bf7c0825"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "322b78902cdc7a960d1a2a21fd7fe6a6",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.9",
"size": 32321,
"upload_time": "2024-05-05T09:06:43",
"upload_time_iso_8601": "2024-05-05T09:06:43.994266Z",
"url": "https://files.pythonhosted.org/packages/35/28/3216d734a42038c68534886de40245ad2a8734aa56ca283caf76640c1163/mtprotocrypt-1.2.6.5b0-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "73cb62a1fd34823e50699c21f3747ec739a3edc5c7960c7a5dd12e05820e0daf",
"md5": "1443a7e8016725223247853795f032e2",
"sha256": "5e12ff3dbbcd421e6fb0a01501834a6df98063d75b467bd3436501ba35b09c84"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "1443a7e8016725223247853795f032e2",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.9",
"size": 30500,
"upload_time": "2024-05-05T09:06:45",
"upload_time_iso_8601": "2024-05-05T09:06:45.612555Z",
"url": "https://files.pythonhosted.org/packages/73/cb/62a1fd34823e50699c21f3747ec739a3edc5c7960c7a5dd12e05820e0daf/mtprotocrypt-1.2.6.5b0-pp310-pypy310_pp73-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2d1627077c8b21c4025b6c7d3b4ff2aaa8809da8a7ea4710eb585a0d753ee0bc",
"md5": "e4c50c4e8992b3c4f682aad40b85b7c8",
"sha256": "13c96e3dffabcd190891500ef2b69d5bcc60a4ded36f92a9147f3a5390f9cffc"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "e4c50c4e8992b3c4f682aad40b85b7c8",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.9",
"size": 30252,
"upload_time": "2024-05-05T09:06:46",
"upload_time_iso_8601": "2024-05-05T09:06:46.556573Z",
"url": "https://files.pythonhosted.org/packages/2d/16/27077c8b21c4025b6c7d3b4ff2aaa8809da8a7ea4710eb585a0d753ee0bc/mtprotocrypt-1.2.6.5b0-pp310-pypy310_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "615479735febacb0f98bf73c15c13c5eb2198053ec136c5176425c4836ae7e2a",
"md5": "67f325ff7fd564a8a11a3363f4b72e93",
"sha256": "cf5b873fa5ecbb63d8dfd81ee15f4ce665febf4b3cf3ab98a0797dbf773ca1ab"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "67f325ff7fd564a8a11a3363f4b72e93",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.9",
"size": 30449,
"upload_time": "2024-05-05T09:06:47",
"upload_time_iso_8601": "2024-05-05T09:06:47.525114Z",
"url": "https://files.pythonhosted.org/packages/61/54/79735febacb0f98bf73c15c13c5eb2198053ec136c5176425c4836ae7e2a/mtprotocrypt-1.2.6.5b0-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "adf61d617b8696114b775f7605af13c491079af904e5d61954672d76cc887cd5",
"md5": "0089bab8ec96aa2bf8727a28807a9b8c",
"sha256": "96da6e9ea54f62ce52704bc37e3e81b087bcf6933dda39cd9fa93e4b0d9eb67a"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "0089bab8ec96aa2bf8727a28807a9b8c",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.9",
"size": 30995,
"upload_time": "2024-05-05T09:06:48",
"upload_time_iso_8601": "2024-05-05T09:06:48.623935Z",
"url": "https://files.pythonhosted.org/packages/ad/f6/1d617b8696114b775f7605af13c491079af904e5d61954672d76cc887cd5/mtprotocrypt-1.2.6.5b0-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "706874f3516c1f289ffd5b7a34490a28ca219493b311433db33b9310c0af6fbe",
"md5": "4707ead08d24a87adec56a1c82f8c64d",
"sha256": "c9c85ecff1fe4da0f03dcf63dbcaeb1189c74c544ee93cce1dccd0b1738ff982"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-pp310-pypy310_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "4707ead08d24a87adec56a1c82f8c64d",
"packagetype": "bdist_wheel",
"python_version": "pp310",
"requires_python": "~=3.9",
"size": 32452,
"upload_time": "2024-05-05T09:06:50",
"upload_time_iso_8601": "2024-05-05T09:06:50.277692Z",
"url": "https://files.pythonhosted.org/packages/70/68/74f3516c1f289ffd5b7a34490a28ca219493b311433db33b9310c0af6fbe/mtprotocrypt-1.2.6.5b0-pp310-pypy310_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2f1d5e657aa9b8df0b00a6f69748846e3eb3cf6a3765583df88bd62491603f19",
"md5": "2320dd5f2f828c2ffdf8237612f54169",
"sha256": "7b3395dde13b6b41e76ab4bdb4df41f34a0c4a5d9229145eb7033b24d24d3de1"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "2320dd5f2f828c2ffdf8237612f54169",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.9",
"size": 30493,
"upload_time": "2024-05-05T09:06:51",
"upload_time_iso_8601": "2024-05-05T09:06:51.208658Z",
"url": "https://files.pythonhosted.org/packages/2f/1d/5e657aa9b8df0b00a6f69748846e3eb3cf6a3765583df88bd62491603f19/mtprotocrypt-1.2.6.5b0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "79f5f460c78126c75b34a6fff95050ca49f1b6e201b8d36539817790ac57a400",
"md5": "e260800e988de102de1de2fc39aeca26",
"sha256": "a5e21cec87c34e5e52b1c2cde166605f064962d712a65145d016c540c361f412"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "e260800e988de102de1de2fc39aeca26",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.9",
"size": 30244,
"upload_time": "2024-05-05T09:06:52",
"upload_time_iso_8601": "2024-05-05T09:06:52.756384Z",
"url": "https://files.pythonhosted.org/packages/79/f5/f460c78126c75b34a6fff95050ca49f1b6e201b8d36539817790ac57a400/mtprotocrypt-1.2.6.5b0-pp39-pypy39_pp73-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "619fdc974c433a8cc79db72d7c39cda42122e0d65a3733b7be2fe41e4aaa840a",
"md5": "70c5211cda309817cd543217d5c36d38",
"sha256": "dc42af0bf2453a6da1571cb7778377f9e3122016f71d09c9f0779639146e7cc9"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "70c5211cda309817cd543217d5c36d38",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.9",
"size": 30446,
"upload_time": "2024-05-05T09:06:53",
"upload_time_iso_8601": "2024-05-05T09:06:53.653709Z",
"url": "https://files.pythonhosted.org/packages/61/9f/dc974c433a8cc79db72d7c39cda42122e0d65a3733b7be2fe41e4aaa840a/mtprotocrypt-1.2.6.5b0-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "64472c445ff4380f9a4e451f4c39639634b6690da2756d452cae5c2ce83ad745",
"md5": "951835bd7e48793800aad3a38d16ce2a",
"sha256": "13cfd4968c4c693ecfd0de6ca3fddedd0b621061f1713c86cad9a29f33e4fd17"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "951835bd7e48793800aad3a38d16ce2a",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.9",
"size": 30991,
"upload_time": "2024-05-05T09:06:54",
"upload_time_iso_8601": "2024-05-05T09:06:54.699933Z",
"url": "https://files.pythonhosted.org/packages/64/47/2c445ff4380f9a4e451f4c39639634b6690da2756d452cae5c2ce83ad745/mtprotocrypt-1.2.6.5b0-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "476e48c44380bf852735b47b32543b630e3b0507c71c5e5ef27d8f4961fa9716",
"md5": "d0062b058d7b4e606c9ea3a2c71d1696",
"sha256": "632762db8d1cea38309cf594cf6f8794a3afa1eb637cf7d457ad233a25f8377c"
},
"downloads": -1,
"filename": "mtprotocrypt-1.2.6.5b0-pp39-pypy39_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "d0062b058d7b4e606c9ea3a2c71d1696",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.9",
"size": 32451,
"upload_time": "2024-05-05T09:06:55",
"upload_time_iso_8601": "2024-05-05T09:06:55.718240Z",
"url": "https://files.pythonhosted.org/packages/47/6e/48c44380bf852735b47b32543b630e3b0507c71c5e5ef27d8f4961fa9716/mtprotocrypt-1.2.6.5b0-pp39-pypy39_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-05 09:05:58",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "hazy-kun",
"github_project": "tgcrypto",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"tox": true,
"lcname": "mtprotocrypt"
}