tiny-AES-c wrapper in Cython
Project description
tiny-AES-c Cython wrapper
tinyaes
is a few lines Cython
wrapper for the tiny-AES-c
library, a
Small portable AES128/192/256 in C.
The library offers a few modes, CTR mode is the only one 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 onbytearray
s only, modifying the buffer in-place.
Release notes
- 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
with some cleanups and small optimizations
- added release Python 3.9 on Windows, Linux (
- 1.0.1 (Jun 8, 2020):
- release Python 3.6 OSX and Windows wheels
- updated upstream
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, 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 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 developer for their wonderful "product", both the library and the documentation.
-
Kudos to
kokke
for their 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 developers for their automation tool, I use in most of my projects.
-
A huge thank to all the 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 article that had left me with the desire to try the library.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distributions
Hashes for tinyaes-1.0.4-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 64484915c80eeed7408801d3dee759f81b9fb2ff1cc68bf8544b19b8764d6b77 |
|
MD5 | a3ebb2a5ee63c18e6dd9c2fe995215a1 |
|
BLAKE2b-256 | f32985da9e0df09ad2aa4f8df3a207001554521994f8d0151eb562536a65448a |
Hashes for tinyaes-1.0.4-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | dfba3946aa4e7155be953e3a2c1c9882c64ad4632b13966bbdb32b85e6d2d6d6 |
|
MD5 | 14d652466a6cdc50348018b6528ab570 |
|
BLAKE2b-256 | 3cc8f26bdde6c302ef4cb2cc4600316eb5c5a9c864565c0215f57a4780f82569 |
Hashes for tinyaes-1.0.4-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2d3e747d594f12649e1780c067ff91c1ec1f76475f99c902ac2fdf1b3f406750 |
|
MD5 | f5f537b3a1305d3c49c6ad795a75406e |
|
BLAKE2b-256 | dfc01a897db86a921e88782bbb20ce9568bc52615093f595a98187cb7becf87e |
Hashes for tinyaes-1.0.4-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 366746fd7f114d213bde39ebba60bc123f827c955fb95363a1c5c78fbbfaec21 |
|
MD5 | 1cd2d5c5c72c6ca4586eeb007f1230d3 |
|
BLAKE2b-256 | 6829bcbd4a5990d62dfe0b108424cd15ab7dace50e6541c8ee31ed37f8831209 |
Hashes for tinyaes-1.0.4-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ead57efc443808ac9169da27206ac42c43c6ef4a88f35cbf16f0b2deb4fd6914 |
|
MD5 | 898d7812577acc30d3cecdd326adbfc1 |
|
BLAKE2b-256 | dd24f0a0c8e26342e30efafc74844823e020dfbfe1ce0c20403506f35c90b5b0 |
Hashes for tinyaes-1.0.4-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 56d7d35241fdc44174703a7993e9c8660f9a748654e4f182646a81281d344959 |
|
MD5 | cd0add6d91db582dc175d29530cd7264 |
|
BLAKE2b-256 | 0ed27602026c2d6d4a9b2b581245aab8734a2e0f048fab54b1aeeb93d09cca91 |
Hashes for tinyaes-1.0.4-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e8ffb828cafb87f3cbc0c0267998165421d83f8951d2eb83a38c930d193377d |
|
MD5 | 64cfa0a2bfebec15ce380181414e24e9 |
|
BLAKE2b-256 | beeec090e05a9050cd515a1da76e997a04198cfe384d444aff48f748ea0cc3da |
Hashes for tinyaes-1.0.4-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 201dc6d8aea4a65ac88a8ab09dbe0a8151396c4ef73a1a1337e8c2e155a30679 |
|
MD5 | a60f9bb4630087c11be6190d22621266 |
|
BLAKE2b-256 | 4506ab5787d1073bbc433a3f1242e5a08fe72664185145258d0f9c03101b2b4b |
Hashes for tinyaes-1.0.4-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2419501d23d2154ace9b78c5bb55df8b2d6cbdb477968c665d477d16459e7017 |
|
MD5 | d6964ca012698d58f44d5d4342215c33 |
|
BLAKE2b-256 | c2a39105b69e0810f3f31324a131c531ae8b59b0e8fe0c14b910c172463af880 |
Hashes for tinyaes-1.0.4-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8c836578b1fae1f3be4fd0481bc8f74f0ca0a264345f9cbae560b461cd84dd8 |
|
MD5 | b9f11ff242cc7f2d810b8afbf356baba |
|
BLAKE2b-256 | c5849e91360168189488e7386aa5a46d5f8e0a7f6791d89ade9318ce5b21fcc2 |
Hashes for tinyaes-1.0.4-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | d470c186c0d28862ad74cbbb21d1ee612e2aa26760e7c7dd5c4a19f74641a11d |
|
MD5 | f51dcd0e923b3d8a5387f502725a5d1b |
|
BLAKE2b-256 | 4bd9a90bdd48a5c7ab33e300d636b3d2767f41dc461144cbbda1270386db089e |
Hashes for tinyaes-1.0.4-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 92c44cc8247467dde7d785675d590c692ae1d4f127cdd5c9f1b681e33e1fc26e |
|
MD5 | 5a1414aacf39551ebb69dbbb44f40feb |
|
BLAKE2b-256 | 8fd8a8db686f9a2d13600428853a154eaa9a06b0146d84d28e7c51d5715afa7b |
Hashes for tinyaes-1.0.4-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | aebd534b9294d5de5a7f916810b93ed00cfa2d091051ddad1d5d813f1ef91954 |
|
MD5 | eddbd45aa69a0821c09174ace8b6c208 |
|
BLAKE2b-256 | 3936dd5afab4e7a771a23351994137445b600ffba2ebc904b6ae206524ff66af |
Hashes for tinyaes-1.0.4-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1f3763caf49086fa82310d3270f718d7d143dcb72274b0b771212b828249d6ef |
|
MD5 | 036842bb0f087af785793ff3c0346190 |
|
BLAKE2b-256 | 8b3c18d48c57bbbe87622f7a1dfae21df1d203f7f184f4fd97da70eb01b701f9 |
Hashes for tinyaes-1.0.4-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 830acaced065e249e3beb4043aeb44f1301b4e1f2d5153049a63a8695b294d1e |
|
MD5 | fc57bfcc2e8409de9874c34ec8c9198a |
|
BLAKE2b-256 | 288936635f4ff8370008676ae76c38000bb5d45fb01118ed8cd5387fd998aee9 |
Hashes for tinyaes-1.0.4-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 31afd74faf308226b442050f58812ca113fb172960420e4ad8faef324d63cccc |
|
MD5 | fd931a07f2981c250e52ed49b9a9f241 |
|
BLAKE2b-256 | e70fd1cccb965126c3f7d55f2cb2af6793fac5274069720e57dcb0106a4c7f13 |
Hashes for tinyaes-1.0.4-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | e675e7ef0876c8d0d0e5a3542e318f433def2949a0be4f161113d38ca592261a |
|
MD5 | e4565edf3a69050e0dab896afb088d86 |
|
BLAKE2b-256 | a067432026be0ae1761e486da4ef8048d552f79d892085b9a9ee7b2201dc3181 |
Hashes for tinyaes-1.0.4-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 654af1dd0bbc57fbd3bbcd3abf1f1a50c25290c89bddf2cecd0128bd7e8099c8 |
|
MD5 | d2fc672efb8d2865110b2ac932c43c8e |
|
BLAKE2b-256 | 72913d3ed761485a7dbbdf86fb56494fb99517f6294d5dbacdfd46d431a9b6f6 |
Hashes for tinyaes-1.0.4-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b1e9700838d89a694b89efa41151ca863962cac79b536771bde6fbf795293fee |
|
MD5 | b9add013b0a4de8fd901952e7f7c05ac |
|
BLAKE2b-256 | 6dd6d0211465ede271367bad7901a4d12fd6d9a0f628d62ee362cf0966a8e69b |
Hashes for tinyaes-1.0.4-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | cac3070af2a3101c669fbb11cf5323f1d1a4002a6d93ef946e6f4a8d69c3f84d |
|
MD5 | d36975c6ed520c89cc6fef9137457506 |
|
BLAKE2b-256 | a10e5aa78a3b02d3f15daccf2b25e0e397eff87a0de5adb0180cbd8c6c3c02b2 |