tinyaes


Nametinyaes JSON
Version 1.1.0 PyPI version JSON
download
home_pagehttps://github.com/naufraghi/tinyaes-py
Summarytiny-AES-c wrapper in Cython
upload_time2023-12-05 14:44:31
maintainer
docs_urlNone
authorMatteo Bertini
requires_python
licenseMIT
keywords aes cryptography block-cipher stream-cipher
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # tiny-AES-c Cython wrapper
[![PyPI version](https://badge.fury.io/py/tinyaes.svg)](https://pypi.org/project/tinyaes/)

[`tinyaes`](https://github.com/naufraghi/tinyaes-py) is a few lines Cython
wrapper for the [`tiny-AES-c`](https://github.com/kokke/tiny-AES-c) library, a
_Small portable AES128/192/256 in C_.

The library offers a few modes, CTR and CBC modes are the only ones currently wrapped.
Given the C API works modifying a buffer in-place, the wrapper offers:

- `CTR_xcrypt_buffer(..)` that works on all bytes convertible types, and
  encrypting a copy of the buffer,
- `CTR_xcrypt_buffer_inplace(..)` that works on `bytearray`s only, modifying
  the buffer in-place.
- `CBC_encrypt_buffer_inplace_raw(..)` that works on `bytearray`s only, modifying
  the buffer in-place (manual padding).
- `CBC_decrypt_buffer_inplace_raw(..)` that works on `bytearray`s only, modifying
  the buffer in-place (manual unpadding).

<details><summary>CBC usage Example:</summary>

```
import tinyaes
import binascii


def pad(m):
    return m + bytes([16 - len(m) % 16] * (16 - len(m) % 16))


def unpad(ct):
    return ct[:-ct[-1]]


# assign key and IV
aes_enc = tinyaes.AES(bytes.fromhex('11223344556677889900AABBCCDDEEFF'),
                      bytes.fromhex('FFEEDDCCBBAA00998877665544332211'))
aes_dec = tinyaes.AES(bytes.fromhex('11223344556677889900AABBCCDDEEFF'),
                      bytes.fromhex('FFEEDDCCBBAA00998877665544332211'))

text = b"hello"
print(text)  # b'hello'
# padding plaintext to a multiple of block size
text = pad(text)
print(binascii.hexlify(bytearray(text)))  # b'68656c6c6f0b0b0b0b0b0b0b0b0b0b0b' hex representation of added text
aes_enc.CBC_encrypt_buffer_inplace_raw(text)  # b'5adc04828f9421c34210b05fe5c92bfd' hex representation of encrypted text
print(binascii.hexlify(bytearray(text)))
aes_dec.CBC_decrypt_buffer_inplace_raw(text)
print(unpad(text)) # b'hello' decrypted, original text
```

</details>

## Release notes

- **1.1.0** (Dec 5, 2023)
  - Final release with Python 3.12
- 1.1.0rc1 (Oct 2, 2023)
  - Add Python 3.12 final to the matrix
  - Expose _raw_ functions for CBC mode, with manual padding and unpadding
- 1.1.0rc0 (13 Feb 2023)
  - Drop support for Python 2.7 (CI tests and builds are disabled, code may still work)
  - Add support for CBC mode (unstable API, inplace only, manual padding)
- **1.0.4** (Nov 3, 2022)
  - Final release with Python 3.11
- 1.0.4rc1 (Oct 24, 2022)
  - add Python 3.11 to the matrix, remove Python 2.7 and 3.6
- **1.0.3** (Feb 22, 2022)
  - Final release with Python 3.10
- 1.0.3rc1 (Nov 4, 2021):
  - add Python 3.10 to the matrix
- **1.0.2** (Nov 4, 2021):
  - version bump from 1.0.2rc1
  - bump to `manylinux2010` because of tlsv1 errors and drop Python 2.7
    missing in the new image
- 1.0.2rc1 (Apr 7, 2021):
  - added release Python 3.9 on Windows, Linux (`manylinux1`) and OSX
  - updated upstream [`tiny-AES-c`](https://github.com/kokke/tiny-AES-c) with
    some cleanups and small optimizations
- **1.0.1** (Jun 8, 2020):
  - release Python 3.6 OSX and Windows wheels
  - updated upstream [`tiny-AES-c`](https://github.com/kokke/tiny-AES-c) with
    some code changes
- **1.0.0** (Feb 20, 2020): updated readme (no code changes)
- 1.0.0a3 (Feb 7, 2020): fix bytes in-place mutation error
- 1.0.0a2 (Jan 29, 2020): first public release

## Like to help?

The CI is up and running, but on Linux only, running a minimal test suite that
uses [hypothesis](https://hypothesis.works), and that allowed me to find a
first bug, a missed variable replacement that had nefarious consequences.

The source package released on PyPI should be usable on Windows and MacOS too,
just `pip install tinyaes`.

The development instead is Linux centered, without any guide yet, but the CI
script can be a guide.

### TL;DR

- Download [Just](https://github.com/casey/just) and put it in your `PATH`.
- `just test` should install the library and the dependencies and run the tests
  using your default Python version.
- Inspect the `justfile` for some hints about what happens.

## Thanks

The library is very minimal, but nonetheless, it uses a lot of existing
software. I'd like to thank:

- [Cython](https://cython.org) developer for their wonderful "product", both
  the library and the documentation.

- Kudos to `kokke` for their [tiny-AES-c](https://github.com/kokke/tiny-AES-c)
  library, very minimal and easy to build and wrap for any usage that needs only
  the few AES modes it exposes.

- [Just](https://github.com/casey/just) developers for their automation tool,
  I use in most of my projects.

- A huge thank to all the [hypothesis](https://github.com/HypothesisWorks/hypothesis)
  authors to their fantastic library, that helped me to find an miss-named
  variable bug that I worked very hard to add in a 6 lines of code wrapper! And
  to this [Data-driven testing with Python](https://www.develer.com/en/data-driven-testing-with-python/)
  article that had left me with the desire to try the library.

            

Raw data

            {
    "_id": null,
    "home_page": "https://github.com/naufraghi/tinyaes-py",
    "name": "tinyaes",
    "maintainer": "",
    "docs_url": null,
    "requires_python": "",
    "maintainer_email": "",
    "keywords": "AES Cryptography block-cipher stream-cipher",
    "author": "Matteo Bertini",
    "author_email": "naufraghi@develer.com",
    "download_url": "https://files.pythonhosted.org/packages/92/18/63c7c0f3b7ef64e456b50122c34ae975801c551e661259cf394f8c6e6efc/tinyaes-1.1.0.tar.gz",
    "platform": null,
    "description": "# tiny-AES-c Cython wrapper\n[![PyPI version](https://badge.fury.io/py/tinyaes.svg)](https://pypi.org/project/tinyaes/)\n\n[`tinyaes`](https://github.com/naufraghi/tinyaes-py) is a few lines Cython\nwrapper for the [`tiny-AES-c`](https://github.com/kokke/tiny-AES-c) library, a\n_Small portable AES128/192/256 in C_.\n\nThe library offers a few modes, CTR and CBC modes are the only ones currently wrapped.\nGiven the C API works modifying a buffer in-place, the wrapper offers:\n\n- `CTR_xcrypt_buffer(..)` that works on all bytes convertible types, and\n  encrypting a copy of the buffer,\n- `CTR_xcrypt_buffer_inplace(..)` that works on `bytearray`s only, modifying\n  the buffer in-place.\n- `CBC_encrypt_buffer_inplace_raw(..)` that works on `bytearray`s only, modifying\n  the buffer in-place (manual padding).\n- `CBC_decrypt_buffer_inplace_raw(..)` that works on `bytearray`s only, modifying\n  the buffer in-place (manual unpadding).\n\n<details><summary>CBC usage Example:</summary>\n\n```\nimport tinyaes\nimport binascii\n\n\ndef pad(m):\n    return m + bytes([16 - len(m) % 16] * (16 - len(m) % 16))\n\n\ndef unpad(ct):\n    return ct[:-ct[-1]]\n\n\n# assign key and IV\naes_enc = tinyaes.AES(bytes.fromhex('11223344556677889900AABBCCDDEEFF'),\n                      bytes.fromhex('FFEEDDCCBBAA00998877665544332211'))\naes_dec = tinyaes.AES(bytes.fromhex('11223344556677889900AABBCCDDEEFF'),\n                      bytes.fromhex('FFEEDDCCBBAA00998877665544332211'))\n\ntext = b\"hello\"\nprint(text)  # b'hello'\n# padding plaintext to a multiple of block size\ntext = pad(text)\nprint(binascii.hexlify(bytearray(text)))  # b'68656c6c6f0b0b0b0b0b0b0b0b0b0b0b' hex representation of added text\naes_enc.CBC_encrypt_buffer_inplace_raw(text)  # b'5adc04828f9421c34210b05fe5c92bfd' hex representation of encrypted text\nprint(binascii.hexlify(bytearray(text)))\naes_dec.CBC_decrypt_buffer_inplace_raw(text)\nprint(unpad(text)) # b'hello' decrypted, original text\n```\n\n</details>\n\n## Release notes\n\n- **1.1.0** (Dec 5, 2023)\n  - Final release with Python 3.12\n- 1.1.0rc1 (Oct 2, 2023)\n  - Add Python 3.12 final to the matrix\n  - Expose _raw_ functions for CBC mode, with manual padding and unpadding\n- 1.1.0rc0 (13 Feb 2023)\n  - Drop support for Python 2.7 (CI tests and builds are disabled, code may still work)\n  - Add support for CBC mode (unstable API, inplace only, manual padding)\n- **1.0.4** (Nov 3, 2022)\n  - Final release with Python 3.11\n- 1.0.4rc1 (Oct 24, 2022)\n  - add Python 3.11 to the matrix, remove Python 2.7 and 3.6\n- **1.0.3** (Feb 22, 2022)\n  - Final release with Python 3.10\n- 1.0.3rc1 (Nov 4, 2021):\n  - add Python 3.10 to the matrix\n- **1.0.2** (Nov 4, 2021):\n  - version bump from 1.0.2rc1\n  - bump to `manylinux2010` because of tlsv1 errors and drop Python 2.7\n    missing in the new image\n- 1.0.2rc1 (Apr 7, 2021):\n  - added release Python 3.9 on Windows, Linux (`manylinux1`) and OSX\n  - updated upstream [`tiny-AES-c`](https://github.com/kokke/tiny-AES-c) with\n    some cleanups and small optimizations\n- **1.0.1** (Jun 8, 2020):\n  - release Python 3.6 OSX and Windows wheels\n  - updated upstream [`tiny-AES-c`](https://github.com/kokke/tiny-AES-c) with\n    some code changes\n- **1.0.0** (Feb 20, 2020): updated readme (no code changes)\n- 1.0.0a3 (Feb 7, 2020): fix bytes in-place mutation error\n- 1.0.0a2 (Jan 29, 2020): first public release\n\n## Like to help?\n\nThe CI is up and running, but on Linux only, running a minimal test suite that\nuses [hypothesis](https://hypothesis.works), and that allowed me to find a\nfirst bug, a missed variable replacement that had nefarious consequences.\n\nThe source package released on PyPI should be usable on Windows and MacOS too,\njust `pip install tinyaes`.\n\nThe development instead is Linux centered, without any guide yet, but the CI\nscript can be a guide.\n\n### TL;DR\n\n- Download [Just](https://github.com/casey/just) and put it in your `PATH`.\n- `just test` should install the library and the dependencies and run the tests\n  using your default Python version.\n- Inspect the `justfile` for some hints about what happens.\n\n## Thanks\n\nThe library is very minimal, but nonetheless, it uses a lot of existing\nsoftware. I'd like to thank:\n\n- [Cython](https://cython.org) developer for their wonderful \"product\", both\n  the library and the documentation.\n\n- Kudos to `kokke` for their [tiny-AES-c](https://github.com/kokke/tiny-AES-c)\n  library, very minimal and easy to build and wrap for any usage that needs only\n  the few AES modes it exposes.\n\n- [Just](https://github.com/casey/just) developers for their automation tool,\n  I use in most of my projects.\n\n- A huge thank to all the [hypothesis](https://github.com/HypothesisWorks/hypothesis)\n  authors to their fantastic library, that helped me to find an miss-named\n  variable bug that I worked very hard to add in a 6 lines of code wrapper! And\n  to this [Data-driven testing with Python](https://www.develer.com/en/data-driven-testing-with-python/)\n  article that had left me with the desire to try the library.\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "tiny-AES-c wrapper in Cython",
    "version": "1.1.0",
    "project_urls": {
        "Homepage": "https://github.com/naufraghi/tinyaes-py"
    },
    "split_keywords": [
        "aes",
        "cryptography",
        "block-cipher",
        "stream-cipher"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c5966264c591db11d30dc62e9fecd73545c4b80ca5922a50c2a85c4f502b0357",
                "md5": "f5c296282b6249349e97a336f2e4adc6",
                "sha256": "9f4c2a4b1292df22123363d5861df6f6e9e44462960f4590093427dab577ba4d"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp310-cp310-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "f5c296282b6249349e97a336f2e4adc6",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 58494,
            "upload_time": "2023-12-05T14:43:56",
            "upload_time_iso_8601": "2023-12-05T14:43:56.721154Z",
            "url": "https://files.pythonhosted.org/packages/c5/96/6264c591db11d30dc62e9fecd73545c4b80ca5922a50c2a85c4f502b0357/tinyaes-1.1.0-cp310-cp310-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "cf036c229d3b2e908c907ed9f099626b0ef42f1ef83c3876e0d28e8520846b6a",
                "md5": "4a15906c0e25fda4f6b2ca0f0039bd8b",
                "sha256": "5d923960ae2049304d006ddef57b57f02e5c1cd0fd3ab9d90aeda985357bdd6a"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "4a15906c0e25fda4f6b2ca0f0039bd8b",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 31324,
            "upload_time": "2023-12-05T14:43:57",
            "upload_time_iso_8601": "2023-12-05T14:43:57.974871Z",
            "url": "https://files.pythonhosted.org/packages/cf/03/6c229d3b2e908c907ed9f099626b0ef42f1ef83c3876e0d28e8520846b6a/tinyaes-1.1.0-cp310-cp310-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "8ef2bd2efc7edeb64a57e34ffcdc9ae3933885b7ec2080609d5ce5dc875e7dc8",
                "md5": "595585e7d4279c78b2d6d684e5685159",
                "sha256": "c5507897134855b59dd2f4e5267746d20487379a3a7b4df4421e5eba3248a826"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp310-cp310-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "595585e7d4279c78b2d6d684e5685159",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 31086,
            "upload_time": "2023-12-05T14:43:59",
            "upload_time_iso_8601": "2023-12-05T14:43:59.272924Z",
            "url": "https://files.pythonhosted.org/packages/8e/f2/bd2efc7edeb64a57e34ffcdc9ae3933885b7ec2080609d5ce5dc875e7dc8/tinyaes-1.1.0-cp310-cp310-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1edc09b5cba63011a76254971c0b875304b2e4189e4820bcbf37cea0c4879a72",
                "md5": "a08d5c2834fd4b16361f1e8f8d5c80fe",
                "sha256": "069815f48b2ce91f4334c61473b855f2a76883aef13f25f2b2ca2fe776abd9e6"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "a08d5c2834fd4b16361f1e8f8d5c80fe",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 132233,
            "upload_time": "2023-12-05T14:44:00",
            "upload_time_iso_8601": "2023-12-05T14:44:00.299661Z",
            "url": "https://files.pythonhosted.org/packages/1e/dc/09b5cba63011a76254971c0b875304b2e4189e4820bcbf37cea0c4879a72/tinyaes-1.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e1e1fbed022a11db9724d6d1bbe4689869b51eeef25c06bb1bbc32d7f39d1770",
                "md5": "80b362374bc29070ab318533b6158e00",
                "sha256": "0e5d8c95de7decb43105c5a092939209304cca48b31e747fad51f9c80b7380fe"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp310-cp310-win32.whl",
            "has_sig": false,
            "md5_digest": "80b362374bc29070ab318533b6158e00",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 27070,
            "upload_time": "2023-12-05T14:44:01",
            "upload_time_iso_8601": "2023-12-05T14:44:01.483090Z",
            "url": "https://files.pythonhosted.org/packages/e1/e1/fbed022a11db9724d6d1bbe4689869b51eeef25c06bb1bbc32d7f39d1770/tinyaes-1.1.0-cp310-cp310-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e2637c4c24c07e2a5cbd50675d1e3309f87a94c0917a4d3a594a8d6439e937d9",
                "md5": "e6d585b2f9be15806ccae8eddce5cca1",
                "sha256": "ece6f78b5fa85a8d6d345f1df2a85fcdc765f42ff046a96ecb67d96afad23330"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp310-cp310-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "e6d585b2f9be15806ccae8eddce5cca1",
            "packagetype": "bdist_wheel",
            "python_version": "cp310",
            "requires_python": null,
            "size": 30472,
            "upload_time": "2023-12-05T14:44:02",
            "upload_time_iso_8601": "2023-12-05T14:44:02.531474Z",
            "url": "https://files.pythonhosted.org/packages/e2/63/7c4c24c07e2a5cbd50675d1e3309f87a94c0917a4d3a594a8d6439e937d9/tinyaes-1.1.0-cp310-cp310-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "2fa1d12d957a3189511779a7a5bdd345c56281c40621ca9fb696b7a309c8dc62",
                "md5": "3060fe8f888fc06977dbfcdaba254ade",
                "sha256": "0c732376af4bf5c86aa327bec1bf42cdc4cc8e48e1032a94129a91e3941a0301"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp311-cp311-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "3060fe8f888fc06977dbfcdaba254ade",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 58658,
            "upload_time": "2023-12-05T14:44:04",
            "upload_time_iso_8601": "2023-12-05T14:44:04.044066Z",
            "url": "https://files.pythonhosted.org/packages/2f/a1/d12d957a3189511779a7a5bdd345c56281c40621ca9fb696b7a309c8dc62/tinyaes-1.1.0-cp311-cp311-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "c781c3e279099de26dc27fff1ffd088af8ac690b2c74ce3445ff3c32ac75d89c",
                "md5": "bf3a49adcaa0a73fc8cc5e6a7f037e70",
                "sha256": "10ab5921cd113dd825d2af0ae49e5943e56c04562958b8d09fedd5212ee29d45"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "bf3a49adcaa0a73fc8cc5e6a7f037e70",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 31496,
            "upload_time": "2023-12-05T14:44:05",
            "upload_time_iso_8601": "2023-12-05T14:44:05.808559Z",
            "url": "https://files.pythonhosted.org/packages/c7/81/c3e279099de26dc27fff1ffd088af8ac690b2c74ce3445ff3c32ac75d89c/tinyaes-1.1.0-cp311-cp311-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "69ca6de32807d29ac5e1254ef34e4a429991806145c52b38d89a3741634b085e",
                "md5": "edfef85d543f8f453967fa1fa1097267",
                "sha256": "1f33298097674331f39930ba8681cca4d949b46866317940acdd2b21da3240a5"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp311-cp311-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "edfef85d543f8f453967fa1fa1097267",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 31115,
            "upload_time": "2023-12-05T14:44:06",
            "upload_time_iso_8601": "2023-12-05T14:44:06.742323Z",
            "url": "https://files.pythonhosted.org/packages/69/ca/6de32807d29ac5e1254ef34e4a429991806145c52b38d89a3741634b085e/tinyaes-1.1.0-cp311-cp311-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "761ceccc3c95fdcc048a2332c4e0c80aef83d16f3736a0cdc6a74d007292acb1",
                "md5": "58d9ab184758674cc243f7453bca958d",
                "sha256": "f733eae946da475f37c4c68e8ae4b9deded0212e399680b58e87c97fd34ac956"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "58d9ab184758674cc243f7453bca958d",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 145816,
            "upload_time": "2023-12-05T14:44:07",
            "upload_time_iso_8601": "2023-12-05T14:44:07.792723Z",
            "url": "https://files.pythonhosted.org/packages/76/1c/eccc3c95fdcc048a2332c4e0c80aef83d16f3736a0cdc6a74d007292acb1/tinyaes-1.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "da3b93613359e7c7e323bb5dc7a1c84f65fa5d97d0a065467d6f1d1f23daa52b",
                "md5": "0a17740e84865047bc006bee2c451c11",
                "sha256": "d0bad6e283b33376cf4e214c5b1582768deef606ed41f09220469764640dea18"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp311-cp311-win32.whl",
            "has_sig": false,
            "md5_digest": "0a17740e84865047bc006bee2c451c11",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 27132,
            "upload_time": "2023-12-05T14:44:09",
            "upload_time_iso_8601": "2023-12-05T14:44:09.704927Z",
            "url": "https://files.pythonhosted.org/packages/da/3b/93613359e7c7e323bb5dc7a1c84f65fa5d97d0a065467d6f1d1f23daa52b/tinyaes-1.1.0-cp311-cp311-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "b1cddde171d1d33df282bb66612f1fd3bc2f3291d8d8775176510670c57aa4c8",
                "md5": "327909d253cdeaeccc1b51ce8d5a20c0",
                "sha256": "876f33903b835bf3a307b288351e4ca988150582ca71471698252320137af35d"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp311-cp311-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "327909d253cdeaeccc1b51ce8d5a20c0",
            "packagetype": "bdist_wheel",
            "python_version": "cp311",
            "requires_python": null,
            "size": 30551,
            "upload_time": "2023-12-05T14:44:11",
            "upload_time_iso_8601": "2023-12-05T14:44:11.221086Z",
            "url": "https://files.pythonhosted.org/packages/b1/cd/dde171d1d33df282bb66612f1fd3bc2f3291d8d8775176510670c57aa4c8/tinyaes-1.1.0-cp311-cp311-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3bde5e202c769303247a643db0a45545b8adc2020357591ad8bf8dfbd6f99d49",
                "md5": "445c9fe2beb7a85cb465c2f609fbfbb5",
                "sha256": "9d73ddd6db3d37e16c570324b4ddc633d775caf81681542221a8be2a8bb69de2"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp37-cp37m-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "445c9fe2beb7a85cb465c2f609fbfbb5",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 32785,
            "upload_time": "2023-12-05T14:44:12",
            "upload_time_iso_8601": "2023-12-05T14:44:12.669969Z",
            "url": "https://files.pythonhosted.org/packages/3b/de/5e202c769303247a643db0a45545b8adc2020357591ad8bf8dfbd6f99d49/tinyaes-1.1.0-cp37-cp37m-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "4818a4c45bf7e4e6082d25dc80f565f56449d05a8780887f31bf6a10bdfe77f4",
                "md5": "df6e3db16c897aee4f43fe7b9f0fb192",
                "sha256": "d0a6bd418823cde8c8a751b40ee88182637fff9723811db25b8cc5bbb25eb979"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "df6e3db16c897aee4f43fe7b9f0fb192",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 128530,
            "upload_time": "2023-12-05T14:44:13",
            "upload_time_iso_8601": "2023-12-05T14:44:13.644405Z",
            "url": "https://files.pythonhosted.org/packages/48/18/a4c45bf7e4e6082d25dc80f565f56449d05a8780887f31bf6a10bdfe77f4/tinyaes-1.1.0-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "31cc411e96aeae618feb252b2e93a2e1d4ef9d2687ca7d38e9d3178962710ace",
                "md5": "f843fcf7508a124cbb8c5161a16f451f",
                "sha256": "58148f6fca9c60efd318e3738989a54ba354f5cc52250a6814e1390e7869c5b7"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp37-cp37m-win32.whl",
            "has_sig": false,
            "md5_digest": "f843fcf7508a124cbb8c5161a16f451f",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 27723,
            "upload_time": "2023-12-05T14:44:14",
            "upload_time_iso_8601": "2023-12-05T14:44:14.870495Z",
            "url": "https://files.pythonhosted.org/packages/31/cc/411e96aeae618feb252b2e93a2e1d4ef9d2687ca7d38e9d3178962710ace/tinyaes-1.1.0-cp37-cp37m-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "17f1763f006d5e6b561e160ecebf7bb23b40fa240c760d61d860d2ef86a49bee",
                "md5": "062de08201d72c3d0bd8524dd601ba10",
                "sha256": "a315522ade4900e7a59e25fb17041671fe48d894037b5aa7d2bfcf11f07f5d53"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp37-cp37m-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "062de08201d72c3d0bd8524dd601ba10",
            "packagetype": "bdist_wheel",
            "python_version": "cp37",
            "requires_python": null,
            "size": 31732,
            "upload_time": "2023-12-05T14:44:15",
            "upload_time_iso_8601": "2023-12-05T14:44:15.723455Z",
            "url": "https://files.pythonhosted.org/packages/17/f1/763f006d5e6b561e160ecebf7bb23b40fa240c760d61d860d2ef86a49bee/tinyaes-1.1.0-cp37-cp37m-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "bcbcd5a57825f139b1ec1ff8bc87802e0221b69b3c6411509064be8b92e797bc",
                "md5": "344d1b9cc3684425319868e7ca687627",
                "sha256": "a39a34d01d4d29fd661cad66d7439812db064e7a71d0a638173400cabcfe99ad"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp38-cp38-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "344d1b9cc3684425319868e7ca687627",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 60869,
            "upload_time": "2023-12-05T14:44:16",
            "upload_time_iso_8601": "2023-12-05T14:44:16.844299Z",
            "url": "https://files.pythonhosted.org/packages/bc/bc/d5a57825f139b1ec1ff8bc87802e0221b69b3c6411509064be8b92e797bc/tinyaes-1.1.0-cp38-cp38-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "515ee4b42f7fbb2a1e4999285a0faf8d3469b8c593c00da8170a98adbbdc675c",
                "md5": "3f0642d71a8c0420765201512e6aae1e",
                "sha256": "c6d750ac1b8fc2bd63e8535ee6a1c9dabc3d88e56f8e31cca0b48b31a79ddc1f"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "3f0642d71a8c0420765201512e6aae1e",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 32496,
            "upload_time": "2023-12-05T14:44:17",
            "upload_time_iso_8601": "2023-12-05T14:44:17.792460Z",
            "url": "https://files.pythonhosted.org/packages/51/5e/e4b42f7fbb2a1e4999285a0faf8d3469b8c593c00da8170a98adbbdc675c/tinyaes-1.1.0-cp38-cp38-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "e191b7dbb8f01023b542ef7e3669fd90873368cfe3a898eddb572585b34c6cca",
                "md5": "8b40e8f0148e97d47af167e3acf44b9f",
                "sha256": "1c5fdce6418f5efa3023d2ea8f959d2c22d1f95db57ca78d5e3ca5623e823ab9"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp38-cp38-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "8b40e8f0148e97d47af167e3acf44b9f",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 32162,
            "upload_time": "2023-12-05T14:44:19",
            "upload_time_iso_8601": "2023-12-05T14:44:19.277463Z",
            "url": "https://files.pythonhosted.org/packages/e1/91/b7dbb8f01023b542ef7e3669fd90873368cfe3a898eddb572585b34c6cca/tinyaes-1.1.0-cp38-cp38-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "85dcc01b44049513600195a4f3d9160116db27f0ca05f64900682f67e0bd51c2",
                "md5": "b853a95a383a988a6332587b4d77edf8",
                "sha256": "7c336f7244c05d286f29eeaad94210b402b306fb4c064f3b8fe3f3809b2cd432"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "b853a95a383a988a6332587b4d77edf8",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 133025,
            "upload_time": "2023-12-05T14:44:20",
            "upload_time_iso_8601": "2023-12-05T14:44:20.227484Z",
            "url": "https://files.pythonhosted.org/packages/85/dc/c01b44049513600195a4f3d9160116db27f0ca05f64900682f67e0bd51c2/tinyaes-1.1.0-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "71b6b31c78c530965e431bcf70ade3979da0db22934bf563eeb90b2cdb4e73ff",
                "md5": "531efb8c6c61e4e3156bcd53db1e708c",
                "sha256": "591af2c0fdcd0e86392d6b04c1c496c7c4c704a246ce40a4e9dfaf8951649ae5"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp38-cp38-win32.whl",
            "has_sig": false,
            "md5_digest": "531efb8c6c61e4e3156bcd53db1e708c",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 27685,
            "upload_time": "2023-12-05T14:44:21",
            "upload_time_iso_8601": "2023-12-05T14:44:21.821237Z",
            "url": "https://files.pythonhosted.org/packages/71/b6/b31c78c530965e431bcf70ade3979da0db22934bf563eeb90b2cdb4e73ff/tinyaes-1.1.0-cp38-cp38-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "1f96ba99df309ed81ca881c4a135cabea6780c847036137c8f46ef468f528e26",
                "md5": "b68b576e3250f281740739f7dcebc779",
                "sha256": "024adae289543b3c587fb17ac993076041395ac8442907c5d8d3837ef8ee3c4a"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp38-cp38-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "b68b576e3250f281740739f7dcebc779",
            "packagetype": "bdist_wheel",
            "python_version": "cp38",
            "requires_python": null,
            "size": 31254,
            "upload_time": "2023-12-05T14:44:23",
            "upload_time_iso_8601": "2023-12-05T14:44:23.236483Z",
            "url": "https://files.pythonhosted.org/packages/1f/96/ba99df309ed81ca881c4a135cabea6780c847036137c8f46ef468f528e26/tinyaes-1.1.0-cp38-cp38-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d10c6c4cce84166fdbc3c20b74c5de4ecbce3b218abb16e9adffacc705ca5556",
                "md5": "b19a523b2552e88da5c24f0297ed5414",
                "sha256": "9431cbf3993d4e43c270c79795c8e46c1dffa543fb43cc7546ad1a860fab2672"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp39-cp39-macosx_10_9_universal2.whl",
            "has_sig": false,
            "md5_digest": "b19a523b2552e88da5c24f0297ed5414",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 60219,
            "upload_time": "2023-12-05T14:44:24",
            "upload_time_iso_8601": "2023-12-05T14:44:24.165629Z",
            "url": "https://files.pythonhosted.org/packages/d1/0c/6c4cce84166fdbc3c20b74c5de4ecbce3b218abb16e9adffacc705ca5556/tinyaes-1.1.0-cp39-cp39-macosx_10_9_universal2.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "03b67762f46695c5166035c78437ab1fc792b7609f6e34209b57d0264c8d8c9d",
                "md5": "64dee9946863828689555932971f2ba4",
                "sha256": "356d95134a4b6766e2d83cec050108e8e12230c8e197d95bfbd30f2734eac3e9"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "has_sig": false,
            "md5_digest": "64dee9946863828689555932971f2ba4",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 32148,
            "upload_time": "2023-12-05T14:44:25",
            "upload_time_iso_8601": "2023-12-05T14:44:25.212398Z",
            "url": "https://files.pythonhosted.org/packages/03/b6/7762f46695c5166035c78437ab1fc792b7609f6e34209b57d0264c8d8c9d/tinyaes-1.1.0-cp39-cp39-macosx_10_9_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "223e7e2f8f4435160278a8c717a6c3cc8be61fe9cfc4eaf4da6204d61e020821",
                "md5": "c292ebe484b3fb67114b49f7f6aa7ab1",
                "sha256": "d4e82a1e903c83ab677feddaec41c89a260026812c391fdb06269e57dbdb5abb"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp39-cp39-macosx_11_0_arm64.whl",
            "has_sig": false,
            "md5_digest": "c292ebe484b3fb67114b49f7f6aa7ab1",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 31874,
            "upload_time": "2023-12-05T14:44:26",
            "upload_time_iso_8601": "2023-12-05T14:44:26.644780Z",
            "url": "https://files.pythonhosted.org/packages/22/3e/7e2f8f4435160278a8c717a6c3cc8be61fe9cfc4eaf4da6204d61e020821/tinyaes-1.1.0-cp39-cp39-macosx_11_0_arm64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "d862bd78127f21a6129c3b6520781a17fae34ddc5d88d5442eaff45adf563776",
                "md5": "93e57848c48afbedbb2650c15c913b4f",
                "sha256": "0164695cbe6821f5e754f004e7fadb3ddbf063762cda1356fa744079d597a967"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "has_sig": false,
            "md5_digest": "93e57848c48afbedbb2650c15c913b4f",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 138318,
            "upload_time": "2023-12-05T14:44:27",
            "upload_time_iso_8601": "2023-12-05T14:44:27.566183Z",
            "url": "https://files.pythonhosted.org/packages/d8/62/bd78127f21a6129c3b6520781a17fae34ddc5d88d5442eaff45adf563776/tinyaes-1.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "21b0e86877b369b0a5b6c0d9ac32b46fb4601b47b66dec130f7e18811d5753a1",
                "md5": "5af1332d79370c99440aaf072f4107aa",
                "sha256": "bfc353536554e0a0dee5a3eed0fd4006bdc97e52b811ac937023b09b74c2bea0"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp39-cp39-win32.whl",
            "has_sig": false,
            "md5_digest": "5af1332d79370c99440aaf072f4107aa",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 27583,
            "upload_time": "2023-12-05T14:44:28",
            "upload_time_iso_8601": "2023-12-05T14:44:28.706390Z",
            "url": "https://files.pythonhosted.org/packages/21/b0/e86877b369b0a5b6c0d9ac32b46fb4601b47b66dec130f7e18811d5753a1/tinyaes-1.1.0-cp39-cp39-win32.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "22635b3ea48831516c520ecfd0cce06143f380d94b035cd7d6d0b218ae598610",
                "md5": "292a91f461191e4385354cfc738969cc",
                "sha256": "3efd48cd98e2c21d28fb2b8a84683c8bf26f1a86a9dc8da9a9de94f9583168de"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0-cp39-cp39-win_amd64.whl",
            "has_sig": false,
            "md5_digest": "292a91f461191e4385354cfc738969cc",
            "packagetype": "bdist_wheel",
            "python_version": "cp39",
            "requires_python": null,
            "size": 31094,
            "upload_time": "2023-12-05T14:44:30",
            "upload_time_iso_8601": "2023-12-05T14:44:30.140438Z",
            "url": "https://files.pythonhosted.org/packages/22/63/5b3ea48831516c520ecfd0cce06143f380d94b035cd7d6d0b218ae598610/tinyaes-1.1.0-cp39-cp39-win_amd64.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "921863c7c0f3b7ef64e456b50122c34ae975801c551e661259cf394f8c6e6efc",
                "md5": "e0db76909072cb40956d8779469ca852",
                "sha256": "a825b1ab966c54d90593bae30a83a1548dfe347934f8a4e78d8f43fa42960835"
            },
            "downloads": -1,
            "filename": "tinyaes-1.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e0db76909072cb40956d8779469ca852",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": null,
            "size": 71738,
            "upload_time": "2023-12-05T14:44:31",
            "upload_time_iso_8601": "2023-12-05T14:44:31.035824Z",
            "url": "https://files.pythonhosted.org/packages/92/18/63c7c0f3b7ef64e456b50122c34ae975801c551e661259cf394f8c6e6efc/tinyaes-1.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2023-12-05 14:44:31",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "naufraghi",
    "github_project": "tinyaes-py",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "tinyaes"
}
        
Elapsed time: 0.19092s