All Projects → naufraghi → tinyaes-py

naufraghi / tinyaes-py

Licence: MIT license
tiny-AES-c wrapper in Cython

Programming Languages

python
139335 projects - #7 most used programming language
cython
566 projects

Projects that are alternatives of or similar to tinyaes-py

Python-SecureHTTP
Make HTTP transmissions more secure via RSA+AES, encrypted communication for C/S architecture.
Stars: ✭ 19 (-42.42%)
Mutual labels:  aes
URT
Fast Unit Root Tests and OLS regression in C++ with wrappers for R and Python
Stars: ✭ 70 (+112.12%)
Mutual labels:  cython-wrapper
cryptorious
CLI Password Manager
Stars: ✭ 15 (-54.55%)
Mutual labels:  aes
PassLock
PassLock is a medium-security password manager that encrypts passwords using Advanced Encryption Standards (AES)
Stars: ✭ 44 (+33.33%)
Mutual labels:  aes
LocalPreferences
Better alternative for Unity's PlayerPrefs
Stars: ✭ 33 (+0%)
Mutual labels:  aes
stenc
SCSI Tape Encryption Manager - stenc (formerly on https://sourceforge.net/projects/stenc/)
Stars: ✭ 41 (+24.24%)
Mutual labels:  aes
blend2d-python
Cython wrapper for Blend2D
Stars: ✭ 13 (-60.61%)
Mutual labels:  cython-wrapper
cortexm-AES
high performance AES implementations optimized for cortex-m microcontrollers
Stars: ✭ 18 (-45.45%)
Mutual labels:  aes
cryptocli
The ultimate tool for data transfer, manipulation and proxy.
Stars: ✭ 16 (-51.52%)
Mutual labels:  aes
Backdoor
A backdoor that runs on Linux and Windows
Stars: ✭ 36 (+9.09%)
Mutual labels:  aes
openssl
A functions wrapping of OpenSSL library for symmetric and asymmetric encryption and decryption.
Stars: ✭ 199 (+503.03%)
Mutual labels:  aes
aes-rijndael
aes (rijndael) implementation
Stars: ✭ 13 (-60.61%)
Mutual labels:  aes
galois
A performant NumPy extension for Galois fields and their applications
Stars: ✭ 106 (+221.21%)
Mutual labels:  aes
nimssl
Nimssl is a Nim wrapper for the OpenSSL library
Stars: ✭ 18 (-45.45%)
Mutual labels:  aes
nats
A program to hide file into executable binary.
Stars: ✭ 16 (-51.52%)
Mutual labels:  aes
jh-weapp-demo
微信小程序项目- 实现一些常用效果、封装通用组件和工具类
Stars: ✭ 60 (+81.82%)
Mutual labels:  aes
WebCrypto.swift
A small collection of cryptographic functions based on the JavaScript WebCrypto API.
Stars: ✭ 16 (-51.52%)
Mutual labels:  aes
chat-diffie-hellman
A secure chat between an Android client and Java server using AES for encryption and Diffie-Hellman for key exchange.
Stars: ✭ 26 (-21.21%)
Mutual labels:  aes
java-sdk
一些常用的java sdk和工具类(日期工具类,分布式锁,redis缓存,二叉树,反射工具类,线程池,对称/非对称/分段加解密,json序列化,http工具,雪花算法,字符串相似度,集合操作工具,xml解析,重试Retry工具类,Jvm监控等)
Stars: ✭ 26 (-21.21%)
Mutual labels:  aes
pyrodigal
Cython bindings and Python interface to Prodigal, an ORF finder for genomes and metagenomes. Now with SIMD!
Stars: ✭ 38 (+15.15%)
Mutual labels:  cython-wrapper

tiny-AES-c Cython wrapper

PyPI version

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 on bytearrays only, modifying the buffer in-place.

Release notes

  • 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
  • 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].