mtprotocrypt


Namemtprotocrypt JSON
Version 1.2.6.5b0 PyPI version JSON
download
home_pagehttps://github.com/pyrogram
SummaryFast and Portable Cryptography Extension Library for Pyrogram
upload_time2024-05-05 09:05:58
maintainerNone
docs_urlNone
authorDan
requires_python~=3.9
licenseLGPLv3+
keywords pyrogram telegram crypto cryptography encryption mtproto extension library aes
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Dan
Elapsed time: 0.96933s