# TgCrypto
> Fast and Portable Cryptography Extension Library for Pyrogram
**TgCrypto** is a Cryptography Library written in C as a Python extension. It is designed to be portable, fast,
easy to install and use. TgCrypto is intended for [Pyrogram](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.7 or higher.
## Installation
``` bash
$ pip3 install -U tgcrypto
```
## 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
```
## Testing
1. Clone this repository: `git clone https://github.com/pyrogram/tgcrypto`.
2. Enter the directory: `cd tgcrypto`.
3. Install `tox`: `pip3 install tox`
4. Run tests: `tox`.
## License
[LGPLv3+](COPYING.lesser) © 2017-present [Dan](https://github.com/delivrance)
Raw data
{
"_id": null,
"home_page": "https://github.com/pyrogram",
"name": "TgCrypto",
"maintainer": "",
"docs_url": null,
"requires_python": "~=3.7",
"maintainer_email": "",
"keywords": "pyrogram telegram crypto cryptography encryption mtproto extension library aes",
"author": "Dan",
"author_email": "dan@pyrogram.org",
"download_url": "https://files.pythonhosted.org/packages/33/59/7cf5ced989e3139a791d5452d58cb8994de589576b80f9267ba76d794f6c/TgCrypto-1.2.5.tar.gz",
"platform": null,
"description": "# TgCrypto\n\n> Fast and Portable 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.7 or higher.\n\n## Installation\n\n``` bash\n$ pip3 install -U tgcrypto\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## Testing\n\n1. Clone this repository: `git clone https://github.com/pyrogram/tgcrypto`.\n2. Enter the directory: `cd tgcrypto`.\n3. Install `tox`: `pip3 install tox`\n4. Run tests: `tox`.\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.5",
"split_keywords": [
"pyrogram",
"telegram",
"crypto",
"cryptography",
"encryption",
"mtproto",
"extension",
"library",
"aes"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "bc1e6e33a82e6f8bbb261c762ab18da67396b05920e4cf0232ca9a8afc933a67",
"md5": "c062bc011c6bf87800e345112e6aab54",
"sha256": "4507102377002966f35f2481830b7529e00c9bbff8c7d1e09634f984af801675"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp310-cp310-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "c062bc011c6bf87800e345112e6aab54",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.7",
"size": 58986,
"upload_time": "2022-11-11T19:51:20",
"upload_time_iso_8601": "2022-11-11T19:51:20.084760Z",
"url": "https://files.pythonhosted.org/packages/bc/1e/6e33a82e6f8bbb261c762ab18da67396b05920e4cf0232ca9a8afc933a67/TgCrypto-1.2.5-cp310-cp310-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "748290b8eedd225e66f96ce87936505ea56e289944e022476976601923b74c4b",
"md5": "1de21394bd48d888eeaa8bf2d74f57e2",
"sha256": "38fe25c0d79b41d7a89caba2a78dea0358e17ca73b033cefd16abed680685829"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp310-cp310-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "1de21394bd48d888eeaa8bf2d74f57e2",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.7",
"size": 43349,
"upload_time": "2022-11-11T19:51:23",
"upload_time_iso_8601": "2022-11-11T19:51:23.151523Z",
"url": "https://files.pythonhosted.org/packages/74/82/90b8eedd225e66f96ce87936505ea56e289944e022476976601923b74c4b/TgCrypto-1.2.5-cp310-cp310-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "76c1057ff6b2a022e82bf958b9b936647cca452f155ad27f5d3ceb0a6c04520c",
"md5": "486eb35bc70ab35afe758d5f6cc8c059",
"sha256": "c035bf8ef89846f67e77e82ea85c089b6ea30631b32e8ac1a6511b9be52ab065"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp310-cp310-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "486eb35bc70ab35afe758d5f6cc8c059",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.7",
"size": 43125,
"upload_time": "2022-11-11T19:51:25",
"upload_time_iso_8601": "2022-11-11T19:51:25.213805Z",
"url": "https://files.pythonhosted.org/packages/76/c1/057ff6b2a022e82bf958b9b936647cca452f155ad27f5d3ceb0a6c04520c/TgCrypto-1.2.5-cp310-cp310-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9902b48d2e2ef16cad958138e2c48a11f6fce802bb9b42a66b28509cd530fe12",
"md5": "65f65063dc8213c1e57c811cb33b37d0",
"sha256": "f594e2680daf20dbac6bf56862f567ddc3cc8d6a19757ed07faa8320ff7acee4"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "65f65063dc8213c1e57c811cb33b37d0",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.7",
"size": 59895,
"upload_time": "2022-11-11T19:51:28",
"upload_time_iso_8601": "2022-11-11T19:51:28.068815Z",
"url": "https://files.pythonhosted.org/packages/99/02/b48d2e2ef16cad958138e2c48a11f6fce802bb9b42a66b28509cd530fe12/TgCrypto-1.2.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f04da29fb5a8bcad988f01662445f42231afd9c7518141dc8f745b4358a9c5e9",
"md5": "ef02d65d2027b7cd4bca8053f87cbe87",
"sha256": "8723a16076e229ffdf537fdb5e638227d10f44ca43e6939db1eab524de6eaed7"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "ef02d65d2027b7cd4bca8053f87cbe87",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.7",
"size": 59682,
"upload_time": "2022-11-11T19:51:30",
"upload_time_iso_8601": "2022-11-11T19:51:30.367430Z",
"url": "https://files.pythonhosted.org/packages/f0/4d/a29fb5a8bcad988f01662445f42231afd9c7518141dc8f745b4358a9c5e9/TgCrypto-1.2.5-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": "3e95aa3f59e01cd7f9feae058c9b3d0379315e3102f23ac5fd9a8050bb5d7a07",
"md5": "9b1e47a9daf979a6f55b2671c4389c1b",
"sha256": "c1c8d974b8b2d7132364b6f0f6712b92bfe47ab9c5dcee25c70327ff68d22d95"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp310-cp310-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "9b1e47a9daf979a6f55b2671c4389c1b",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.7",
"size": 63566,
"upload_time": "2022-11-11T19:51:32",
"upload_time_iso_8601": "2022-11-11T19:51:32.627373Z",
"url": "https://files.pythonhosted.org/packages/3e/95/aa3f59e01cd7f9feae058c9b3d0379315e3102f23ac5fd9a8050bb5d7a07/TgCrypto-1.2.5-cp310-cp310-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "9d121a47a04a22953fb5d48c6b6c70ffc37b84e9a9553e606863a4e5c56478f4",
"md5": "6a22359f1223ce75564a85047b0289bd",
"sha256": "89d9c143a1fcdb2562a4aa887152abbe9253e1979d7bebef2b489148e0bbe086"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp310-cp310-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "6a22359f1223ce75564a85047b0289bd",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.7",
"size": 63617,
"upload_time": "2022-11-11T19:51:35",
"upload_time_iso_8601": "2022-11-11T19:51:35.306051Z",
"url": "https://files.pythonhosted.org/packages/9d/12/1a47a04a22953fb5d48c6b6c70ffc37b84e9a9553e606863a4e5c56478f4/TgCrypto-1.2.5-cp310-cp310-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a2f7e336feec07fe8b1716498158d7b876354fb68d8ddd17ad81354adf7f7112",
"md5": "04b1f37a89819962285c973a747bd597",
"sha256": "aa4bc1d11d4a90811c162abd45a5981f171679d1b5bd0322cd7ccd16447366a2"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp310-cp310-win32.whl",
"has_sig": false,
"md5_digest": "04b1f37a89819962285c973a747bd597",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.7",
"size": 44719,
"upload_time": "2022-11-11T19:51:37",
"upload_time_iso_8601": "2022-11-11T19:51:37.373565Z",
"url": "https://files.pythonhosted.org/packages/a2/f7/e336feec07fe8b1716498158d7b876354fb68d8ddd17ad81354adf7f7112/TgCrypto-1.2.5-cp310-cp310-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "29e0c81f525860e00d0ec188a2114cebcce2912048d3a82bfdd125b295aa6e92",
"md5": "81ef68c242fd8c9179cd77dd0c7e4106",
"sha256": "39145103614c5e38fe938549742d355920f4a0778fa8259eb69c0c85ba4b1d28"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp310-cp310-win_amd64.whl",
"has_sig": false,
"md5_digest": "81ef68c242fd8c9179cd77dd0c7e4106",
"packagetype": "bdist_wheel",
"python_version": "cp310",
"requires_python": "~=3.7",
"size": 45072,
"upload_time": "2022-11-11T19:51:40",
"upload_time_iso_8601": "2022-11-11T19:51:40.043559Z",
"url": "https://files.pythonhosted.org/packages/29/e0/c81f525860e00d0ec188a2114cebcce2912048d3a82bfdd125b295aa6e92/TgCrypto-1.2.5-cp310-cp310-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "48e607dc413e57f3677e0b887975b174d9cbc8170e92651dd35a784da9571d5f",
"md5": "34ea6b5fc788e10d4080164ecbdce395",
"sha256": "59597cdb1c87eb1184088563d20b42a8f2e431e9334fed64926079044ad2a4af"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp311-cp311-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "34ea6b5fc788e10d4080164ecbdce395",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.7",
"size": 58988,
"upload_time": "2022-11-11T19:51:41",
"upload_time_iso_8601": "2022-11-11T19:51:41.686729Z",
"url": "https://files.pythonhosted.org/packages/48/e6/07dc413e57f3677e0b887975b174d9cbc8170e92651dd35a784da9571d5f/TgCrypto-1.2.5-cp311-cp311-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c1fea418223ff6079184f50f5ad8c2dac37ec40adbb42b886c3ee44fdba2a540",
"md5": "c0d84b73e3a7d65254170794d67a2d60",
"sha256": "1283337ae75b02406dd700377b8b783e70033b548492517df6e6c4156b0ed69c"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp311-cp311-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "c0d84b73e3a7d65254170794d67a2d60",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.7",
"size": 43347,
"upload_time": "2022-11-11T19:51:43",
"upload_time_iso_8601": "2022-11-11T19:51:43.662366Z",
"url": "https://files.pythonhosted.org/packages/c1/fe/a418223ff6079184f50f5ad8c2dac37ec40adbb42b886c3ee44fdba2a540/TgCrypto-1.2.5-cp311-cp311-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "390ee861a9987c6d9d3ae04d156732311e018558f862490c466c369d73094807",
"md5": "ec442067f64a3e9e72e531fb7d90efef",
"sha256": "1735437df0023a40e5fdd95e6b09ce806ec8f2cd2f8879023818840dfae60cab"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp311-cp311-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "ec442067f64a3e9e72e531fb7d90efef",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.7",
"size": 43123,
"upload_time": "2022-11-11T19:51:45",
"upload_time_iso_8601": "2022-11-11T19:51:45.094692Z",
"url": "https://files.pythonhosted.org/packages/39/0e/e861a9987c6d9d3ae04d156732311e018558f862490c466c369d73094807/TgCrypto-1.2.5-cp311-cp311-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0dced60e249ac4d31d591f4c8ca76e7bd537f4c54f1947b400a14ac3a1678b09",
"md5": "5271efd329772147f5bac7eefc91f3d5",
"sha256": "cfa17a20206532c6d2442c9d7a7f6434120bd75896ad9a3e9b9277477afa084f"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "5271efd329772147f5bac7eefc91f3d5",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.7",
"size": 60713,
"upload_time": "2022-11-11T19:51:46",
"upload_time_iso_8601": "2022-11-11T19:51:46.411626Z",
"url": "https://files.pythonhosted.org/packages/0d/ce/d60e249ac4d31d591f4c8ca76e7bd537f4c54f1947b400a14ac3a1678b09/TgCrypto-1.2.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "275550f81b1a557bd8f9b73f7fcda2381f8826665858750968394ceec0b01282",
"md5": "aaffdf5dadafe8c6973e894e444f5d10",
"sha256": "48da3674474839e5619e7430ff1f98aed9f55369f3cfaef7f65511852869572e"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "aaffdf5dadafe8c6973e894e444f5d10",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.7",
"size": 60418,
"upload_time": "2022-11-11T19:51:47",
"upload_time_iso_8601": "2022-11-11T19:51:47.872035Z",
"url": "https://files.pythonhosted.org/packages/27/55/50f81b1a557bd8f9b73f7fcda2381f8826665858750968394ceec0b01282/TgCrypto-1.2.5-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": "f3557f5f5a024b71ef81b07c3fe15e79d03b634eb349b04bc79a62c8c3ed3376",
"md5": "6aefab6c947eee2df907b02d300caa6f",
"sha256": "b49e982e5b156be821a5235bd9102c00dc506a58607e2c8bd50ac872724a951f"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp311-cp311-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "6aefab6c947eee2df907b02d300caa6f",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.7",
"size": 64397,
"upload_time": "2022-11-11T19:51:49",
"upload_time_iso_8601": "2022-11-11T19:51:49.609661Z",
"url": "https://files.pythonhosted.org/packages/f3/55/7f5f5a024b71ef81b07c3fe15e79d03b634eb349b04bc79a62c8c3ed3376/TgCrypto-1.2.5-cp311-cp311-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "763e8f059edce82de8ebbc1e513076c0f65a86fac95887fae21ae087440ef23a",
"md5": "086833930f4d4296d24598170c271d01",
"sha256": "9d9f13586065a6d86d05c16409054033a84be208acee29b49f6f194e27b08642"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp311-cp311-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "086833930f4d4296d24598170c271d01",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.7",
"size": 64436,
"upload_time": "2022-11-11T19:51:51",
"upload_time_iso_8601": "2022-11-11T19:51:51.414527Z",
"url": "https://files.pythonhosted.org/packages/76/3e/8f059edce82de8ebbc1e513076c0f65a86fac95887fae21ae087440ef23a/TgCrypto-1.2.5-cp311-cp311-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eb87fe894eb7c4cce4b6f710223c24e0ca22f4107fe46f3f56091ceabd482de7",
"md5": "2e08c8bf3e41b7bbb05790a25c796434",
"sha256": "10dd3870aecb1a783c6eafd3b164b2149dbc93a9ee13feb7e6f5c58f87c24cd0"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp311-cp311-win32.whl",
"has_sig": false,
"md5_digest": "2e08c8bf3e41b7bbb05790a25c796434",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.7",
"size": 44723,
"upload_time": "2022-11-11T19:51:52",
"upload_time_iso_8601": "2022-11-11T19:51:52.982712Z",
"url": "https://files.pythonhosted.org/packages/eb/87/fe894eb7c4cce4b6f710223c24e0ca22f4107fe46f3f56091ceabd482de7/TgCrypto-1.2.5-cp311-cp311-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c1fcb918235b19b70a45f4a596c773fad2c379d941d2ac5005293e2ee18bdc63",
"md5": "2899d159ae0a6bc79487d0f41b684ec3",
"sha256": "a1beec47d6af8b509af7cf266e30f7703208076076594714005b42d2c25225b3"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp311-cp311-win_amd64.whl",
"has_sig": false,
"md5_digest": "2899d159ae0a6bc79487d0f41b684ec3",
"packagetype": "bdist_wheel",
"python_version": "cp311",
"requires_python": "~=3.7",
"size": 45073,
"upload_time": "2022-11-11T19:51:54",
"upload_time_iso_8601": "2022-11-11T19:51:54.724222Z",
"url": "https://files.pythonhosted.org/packages/c1/fc/b918235b19b70a45f4a596c773fad2c379d941d2ac5005293e2ee18bdc63/TgCrypto-1.2.5-cp311-cp311-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "0eb1ffa36252c151c90d1f4598b3136c367e3d7a262853decaf6b742a0b4316a",
"md5": "fd08965c5c113563610a8118ddbf0cc6",
"sha256": "c133ddc95ae9c6cd6ad742c4b8c30191214db8dc724268bee59a339e22b2028b"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp37-cp37m-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "fd08965c5c113563610a8118ddbf0cc6",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": "~=3.7",
"size": 43356,
"upload_time": "2022-11-11T19:51:56",
"upload_time_iso_8601": "2022-11-11T19:51:56.159493Z",
"url": "https://files.pythonhosted.org/packages/0e/b1/ffa36252c151c90d1f4598b3136c367e3d7a262853decaf6b742a0b4316a/TgCrypto-1.2.5-cp37-cp37m-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "057e3bc4f0570e1763b82c1d4026ee2a16fc0b1ff309aa82576c304180277de8",
"md5": "65602c53a71822da1db4794a37a1765d",
"sha256": "7f6537f6af3d80be67bd2625a0990ee88c6ae58d33bdb88d99591bd6e97ee7a0"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "65602c53a71822da1db4794a37a1765d",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": "~=3.7",
"size": 61435,
"upload_time": "2022-11-11T19:51:57",
"upload_time_iso_8601": "2022-11-11T19:51:57.902653Z",
"url": "https://files.pythonhosted.org/packages/05/7e/3bc4f0570e1763b82c1d4026ee2a16fc0b1ff309aa82576c304180277de8/TgCrypto-1.2.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2c554446d6597af3547fe913e13a9a58eb644a2ea491c55d8deb10781ac850da",
"md5": "e8d1631fa05d7f33fe8c0fb42eebf19c",
"sha256": "bdebbd9cffd10c42a2f60886dcab0272ddd38330d0cf7ccf026230b826573f59"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "e8d1631fa05d7f33fe8c0fb42eebf19c",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": "~=3.7",
"size": 61178,
"upload_time": "2022-11-11T19:52:01",
"upload_time_iso_8601": "2022-11-11T19:52:01.800107Z",
"url": "https://files.pythonhosted.org/packages/2c/55/4446d6597af3547fe913e13a9a58eb644a2ea491c55d8deb10781ac850da/TgCrypto-1.2.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "91383c8df336d1e01d3df84833005c20ae41abc4ac083659aed4a721d65246c6",
"md5": "e7ef8bdae93df50c7af105205055d72a",
"sha256": "45683659ec6475ee8ff60e12167ec19aacfd7527decafe446434fa1a7e6760a7"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp37-cp37m-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "e7ef8bdae93df50c7af105205055d72a",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": "~=3.7",
"size": 64655,
"upload_time": "2022-11-11T19:52:03",
"upload_time_iso_8601": "2022-11-11T19:52:03.251023Z",
"url": "https://files.pythonhosted.org/packages/91/38/3c8df336d1e01d3df84833005c20ae41abc4ac083659aed4a721d65246c6/TgCrypto-1.2.5-cp37-cp37m-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2a194e1400fe4de1f1143c19dd35e39e91409b36822274a6f77a37eca7e144d9",
"md5": "c7c194bbec2b0437620296e834b911f5",
"sha256": "eafad246fd9aa63ff709a6e8c905c24fd7520ef96e33a2c3e1ccdb4fb2b2f331"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp37-cp37m-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "c7c194bbec2b0437620296e834b911f5",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": "~=3.7",
"size": 64668,
"upload_time": "2022-11-11T19:52:04",
"upload_time_iso_8601": "2022-11-11T19:52:04.801570Z",
"url": "https://files.pythonhosted.org/packages/2a/19/4e1400fe4de1f1143c19dd35e39e91409b36822274a6f77a37eca7e144d9/TgCrypto-1.2.5-cp37-cp37m-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3c75d9305e9782c14c75bc11d79eff01b163e60c336f0d6325582e48d0957a99",
"md5": "63336d88d2a9a01704bb583d65dc357a",
"sha256": "1445217d22101946d38ee7d628cdb3de92db4eb130183a22030c07d7888f21b0"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp37-cp37m-win32.whl",
"has_sig": false,
"md5_digest": "63336d88d2a9a01704bb583d65dc357a",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": "~=3.7",
"size": 44742,
"upload_time": "2022-11-11T19:52:06",
"upload_time_iso_8601": "2022-11-11T19:52:06.698883Z",
"url": "https://files.pythonhosted.org/packages/3c/75/d9305e9782c14c75bc11d79eff01b163e60c336f0d6325582e48d0957a99/TgCrypto-1.2.5-cp37-cp37m-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "5b6f33e8609eecefdd8509a58d6b230fa87c85596cfc078b3f5b09c96e12f5f4",
"md5": "fc0449b4c4f69e4fa8687385f39f6bab",
"sha256": "b7e8402fe4023dc9666c0bc1b30fcf0d98a294e48d35f311a3eadfe105af04d4"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp37-cp37m-win_amd64.whl",
"has_sig": false,
"md5_digest": "fc0449b4c4f69e4fa8687385f39f6bab",
"packagetype": "bdist_wheel",
"python_version": "cp37",
"requires_python": "~=3.7",
"size": 45073,
"upload_time": "2022-11-11T19:52:08",
"upload_time_iso_8601": "2022-11-11T19:52:08.138224Z",
"url": "https://files.pythonhosted.org/packages/5b/6f/33e8609eecefdd8509a58d6b230fa87c85596cfc078b3f5b09c96e12f5f4/TgCrypto-1.2.5-cp37-cp37m-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "10e1b981c353773c156c475e23dfc4140d22623ae150b3f0e5bf8825c5661782",
"md5": "f3050fc1c27093b59ced61137881768e",
"sha256": "56e1ec34e75fa2e3dcf7f74f1017d8e16c1eb8a8e031eaaa06c57f836e0d3bcc"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp38-cp38-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "f3050fc1c27093b59ced61137881768e",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.7",
"size": 58984,
"upload_time": "2022-11-11T19:52:09",
"upload_time_iso_8601": "2022-11-11T19:52:09.581994Z",
"url": "https://files.pythonhosted.org/packages/10/e1/b981c353773c156c475e23dfc4140d22623ae150b3f0e5bf8825c5661782/TgCrypto-1.2.5-cp38-cp38-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "8866a3de35fafc5f8b230aea5403d2882ad96bdebee9a90344854f5aec0e9261",
"md5": "eeb6dcf80f59bc1a32c3f959fe0510ba",
"sha256": "ca8814d6cc412775a43a021fce2d23e83a5336e9e9f38d0998d821cdf55c1d50"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp38-cp38-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "eeb6dcf80f59bc1a32c3f959fe0510ba",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.7",
"size": 43346,
"upload_time": "2022-11-11T19:52:11",
"upload_time_iso_8601": "2022-11-11T19:52:11.718421Z",
"url": "https://files.pythonhosted.org/packages/88/66/a3de35fafc5f8b230aea5403d2882ad96bdebee9a90344854f5aec0e9261/TgCrypto-1.2.5-cp38-cp38-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "57110cbcc61c9072971d8d9ec33526b12b1889c2d7f041d480e26c26851c4b1d",
"md5": "e64cbc221f3753abb9cc5e62014dc4d7",
"sha256": "bb82e53f20ce5653573832f3c05fa525cc1769bdd685408b19f26d82d5e9001b"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp38-cp38-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "e64cbc221f3753abb9cc5e62014dc4d7",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.7",
"size": 43120,
"upload_time": "2022-11-11T19:52:14",
"upload_time_iso_8601": "2022-11-11T19:52:14.346937Z",
"url": "https://files.pythonhosted.org/packages/57/11/0cbcc61c9072971d8d9ec33526b12b1889c2d7f041d480e26c26851c4b1d/TgCrypto-1.2.5-cp38-cp38-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "51b53b8fd7c78024491fefc0afdbad375cc82e3b641ba18f05c9fcf81cc162ce",
"md5": "34eff5c38099b32a26d5fb6c707b6342",
"sha256": "0133936eac63cc9529b497d759b7d0ca21e491bb42481b40b603ee63bb8c10b7"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "34eff5c38099b32a26d5fb6c707b6342",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.7",
"size": 60240,
"upload_time": "2022-11-11T19:52:16",
"upload_time_iso_8601": "2022-11-11T19:52:16.947699Z",
"url": "https://files.pythonhosted.org/packages/51/b5/3b8fd7c78024491fefc0afdbad375cc82e3b641ba18f05c9fcf81cc162ce/TgCrypto-1.2.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ba779f80bebad95ed096411289033fb44f3d5cd0ad9a74fafdcd8dfae341997d",
"md5": "b1208ab1cbebb02d82bff357f5c2485c",
"sha256": "76fe0a3ad838dcf300ac88233cbffc2ad63478eb0ae9fa671694e184d88ec1cd"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "b1208ab1cbebb02d82bff357f5c2485c",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.7",
"size": 60027,
"upload_time": "2022-11-11T19:52:19",
"upload_time_iso_8601": "2022-11-11T19:52:19.064745Z",
"url": "https://files.pythonhosted.org/packages/ba/77/9f80bebad95ed096411289033fb44f3d5cd0ad9a74fafdcd8dfae341997d/TgCrypto-1.2.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "af2767c885a639257bc15f0e450c059f9ac7a84d77683ca5a3839eb7c95e82c8",
"md5": "222b533ee6963af265cfa7c21db7cbf1",
"sha256": "7070c6e063befb6d04eab46e8b1ffbee47a497971be11496d23837fc007e7685"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp38-cp38-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "222b533ee6963af265cfa7c21db7cbf1",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.7",
"size": 63586,
"upload_time": "2022-11-11T19:52:20",
"upload_time_iso_8601": "2022-11-11T19:52:20.374443Z",
"url": "https://files.pythonhosted.org/packages/af/27/67c885a639257bc15f0e450c059f9ac7a84d77683ca5a3839eb7c95e82c8/TgCrypto-1.2.5-cp38-cp38-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "2d96ca7ba309769f3543f68df0b3e25d3e390d9a864ab25678898559fa9da866",
"md5": "4abb4b4e2331b0a000da9e3c78540e95",
"sha256": "ed53d0c4a5e6f75d4b1cab17535afe210cd3120fb88f44a8c4562d43c2a3bb16"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp38-cp38-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "4abb4b4e2331b0a000da9e3c78540e95",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.7",
"size": 63655,
"upload_time": "2022-11-11T19:52:21",
"upload_time_iso_8601": "2022-11-11T19:52:21.765204Z",
"url": "https://files.pythonhosted.org/packages/2d/96/ca7ba309769f3543f68df0b3e25d3e390d9a864ab25678898559fa9da866/TgCrypto-1.2.5-cp38-cp38-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a49b44af0083d713d11ad0fcbface305cedb3a71058cdbd256d990f0374f883a",
"md5": "4146ab589673a55eced0139058a492d9",
"sha256": "f7ec9f0a571fcc38fbee224943ed9918123f752ac19bae5c195d8322f5b20fab"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp38-cp38-win32.whl",
"has_sig": false,
"md5_digest": "4146ab589673a55eced0139058a492d9",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.7",
"size": 44715,
"upload_time": "2022-11-11T19:52:23",
"upload_time_iso_8601": "2022-11-11T19:52:23.486445Z",
"url": "https://files.pythonhosted.org/packages/a4/9b/44af0083d713d11ad0fcbface305cedb3a71058cdbd256d990f0374f883a/TgCrypto-1.2.5-cp38-cp38-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "eed94a1f1d4ab605d4d84146cef739f01699056603d7fe88df9d6d396121c0af",
"md5": "cecce522ebe3eb6f8858ba6d24692907",
"sha256": "362ab28fc75e6b066e5bb15fb5296f75f4238d6c1cbcaaa1e5756cd5c168b74b"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp38-cp38-win_amd64.whl",
"has_sig": false,
"md5_digest": "cecce522ebe3eb6f8858ba6d24692907",
"packagetype": "bdist_wheel",
"python_version": "cp38",
"requires_python": "~=3.7",
"size": 45067,
"upload_time": "2022-11-11T19:52:24",
"upload_time_iso_8601": "2022-11-11T19:52:24.926800Z",
"url": "https://files.pythonhosted.org/packages/ee/d9/4a1f1d4ab605d4d84146cef739f01699056603d7fe88df9d6d396121c0af/TgCrypto-1.2.5-cp38-cp38-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "e98e0a0b14d40af57dd2c9a18af56714d7afc53d64e072de5474ea62e5b6fdb9",
"md5": "437cdef629e79e380e74dc6559bdbaf5",
"sha256": "7885a75db09ce8bdba42d2c332085bfe314f232541a729808c7507ffa261ff9a"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp39-cp39-macosx_10_9_universal2.whl",
"has_sig": false,
"md5_digest": "437cdef629e79e380e74dc6559bdbaf5",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.7",
"size": 58984,
"upload_time": "2022-11-11T19:52:26",
"upload_time_iso_8601": "2022-11-11T19:52:26.320646Z",
"url": "https://files.pythonhosted.org/packages/e9/8e/0a0b14d40af57dd2c9a18af56714d7afc53d64e072de5474ea62e5b6fdb9/TgCrypto-1.2.5-cp39-cp39-macosx_10_9_universal2.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a5491306f6c1fdc51769fd29706f13b2aab71f8b616bf24799bc50009e7276af",
"md5": "a4ea1e524f74de5300b1801040d746aa",
"sha256": "0d28aa317364a5c27317fe97a48267aa1c65c9aaf589909e97489ebe82a714e3"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp39-cp39-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "a4ea1e524f74de5300b1801040d746aa",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.7",
"size": 43348,
"upload_time": "2022-11-11T19:52:27",
"upload_time_iso_8601": "2022-11-11T19:52:27.694623Z",
"url": "https://files.pythonhosted.org/packages/a5/49/1306f6c1fdc51769fd29706f13b2aab71f8b616bf24799bc50009e7276af/TgCrypto-1.2.5-cp39-cp39-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "c26ab5311038ff1ddacb1f40d35f8b69b1d8c7c5ec9bf874655ae8e6dd8b2214",
"md5": "97c1ca150423f2ab29785e57aebdd52e",
"sha256": "940974e19044dc65bcf7b9c5255173b896dff010142f3833047dc55d59cde21c"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp39-cp39-macosx_11_0_arm64.whl",
"has_sig": false,
"md5_digest": "97c1ca150423f2ab29785e57aebdd52e",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.7",
"size": 43118,
"upload_time": "2022-11-11T19:52:29",
"upload_time_iso_8601": "2022-11-11T19:52:29.849031Z",
"url": "https://files.pythonhosted.org/packages/c2/6a/b5311038ff1ddacb1f40d35f8b69b1d8c7c5ec9bf874655ae8e6dd8b2214/TgCrypto-1.2.5-cp39-cp39-macosx_11_0_arm64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a07e48a6a93da084727d2929ed0b162bdf5cf42f746b511523fae111f6f24edd",
"md5": "46853437a0eae38b7d7615a201f070fd",
"sha256": "457c657dd10ffb4bbbb007132a0f6a7bee5080176a98c51f285fedf636b624cb"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "46853437a0eae38b7d7615a201f070fd",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.7",
"size": 59687,
"upload_time": "2022-11-11T19:52:31",
"upload_time_iso_8601": "2022-11-11T19:52:31.468575Z",
"url": "https://files.pythonhosted.org/packages/a0/7e/48a6a93da084727d2929ed0b162bdf5cf42f746b511523fae111f6f24edd/TgCrypto-1.2.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b5b1458f6ea8be37beb46600adc568c297edab09e87c1bd881cc5aa1a316074c",
"md5": "3e44221653e822ce9dc64e647d860ed9",
"sha256": "539bdc6b9239fb6a6b134591a998dc7f50d4dcc4fed861f80540682acc0c3802"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "3e44221653e822ce9dc64e647d860ed9",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.7",
"size": 59489,
"upload_time": "2022-11-11T19:52:32",
"upload_time_iso_8601": "2022-11-11T19:52:32.926783Z",
"url": "https://files.pythonhosted.org/packages/b5/b1/458f6ea8be37beb46600adc568c297edab09e87c1bd881cc5aa1a316074c/TgCrypto-1.2.5-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": "67768478b9a4d243d93bd1e25649229e8e891d3dd86b6753f36d442cd5fd8549",
"md5": "21aeb58912f4356df334076a592eab03",
"sha256": "4d70d5517d64ca952896b726d22c8a66594e6f6259ee2cb4fa134c02d0e8c3e0"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp39-cp39-musllinux_1_1_i686.whl",
"has_sig": false,
"md5_digest": "21aeb58912f4356df334076a592eab03",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.7",
"size": 63357,
"upload_time": "2022-11-11T19:52:35",
"upload_time_iso_8601": "2022-11-11T19:52:35.359312Z",
"url": "https://files.pythonhosted.org/packages/67/76/8478b9a4d243d93bd1e25649229e8e891d3dd86b6753f36d442cd5fd8549/TgCrypto-1.2.5-cp39-cp39-musllinux_1_1_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fa2481f3062d5f1989210e5bdf03f5725fdc92551e73f7136b9f6f2ddbc2d2d5",
"md5": "b665980f6b3c5f1764882152b1d21dd9",
"sha256": "90b6337d3ae4348ed14f89dd2ebf7011fa63d67a48c8a98d955a1e392176c60a"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp39-cp39-musllinux_1_1_x86_64.whl",
"has_sig": false,
"md5_digest": "b665980f6b3c5f1764882152b1d21dd9",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.7",
"size": 63416,
"upload_time": "2022-11-11T19:52:36",
"upload_time_iso_8601": "2022-11-11T19:52:36.974099Z",
"url": "https://files.pythonhosted.org/packages/fa/24/81f3062d5f1989210e5bdf03f5725fdc92551e73f7136b9f6f2ddbc2d2d5/TgCrypto-1.2.5-cp39-cp39-musllinux_1_1_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "47584d42aadaca4422e7ca69cd2ec24033165dc67be08267a5b3f425f5728d1d",
"md5": "1ac3ff7f20058083f10aae95c44a178b",
"sha256": "37c4b9be82716fbc6d2b123caef448eee28683888803db075d842327766f7624"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp39-cp39-win32.whl",
"has_sig": false,
"md5_digest": "1ac3ff7f20058083f10aae95c44a178b",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.7",
"size": 44719,
"upload_time": "2022-11-11T19:52:38",
"upload_time_iso_8601": "2022-11-11T19:52:38.501945Z",
"url": "https://files.pythonhosted.org/packages/47/58/4d42aadaca4422e7ca69cd2ec24033165dc67be08267a5b3f425f5728d1d/TgCrypto-1.2.5-cp39-cp39-win32.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "f459fd84e8d904f2dd294980543c6f046d64ad9d44bb9f7e83670bb903298abb",
"md5": "dbf35f3dca5fc5d89f84bb9d999583c9",
"sha256": "6e96b3a478fae977228c5750194c20a18cde402bbbea6593de424f84d4a8893b"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-cp39-cp39-win_amd64.whl",
"has_sig": false,
"md5_digest": "dbf35f3dca5fc5d89f84bb9d999583c9",
"packagetype": "bdist_wheel",
"python_version": "cp39",
"requires_python": "~=3.7",
"size": 45068,
"upload_time": "2022-11-11T19:52:40",
"upload_time_iso_8601": "2022-11-11T19:52:40.703228Z",
"url": "https://files.pythonhosted.org/packages/f4/59/fd84e8d904f2dd294980543c6f046d64ad9d44bb9f7e83670bb903298abb/TgCrypto-1.2.5-cp39-cp39-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "3f79248dd434d8cbefe831d253c58b362f8f90a55ed2ad2439b2e5182efd1092",
"md5": "2556b2c278528214c839a98ff037235d",
"sha256": "4d93686e6254eb0a32a0a60e849b41a867a2770b27b48f978fd391dce2b83aeb"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "2556b2c278528214c839a98ff037235d",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": "~=3.7",
"size": 42849,
"upload_time": "2022-11-11T19:52:42",
"upload_time_iso_8601": "2022-11-11T19:52:42.138394Z",
"url": "https://files.pythonhosted.org/packages/3f/79/248dd434d8cbefe831d253c58b362f8f90a55ed2ad2439b2e5182efd1092/TgCrypto-1.2.5-pp37-pypy37_pp73-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a44d8528df0666c26195142da9f51e4aaa1a841e5020c488a430b7a1f73958b7",
"md5": "faa303ffa585178ab32b2ce7b471d91a",
"sha256": "7b7fe81fad7c64479c83f31fc10e79fb20a114bca414e5e17f5e0c8b363153f8"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "faa303ffa585178ab32b2ce7b471d91a",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": "~=3.7",
"size": 43403,
"upload_time": "2022-11-11T19:52:43",
"upload_time_iso_8601": "2022-11-11T19:52:43.678977Z",
"url": "https://files.pythonhosted.org/packages/a4/4d/8528df0666c26195142da9f51e4aaa1a841e5020c488a430b7a1f73958b7/TgCrypto-1.2.5-pp37-pypy37_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6ed5410e63cd1d3a14c0e8bb83a7a94f518ef4a1b41429b7e498eb6c39243450",
"md5": "400b4c03c0ddfbb95a34ffd518cfbf96",
"sha256": "ace308f5842a0d6c04fc1ae92cb4320b4b13bfc711031c1c18d9124697685ba0"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "400b4c03c0ddfbb95a34ffd518cfbf96",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": "~=3.7",
"size": 44023,
"upload_time": "2022-11-11T19:52:45",
"upload_time_iso_8601": "2022-11-11T19:52:45.107470Z",
"url": "https://files.pythonhosted.org/packages/6e/d5/410e63cd1d3a14c0e8bb83a7a94f518ef4a1b41429b7e498eb6c39243450/TgCrypto-1.2.5-pp37-pypy37_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b4fd6485df95e6ba492b5615ea4688a16239651c90258589b5de742a022ac5c5",
"md5": "3bcb971d2a7e536df68d02ef11e681cb",
"sha256": "36a570ecd12a428222b10ea8b5a8e0d83ea8750e4de1d5ea53d068b84341b450"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp37-pypy37_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "3bcb971d2a7e536df68d02ef11e681cb",
"packagetype": "bdist_wheel",
"python_version": "pp37",
"requires_python": "~=3.7",
"size": 45217,
"upload_time": "2022-11-11T19:52:46",
"upload_time_iso_8601": "2022-11-11T19:52:46.948678Z",
"url": "https://files.pythonhosted.org/packages/b4/fd/6485df95e6ba492b5615ea4688a16239651c90258589b5de742a022ac5c5/TgCrypto-1.2.5-pp37-pypy37_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "a1a5449adb190df16a41b4a17a2cb8fdfccc79cc2a167b4fc7ec077c74b5468a",
"md5": "b574e9f4a6c568f3fa93836475a942c3",
"sha256": "ba9e067fd9751b3bbd7c979210431000e44f70001d921237e9c4672bf30f07bc"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "b574e9f4a6c568f3fa93836475a942c3",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": "~=3.7",
"size": 42848,
"upload_time": "2022-11-11T19:52:48",
"upload_time_iso_8601": "2022-11-11T19:52:48.277185Z",
"url": "https://files.pythonhosted.org/packages/a1/a5/449adb190df16a41b4a17a2cb8fdfccc79cc2a167b4fc7ec077c74b5468a/TgCrypto-1.2.5-pp38-pypy38_pp73-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b7e4c49a43262d41a1183d24525303c3bc61677038182a8c7481493267c15841",
"md5": "80d2cce51b72455f687952cccf18f746",
"sha256": "80e2414f1a95087d7e46fb54cb387df66424c4ec156fb1a8d8e1d4aa38eb65cf"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "80d2cce51b72455f687952cccf18f746",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": "~=3.7",
"size": 43266,
"upload_time": "2022-11-11T19:52:49",
"upload_time_iso_8601": "2022-11-11T19:52:49.613414Z",
"url": "https://files.pythonhosted.org/packages/b7/e4/c49a43262d41a1183d24525303c3bc61677038182a8c7481493267c15841/TgCrypto-1.2.5-pp38-pypy38_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "6ae3baa0e1c8d1a8ef1f71b5b75a7d370f813901d9173c9d7a977a35454d50fd",
"md5": "4127716d9e6016c330764ee6aca6def8",
"sha256": "66c5b5bf701b5efc3e4c5d83439d767a3dd48f17a1d840eda6b4d1918844a8f9"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "4127716d9e6016c330764ee6aca6def8",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": "~=3.7",
"size": 43886,
"upload_time": "2022-11-11T19:52:51",
"upload_time_iso_8601": "2022-11-11T19:52:51.047645Z",
"url": "https://files.pythonhosted.org/packages/6a/e3/baa0e1c8d1a8ef1f71b5b75a7d370f813901d9173c9d7a977a35454d50fd/TgCrypto-1.2.5-pp38-pypy38_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "b49a93a61016c2d6d5a1a902ada7e187d511e2c463ed137c1f48efc9d3c21f40",
"md5": "903fc908a69cd6fcd1f87652941cd0f2",
"sha256": "5d27d6c414eb4775022b05fdd571090bfd92854115e86184ac1832060fbaa510"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp38-pypy38_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "903fc908a69cd6fcd1f87652941cd0f2",
"packagetype": "bdist_wheel",
"python_version": "pp38",
"requires_python": "~=3.7",
"size": 45214,
"upload_time": "2022-11-11T19:52:52",
"upload_time_iso_8601": "2022-11-11T19:52:52.466646Z",
"url": "https://files.pythonhosted.org/packages/b4/9a/93a61016c2d6d5a1a902ada7e187d511e2c463ed137c1f48efc9d3c21f40/TgCrypto-1.2.5-pp38-pypy38_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "63cd9a34246dc7b864c72703f46ae8c1c469c28abcfba2a8c3bcde14415deab2",
"md5": "1fdb2099a212b1fe694b591931e502b0",
"sha256": "9b0a088ff2e05b6bbe891da936f62b99bd85202b2b9f4f57f71a408490dd518c"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
"has_sig": false,
"md5_digest": "1fdb2099a212b1fe694b591931e502b0",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.7",
"size": 42850,
"upload_time": "2022-11-11T19:52:54",
"upload_time_iso_8601": "2022-11-11T19:52:54.432789Z",
"url": "https://files.pythonhosted.org/packages/63/cd/9a34246dc7b864c72703f46ae8c1c469c28abcfba2a8c3bcde14415deab2/TgCrypto-1.2.5-pp39-pypy39_pp73-macosx_10_9_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "ff54a311f3ae06adbe153f9216e40314ee0ae4f9f9cc33b48a198bc6dd25b2a6",
"md5": "77283d651f9b2f98c02f4571de52c1ec",
"sha256": "f245895c7d518342089d15b5dca3cee9ffa5a0f3534db9d5a930f6a27dff4adf"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"has_sig": false,
"md5_digest": "77283d651f9b2f98c02f4571de52c1ec",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.7",
"size": 43266,
"upload_time": "2022-11-11T19:52:55",
"upload_time_iso_8601": "2022-11-11T19:52:55.861307Z",
"url": "https://files.pythonhosted.org/packages/ff/54/a311f3ae06adbe153f9216e40314ee0ae4f9f9cc33b48a198bc6dd25b2a6/TgCrypto-1.2.5-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "517cb21327db01900b1e03688797d247c89a1d0923f9412ee35119ccb5ab3a0a",
"md5": "a82eaa93991e3932dc2c0f1c8d2508d2",
"sha256": "7dbf607d645c39a577a0f8571039d11ddd2dcdf9656465be75f9e0f540472444"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl",
"has_sig": false,
"md5_digest": "a82eaa93991e3932dc2c0f1c8d2508d2",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.7",
"size": 43887,
"upload_time": "2022-11-11T19:52:57",
"upload_time_iso_8601": "2022-11-11T19:52:57.259285Z",
"url": "https://files.pythonhosted.org/packages/51/7c/b21327db01900b1e03688797d247c89a1d0923f9412ee35119ccb5ab3a0a/TgCrypto-1.2.5-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": "9a85bbecf5e7794ba23cd44efdc27c4c3fcb0399591fae139e613ff52524fa30",
"md5": "58dcc8b9f5689f4787cc4a0e86a231c4",
"sha256": "d6b0c2dc84e632ce7b3d0b767cfe20967e557ad7d71ea5dbd7df2dd544323181"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5-pp39-pypy39_pp73-win_amd64.whl",
"has_sig": false,
"md5_digest": "58dcc8b9f5689f4787cc4a0e86a231c4",
"packagetype": "bdist_wheel",
"python_version": "pp39",
"requires_python": "~=3.7",
"size": 45216,
"upload_time": "2022-11-11T19:52:58",
"upload_time_iso_8601": "2022-11-11T19:52:58.728379Z",
"url": "https://files.pythonhosted.org/packages/9a/85/bbecf5e7794ba23cd44efdc27c4c3fcb0399591fae139e613ff52524fa30/TgCrypto-1.2.5-pp39-pypy39_pp73-win_amd64.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "33597cf5ced989e3139a791d5452d58cb8994de589576b80f9267ba76d794f6c",
"md5": "7d418ae8e72538a2e39cc4a7912715a1",
"sha256": "9bc2cac6fb9a12ef5b08f3dd500174fe374d89b660cce981f57e3138559cb682"
},
"downloads": -1,
"filename": "TgCrypto-1.2.5.tar.gz",
"has_sig": false,
"md5_digest": "7d418ae8e72538a2e39cc4a7912715a1",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "~=3.7",
"size": 37280,
"upload_time": "2022-11-11T19:55:11",
"upload_time_iso_8601": "2022-11-11T19:55:11.436983Z",
"url": "https://files.pythonhosted.org/packages/33/59/7cf5ced989e3139a791d5452d58cb8994de589576b80f9267ba76d794f6c/TgCrypto-1.2.5.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2022-11-11 19:55:11",
"github": false,
"gitlab": false,
"bitbucket": false,
"lcname": "tgcrypto"
}