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.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.4rc1-cp311-cp311-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0b2574810a339b81402097da7546b9849678d60078ef09c4b2e447a43abc8619 |
|
MD5 | 9ab957052f837d62017c67f473a4d1cb |
|
BLAKE2b-256 | 885d045fc084fa02107c49bfe0771a4531ce8e068fb44c57edee461b50c1d789 |
Hashes for tinyaes-1.0.4rc1-cp311-cp311-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 88743c664b962abb816f88be13a33671599d62a8c58d809c3f38ec13edf72bf6 |
|
MD5 | e72a631ea2184355cce488d5dabdda1a |
|
BLAKE2b-256 | 107ceca520adc9eae03eaa0231b23d72d05567b53cf5e70028b6c7378477d101 |
Hashes for tinyaes-1.0.4rc1-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 094b61b5100dc023dc5bcf4bd3e8a61a0ec39eb719ba04819830863f67318ec8 |
|
MD5 | 209c3ca36008e63582d161ffce8934a4 |
|
BLAKE2b-256 | a79cbe94aabdeaa495c56c444170be0397fea6738896824a9f48af2d45769eaf |
Hashes for tinyaes-1.0.4rc1-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 258e449ba12893bad0e5fb810493a8f7a8d745e5fec4977f5bc002396c5a382b |
|
MD5 | 9cd8411af1a1fea6a17f7e680bcb627d |
|
BLAKE2b-256 | 0dd2271b492ee4917ef2bc5025f88dfcfabde97c0605622551a2d6874d3318fc |
Hashes for tinyaes-1.0.4rc1-cp310-cp310-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1b9417d531bf07ed0de3a7a401f8f5bf37a2837100121f52684004e6d67e8d2a |
|
MD5 | 2906dbfeb3d73137bcc326ddb7e26a04 |
|
BLAKE2b-256 | e65c09101ab5dd8a2a3b8ae5cdd357562401434a1062acf71f5fa3c5780340c4 |
Hashes for tinyaes-1.0.4rc1-cp310-cp310-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 706fa22841d004d9a24767836d3bbbd2c40f231816ecc8865fae176932ce2086 |
|
MD5 | 4ecde49e378980eb5a5754618eae2387 |
|
BLAKE2b-256 | 0e4d8e94a130ffb1c180cac574ff439ecc3ac4b1d3650e3149c5dfa483adcfc9 |
Hashes for tinyaes-1.0.4rc1-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 40ec3f498728f9025cddd87f934c8249080aaffe3d7ea0fce76fea3ab731a01d |
|
MD5 | ab83147530f955dab8358166725cad48 |
|
BLAKE2b-256 | 1e8b25a0686e087658b4db4dd6015fef9d6b9c1631eb87a62acce174ea71ed89 |
Hashes for tinyaes-1.0.4rc1-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ecfddc8d1db129dce3bc5d16989c51f05e04271f49f3d8e161edd16f5c145958 |
|
MD5 | 8701bdc391c07e7e3d3a945969c08bdf |
|
BLAKE2b-256 | 6a2322853a1da75082dce3bb3b508f99d23d52de6e7605d73dbde7179e77b571 |
Hashes for tinyaes-1.0.4rc1-cp39-cp39-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ca50e25e77c45ebed8b2b0a9c4a1ad49ecd176d0140ccd1642bd56cdec4ef99 |
|
MD5 | 1a20eff79def55185eb8340c392cbaf3 |
|
BLAKE2b-256 | ce3cfc2973049786e9cdc30406dd4fc8a16ff15d45bae12ad0d44af660baf78a |
Hashes for tinyaes-1.0.4rc1-cp39-cp39-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 337d05c00a1ff552b630f91598005209df4e2d3e4a38bc3d4253c892336d2a34 |
|
MD5 | 67ccb3e02d974ec1a353010baa2f8853 |
|
BLAKE2b-256 | ef1b582286fb249f8d7350a1286e615e8178301ea292cd89b4b1388273bb4ba9 |
Hashes for tinyaes-1.0.4rc1-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1d1de3ff2717d1ed71256411acf0ed2e71ab8cabbff91a87466c135b6b3f4787 |
|
MD5 | e07fb138f0a72f392d331f898a2b38f1 |
|
BLAKE2b-256 | f22f3bc09909de757863557679cd54fd76fe77a9c5c22caa997ec39ad6a068f0 |
Hashes for tinyaes-1.0.4rc1-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2a2965d06fc9ef4edd31e209604d51cdb46550ad292fc50a45129149af23ce5c |
|
MD5 | e202edd96c19b9a079974111ac131cc0 |
|
BLAKE2b-256 | 59a562e2e06ce9f1826897fadcadfbb11295501c9ef08fdf4ced67fc2012ad6a |
Hashes for tinyaes-1.0.4rc1-cp38-cp38-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7e57056be023a8f106141f68f47448081303ca49b7e6dda158f4d8254e5ca436 |
|
MD5 | 9a2db6d9b5ee1b31ede250b02c71d029 |
|
BLAKE2b-256 | a79d56d8e1e56f38969f80f5c0c99a402fe6a213d3da8755cc87daa1c09576b2 |
Hashes for tinyaes-1.0.4rc1-cp38-cp38-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 83ba0f4a9959363effa1fc3dbe36459812f1a97060ca9367d16dd2a65f854ddb |
|
MD5 | d925ac69f9efe22aeeaada9502986a24 |
|
BLAKE2b-256 | c911b4bbd3e06abba05f899bc523153e6c95882351b1f1643fa69dbc86583055 |
Hashes for tinyaes-1.0.4rc1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 625a6dddb770d1cd6fad354a6f90dee6535ef860959af502837b527873076fa7 |
|
MD5 | ec7ab1a26ca49c487a6caabac1be35eb |
|
BLAKE2b-256 | cff9ae762877d066ca8110a493297620d10dec2d699d4fa20c78eaead4d9e463 |
Hashes for tinyaes-1.0.4rc1-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96c1b04935a88afe23334450565eda0bc003d01d81f353e7e4fba696e826c400 |
|
MD5 | 943c615a7e518e32cc40d84488db6f11 |
|
BLAKE2b-256 | df3af0b302d4af8f0e41b83ed50a17cb65971d775c68f006fd2b44d004f7a655 |
Hashes for tinyaes-1.0.4rc1-cp37-cp37m-win_amd64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | da5492cb5707ee20a204d2d9fd01b04f738dc9e9e5b341825d408dc1a22305be |
|
MD5 | 7749b5e5afb5b4be8bdd5d19b8c0d2bd |
|
BLAKE2b-256 | d41eccc3589b1cc07e18488353397f558247c4236dc7151f361e96a0007246fa |
Hashes for tinyaes-1.0.4rc1-cp37-cp37m-win32.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 23eed9ff1792a1af94176cdd9ac0ddfda0b557ef60e76cd263d8b8acb578ea8f |
|
MD5 | 89b6b6b33074a364b6af1fbf4b55d3c6 |
|
BLAKE2b-256 | 7ae68b421ea06fc3c473bf4083a82cacce15046dd0d09e54ea04d1675db29ee9 |
Hashes for tinyaes-1.0.4rc1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3d94d0d015984fd2a2c0a95495462c4807f1bf7837aaa18323560ab2b601cc6c |
|
MD5 | b1d0de83f5147b4513a2b483b597ef2b |
|
BLAKE2b-256 | 71b89196b9187c6ae3f25cad38d6fa8415080f6f2d2869291248bde6cc215c87 |
Hashes for tinyaes-1.0.4rc1-cp37-cp37m-macosx_10_9_x86_64.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 28202b7fdd6b51dca48d31d71862c38d1a2e361cab2b4170c37618d079d5d31f |
|
MD5 | 6c3e1426941efc6d89194ffc34f0a3db |
|
BLAKE2b-256 | 8fcf0f374e51d2d9ab4bf7b124b11216a5b2b6f4b3c0b07e749a5e62af67842d |