aesio
– AES encryption routines¶
The AES
module contains classes used to implement encryption
and decryption. It aims to be low overhead in terms of memory.
Available on these boards
- aesio.MODE_ECB :int¶
- aesio.MODE_CBC :int¶
- aesio.MODE_CTR :int¶
- class aesio.AES(key: _typing.ReadableBuffer, mode: int = 0, iv: _typing.ReadableBuffer | None = None, segment_size: int = 8)¶
Encrypt and decrypt AES streams
Create a new AES state with the given key.
- Paramètres:
key (ReadableBuffer) – A 16-, 24-, or 32-byte key
mode (int) – AES mode to use. One of:
MODE_ECB
,MODE_CBC
, orMODE_CTR
iv (ReadableBuffer) – Initialization vector to use for CBC or CTR mode
Additional arguments are supported for legacy reasons.
Encrypting a string:
import aesio from binascii import hexlify key = b'Sixteen byte key' inp = b'CircuitPython!!!' # Note: 16-bytes long outp = bytearray(len(inp)) cipher = aesio.AES(key, aesio.MODE_ECB) cipher.encrypt_into(inp, outp) hexlify(outp)
- encrypt_into(src: _typing.ReadableBuffer, dest: _typing.WriteableBuffer) None ¶
Encrypt the buffer from
src
intodest
.For ECB mode, the buffers must be 16 bytes long. For CBC mode, the buffers must be a multiple of 16 bytes, and must be equal length. For CTX mode, there are no restrictions.
- decrypt_into(src: _typing.ReadableBuffer, dest: _typing.WriteableBuffer) None ¶
Decrypt the buffer from
src
intodest
. For ECB mode, the buffers must be 16 bytes long. For CBC mode, the buffers must be a multiple of 16 bytes, and must be equal length. For CTX mode, there are no restrictions.