Ucryptolib Module API Manual

Ucryptolib Module API Manual#

Overview#

The Ucryptolib library provides the following encryption and decryption functionalities: AES-ECB, AES-CBC, AES-CTR.

For related information, please refer to MicroPython’s official cryptolib documentation.

API Introduction#

The Ucryptolib library provides the aes class, which implements encryption (encrypt) and decryption (decrypt) operations.

Class aes#

Constructor#

Description

Initialize the encryption algorithm object, which is suitable for encryption/decryption.

Note: After initialization, the encryption algorithm object can only be used for encryption or decryption. Running a decryption operation after an encryption operation, or vice versa, is not supported.

Syntax

ucryptolib.aes(key, mode[, IV])

Parameters

  • key : An encryption/decryption key (bytes-like).

  • mode :

    • 1 for Electronic Code Book (ECB) mode.

    • 2 for Cipher Block Chaining (CBC) mode.

    • 6 for Counter mode (CTR) mode.

  • IV : an initialization vector for CBC mode.For Counter mode, IV is the initial value for the counter.

encrypt#

Description

Encrypt in_buf. If no out_buf is given result is returned as a newly allocated bytes object. Otherwise, result is written into mutable buffer out_buf. in_buf and out_buf can also refer to the same mutable buffer, in which case data is encrypted in-place.

Syntax

enc = aes.encrypt(in_buf[, out_buf])

decrypt#

Description

Like encrypt(), but for decryption.

Syntax

dec = aes.decrypt(in_buf[, out_buf])

Example

from ucryptolib import aes
# ECB mode
crypto = aes(b"1234" * 4, 1)
enc = crypto.encrypt(bytes(range(32)))
print(enc)
crypto = aes(b"1234" * 4, 1)
print(crypto.decrypt(enc))
Comments list
Comments
Log in